干饭CEO

你的Claude也在编,我的编不下去了

原发于 X 和公众号X 原文公众号原文

美军的飞机都起飞了,才有人发现,依据的情报是 AI 编的。

情报来自一名分析员。他让 AI 聊天机器人把公开资料和机密信号情报合起来分析,机器人认错了船上的货单。他又让同一个工具,把这个错误结论排成一份看着很正式的简报,在指挥链里传开。

行动在最后一刻叫停。(今年春天的事,CNN 9 月 18 日报道,TechCrunch 转述)

你的 Claude 也在编。

真的?我怎么没发现?

因为它编的时候,口气跟查过一模一样。

8 月,它帮我调企业微信的接口写文档。写正文那一步,连试 6 次,6 次报错。它的结论下得很干脆:「这不是我们的问题」,「凭证、格式、网络都排除了」,是企微的接口在故障。

我问:「你根本用错了方法吧?」「你遵守文档了吗?」

它这才承认:「我确实没查官方文档」。它派去找文档的子代理找错了地方,回报说查不到,它就认定是企微坏了。读完官方文档,它第一句是:「你是对的,我用错了。」它传的字段名,跟文档上的完全对不上。

还有一回,它给我列了一张会话表,ID 只写前 8 位。末尾又补了两个完整的 ID,说是「从分类表摘的」,还提醒我恢复前核对一下全名。

我拿去恢复:「无法恢复,没打开」。

表里只有前 8 位,后面那一长串,是它自己补上的。它认了:「是我编造的」。

你没发现,多半是因为没回头去查。

可是,幻觉是模型的毛病,我能管什么?

管不了它编不编。能管的是,它编完以后,能不能混过去。

可是,提示词里写一句「不许编」,不就行了?

我写了,写得比你狠。我的规则文件里写着「不确定就说不确定,不编造」,还有一整节叫「结论必须有据(强制)」,里面一条是「未检索就下结论 = 违规」。

它照编,还编得有理有据。

8 月 17 日,它在帮我查几笔漏掉的订单。其中一笔,是一家老客户在群里说「明天送100斤大米过来」,系统没下成单:100 斤换算不成袋数。

它查完回来,开口就是:「答案把今天的几条线索串起来了」。客户没认出来,就拿不到历史订单;没有历史,就不知道是哪款米、一袋多重;所以 100 斤算不出几袋。当天另外几个问题,它也都挂到了这条链上,最后让我拍板:客户识别这块,要不要单独立项重做。

这家客户在群里下单,一个群就它一家。我问:「一个单群单客户的,怎么可能识别不出来呢」「我就好奇了」。

它去查,查到这个群明明绑着这家客户,满分,没撤销。它没停下来,马上换了个说法:「找到了,而且这是个明确的 bug。」它说答案明明就在那儿,是系统没去读。另外两笔漏单,也被它顺手算成「同一个模式」。

二十多分钟后,它回来第一句:「我错了,而且错得离谱。你的直觉是对的:它根本没有识别不出来。」

下单那天(8 月 12 日),系统直接就认出了这家客户。它看到的证据是真的:记录里候选客户那一栏是空的。可那正是系统按群里绑定的客户直接给出答案、用不着再列候选时的样子。

弄丢这一单的直接原因,是一行代码。系统其实读对了,意思是「这是按总重量下单,50公斤,袋数待换算」,袋数先记成 0。可取数那行代码把 0 当成了没填,接着报错,这一单就丢了。

它建议我立项重做的客户识别,根本没坏。它后来自己说:「那是个不存在的问题」。

我当时的原话:「我很厌倦你总是自己编这些因果链了」「我的CLAUDE.md或者AGENTS.md不是写清楚了吗?」「我真的很厌倦你拍脑袋这样了」。

它这回答得倒很清楚:「你的规则没问题,问题是它们管的是"有没有证据",管不了"这个证据能不能支撑这个结论"。」

还有一句:「我犯错时的主观状态跟做对时完全一样,都觉得自己有据。」

提示词是让它自己管自己。可它编的时候,自己觉得自己是对的。

可是,我每句都追问「你确定吗」,总行了吧?

