多个智能体分析同一张表得到不同结果,通常不是“投票选多数”能解决。首先确认它们是否读取了同一版本的数据、使用了同一筛选条件、是否把退款、空值或重复记录计入。只有口径一致,比较数值才有意义。
把分歧转成能定位的条件
本例中 A 的计算把所有订单金额相加;B 只合计 state=paid 的订单。两种算法都能返回数字,但如果业务问题是“已付款订单金额”,A 多算了退款的 50。与其让第三个智能体总结谁更可信,不如列出进入 A 而没有进入 B 的记录。

真实任务还要先定义已付款是否包括部分退款、手续费、税费和币种换算。这里仅用单列金额和三种状态展示定位方法,数据为人工构造。
在同一输入上复算
安装 pandas,保存并运行下面的脚本。两个本地函数模拟两份智能体输出,脚本没有调用实际模型;这样读者可以把自己的两条查询或函数替换进去,复现同一输入下的差异。
import pandas as pd
# 两个“智能体”输出用本地函数模拟,便于复现口径分歧;没有实际调用模型。
orders=pd.DataFrame({'id':['1','2','3','4'],'amount':[100,80,50,20],'state':['paid','paid','refunded','paid']})
def analyst_a(frame):return frame['amount'].sum()
def analyst_b(frame):return frame.loc[frame['state'].eq('paid'),'amount'].sum()
a=analyst_a(orders);b=analyst_b(orders)
reference=orders.loc[orders['state'].eq('paid'),'amount'].sum()
differences=orders.loc[~orders['state'].eq('paid'),['id','amount','state']]
print('agent_A_all=',a,'agent_B_paid=',b,'difference=',a-b)
print('excluded_examples=\n'+differences.to_string(index=False))
print('paid_definition_reference=',reference,'A_matches=',a==reference,'B_matches=',b==reference)
读结果并制定统一口径
输出会显示 A 为 250、B 为 200,差额 50 正好对应编号 3 的退款记录。按“只统计 paid”定义,B 与参考复算一致。接下来把这个过滤条件写入两边任务说明并固定测试用例,避免下一次换提示词后再出现同类分歧。
agent_A_all= 250 agent_B_paid= 200 difference= 50
excluded_examples=
id amount state
3 50 refunded
paid_definition_reference= 200 A_matches= False B_matches= True
pandas 分组聚合文档可用于扩展到多渠道或多状态对照;在比较之前应明确是否按记录求和、按订单去重或按用户去重。
无法定位时检查的边界
若筛选条件相同而数字仍不同,检查输入文件哈希、字段类型、缺失值处理和连接表行数。涉及大表时保留造成差异的记录 ID 样本,避免只存两个汇总值。这个小例子不能证明两个真实智能体的一般准确率。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31703.html