AI Prompt Engineering · 课时

辩论与投票智能体

智能体之间达成共识。

第 4 / 4 课13 个步骤

辩论与投票智能体 是 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 角色与专业化
  2. 编排器与工作者
  3. 智能体间通信
  4. 辩论与投票智能体
← 返回 AI Prompt Engineering