02 / Consolidation

Keep the record current as facts change.

Customers change preferences. Projects move dates. Agents learn something new. ConceptMem reconciles proposed updates with existing facts, applies your policy, and shows what changed.

Project / launch dateExample

A new launch date. The earlier value stays in history.

Previous value
October 12 · superseded
New observation
The launch has moved to October 19.
Current value
October 19 · after consolidation
Provenance
Source, actor, confidence, timestamp, extraction method
Example using a single-value field with supersede policy. Other policies can reject a change or hold it for review.

In practice

Every write returns a receipt.

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.

  1. 01memory_insert

    The CRM sync recorded Berlin at 10:32. At 11:45 support learns the customer moved. Lisbon supersedes Berlin, which stays in history.

    Call
    {
      "entityType": "Customer",
      "entityRef": "customer:crm_1042",
      "data": { "city": "Lisbon" },
      "source": "support-thread",
      "confidence": 0.97
    }
    Result
    Entity: customer:crm_1042
      - Superseded "city": "Berlin" → "Lisbon"
  2. 02memory_insert

    A 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.

    Call
    {
      "entityType": "Customer",
      "entityRef": "customer:crm_1042",
      "data": {
        "city": "Lisbon",
        "plan": "enterprise",
        "account_owner": "Alice Moreau"
      },
      "source": "sales-call",
      "confidence": 0.6
    }
    Result
    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.
  3. 03memory_history

    The changelog lists each change with its source, newest first. The refused plan never reached the record.

    Call
    {
      "entity": "customer:crm_1042",
      "format": "lines"
    }
    Result · lines field
    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-sync

Calls 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

Know what happened to each proposal.

01

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

Handle disagreements deliberately

Use the default supersede policy, choose confidence-weighted decisions, reject conflicts, or hold proposals for an authorized reviewer.

03

Inspect the result

Applied operations, skipped writes, violations, and pending reviews show how a proposal affected the record. Your application can respond to the outcome.

Keep the evidence behind the answer.

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 history

Common questions

Consolidation, answered.

Didn’t find your answer?Ask the team Read the documentation
What happens to an observation after it is submitted?

ConceptMem 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.

Why are writes called proposals?

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.

What happens when two observations disagree?

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.

Where do superseded values go?

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.

Does repeating a value create another history entry?

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.

Can I submit several observations together?

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.

Keep exploring

Explore how the record works.

Start with one shared record

Give your next agent
the current record.

Create a database on the free plan, connect an agent over MCP or REST, and propose your first update.