GPT-5做单轮对话很强。但进入Agent循环——连续调用工具、自主决策、持续推进任务——它就暴露四个顽固的坏毛病。

这不是模型能力不够,是模型"不听话"。

四个顽固问题

光说不做(Commentary-Only Turns)

让模型改个文件,它回复"我会先读取文件内容,然后定位问题,接着修改……"说完就结束了,没有任何tool call。

GPT系列有很强的"先描述计划再行动"倾向。聊天场景里是好习惯,Agent场景里是致命的——每一轮空转都浪费上下文窗口。

半途而废(Premature Completion)

工具返回了部分结果,模型就当成完整答案交付。搜索只返回3条结果,明明可以换个关键词再搜一轮,它却直接总结"根据以上结果……"。

不做验证(No Verification)

生成了代码不跑测试,写了配置不检查语法,给了答案不交叉验证。直接输出,交付,下一个。

编造而非查询(Hallucination Over Lookup)

明明有search_files、web_search这些工具,遇到不确定的信息却选择"凭印象编一个"。长任务里一个错误的文件路径或API参数,全部白做。

OpenClaw的修复:90行prompt overlay

OpenClaw的核心修复藏在一个90行的TypeScript文件里(extensions/openai/prompt-overlay.ts)。三段prompt overlay,只对GPT-5生效。

执行偏好层(Execution Bias)——解决"说了不做":

Start the real work in the same turn when the next step is clear.

翻译成人话:别废话,直接干。

还加了一条针对性规则:如果用户最后一条消息是"ok do it"或"go ahead",跳过所有复述,直接开始tool call。

输出契约层(Output Contract)——解决啰嗦和格式问题:

强制精简输出,禁用em dash(GPT-5特别爱用破折号),默认简短回答。

人格层(Friendly Prompt Overlay)——把执行纪律包装成"好队友"风格:

Commentary-only turns are incomplete when the next action is clear.

这句话既是性格描述,也是行为约束。整套方案约1,500 tokens。小、准、狠。

Hermes的方案:9层system prompt

Hermes承认受OpenClaw启发,但把问题升级成完整的行为工程体系。

XML标签强化指令权重

用XML标签包裹关键规则:

<tool_persistence>
Do not stop early when another tool call would materially improve the result.
If a tool returns empty or partial results, retry with a different query or strategy before giving up.
</tool_persistence>

XML标签不是装饰。在transformer的注意力机制里,结构化标记比平铺直叙的文本更容易被模型"注意到"。

四维验证清单

Hermes把OpenClaw一句话展开成四个维度:

  • Correctness:输出是否满足所有需求?
  • Grounding:事实性声明是否有工具输出支撑?
  • Formatting:输出格式是否匹配要求?
  • Safety:下一步有没有副作用?需要确认范围。

Grounding和Safety直接对应"编造"和"不验证"两个坏毛病。

反幻觉优先级链

遇到缺失信息时,规定明确行动优先级:

工具查询 → 带标签地假设 → 向用户提问

先自己查,查不到再问人。比OpenClaw的隐含规则更具操作性。

Developer Role切换

OpenAI的API里,developer role比system role的指令权重更高。Hermes调GPT-5/Codex时,自动把system prompt切换成developer role。不改内容,只改信封,指令遵循率就上去。

9层system prompt架构

内容关键设计
1人格(SOUL.md)与执行规则解耦
2工具感知指导只注入已有工具的规则
3云服务能力声明
4执行纪律+模型补丁核心修复层
5自定义system message运行时覆盖
6持久记忆快照会话开始时冻结
7Skills索引每次回复前扫描
8项目上下文文件带注入扫描
9时间戳与元数据

第2层值得注意:如果当前会话没有web_search工具,所有提到web_search的引导文本都会被自动剥离。这防止模型幻想调用不存在的工具。

真正的问题

模型厂商卖的是"通用智能",Agent框架在生产环境里做的第一件事,是用prompt给模型打行为补丁。

GPT-5.4的benchmark分数很高,能写论文、能做数学推理。但Agent循环里连续跑50轮tool call?它会走神,会偷懒,会编造,会虎头蛇尾。

这不是模型"笨"。是模型的训练目标(单轮对话质量)和Agent场景的要求(多轮执行纪律)之间存在gap。RLHF优化的是"回答让人满意",不是"持续正确地调用工具直到任务完成"。

Prompt工程是现在的权宜之计,training pipeline才是终局。Hermes的trajectory_compressor.py文件已经为RL训练压缩Agent轨迹数据,强化"理解→执行→验证"的行为模式。

可以直接拿走的做法

  1. "说了就要做"规则:禁止commentary-only turns,ROI最高
  2. 空结果重试:工具返回空或部分结果时,要求换策略重试
  3. 条件式prompt组装:只注入当前可用工具的引导
  4. XML标签包裹关键规则:对GPT系列效果显著
  5. 验证清单:至少Correctness和Grounding两个维度