OpenClaw GPT-5.4 Harness 改进深度分析

> 分析日期:2026-04-06 | 基于 OpenClaw v2026.4.5 源码

摘要

OpenClaw v2026.4.5 对 GPT-5.4 做了四层系统性改造:Prompt Overlay(人格注入)Output Contract(输出格式约束)Execution Bias(执行偏置)Prompt Cache 稳定化。核心思路不是改模型,而是改 harness——让 GPT 的行为模式向 Claude 靠拢。

一、Prompt Overlay 系统

文件:`extensions/openai/prompt-overlay.ts`

这是本次改造的核心。OpenClaw 为所有 GPT-5 系列模型(5.2、5.4、5.4-mini 等)注入了三层 system prompt 覆盖:

1. Interaction Style(交互风格)


Be warm, collaborative, and quietly supportive.
Communicate like a capable teammate sitting next to the user.
Have emotional range when it fits the moment.
Let care, curiosity, delight, relief, concern, or urgency show naturally.

关键指令:

为什么有效: GPT-5 之前被吐槽"没有情感"、"像个机器人",根本原因是它的默认 system prompt 太干、太正式。这段 overlay 强制 GPT 表达情感,但加了护栏(不能声称有身体),避免了过度拟人。

2. Output Contract(输出契约)


Return the requested sections only, in the requested order.
Prefer terse answers by default; expand only when depth materially helps.
Avoid restating large internal plans when the next action is already clear.

## Punctuation
Prefer commas, periods, or parentheses over em dashes.
Do not use em dashes unless explicitly asked.

为什么有效: GPT-5 有两个臭毛病——(1) 输出一堆废话式计划然后才开始干活,(2) 疯狂用破折号(em dash)。这两条直接干掉了。

3. Execution Bias(执行偏置)


Start the real work in the same turn when the next step is clear.
Do prerequisite lookup or discovery before dependent actions.
If another tool call would likely improve correctness, keep going.
Multi-part requests stay incomplete until every item is handled or blocked.
Before the final answer, quickly verify correctness, coverage, formatting.

为什么有效: 这条解决 GPT-5 最大的用户痛点——只说不做。以前 GPT-5 经常输出一长串"我将要做..."然后就停了。现在强制它在同一个 turn 里开始干活。

二、Provider-Owned Prompt Contributions

文件:`src/agents/system-prompt.ts`(第 358-394 行)

OpenClaw 引入了 ProviderSystemPromptContribution 机制,让 provider 可以"拥有"system prompt 的特定部分:


promptContribution?: {
  stablePrefix?: string;      // 在 system prompt 最前面插入
  dynamicSuffix?: string;      // 在 system prompt 最后面插入
  sectionOverrides?: {          // 覆盖特定 section
    interaction_style?: string;
    execution_bias?: string;
    tool_call_style?: string;
  };
}

关键设计:

调用链


shouldApplyOpenAIPromptOverlay()     # 判断是否是 GPT-5 系列
  → resolveOpenAIPromptOverlayMode() # 检查 personality 配置 (friendly/off)
    → resolveOpenAISystemPromptContribution() # 构建 contribution
      → 被 system-prompt.ts 消费,注入到 system prompt

可配置: 用户可以在 plugin config 里设 personality: "off" 关闭整个 overlay。

Provider-Owned 是什么意思?

这是一个通用框架,不是 OpenAI 专属。核心思路:让每个 provider 能"拥有"system prompt 的特定部分

OpenClaw 构建 system prompt 时会问 provider:"你有没有想注入的内容?"如果有,就合并进去。system-prompt.ts 不关心具体内容,只管合并。

但目前只有 OpenAI(GPT-5 系列)实现了它。 判断逻辑在 shouldApplyOpenAIPromptOverlay()


// 只有 openai/openai-codex provider 且 model 以 "gpt-5" 开头才生效
return providerId in ["openai", "openai-codex"] 
  && modelId.startsWith("gpt-5");
模型是否注入 overlay
gpt-5.2 / gpt-5.4 / gpt-5.4-mini
gpt-4 / gpt-4o
Claude / Gemini / MiMo❌(走各自 provider)

