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 | 持久记忆快照 | 会话开始时冻结 |
| 7 | Skills索引 | 每次回复前扫描 |
| 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轨迹数据,强化"理解→执行→验证"的行为模式。
可以直接拿走的做法
- "说了就要做"规则:禁止commentary-only turns,ROI最高
- 空结果重试:工具返回空或部分结果时,要求换策略重试
- 条件式prompt组装:只注入当前可用工具的引导
- XML标签包裹关键规则:对GPT系列效果显著
- 验证清单:至少Correctness和Grounding两个维度
Prompt补丁是现在的权宜之计,训练阶段把agentic behavior作为优化目标才是终局。但在那之前,你得知道怎么在harness层修模型的行为缺陷——这是今天能做的事。