辩论与投票智能体
智能体之间达成共识。
辩论与投票智能体 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。
为什么要聚合多个代理
单个模型的回答只是包含错误和过度自信的一种分布样本。运行多个代理并进行聚合——通过投票或结构化辩论——可以利用独立性和分歧来发现错误,并逐步收敛到更可靠的结论。
- 投票可以平滑相互独立的随机错误。
- 辩论会让有缺陷的推理经受审查。
自洽性投票
最简单的聚合方式是:针对同一个问题采样若干条相互独立的推理路径,然后采用最终答案的多数结果。不同的推理链往往会得到相同的正确答案,而错误会分散开来,因此众数比任何一条单独路径都更可靠。
当答案空间是离散的,且各条路径确实相互独立时,这种方法效果最佳。
from collections import Counter
answers = [solve(q, temperature=0.7) for _ in range(7)]
final = Counter(a.final for a in answers).most_common(1)[0][0]独立性是前提
只有在错误相互独立时,投票才有帮助。如果所有代理共享相同的模型、提示和偏见,它们就会一起失败,而投票只会放大共同的错误。请引入多样性:使用不同的温度、不同的提示表述、不同的分解方式或不同的模型。
相关的投票者会带来虚假的信心——这就是缺乏独立性的共识所隐藏的危险。
多代理辩论
在辩论中,代理先给出初始答案,然后阅读彼此的推理,并在多轮过程中进行 revise。接触相反的论点可以让代理发现自身错误并放弃薄弱立场,最终往往会收敛到一个优于任何初始答案的结果。
- 第 1 轮:独立作答。
- 第 2 轮及以后:根据其他代理的论点进行批评和 revise。
positions = [agent.answer(q) for agent in agents]
for _ in range(rounds):
positions = [a.revise(q, others=positions) for a in agents]谄媚陷阱
辩论可能会因为错误的原因而变成一致:代理向一位自信的同伴妥协,而不是因为对方的论点更好。对此,请指导代理只有在论点本身确有说服力时才改变观点,在压力下坚持正确立场,并说明具体是哪一条论点促使它们改变了观点。
目标是富有成效的分歧;过早达成共识就是失败。
instruction = (
'Revise only if a peer presents a stronger argument. '
'State which specific point changed your view, or defend your answer.'
)评判者与仲裁者角色
与其寄希望于辩论者自行收敛,不如加入一名中立的评判者,由它阅读最终立场和论点,并给出带有理由的裁决。评判者不是辩论者,也没有自身利害关系,因此可以减少最强势声音的影响。
将辩护与裁决分离,是一种强大且可审计的模式。
verdict = judge.decide(
question=q, positions=positions,
rubric='choose the answer with the strongest evidence; explain why'
)加权投票与置信度投票
并非所有投票都具有相同权重。代理可以报告经过校准的置信度,您可以据此对聚合结果进行加权,或舍弃低置信度的投票。请保持谨慎:模型置信度通常校准不佳,因此在依赖加权之前,应先验证加权确实能提高准确率。
- 只有在置信度经过校准时,才根据置信度加权。
- 否则,普通多数更安全。
def weighted_vote(votes):
tally = {}
for v in votes:
tally[v.answer] = tally.get(v.answer, 0) + v.confidence
return max(tally, key=tally.get)成本与收益曲线
聚合的成本会随着代理数量和轮次数量线性增加,但准确率收益会逐渐递减。最初增加的几个样本很有帮助;增加到第十个样本通常就很少有收益了。请通过实证调整数量,并在边际准确率不再值得边际支出时停止。
自适应停止——在共识较强时提前停止——可以节省简单项目的预算。
def adaptive(q, max_n):
votes = []
for _ in range(max_n):
votes.append(solve(q))
if dominant_fraction(votes) > 0.8: break # confident enough
return majority(votes)辩论何时胜过投票
投票适合具有明确离散答案且样本相互独立的任务。辩论适合推理是失败关键的任务——例如多步证明和存在细微缺陷的计划——因为其价值在于批评推理链,而不是统计结论。
请根据错误出现的位置选择方法:错误在答案中时进行投票,错误在推理中时进行辩论。
平票、僵局与升级处理
请定义代理无法收敛时的处理方式:投票平票或辩论陷入僵局。应采用确定性的破平规则(由评判者裁决、选择风险最低的选项,或升级给人工处理),而不是让系统循环或任意选择。
- 限制辩论轮数;发生僵局时,由评判者决定或进行升级处理。
- 将“没有共识”呈现为一种有效且可采取行动的结果。
共识设计检查清单
要实现可靠的共识,请通过真正的多样性确保投票者相互独立,为离散答案选择投票、为推理密集型任务选择辩论,通过只依据论点价值进行修改来防范谄媚,加入中立评判者进行裁决,仅在置信度经过校准时才据此加权,采用自适应停止来控制成本,并通过升级处理定义确定性的破平规则。分歧是一种资源;请有意识地管理它。
快速检查
您运行了七个代理,它们使用完全相同的模型、提示和温度,然后对它们的答案进行多数投票,并期望获得更高的可靠性。
回顾:辩论型与投票型代理
聚合多个代理可以利用独立性和分歧来提高可靠性。对于离散答案,请使用自洽性投票;对于推理密集型任务,请使用多代理辩论,但前提是投票者确实具有多样性——相互关联的代理会放大共同偏见。请通过只依据论点价值进行修改来防范谄媚,加入中立评判者进行裁决,仅在置信度经过校准时才据此加权,采用自适应停止来控制成本,并通过升级处理定义确定性的破平规则。
用 AI 导师学习 AI Prompt Engineering — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 53
- 课程
- 199
常见问题解答
「辩论与投票智能体」课时是免费的吗?
是的 — 「辩论与投票智能体」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。
「辩论与投票智能体」这节课中我会学到什么?
智能体之间达成共识。 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI Prompt Engineering 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「辩论与投票智能体」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI Prompt Engineering 课中编写并运行代码吗?
能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。