辩论
通过调度子智能体作为辩手、主持多轮辩论,然后合成一份全面的裁决,来运行一场结构化的辩论。你是主持人,而不是辩手——在合成步骤之前保持中立。
快速开始
用户:“辩论一下我们是否应该用 Rust 重写服务。”
- 界定一个明确的辩题并选择立场(默认:2 方——肯定方 / 否定方)。
- 第一轮——并行生成每个辩手,进行开篇陈词。
- 第二轮及之后——再次生成每个辩手,并为他们提供对手上一轮的论点。
- 合成一份裁决(由你,或一个专门的裁判子智能体来完成)。
关键规则:子智能体是无状态的
每次 Agent 调用都是冷启动,没有之前调用的记忆。因此,一场真正的辩论依赖于你,即主持人,在每一轮中执行以下操作:
- 自己维护完整的辩论记录。
- 当为反驳阶段生成辩手时,将对手的最新论点粘贴到其提示中。 一个看不到自己需要反驳什么的辩手只会自说自话。
- 在同一轮中并发生成辩手(在一条消息中),这样他们谁都看不到本回合对手的文本——他们只对上一轮的内容做出反应。这保证了公平性。
- 优化——如果你的工具支持延续之前的子智能体(例如 Claude Code 返回一个
agentId/SendMessage),则继续使用每个辩手而不是重新生成:它已经记住了自己上一轮的论点,因此你只需要粘贴对手的最新论点。仍然需要单独生成同一轮的辩手以保持本轮公平。
工作流程
对于任何超出单轮快速辩论的情况,请为每一步创建一个 TodoWrite 条目。
-
界定——将主题重新表述为一个清晰、可辩论的辩题。确定以下事项:
- 立场:默认为 2 方(肯定方/否定方),或针对多方利益相关者的问题选择 3 个或以上的命名视角(例如“内部构建” / “购买 SaaS” / “采用开源”)。请参阅 REFERENCE.md → 多角度。
- 轮次:默认为 2 轮(开篇陈词 + 反驳);对于困难主题可设为 3 轮(增加结辩)。
- 事实核查:默认为关闭;对于注重实证/主张的主题请开启——在合成(步骤 4)之前,一个中立的核查员会检查各方的事实性主张。
- 裁判:默认由你合成;对于追求最大公正性或需要一个计分式裁决的情况,可生成一个专门的裁判子智能体(步骤 5)。
- 只有当辩题存在歧义时才向用户确认界定;否则直接进行。
-
第一轮——开篇陈词——在一条消息中,为每一方/角度生成一个
subagent_type: "general-purpose"代理。为每个代理提供:辩题、其被分配到的立场、其他立场的名称(以便其了解全局)、以及规则(基于证据、为你的立场做最有利辩护、不轻易退让)。将每份开篇陈词收集到你的记录中。 -
反驳轮次——在一条消息中,重新生成每个辩手。每个提示现在包括:辩题、其立场、其自己之前的论点,以及所有其他方上一轮的完整论点以供反驳(对于 3 方以上,粘贴所有论点并做好标注)。可选地增加一轮结辩。
4.(可选)事实核查——如果已启用,则生成一个中立的核查子智能体,并提供从记录中提取的各方的事实性主张。它会将每个主张标记为“已证实 / 有争议 / 无法验证”,并附带一行原因,且不偏袒任何一方。将其发现带入步骤 5,并对被标记的主张进行折扣处理。
- 合成裁决——由你自己根据记录进行推理,或者生成一个专门的裁判子智能体,并提供完整的记录(以及任何事实核查结果)。输出下面结构化的裁决。
请参阅 REFERENCE.md 获取每个角色——开篇、反驳、结辩、事实核查员、裁判——以及模式的复制粘贴式提示模板。
裁决格式
输出一份全面的综合评估——不仅仅是“谁赢了”:
- 辩题——辩论的确切问题。
- 各方的核心论点——每个立场以 2-4 个要点形式进行最有利的辩护。
- 关键分歧——实际上决定问题的真正分歧点。
- 退让与弱点——各方在哪些方面做了让步或论证不力。
- 如何解决——能够解决每个关键分歧的证据、数据或测试。
- 裁决——一个有理有据的结论,并附有明确的置信度等级(以及在什么条件下结论会改变)。如果确实势均力敌,请说明并解释原因。
- 注意事项——假设条件、缺失信息、范围限制。
对于 3 个或以上角度,“关键分歧”部分需要映射哪些立场存在冲突,哪些可以调和,而“裁决”可能推荐一个混合或排序的立场,而不是只指定一个赢家。如果进行了事实核查,请列出有争议/无法验证的主张,并对任何依赖这些主张的结论进行折扣处理。
调优
- 快速评估:2 方,1 轮,你作为裁判。快速的正反方对比。
- 深度探索:2-3 方,3 轮,专门的裁判子智能体。
- 多角度:为多方利益相关者的决策选择 3 个或以上命名立场;裁决会映射冲突与可调和立场,而不是指定单一赢家。
- 红队测试:1 个提案 + 1 个对手,其唯一工作就是找出提案的漏洞。
- 事实核查辩论:为注重实证/主张的主题启用事实核查步骤,使裁决仅基于经过验证的主张。