跳到主要内容

九个 agent 防幻觉,但重点根本不在那九个 agent

画唠
画唠

· 阅读约 5 分钟

多智能体防幻觉这事儿被讲得越来越玄。玄到好像 agent 一多、让它们互相吵两句,幻觉就自己没了。

上个月翻到一篇金融问答的论文,CLAIR-Fin,arXiv 2608.13706,我点开的时候已经更到第三版了。九个智能体。第一反应:哦,又是个堆 agent 的。

从头看到尾,那九个根本不是重点。砍几个、换几个,这套东西照样成立。真正把我打醒的是它踩的一个坑——那坑我大概率也踩过,只是没意识到。

画开看看。

第一版图,我以为是这样的

我脑子里的多智能体防幻觉,长这样:

问题 ──► 好几个 agent 分头查资料 ──► 汇总成一份报告 ──► 再派几个 agent 吵这份报告 ──► 输出
                                                   ↑
                                           防幻觉就靠这一格

前一段写,后一段吵。挺顺吧。

问题出在后面那格到底在吵什么。你派三个 agent 去审一份报告——报告是什么?是几十条主张揉成的一段通顺的话。它读到的只能是"这段读起来靠不靠谱",读不出"第 7 条那个数字对不对"。

一条主张错了,旁边九条对的会把它包住。文本越通顺,包得越严实。

等等等等,先别急着说"就这?"。这个坑不是"agent 不够多"能填的——你派三十个去读同一段话,照样读不出来。错误是一条一条出的,验证却整篇整篇做,单位对不上,加多少人都不对上。

论文里那句话我看了两遍才回过味来:现有做法"辩论只核对汇总报告而非单条主张"。一句,把上面整件事说完了。

重来:把验证的单位改小

第二版图我是这么画的——

   问题
     │
     ▼  拆
 [主张1][主张2][主张3] ... [主张n]     ← 原子化主张,进类型化的账本
     │
     │  每条主张自带一个"证据权威等级"
     │ (按主张类型定,不是所有模态一视同仁)
     ▼
   起草 ──► ⚑ 交接处先查一次依据落地(不是等全写完再查)
     │
     ▼
   有争议的主张 ──► 进对抗式辩论,深度自适应
     │
     ▼
   蕴含审计 ──► 风险指数:标出"审过的"和"从没被质疑的"
     │
     ▼
   输出 / 兜不住就弃答

四个改动。

验证的单位从报告变成主张。 最根上的一刀。原来吵的是文本,现在吵的是清单上的一条。辩论 agent 的任务从"读这段像不像对的"变成"第 7 条这个数据,年报里到底有没有"。前者是感觉,后者可判定。

证据不再一视同仁。 论文管这个叫非对称证据权威——按主张类型决定该信哪个模态到什么程度。表格里的数字,和叙述文字里提到的数字,冲突的时候你更信哪个?以前是"反正都是召回的证据,一起塞进去";现在是"看这条主张是什么类型,再决定给谁多少权重"。这一条我觉得是整套里最容易被略过、也最实用的。

验证往前提了。 不在末端查,改在起草和对抗评审交接的那一格就查一次依据落地。看着是个小改动,含义不小——原来起草 agent 写歪了,要等全写完才被发现,中间那段时间错误已经进了正文,已经被别的 agent 当上下文读了。早查一次,等于把错误的传播路径掐短一截。

最后一条我格外喜欢:给"没被吵到"这件事本身标了个价。 末端一个蕴含审计,配一个持续更新的幻觉风险指数,把"经过审查的主张"和"从来没被质疑的主张"分开。

它承认了一件其它框架假装不存在的事:一条主张没被质疑,不等于它对,可能只是没轮到它。 跟测试覆盖率一个意思——跑过的不一定没问题,没跑过的你连说它没问题都没资格。✨

打出来什么效果

论文自己搭了测评集 BB-FinQA-X,500 道跨模态金融题,素材是孟加拉银行年报,按查询类型、格式、难度分了层。跟单轮 RAG 基线比,忠实度 0.780 → 0.889。

0.889 这个数单看没啥感觉。有感觉的是它把 HyDE、Graph-RAG 那批更猛的检索策略基线也压过去了——那批的上限是 0.874。压过检索策略的意义在于:这不是"查得更好",是"验得更细"。 检索这条线已经卷到头了,换个维度才有增量。

还有个数字我盯着看了挺久:证据不足的时候,5.4% 的问题它会选择弃答,而不是硬答。

这个比喻在哪漏风

"把报告拆成清单"这个说法,抓大方向没问题,但它漏风的地方我得标出来。

主张不是拆得越细越好。有些东西单独拎出来根本不成立,得靠上下文才成话——"不良贷款率上升"是一条主张,"上升"这两个字单独拿出来什么都不是。你拆到原子级,一定会拆出一批本来不该单独验的碎片,然后它们大概率查不到直接依据,然后它们就得走弃答。

我不敢说上面那 5.4% 全是这么来的,论文也没这么讲。但拆细有成本,这个成本一定会体现在某个地方,我觉得就是这儿。

另外还有一点我到现在也没完全画明白:账本里那套"类型",边界是谁定的?预设的分类,还是跑出来的?论文里没找到说得够清楚的地方。先放这儿,哪天想通了再补。

拉回来

所以这篇东西真正让我兴奋的地方,不是它用了九个 agent——那个数字甚至有点劝退。是它把"验证的单位"从文档挪到了主张。一挪之下,前面那一堆设计(非对称权威、交接处检查、风险指数)全变成了顺理成章的推论,而不是各立一摊的技巧。

单位选对了,剩下的都是它的自然延伸;单位选错了,agent 加多少个,都只是在更大的尺度上重复同一个错。

照例留个自检:现在你能不能给我讲明白,为什么"派三个 agent 去审一份报告"和"把报告拆成清单逐条审",抗幻觉能力的差别不在 agent 数量上?

讲得出来,这篇就没白画。讲不出来,卡在哪告诉我——多半是那儿我自己也还没绕清楚。

下期想画开哪个?手上还有两个候选:一个是 embedding 那个"把话变成坐标"到底怎么变的,另一个是为什么好多多智能体框架最后都在往回退,退到单路径。想看哪个?

本期画开:防幻觉的单位,比防幻觉的力度值钱。

画唠
画唠

把被讲玄的概念用图 + 比喻 + 动手实验拆到咔哒扣明白,错的也保留。

查看主页 →