Keep repeated facts unchanged
Sending the same value for the same entity and field leaves the current fact in place. Repeated information does not need another current record.
02 / Consolidation
Customers change preferences. Projects move dates. Agents learn something new. ConceptMem reconciles proposed updates with existing facts, applies your policy, and shows what changed.
In practice
An agent never has to guess whether its update landed. Each result lists what changed, what was refused and what is waiting for a person, and the changelog keeps the source of every change.
memory_insertThe CRM sync recorded Berlin at 10:32. At 11:45 support learns the customer moved. Lisbon supersedes Berlin, which stays in history.
{
"entityType": "Customer",
"entityRef": "customer:crm_1042",
"data": { "city": "Lisbon" },
"source": "support-thread",
"confidence": 0.97
}Entity: customer:crm_1042
- Superseded "city": "Berlin" → "Lisbon"memory_insertA sales call repeats the city, proposes a plan outside the declared values and names a new owner, a field set to require review. The repeat changes nothing, the plan is refused, and the owner waits for a person.
{
"entityType": "Customer",
"entityRef": "customer:crm_1042",
"data": {
"city": "Lisbon",
"plan": "enterprise",
"account_owner": "Alice Moreau"
},
"source": "sales-call",
"confidence": 0.6
}Entity: customer:crm_1042
- Fact "account_owner" routed to review
NOT WRITTEN:
! plan: Value "enterprise" is outside the declared domain of "plan"
1 proposal(s) routed to review.memory_historyThe changelog lists each change with its source, newest first. The refused plan never reached the record.
{
"entity": "customer:crm_1042",
"format": "lines"
}2026-09-13T12:03:00.000Z route_to_review account_owner Alice Moreau · sales-call
2026-09-13T11:45:00.000Z supersede_fact city Berlin → Lisbon · support-thread
2026-09-13T10:32:00.000Z assert_fact plan growth · crm-sync
2026-09-13T10:32:00.000Z assert_fact city Berlin · crm-sync
2026-09-13T10:32:00.000Z create_entity customer:crm_1042 · crm-syncCalls and results from the ConceptMem MCP tools on a new database, shown as the agent receives them. plan is enforced and account_owner requires confirmation in this example’s schema.
Built into the workflow
Sending the same value for the same entity and field leaves the current fact in place. Repeated information does not need another current record.
Use the default supersede policy, choose confidence-weighted decisions, reject conflicts, or hold proposals for an authorized reviewer.
Applied operations, skipped writes, violations, and pending reviews show how a proposal affected the record. Your application can respond to the outcome.
Query current facts without replaying every past claim. Earlier values and the changelog remain available, with provenance explaining the changes that produced the current record.
Explore current state and historyConceptMem resolves the entity, checks the proposed fields and relationships against your ontology, and applies the effective policy. The result reports applied operations, skipped writes, violations, and any pending review. A successful request can still contain fields that were refused or held.
Submitting information does not automatically make it current. Consolidation decides whether to apply the update, keep an existing value, refuse a change, or hold it for review under your configured rules.
The class and field policy decides. For a changed single-value field, the default is deterministic supersede: the accepted incoming value replaces the current one. Confidence-weighted decisions, rejection, and review are configurable. The result tells the caller which outcome occurred.
They stay in memory with a superseded status and a closed validity interval, separate from current state. The changelog records the mutation with its provenance, so you can see how a record reached its present value.
Repeating the same value for an existing entity and field is a no-op: it leaves the fact unchanged and creates no new mutation event for that value. If you enable normalized value equivalence, differences only in case, accents, or whitespace can also leave the value unchanged and are reported as skipped.
Yes. Write plans support 1–50 ordered observations with an idempotency key and receipts. Each observation commits separately. If a plan fails, earlier commits remain and you can resume from the failed observation without replaying confirmed ones.
Start with one shared record
Create a database on the free plan, connect an agent over MCP or REST, and propose your first update.