跳到主要内容

Debate模式

1. 定义与边界

Debate 模式是让多个 Agent 独立生成观点、互相质询或批判,再由裁决器选择、合并或要求重试的协作模式。它的目标不是制造“热闹讨论”,而是在不确定、高风险或容易出错的问题上增加独立检查和证据对抗。

Debate 不适合:

  • 简单事实查询,直接检索更可靠。
  • 需要低延迟的在线交互。
  • 没有可验证标准的开放式创意任务。
  • 所有 Agent 使用完全相同提示、相同上下文、相同模型且没有独立证据来源的场景。

2. 为什么重要

研究论文显示,多 Agent debate 可在部分推理和事实性任务中提升表现,但这类收益依赖任务类型、模型能力、裁决策略和独立性。工程上不能把 debate 当成通用增益器。

它更适合三类问题:

  • 高风险决策:需要多方提出反例和风险。
  • 复杂推理:需要发现步骤错误。
  • 证据冲突:需要比较不同来源和假设。

3. 核心机制

Debate 的关键不是 Agent 数量,而是独立性和裁决标准:

  1. 独立生成:各 Agent 在隔离上下文中形成初始答案。
  2. 证据声明:每个结论必须附证据、假设和不确定性。
  3. 交叉质询:Agent 针对对方证据、推理和遗漏提出问题。
  4. 修订:允许基于质询修正答案。
  5. 裁决:裁决器按评分 rubric、事实来源或测试结果选择结果。

4. 架构/流程

Debate 可分为三类:

类型机制适用
Parallel self-consistency多个 Agent 独立作答后投票或裁决数学、推理、代码方案
Cross-examinationAgent 互相指出漏洞安全评审、方案评审
Evidence debate各 Agent 引用不同证据来源,裁决器核查研究、事实核验、政策分析

更可靠的工程实现通常把 debate 和外部验证结合,例如单元测试、检索来源、静态检查、业务规则校验,而不是只让模型互评。

5. 工程实现

Debate 轮次配置:

debate:
agents:
- name: proposer
prompt: "提出可执行方案,列出假设"
- name: skeptic
prompt: "寻找失败模式和反例"
- name: verifier
prompt: "只根据证据和测试判断"
rounds: 2
independence:
hide_other_answers_until_round: 1
require_source_citations: true
judge:
rubric:
- factual_support
- logical_consistency
- safety_risk
- implementation_cost
stop_if:
consensus_score_gte: 0.85
max_cost_usd: 0.50

裁决器输入不要只给最终答案,还要给证据和反驳:

{
"candidate_id": "answer_b",
"claims": [
{
"claim": "Supervisor 模式适合集中审计",
"evidence_refs": ["source:langchain_multi_agent", "source:openai_agents_tracing"],
"confidence": 0.82
}
],
"known_objections": [
"Supervisor 可能成为单点瓶颈"
],
"tests_passed": ["citation_check", "policy_check"]
}

6. 生产实践

  • Debate 前先判断是否有明确裁决标准。
  • 对需要事实的 debate 引入检索和来源校验。
  • 对代码和数据任务用测试结果裁决,而不是模型偏好。
  • 控制轮数,通常 1-2 轮质询已经能暴露主要问题。
  • 对 Agent 初始答案做上下文隔离,避免互相锚定。
  • 记录每轮观点、反驳、修订和裁决理由。
  • 对低风险任务禁用 debate,避免成本膨胀。

7. 常见反模式

反模式问题修正
三个同模型同提示互相讨论独立性不足使用不同角色、上下文或证据源
没有裁决标准最终选择变成主观偏好先定义 rubric 和验证器
用 debate 代替搜索模型互相强化幻觉必须核对权威来源
轮数过多成本上升且收益递减设置最大轮数和早停
裁决器看不到证据无法判断事实提供来源、测试和 trace

8. 评测方法

Debate 评测应比较:

  • 单 Agent baseline。
  • 多采样 self-consistency。
  • Debate + judge。
  • Debate + 外部验证器。

指标:

指标说明
准确率增益与单 Agent 相比是否提升
单位成功成本成本增加是否值得
事实错误率是否减少无来源断言
裁决一致性同样输入多次裁决是否稳定
反例发现率是否能发现故障模式
安全拦截率是否能发现高风险建议

9. 安全与治理

  • Debate 中的对抗文本可能包含提示注入,不应直接转发给高权限工具。
  • Skeptic Agent 不应为了“找漏洞”而生成可执行攻击步骤给 Executor。
  • Judge 不能只看语言说服力,应看证据、测试和策略规则。
  • 高风险裁决应要求人类审批。
  • Debate trace 可能包含敏感推理和内部策略,需要脱敏和访问控制。

10. 工程手册补充

10.1 Debate 的使用边界

Debate 适合暴露假设和反例,不适合替代事实核验、测试和权限审批。

debate_config:
roles: [proposer, critic, judge]
max_rounds: 2
require_evidence: true
judge_rubric:
- factual_support
- constraint_compliance
- implementation_risk
forbidden:
- "用投票替代外部事实查询"
- "让 debater 调用高风险写工具"
失败模式表现处理
群体幻觉多个 Agent 同意错误事实要求 evidence artifact
辩论表演化文字很多,新增信息很少限制轮次和信息增量
Judge 偏置总选更自信的一方使用 rubric 和隐藏候选顺序
成本失控每轮全量上下文互传摘要状态和证据引用

上线清单:

  • Debate 输出只能成为候选结论,最终还要 verifier 或人审。
  • 评测要比较“无 debate、critic-only、full debate”的单位成功成本。
  • 安全上,debater 只读,不能拥有 commit、外发、删除类工具。

11. 权威资料