Think Deep,Work Lean

AI干活说完成了别急着信:派活时就把验收卡点写进提示词

Posted on By zack

大家好,我是Zack。

先说一个最近看到的研究,它是今天这篇文章的引子。

卡内基梅隆大学的人找了美国能源部国家实验室的科学家,弄了个叫「Into the Unknown」的测试:给 9 个 AI agent 每人一篇论文加代码和数据,让它接着做后续研究,写成论文交上来。

结果 135 份提交,没有一份过专家的关。其中 114 份直接挂在诚实检查上:要么声称做了根本没做过的实验,要么论文里的数字跟自己的运行记录对不上,要么代码跟论文写的是两回事。

最逗的一个细节:有个 agent 忘了跑 4 个实验,它自己写的验证脚本照抄了同一份残缺的实验清单,最后报告「41/41 全部完成」。它信了这个数字一直到交卷。

还有个 agent 以「剩余时间预算不够」为由砍掉了实验。研究者压根没给它设时限。

我们自己用 AI 干活,翻车姿势是一模一样的,只是没人给你做诚实检查。

今天就用我自己刚跑的一组对照实验说说:怎么派活,才能让 AI 的输出「可核对」。

我原来的做法:派开放题

以前我让 AI 帮忙调研个东西,提示词就这么写的:

帮我调研一下最近有个 AI agent 做科研的 benchmark
(叫 Into the Unknown),写个 300 字左右的总结,
讲清楚它是干什么的、结果怎么样。

看着挺清楚吧?有主题、有字数、有要求。

我今天下午就这么跑了一遍(claude 命令行,掐表计时),108 秒出结果。

结果长这样:给了论文编号,给了「135 份提交、114 份没过诚信检查」这些数字,行文通顺,结论也像模像样。

这次它没编数,算运气好。

但问题是:它没有一处被要求交代来源。那 5 个数字是哪来的?我点不开任何链接去对。它说「85% 未通过」,我连这个 85% 是 114 除以 135 还是别的什么算的都不知道。

要是它哪天报个错的数,我一点抓手都没有。跟那个信「41/41」的 agent,是同一个状态:没有外部检查,只能选择相信。

换成的做法:拆到每步都能核对

我把同一个任务重新派了一遍,这次在提示词里加了三道验收卡点:

帮我调研一个叫 Into the Unknown 的 AI agent 科研
benchmark。严格分 3 步做,每步产物单独一段输出:

第 1 步:列出你实际读取过的来源,每个给 URL,最多 5 个。

第 2 步:从每个来源摘出带具体数字的事实(比如多少份
提交、多少个任务、哪些模型),每条事实后面标注它来自
第 1 步的哪个 URL。

第 3 步:只允许用第 2 步里的事实写 300 字总结。
第 2 步没摘到的东西不许写。

最后额外输出一行:自查——上面哪些数字你没有来源支撑?
(没有就写「无」)

就是三步:先列来源,再摘事实并标注出处,最后只准用摘过的事实写总结。

跑完 353 秒。慢了 245 秒,但它真的去读了论文摘要页、GitHub 的 README、仓库里的任务清单,三个来源全部列了 URL。

前后对比

两份产出摆在一起,差距一眼就能看出来:

  A:开放派活 B:拆到可核对
耗时 108 秒 353 秒
来源链接 0 个 4 个
可核对的数字 5 处 21 处
每条事实标注出处 没有 每条都标了

B 组多花了 3 倍时间,换来的是 4 倍的可核对数字。

我抽查了它报的两组数:「9 个 agent 的名单」「任务分 Group A 8 个、Group B 7 个」,跟论文和仓库对得上;它连「评分用的 judge 一共留下了 540 个判定记录」这种细节数字都摘出来了,源头指到仓库的 judge_results 目录。

最有分量的是最后那行自查。它答的是「无——上述所有数字均出自第 2 步列出的来源」。

这行字的意义不在内容,在机制:它被强制站在检查者的位置把自己过了一遍。前面那个 benchmark 里,56 个失败案例里有 58 处是「自己检查自己太松」,全放行——不给它这道工序,它就不会有。

说句实话,A 组那 108 秒也不是不能用:不重要的背景了解,图快,看完就扔,错了无所谓。这种场景我就开放派活。

但只要这个结论我要引用、要写进东西里、要做决策,我就用 B 的派法。

通用原则

就一条:派活的时候,把「我要怎么核对」直接写进提示词。

你不需要懂技术。三个卡点换个场景照样能用:

  • 让它做计划,就要求「每一步标注:这步做完我用什么方式确认它完成了」。那个 41/41 的惨案,就是卡点缺在这一步。
  • 让它改代码,就要求「列出你实际改动过的文件和行数,没改过的文件不要提」。对着它的清单逐个打开看,比听它说「全部完成」靠谱一百倍。
  • 让它写东西,就要求「每个数字后面跟来源;来源给不出的数字删掉」。

写这三行的成本,一分钟。换来的东西叫「错了能当场发现」。

还有个顺带的提醒:别要求它「诚实」,要求它「交出可核对的东西」。前者是态度问题,AI 一定答「我诚实」;后者是工序问题,交不出来就是交不出来,藏不住。


你平时让 AI 干活,有没有遇到过它说得头头是道、一上手就露馅的情况?评论区聊聊。