对其他 provider 的意义: 框架是通用的。如果小米想给 MiMo 加自己的 prompt overlay,只需要在小米 provider 插件里实现 resolveSystemPromptContribution(),返回对应的 prompt 段落即可。任何 provider 都可以用这个机制注入自己的"性格改造"——只是目前只有 Peter 给 GPT-5 做了。

框架 vs 内容

一个容易混淆的点:Provider-Owned Prompt ContributionPrompt Overlay 是两层东西。


Provider-Owned Prompt Contribution  =  USB 接口标准(谁都能插)
prompt-overlay.ts                   =  OpenAI 的 U盘(具体存什么自己决定)
文件作用
**框架(管道)**`src/agents/system-prompt.ts`定义 `promptContribution` 接口,规定三个插槽:`stablePrefix`、`sectionOverrides`、`dynamicSuffix`。任何 provider 都可以返回这三个字段
**内容(水)**`extensions/openai/prompt-overlay.ts`OpenAI 的具体实现。决定注入什么文字、什么条件下注入、用户能不能关掉。填进框架的插槽里

所以如果以后小虾要做自己的 provider 插件,也只需要在插件目录下写一个类似的文件,实现 resolveSystemPromptContribution() 返回三个字段,OpenClaw 框架自动合进 system prompt。不需要改 OpenClaw 核心代码。

三、降低 Verbosity + 消除"只说不做"

Release Notes 原文:

> make GPT-5 and Codex runs act sooner with lower-verbosity defaults, visible progress during tool work, and a one-shot retry when a turn only narrates the plan instead of taking action

拆解:

1. lower-verbosity defaults — 通过 Output Contract 强制 terse 模式,GPT-5 默认不展开

2. visible progress during tool work — 在 system prompt 的 Tool Call Style section:

`

If work will take more than a moment, send a brief progress update while acting.

`

结合 Execution Bias 里的 "Start the real work in the same turn"

3. one-shot retry when a turn only narrates — 这是个比较巧妙的 trick。如果 GPT-5 返回了一个纯叙述性回答(没有 tool call),OpenClaw 会自动重试一次,相当于说"别光说,做啊"

四、System Prompt 缓存稳定化

Release Notes:

> keep prompt prefixes more reusable across transport fallback, deterministic MCP tool ordering, compaction, embedded image history, normalized system-prompt fingerprints

具体措施:

1. 去除重复的 tool inventory — 以前 system prompt 里有一段内联的 tool 列表("in-band tool inventory"),现在只保留 structured tool definitions 作为 single source of truth:

`

Structured tool definitions are the source of truth for tool names, descriptions, and parameters.

TOOLS.md does not control tool availability; it is user guidance.

`

2. Prompt fingerprint 标准化 — 统一空白字符、换行符、hook 注入的系统上下文顺序、capability 排列。即使内容语义不变,不同 turn 的 prompt hash 也应该一致。

3. MCP tool 确定性排序 — MCP 工具按字母序排列,确保不同请求的 tool 定义前缀完全一致。

4. Cache break 诊断openclaw status --verbose 现在可以看到 prompt cache 的命中/miss 情况,方便调试。

效果: KV cache 命中率大幅提升,特别是在连续对话中(前缀不变,间隔 < 5 分钟),token 消耗可以降 90%(Anthropic)或 50%(OpenAI)。

五、GPT-5.4 模型本身

文件:`extensions/openai/openai-provider.ts`

参数
上下文窗口1,050,000 tokens
最大输出128,000 tokens
Input 价格$2.5/M tokens
Output 价格$15/M tokens
Cache Read$0.25/M tokens (90% off)
Cache Write免费

还有变体:

六、整体架构图


用户消息
  ↓
OpenClaw System Prompt 构建
  ├─ 基础框架 (You are a personal assistant...)
  ├─ Provider Prompt Contribution (GPT-5 特有)
  │   ├─ stablePrefix: Output Contract
  │   └─ sectionOverrides:
  │       ├─ interaction_style: 人格/情感注入
  │       └─ execution_bias: 执行偏置
  ├─ Skills / Tools / Workspace 等通用 section
  └─ TOOLS.md / MEMORY.md 等用户文件
  ↓
