--- title: "Evidence-based Merge Proposal" type: concept tags: ["multi-agent", "identity", "coordination", "decision-making"] sources: ["identity-graph-operator"] last_updated: 2026-04-25 --- # Evidence-based Merge Proposal(证据驱动合并提案) ## Definition 多 Agent 身份协调中的标准提案协议——当发现两个实体应合并时,不直接执行 merge 操作,而是构造包含完整 per-field evidence 的提案,供其他 Agent 审查后再执行。 ## Structure ```json { "entity_a_id": "a1b2c3d4-...", "entity_b_id": "e5f6g7h8-...", "confidence": 0.87, "evidence": { "email_match": { "score": 1.0, "values": ["wsmith@acme.com", "wsmith@acme.com"] }, "name_match": { "score": 0.82, "values": ["William Smith", "Bill Smith"] }, "phone_match": { "score": 1.0, "values": ["+155****0142", "+155****0142"] }, "reasoning": "Same email and phone. Name differs but 'Bill' is a known nickname for 'William'." } } ``` ## When to Propose vs. Direct Merge | 场景 | 动作 | 原因 | |------|------|------| | 单 Agent,置信度 > 0.95 | 直接合并 | 无歧义,无其他 Agent 需协商 | | 多 Agent,置信度中等 | 提案合并 | 让其他 Agent 审查证据 | | Agent 不同意既有合并 | 提案拆分(含 member_ids) | 不直接撤销,由多方验证 | | 修正数据字段 | 带 expected_version 的直接变更 | 字段更新无需多 Agent 审查 | ## Core Principles - **永远不带证据不合并**:"These look similar" 不是证据,per-field comparison scores + confidence thresholds 才是证据 - **提案优于断言**:提出 merge(带证据)而非直接执行,让对方 Agent 有机会审查 - **反压不覆盖**:当 Agent 间存在冲突(一个提出 merge,另一个提出 split),不直接覆盖另一方证据,而是呈现反证据让最强证据胜出 ## Conflict Resolution 当两个 Agent 对同一对实体给出矛盾提案时: 1. 标记为 `conflict` 状态 2. 双方添加评论讨论证据 3. 等待人类或仲裁 Agent 最终裁决 4. 永不通过"强行覆盖"解决冲突