# Memory Conflict Detection

The practice of detecting when a new piece of knowledge contradicts an existing one and keeping both visible rather than silently overwriting. This matters for any knowledge system where facts change over time — agent memory, wikis, configuration databases — because silent overwrites destroy the context about what changed and why.

## The problem with overwriting

The simplest approach to updating knowledge: find the old entry, replace it with the new one. This works when the new information is unambiguously correct. It breaks when:

- The "new" information might be wrong (an agent misread something, a source is unreliable)
- The old and new information are both partially true in different contexts
- Understanding the contradiction itself is valuable (it reveals a change in the system or a gap in understanding)

In agent memory specifically, silent overwriting means the agent loses history. If a deployment script changed from requiring `--force` to not requiring it, both facts are useful: the current state and the knowledge that it used to be different.

## How conflict detection works

When storing a new memory:

1. Check existing memories for semantic overlap (same topic, similar tags, matching entities)
2. Compare claims — if the new memory asserts something that contradicts an existing memory, flag it
3. Store both memories and create a conflict record linking them
4. Surface conflicts to the agent or human for explicit resolution

The detection can be simple (exact tag + entity match with differing values) or sophisticated (embedding similarity above threshold with contradictory sentiment). [[hippo-memory]] uses the simpler approach: conflicts are stored in SQLite and mirrored to `.hippo/conflicts/` as files, resolved explicitly with `hippo resolve <id> --keep <mem_id>`.

## Resolution strategies

- **Keep newest** — trust the most recent observation. Simple but loses history.
- **Keep both with context** — annotate both with timestamps and let the consumer decide. Preserves the most information.
- **Merge** — create a new entry that captures the nuance ("deploy required --force before v2.3, no longer needed after"). Most accurate but requires understanding.
- **Human arbitration** — flag for manual review. Safest for high-stakes knowledge. This is a form of [[human-in-the-loop]] applied to knowledge management.

## Relevance to this wiki

This wiki handles conflicts through the lint workflow: periodic scans that flag contradictions between pages for human review. The approach is similar in spirit to conflict detection but batch-oriented rather than real-time. If the wiki's ingest rate increases, real-time conflict detection during ingest (checking new claims against existing pages) would catch issues earlier.

[[byzantine-fault]] detection in multi-agent systems is a related problem at a different scale: agents producing conflicting outputs from the same prompt. The same principle applies — keep contradictions visible and resolve explicitly rather than letting one silently win.
