Types
Conflict
A detected contradiction between two memory units.
Conflict
A Conflict represents a detected contradiction between two memory units. The protocol treats conflicts as expected events, not errors. Conflicts are detected automatically (at Level 2+) or declared explicitly by agents (via a contradicts relation), and resolved through structured strategies.
Schema
{
"id": "<string>",
"type": "factual | interpretive | strategic | priority",
"status": "detected | resolving | resolved | escalated",
"unit_a": "<string>",
"unit_b": "<string>",
"description": "<string>",
"detected_by": "explicit | semantic | logical | temporal",
"resolution": {
"strategy": "<ConflictStrategy>",
"winner_id": "<string | null>",
"rationale": "<string>",
"resolved_by": "<string>",
"epoch_resolved": "<number>"
}
}
Field Reference
| Field | Type | Required | Description |
|---|---|---|---|
id | string | ✓ | Unique conflict identifier. Auto-assigned by the Field. |
type | string | ✓ | factual, interpretive, strategic, or priority. |
status | string | ✓ | Current state of the conflict. |
unit_a | string | ✓ | ID of the first conflicting memory unit. |
unit_b | string | ✓ | ID of the second conflicting memory unit. |
description | string | ✓ | Human-readable description of the contradiction. |
detected_by | string | ✓ | How the conflict was discovered. |
resolution | object | Populated once the conflict is resolved or escalated. |
Conflict Types
| Type | Description |
|---|---|
factual | Two units make opposing factual claims (e.g., conflicting market size figures) |
interpretive | Two units interpret the same evidence differently |
strategic | Two units recommend conflicting courses of action |
priority | Two units assign different priority to the same goal or task |
Detection Methods
| Method | Description | Required Level |
|---|---|---|
explicit | An agent included a contradicts relation in a RECORD request | 1+ |
semantic | Embedding similarity detected opposing claims | 2+ |
logical | A finding's assumptions contradict another finding's content | 2+ |
temporal | A newer finding contradicts an established, higher-confidence finding | 2+ |
Status Lifecycle

detected → resolving → resolved
detected → escalated → resolved (human operator resolves)
resolving → escalated (strategy fails or times out)
| Status | Description |
|---|---|
detected | Conflict found; no resolution initiated yet. |
resolving | An agent or the Field has initiated resolution with a chosen strategy. |
resolved | Successfully resolved. Both original units updated to superseded or one is superseded. |
escalated | Automatic resolution not possible; flagged for human review. |
Conflict Resolution Strategies
| Strategy | Description | Required Level |
|---|---|---|
last_write_wins | Most recent memory unit prevails | 2+ |
confidence_weighted | Higher confidence score prevails | 2+ |
human_escalation | Flag for human review | 2+ |
authority | Specified agent/role has final say | 3 |
evidence_count | Unit with more supporting evidence prevails | 3 |
synthesis | Create a new unit reconciling both | 3 |
vote | Multiple agents vote (requires quorum) | 3 |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://akashikprotocol.com/schema/0.1.0/conflict.json",
"type": "object",
"required": ["id", "type", "status", "unit_a", "unit_b", "description", "detected_by"],
"properties": {
"id": { "type": "string", "minLength": 1 },
"type": { "type": "string", "enum": ["factual", "interpretive", "strategic", "priority"] },
"status": { "type": "string", "enum": ["detected", "resolving", "resolved", "escalated"] },
"unit_a": { "type": "string" },
"unit_b": { "type": "string" },
"description": { "type": "string" },
"detected_by": { "type": "string", "enum": ["explicit", "semantic", "logical", "temporal"] },
"resolution": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"enum": ["last_write_wins", "confidence_weighted", "authority", "evidence_count", "synthesis", "human_escalation", "vote"]
},
"winner_id": { "type": ["string", "null"] },
"rationale": { "type": "string" },
"resolved_by": { "type": "string" },
"epoch_resolved": { "type": "integer" }
}
}
}
}