合作研究

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 随后写了三个案例,每个都有基础版本和变更版本:

  1. 避难所。 一座岛屿要在风暴来临前选定一处紧急避难所;一些居民需要无障碍通行。三位顾问推荐学校,依据的都是两年前的同一张市政地图。第四位推荐礼堂,并带来今天经过认证的检查报告:学校唯一的无障碍入口已关闭。然后是同一个案例,但那份检查报告未经核实。
  2. 带教者。 还是那个招聘初级员工的案例,但带教来自一位签了合同、经过核实的外部工程师。然后是同一位工程师只是被建议、没有任何核实的版本。
  3. 条件变化。 一项招聘决定在做出时是合理的,然后带教者在入职前两周退出。接着找到了一位经过核实的替代者。

每个案例都通过 Duo 跑了两遍:

3 个案例 由 Mark 撰写 A · 只有问题 不添加任何内容 B · 加 ME + TRACE 两份文本全文,约 229 KB ChatGPT Claude,盲答然后做比较 ChatGPT Claude,盲答然后做比较 结论相同,核心推理相同
六次运行:三个案例,各自带与不带 Mark 的框架。模型:gpt-5.6-sol(ChatGPT 一侧)和 claude-opus-5-5(Claude 一侧),每次调用都是全新的对话。

结果如何

案例 决定,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 上说明了什么的解读,将用他自己的话放在这里。

时间线

  1. Mark 在发现 Poly Duo 之后给我们写信,提议在我们的工作流之间比较同一个例子。
  2. 他的招聘初级员工案例通过 Duo 默认的"批判"模式和"决策"模式各跑了一遍;所有答案原样发回给他,并附上一份说明,指出比较这一步中某个条件在哪里被软化了。
  3. Mark 回复了三个新案例,并建议带与不带 Mechanical Ethics 和 TRACE 各跑一遍。当天就跑了六次:三个案例,各自带与不带框架。两种方式下决定相同;完整输出发给了 Mark。

← 所有合作 · 提议一项合作