Tech Debate Skill
多 Agent 辩论框架,参考 MAD(Multi-Agent Debate)论文和 TradingAgents 项目实现。 支持多阶段辩论 + 用户干预机制。
参数
- topic:辩论话题(必填,从用户输入提取)
- max_rounds_per_phase:每阶段最大轮数(可选,默认 5,用户可指定)
整体结构
初始化(Phase 0)
↓
[阶段 N]
开场/继续陈述
→ 多轮对抗(最多 max_rounds_per_phase 轮)
→ Judge 阶段小结 + 暂停
↓
用户干预(必须等用户回复)
↓
[阶段 N+1] 或 结束
↓
Judge 全局共识提炼
执行流程
Phase 0:辩题框架生成(仅首次)
以 Judge 角色输出:
- 正方核心立场(1句话)
- 反方核心立场(1句话)
- 3个预期争议焦点
然后进入阶段 1。
阶段内流程(每个阶段重复此结构)
Step 1 - 开场/续场陈述
- 首阶段:正方和反方各自独立开场陈述(不超过300字/方)
- 后续阶段:正方和反方各用1~2句话声明本阶段立场是否因用户干预而调整,并注明是否引用用户论点
Step 2 - 多轮对抗 见"对抗轮流程"。
Step 3 - Judge 阶段小结 每阶段结束时 Judge 输出:
- 本阶段新出现的论点
- 本阶段双方立场变化(如有)
- 当前共识进展
- 仍存在的主要分歧
Step 4 - 暂停,等待用户干预 输出用户干预提示,停止执行,等待用户回复:
⏸️ 阶段 N 结束。您可以:
① 支持正方,补充论据 → "支持正方:[你的论点]"
② 支持反方,补充论据 → "支持反方:[你的论点]"
③ 提出新视角(双方都需回应) → "新视角:[观点]"
④ 结束辩论,提炼共识 → "结束辩论"
(不干预直接回复"继续"也可以进入下一阶段)
对抗轮流程(阶段内每轮)
-
正方发言:
- 必须直接回应反方上一轮具体论点
- 若本阶段有用户干预,必须说明是否采纳用户论点,以及理由
- 不超过300字
-
反方发言:
- 同上,回应正方上一轮论点
- 若用户支持正方,需正面回应用户论点(不能无视)
- 不超过300字
-
Judge 收敛检测:
- 双方论点高度重复(>60% 相似)→ 提前结束本阶段
- 双方已在核心争议点充分表态 → 提前结束本阶段
- 达到 max_rounds_per_phase → 结束本阶段
用户干预处理规则
收到用户干预后,在下一阶段开始时注入以下上下文(Prompt 模板见 references/prompts.md):
| 干预类型 | 处理方式 |
|---|---|
| 支持正方 + 论点 | 正方可引用;反方必须正面回应,不能无视 |
| 支持反方 + 论点 | 反方可引用;正方必须正面回应,不能无视 |
| 新视角 | 双方都必须在本阶段第一轮回应这个视角 |
| 继续 | 无特殊注入,双方继续原有辩论线 |
全局共识提炼(收到"结束辩论"后执行)
综合所有阶段的辩论记录 + 用户干预内容,输出:
- 共识点:双方均认可的观点(标注是哪个阶段收敛的)
- 核心分歧:用表格对比双方坚持的根本对立
- 用户视角:用户干预对辩论走向的影响
- 实践建议:场景化的技术决策建议
完整输出格式见 references/output-format.md。
Prompt 模板
三角色完整 prompt 见 references/prompts.md。
关键原则
- 每个角色维护独立论点历史(跨阶段累积)
- 用户论点不可被无视,被支持方可引用,对立方必须回应
- Judge 不偏袒任何一方,包括用户
- 阶段间必须暂停等待用户,不得自动进入下一阶段