50 lines
2.1 KiB
Markdown
50 lines
2.1 KiB
Markdown
---
|
||
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. 永不通过"强行覆盖"解决冲突
|