我问过。它答:「确定。」还说我另外两个编程助手「根本不读」那些文件。

39 秒后,它被拦了下来,这才改口:「审计属实,我说「根本不读」说满了。」那句话是按惯例推出来的,另外两个助手自己的配置,它都没查。

拦下它的,是我装的审计员。

审计员是什么?

另一个 AI。现在用的是 GPT 最新的 gpt-6.1-sol,中间换成过 Opus,又换了回来,后面说为什么。

Claude Code 有个功能叫 Stop hook:Claude 每答完一轮、准备停下的那一刻,先跑一段你写的程序。我那段程序另起一个 GPT 当审计员。它看不到 Claude 是怎么想的,只看证据:我让它干什么,它这一轮每一步跑了什么、跑出了什么,最后说了什么。

说的和查的对不上,就打回去。要么当场改,要么讲清楚审计哪里看错了,不然这一轮收不了尾。同一轮最多拦两次,免得两个 AI 吵个没完。

它拦得住吗?

35 天,它把 Claude 打回了 816 次。

10 月 5 日凌晨有一次(那时审计员还是 Opus 5.5):Claude 只看了一眼工作区列表,就说本地和 GitHub 上只剩 master 一个分支了。审计员说它没用命令查过分支。它一查,本地还有 6 个分支,其中 2 个上面挂着别的会话没合并的活。要是信了它,这两份活很可能被当成垃圾清掉。

打回的,都是它说错了?

不全是。GPT 审的那三周,我抽了 30 次打回逐条核对,7 次是审计员看错了;剩下的里头,最多的一类是没查就说,补查以后,不少其实说对了。

说对了也拦。有一回它说,全屏模式下 VS Code 终端搜索只能搜到当前这一屏。被拦下以后,它补了一句:「当时是凭经验说的,没查证。刚补查了,结论成立。」

审计员不管对错,只管出处。没出处的话,蒙对了也是蒙。

审计员自己不会错?

它瞎了 5 周,我才发现。

我回放了最近 14 天的 1,300 次审计:前面聊过什么,八成多的时候它看不到;命令跑出了什么,几乎每次都看不到。我当时的原话:「那相当于说我们做的这个审计完全是笑话」。

当天补齐。我从换成 Opus 以后的打回里抽了 30 次,补齐材料重审:冤枉 Claude 的 19 次全部放行,11 个真问题还拦得住 9 个。

可是,拿 AI 审 AI,不会一起错吗?

会。

审计员一开始用的是 GPT,9 月 23 日我换成了 Opus 5.5,等于 Claude 审 Claude。10 月 5 日我做了一回对照:同一份材料,同一时刻发给两家,审了 24 轮。两家意见一致的,我抽查了 4 轮,有 2 轮是两家一起错。

两家抓到的真问题,也不是同一批:能判定对错的 12 轮里有 6 个真问题,两家各抓到 3 个。另有 3 轮拿不准,没算。样本小,只能看个方向。

10 月 6 日,我把审计员换回了 GPT,用最新的 gpt-6.1-sol。干活的是 Claude,审计员就用另一家的模型,这是这套办法里少不了的一环。还能省 Claude 的额度,Claude 的额度要花在刀刃上。

GPT 的短处是多拦:没问题的 6 轮,它拦了 4 轮,Opus 拦了 1 轮。可多拦的这 3 轮,Opus 在线上第一次审的时候也拦了,重审才放过;其中 2 轮,是我的 hook 漏给了材料:把 Claude 叫醒的那条别的会话的消息,没进审计员眼里。10 月 6 日补上了。

所以审计员只管拦,不替 Claude 下结论。被打回以后,Claude 要么改,要么拿出证据说审计员看错了。

我也想装一个,怎么弄?

完整提示词放在公众号另一篇里:

查看完整提示词 →

整段丢给你自己的 Claude Code,让它自己装、自己验收。

Claude 会不会编,我管不了。编完能不能混过去,归我管。

这是「CEO 教你用 Claude」第 1 篇。没有人比我更会用 Claude,这个系列只讲我每天真在用的东西。

#FDE

回首页看全部文章