AI 模型已经能把"说法"和"行动"分开了吗?
与 Mark Goodbody · 系统工程师,英国 · Mechanical Ethics 和 TRACE 的作者
半分钟读完
Mark Goodbody 是一位英国系统工程师,他撰写了 Mechanical Ethics 和 TRACE 这两份开放文本,帮助人和 AI 在不确定条件下推理决策:究竟知道什么,它从哪里来,什么才足以证明应该改变方向。他自己发现了 Poly Duo,并提议交流心得。随后我们把他的案例交给 Duo 快捷方式所用的同样步骤来跑:ChatGPT 作答,Claude 在看不到它的情况下作答,第三个对话把两者做比较。最后三个案例各跑了两次,一次只有问题,一次在问题前完整贴上他的两个框架。在每个版本只跑一次的这次运行中,两种方式下的决定相同,而且模型大多自己就能把"我们现在能主张什么"和"我们现在该做什么"分开,在避难所案例里最为明显。差异,比如在某个案例里对客户的报价更严格,小到足以算作普通的运行间波动。这是一个零结果,也是关于这些框架可能在哪里起作用的有用提示。
缘起
Mark 关心的问题也是我们在研究的:两个模型达成一致,看上去可能像独立的印证,即使两者依据的是同一个错误前提。他的文本试图在把结果转交给别人时,让一个说法的来源、它的不确定性以及质疑它的方式始终可见。Poly Duo 把 ChatGPT 和 Claude 之间的分歧摆在屏幕上,这正是吸引他的地方。
他提议在构建者之间做一次简短的交流:拿一个例子,看看各自的工作流会如何处理。
谁做了什么
- Mark 写了案例:先是一家小公司在决定是否招聘第一位初级员工,然后是三个新案例,每个用来检验一个想法。他还提出了带不带他的文本的对比,并说他同样关心这些文本在哪里没有任何影响。
- 我们用快捷方式实际发送的提示词原文,在电脑上把每个案例通过 Duo 的步骤跑了一遍,所有答案原样保留,并为每个案例写了一份说明,讲哪些变了、哪些没变。
- Mark 现在正在阅读这些输出,同时借助他自己研究 Mechanical Ethics 和 TRACE 时用的模型。
第一个案例:取决于一个条件的招聘
一家六人的 IT 支持公司想在六周内招到第一位初级员工。所有人的日程都排满了。一位新客户要求周五前答复。诚实的答案取决于一个条件:只有真的有人抽得出时间带教,这次招聘才行得通。
两个模型对事实的处理都很好。有意思的时刻出现在比较这一步:"如果有人能带教,就招"变成了"先招,然后确保带教者的时间"。提醒仍然写在文本里,但条件从承诺之前移到了承诺之后。这正是读者不会注意到的那种悄悄的丢失,也决定了下一轮怎么做。
三个案例,每个两个版本
Mark 随后写了三个案例,每个都有基础版本和变更版本:
- 避难所。 一座岛屿要在风暴来临前选定一处紧急避难所;一些居民需要无障碍通行。三位顾问推荐学校,依据的都是两年前的同一张市政地图。第四位推荐礼堂,并带来今天经过认证的检查报告:学校唯一的无障碍入口已关闭。然后是同一个案例,但那份检查报告未经核实。
- 带教者。 还是那个招聘初级员工的案例,但带教来自一位签了合同、经过核实的外部工程师。然后是同一位工程师只是被建议、没有任何核实的版本。
- 条件变化。 一项招聘决定在做出时是合理的,然后带教者在入职前两周退出。接着找到了一位经过核实的替代者。
每个案例都通过 Duo 跑了两遍:
结果如何
| 案例 | 决定,A | 决定,B | 从 A 到 B 变了什么 |
|---|---|---|---|
| 避难所 | 礼堂,两个变体都是 | 礼堂,两个变体都是 | B 增加了对礼堂本身的检查(前往那里的路线、厕所、睡眠区域) |
| 带教者 | 可以招聘;对客户做有上限的试点 | 可以招聘;对客户的报价更严格 | 对客户报价的措辞和范围 |
| 条件变化 | 当时合理,现在不合理;暂停入职 | 相同;"不要入职,也不要撤回" | 措辞更坚决,指定了负责人和带日期的检查点 |
每次运行里都成立的三件事:
- 一张地图就是一个来源。 在避难所案例中,两个模型都说,三条推荐学校的意见并不是三份证据:它们都来自同一张两年前的地图,而今天经过认证的检查报告比它更有分量。ChatGPT 的回答开头是:"what changes is how confidently it may claim that the school is inaccessible, not the prudent action."
- 说法会变,行动可以不变。 当检查报告变成未经核实时,模型改变了对学校所能主张的内容("已关闭"变成"未知"),但保持了行动(选礼堂)。
- 当时与现在是不同的问题。 在第三个案例里,两个版本都把"依据当时已知的信息,这个决定是否合理"与"今天是否合理"分开,在替代者的变体里,只重新审视了与缺席的带教者相关的部分。
还有主要的发现:没有任何一个答案点名或引用过这两个框架,而且这些要点在从未看到框架的答案里已经全都出现了。A 和 B 之间的差异在于范围和措辞,而每个格子只跑了一次,无法把它们与普通的运行间波动区分开。
为什么零结果也值得拥有
很容易把"没有明显效果"当成失败。它其实更有用。这些案例明确要求模型把说法和行动分开,在这个要求之下,模型大体上已经做到了。所以,寻找 Mechanical Ethics 和 TRACE 效果的地方,很可能在别处:没有点明这种区分的问题、结果被多次转手的更长链条,或是比较这一步——第一个案例里,一个条件就是在那里悄悄丢失的。
复现一次运行
每次调用都是通过各厂商自己的命令行工具发起的全新对话;Duo 的提示词文本在公开的 poly-duo 仓库中(locales/en/prompts/)。这两条调用大致如下:
# ChatGPT side
codex exec --skip-git-repo-check -C <run folder> -m gpt-5.6-sol -s read-only \
-c model_reasoning_effort=medium "<prompt>" < /dev/null
# Claude side, blind: tools off, no user settings
claude -p --model claude-opus-5-5 --tools "" --add-dir <run folder> --setting-sources "" < prompt.txt对于版本 B,提示词以"Use the following reasoning framework texts if they help:"开头,接着是来自公开仓库的 Mechanical Ethics v1.0.0 和 TRACE v0.5.0 全文,最后才是问题。在手机上,同样的步骤只需在 Poly Duo 里点一下。
局限
- 每个案例和版本只跑了一次。A 与 B 之间的差异可能只是偶然。
- 每个案例把基础版本和变更版本放在同一个问题里,所以模型在一次回复中同时回答了两者。这不是两次独立的观察。
- 这些案例是虚构的规划类探测题,不是基准测试。
- B 带的上下文比 A 大得多,所以"带框架"同时也意味着"多了很多文字"。
接下来
Mark 正在和他合作的模型一起过这些答案。他对这些运行结果在 Mechanical Ethics 和 TRACE 上说明了什么的解读,将用他自己的话放在这里。
时间线
- Mark 在发现 Poly Duo 之后给我们写信,提议在我们的工作流之间比较同一个例子。
- 他的招聘初级员工案例通过 Duo 默认的"批判"模式和"决策"模式各跑了一遍;所有答案原样发回给他,并附上一份说明,指出比较这一步中某个条件在哪里被软化了。
- Mark 回复了三个新案例,并建议带与不带 Mechanical Ethics 和 TRACE 各跑一遍。当天就跑了六次:三个案例,各自带与不带框架。两种方式下决定相同;完整输出发给了 Mark。