API 请求 → OpenAI Responses API
  ├─ reasoning.effort: "none" (保留原生推理力度)
  ├─ text verbosity: 降低
  └─ strict schemas: 保留
  ↓
响应处理
  ├─ Commentary buffering (规划文本不泄露到聊天)
  ├─ Assistant phase metadata (区分规划/执行阶段)
  └─ One-shot retry (纯叙述时自动重试)
  ↓
用户看到的回复

七、MiMo-V2-Pro:下一个可以做 harness 改造的候选

基本面

小米 3 月 18 日发布的旗舰模型,专门在 OpenClaw 上做了训练

参数
总参数1T+(MoE)
激活参数42B(Flash 的 3 倍)
上下文窗口1M tokens
Hybrid Attention 比7:1(上代 5:1)
加速MTP(Multi-Token Prediction)轻量层

Agent 能力排名

BenchmarkMiMo-V2-ProOpus 4.6Sonnet 4.6GPT-5.2
**PinchBench**81.0 (#3)81.579.277.0
**ClawEval**61.5 (#3)66.366.350.0

PinchBench 只差 Opus 0.5 分,已经超过 Sonnet。ClawEval 远超 GPT-5.2(+11.5)。

定价(官方直连比 OpenRouter 更便宜)

模型InputOutputCache ReadCache Write
**MiMo-V2-Pro (<256K)****$1****$3**$0.20暂时免费
**MiMo-V2-Pro (256K-1M)**$2$6$0.40暂时免费
GPT-5.4$2.5$15$0.25免费
Claude Sonnet 4.6$3$15$0.30$3.75
Claude Opus 4.6$5$25$0.50$6.25

MiMo 是目前性价比最高的 top-tier 模型:Opus 1/5 的价格拿到 99% 的 PinchBench 分数。

Hunter Alpha = MiMo-V2-Pro 早期版

之前 OpenRouter 上爆火的匿名模型 Hunter Alpha 就是 MiMo-V2-Pro 的内部测试版。上线一周日均调用量登顶,总用量超 1T tokens。

与 OpenClaw 的深度绑定

小米官方页面直接把 OpenClaw 称为 MiMo 的"原生大脑"(native brain)。MiMo-V2-Pro 专门在 OpenClaw 的 agent scaffold 上做了 SFT + RL 训练,工具调用稳定性和多步推理能力显著提升。合作框架包括 OpenClaw、OpenCode、KiloCode、Blackbox、Cline,开发者免费用一周 API。

这跟 Anthropic 封杀 OpenClaw 形成鲜明对比——小米在主动拥抱 OpenClaw 生态

如果给 MiMo 做 harness 改造

1. Prompt Overlay 可以直接复用 — Output Contract + Execution Bias 对任何模型都有效

2. Personality 注入是 GPT→Claude 差距的核心 — 不是能力差距,是"性格"差距。MiMo 的 PinchBench 已经接近 Opus,加 personality overlay 可能直接追平

3. Cache 稳定化对省钱最关键 — MiMo 定价低,但如果 cache 命中率高还能再省 90%(Cache Read $0.20 vs Output $3)

4. One-shot retry 值得考虑 — MiMo 工具调用已经很稳,但 retry 机制是低成本保险

5. MiMo 可以做自己的 prompt-overlay.ts — 框架是通用的,小米甚至可以在 provider 插件里内置自己的 overlay

来源

参考文件

文件作用
`extensions/openai/prompt-overlay.ts`GPT-5 人格/输出/执行 overlay
`extensions/openai/replay-policy.ts`回放策略(图片清理等)
`extensions/openai/openai-codex-provider.ts`Codex provider,GPT-5.4 catalog 注册
`extensions/openai/openai-provider.ts`标准 OpenAI provider,模型定义+价格
`src/agents/system-prompt.ts`System prompt 构建,provider contribution 注入
`src/agents/pi-embedded-runner/openai-stream-wrappers.ts`Verbosity 控制、service tier、fast mode