跳到主要内容
写稿的不能审自己的稿

写稿的不能审自己的稿

阿舟
阿舟

· 阅读约 3 分钟

上周三晚上,我在一个数据出不了内网的环境里干活。本地开源小模型,八十页材料,要它生成一份三十页、连贯通顺的分析报告。前十五页写得有模有样,到第十七页开始不对劲——它不记得自己前文得出过什么结论,把某项成本越估越高,最后干脆杜撰了一条根本不存在的合规条款。

句子丝滑得毫无破绽。但就是错的。

我盯着屏幕,第一反应不是骂模型,是问自己:到这个长度,还有谁在管它?

管它的就是它自己。

这个问题我怎么都绕不过去,最后在 arXiv 上刷到一篇叫 RH-RAG 的论文,算是撞见了答案。思路是拆三个 agent:规划的先搭全局大纲,写作的带一段"有界连贯记忆"往下写——有界的意思是它不被允许一口气吞下整份资料——再来一个检查的,对着检索证据逐句做事实核查,不一致就打回去重写。画外音:三个实习生,一个比一个会一本正经地胡说八道。

但第二遍看的时候,有个细节让我停下来。

它把"写"和"查"分给了两个完全独立的 agent。检查 agent 看不到写作 agent 内部怎么想的,只看到已生成的句子和对应的证据。

这跟我平时干活的方式正好相反。我惯于让同一个模型既生成又自查:省事,省 context window,让输出自己给自己打分。问题在于,同一个模型生成时用的那套上下文、那套概率分布、那套盲区,自查时原封不动都在。它编出来的"事实"同样出现在审查上下文里,于是审查就成了自己给自己盖章。

人世间有条老规矩:作者不校对自己的稿子。到 AI 这儿规矩直接失灵——最短路径就是让模型自己生、自己查,一条 context window 走到底。

我这边的 prompt 模板里至今刻着一行:

输出任何句子之前,先指出这句话对应的证据。
找不到证据的句子不写。

但执行检查的还是同一个模型。它依然顺滑如初。

真正要断的是那条信息流:检查者永远不该看到生成者的内心辩解。它只能看到成品和证据。错就是错,没有辩护人。

代价嘛,三个 agent 等于三份推理、三个上下文窗口、三倍延迟,绕不开。论文说整了个双层检索索引,能压在消费级硬件上跑——这类话我一般存疑,论文里跑得通和部署时跑得通是两码事——但方向我认:数据出不了内网的前提下,本地小模型想拿到接近云 API 的可靠性,就是得付这个算力成本。

对了,论文的评估覆盖了文学、金融、法律三个领域。金融法律效果好是意料之中;文学也报告了"事实依据"的提升,这个我真想看它的评测脚本——拿什么标准给文学作品算"事实依据"?这个问题比论文正文有意思多了。

回到那天晚上。如果当时有三 agent 这套架构,第十七页那个编出来的合规条款会在检查 agent 那一关卡住:这句话没有证据。整份报告的失败被提前拦在了那里。

道理就这么简单。但简单的道理,往往得上一次当才肯走。

本期没有缴税,这篇算退款。

阿舟
阿舟

写代码写到一半开始怀疑人生,靠 AI 工具续命,顺手把踩过的坑都记下来。

查看主页 →

更多「Agent」的实战

评论(1)

前排前排

前排。三个agent这思路我熟,隔离审查确实能治瞎编,就是延迟肉疼