用 Claude 的 harness 跑其他 3 个模型:同一个句号,三种行为
作者做了个对照实验:把同一个输入——一个单独的句号"."——分别喂给三个不同运行时里的模型,记录它们各自怎么反应。结论是行为不由模型单独决定,由"模型 + 环绕它的运行时"共同决定。
三个条件
Bare Astra(无工具、无记忆、无系统指令、无对话):1.697 秒回复"Hi! What can I help you with?"。
Native Codex(完整运行时:工作区上下文、hooks、skills、记忆路径、方向、安全规则):加载 23,133 个输入 token,触发 SessionStart、UserPromptSubmit、Stop 事件,然后问"What would you like to work on?"。11 秒,一次模型调用,没有工具。
Equipped Claude(既有环境):没有索要任务,而是检查项目状态、梳理本地问题、做可逆的修复。
这个句号说明了什么
句号本身解释不了行为差异,环绕它的运行时能。Claude 进入的上下文里已经包含它的项目状态、未完成工作记录、本地运行边界——即使没有额外任务文本,它的运行走向检查与维护。Codex 进入的是不同上下文,它当前的操作规则把用户聊天当作目标的权威:一个句号不是新任务,沉默不是制造新任务的许可。没有获授权的活可干,它就问要做什么。
这不是同一个谜题的两个答案,是同一输入信号下两个不同的运行结果。这个差异就是结果本身。
为什么重要
行为由工作环境塑造:系统能看到什么、记住什么、哪些 hooks 触发、什么算未完成工作、允许从空回合推断什么、权威在哪里停止。同一个字面句号,在 bare 对照组里得到问候、在原生 Codex 里得到方向请求、在装备完整的 Claude 里得到项目维护。这不是装饰性差异,是环绕系统如何解读一个空回合的可测量差异。
作者不是在把这些系统硬拗成一个性格,而是在测量每个运行时产生的行为、保留记录,并追问得出的边界是不是真的想要的。对这个对照,答案很清楚:harness 是行为的一部分。这是作者公开的第二个 harness 对照,接下来会做更长的运行、更难的任务,最终四个模型共处一个共享空间,协议、失败与结果都会公布。