AI Agent 频繁翻车?根本没给它套上缰绳
type
status
date
slug
summary
tags
category
icon
password
wechat_gate
为什么 Agent 换了更强的模型,还是会翻车?
常见答案是继续加模型能力:上下文窗口再大一点、工具再多接一点、Prompt 再写长一点。但到了真实工程现场,问题往往不是“不会做”,而是“做错后没人收拾残局”。
典型场景包括:
- 幻觉内容被写进生产配置。
- 超过 Token 后,上下文被压坏,任务继续跑偏。
- 重试策略过于粗暴,失败循环跑了一整晚。
- 工具权限过大,一个子任务拿到了不该拿的写权限。
- 多 Agent 并发之后,问题不是更快完成,而是更快扩散。
这类问题,单靠换模型解决不了。模型是不稳定部件,系统必须提供足够约束。资料里用的词很准确:
Harness,也就是缰绳、马具。缰绳不是为了让马跑不动,而是让它能在方向明确、风险可控的前提下跑得更远。

Harness 不是一句 Prompt,而是五个组件
很多人把 Harness 理解成“写一段更完整的 System Prompt”。这只说对了一部分。
从这组资料和脑图来看,一个可用的 Agent Harness 至少包含五个组件:
组件 | 作用 | 常见误区 |
System Prompt | 定义角色、边界、优先级和输出协议 | 把人格设定当成控制面 |
Permissions / Sandbox | 限制工具能力和执行范围 | 为了方便一次性全授权 |
Verification / Evaluation | 独立验证结果是否有效 | 只检查“代码存在”,不检查“功能成立” |
Context / Memory | 管理上下文、记忆和召回 | 把所有历史都塞回 Prompt |
Query Loop / Multi-Agent | 维持任务循环、恢复、中断和协作 | 只追求并发,不做隔离 |
判断一个 Agent 系统有没有真正建立 Harness,可以看一个标准:
如果它必须靠人全程盯防才敢运行,它还没有进入工程化阶段。

错误要被当成主路径
资料里有一句话很关键:
一个系统是否可靠,不在它会不会说,而在它出错后谁来收拾残局。
这句话适合贴在所有 Agent 项目的入口处。
很多 Agent Demo 看起来很聪明,是因为只展示了成功路径。真正进入业务系统之后,错误才是主路径:网络失败、权限不足、上下文过长、工具返回异常、模型输出截断、用户中途改变目标,这些都不是边缘情况。
下面是一个最小恢复控制器,专门处理两类高频问题:
prompt_too_long:只允许一次压缩,避免无限压缩造成语义损坏。
max_output_tokens:允许续写,但必须记录恢复动作。
- 连续失败超过阈值:熔断,保留现场。
这里的重点不是代码本身,而是工程原则:
- 恢复动作必须写入结构化日志。
- 熔断后必须保留上下文快照、工具调用记录和当前 diff。
- 重试必须有限制,因为重试本身会放大风险。
能自动恢复不代表应该无限恢复。可靠系统的一个重要能力,是知道什么时候必须停下来。

Prompt 是控制面,不是人格设定
在 Agent 项目里,
System Prompt 很容易被写成“你是一个经验丰富的专家”。这类描述有用,但不是 Harness 的核心。真正有价值的 Prompt 层应该回答四个问题:
- 允许做什么?
- 禁止做什么?
- 不确定时如何升级?
- 输出如何被后续系统消费?
例如,给一个代码 Agent 写任务边界时,不应该只写“你要认真、严谨、不要出错”,而应该写成更接近执行协议的形式:
这类 Prompt 不追求文学性,追求可执行。它把模型输出变成一个受约束的系统动作,而不是一段看起来像专家的自然语言。
权限层:不要把方便当成默认值
Agent 工程化的第二个关键是权限。
人在写脚本时经常会偷懒:先给全权限,跑通再说。但 Agent 不一样。Agent 会自主拆解任务、调用工具、解释中间结果。一旦权限边界过宽,错误会从“答错一句话”升级为“改坏一批文件”。
一个更稳的做法是按角色分配权限:
多 Agent 的价值不只是“并发提速”。更准确地说,它的价值是隔离上下文污染和限制破坏半径。
研究 Agent 只读,编码 Agent 可写,验证 Agent 只能测试。这样即使某个子 Agent 判断错误,错误也不会自然扩散到整个系统。
验证层:不要让 Agent 自己给自己打分
资料中有一个很现实的原则:验证必须是独立阶段。
这点在代码任务里尤其重要。一个 Agent 写完代码后说“已经修复”,这只是一种声明,不是证据。真正的证据至少包括:
- 相关测试通过。
- 关键路径被手动或自动验证。
- 新增行为有可复现输入。
- 没有扩大权限和副作用。
更严格一点,可以让验证 Agent 拿到只读权限,独立运行测试和检查结果:
这段代码很简单,但它表达的是组织方式:把“我觉得做完了”替换成“哪些证据证明它做完了”。

记忆层:存得多不重要,找得准才重要
Hermes Agent 相关素材里,最有价值的一部分是记忆架构。
它不是把所有历史都塞回上下文,而是把记忆拆成不同层次:
- 会话记忆:这次任务发生了什么。
- 持久记忆:长期偏好、项目背景、用户模型。
- Skill 记忆:一件事应该怎么做。
如果只做“存储”,没有“召回策略”,记忆系统最后会变成不可用日志堆。一个最小可用方案可以先从
SQLite + FTS5 开始:这里有三个容易踩的坑:
- 把全部历史塞进 Prompt,成本和噪声一起爆炸。
- 只做保存,不做检索评分、过期和去重。
- Skill 不做版本化,规则漂移后无法回滚。
对长期运行的 Agent 来说,记忆不是“越多越好”,而是“该想起什么时能想起来”。
Query Loop:Agent 的心跳
Query Loop 是很多人低估的一层。一个能长期运行的 Agent,不能只是“收到任务 -> 调工具 -> 输出结果”。它需要持续维护状态:
- 当前目标是什么?
- 哪些约束不能突破?
- 哪些步骤已经完成?
- 当前错误是否可恢复?
- 是否应该继续、压缩、暂停、升级给人?
用伪代码表示,大概是这样:
这层看起来不“智能”,但它决定了系统能不能长期运行。
没有 Query Loop,Agent 只是一次性调用。加入 Query Loop 之后,Agent 才开始接近一个可观测、可恢复、可治理的执行系统。
Claude Code、Hermes Agent 和 OpenClaw 怎么分工
从材料里的对比来看,这几类工具不应该被简单理解成谁替代谁。
更合理的分工是:
工具 | 更适合的场景 | 关键能力 |
Claude Code | 交互式开发、复杂重构、工程工作台 | 终端协作强,适合人类在环控制 |
Hermes Agent | 长期后台任务、个人助手化、持续自改进 | 记忆、Skill 和工具集成更偏长期自治 |
OpenClaw | 团队规范化、透明配置、可审计流程 | 配置和治理边界更清晰 |
如果是团队从零开始,我不建议直接追求完全自治。更稳的路径是:
- 先用
Claude Code跑通高频人工流程。
- 把稳定流程沉淀成 Skill、检查清单和验证脚本。
- 再把低风险、重复性任务迁移到后台 Agent。
- 对高风险动作继续保留审批和人工签名。
换句话说,不要先问“能不能自动化”,先问“失败后会造成什么后果”。
团队落地的四条底线
Agent 工程化最后不是工具选择问题,而是边界设计问题。
我会把这四条作为团队开工清单:
1. Scope:先定义允许清单
明确哪些任务可以由 Agent 直接执行,哪些必须请求人工确认。
不要用“除了危险操作都可以”这种模糊规则。规则越模糊,Agent 越容易在边界处做出错误解释。
2. Review:高风险动作必须有人类签名
代码合并、数据库写操作、生产配置、凭证管理,都不应该默认交给 Agent 自主完成。
这里不是不信任模型,而是工程系统必须有责任边界。
3. Verification:验证标准重于 Skill 数量
很多团队会快速堆 Skill,但验证能力跟不上。结果是 Agent 看起来会做很多事,实际每件事都缺少证据闭环。
优先补验证:测试、日志、回滚、审计、人工抽检。
4. Red Zones:高危区域默认禁入
生产库、密钥、计费系统、大规模删除、高危网络操作,默认应该在红区。
红区不是永远不能自动化,而是必须有更高等级的审批、模拟运行和回滚方案。
真正的目标:从 In the loop 到 On the loop
人机协作有三个阶段:
In the loop:人逐步盯执行,适合冷启动。
On the loop:人不干预每个细节,但掌握规则、边界和否决权。
Out of the loop:高风险业务里通常不应该直接跳到这里。
更现实的目标不是让人完全退出,而是让人从“操作员”变成“监管者”。
一个可执行的节奏是:
- 第 1 周:跑通单轨任务,记录失败类型。
- 第 2 周:把恢复策略、权限边界和验证脚本固化。
- 第 3 周:引入只读研究 Agent 或独立验证 Agent。
- 第 4 周:把低风险重复任务放进后台循环。
每一步都在回答同一个问题:出错以后,系统能不能停得住、查得到、退得回。
总结
这组资料最重要的提醒是:
Agent 的核心竞争力,不是“会做”,而是“做错了也可控”。
真正能长期运行的 Agent 系统,通常具备五个条件:
- Prompt 不是人格设定,而是执行协议。
- 权限按职责拆开,不按方便授权。
- 验证独立存在,不让 Agent 自己给自己打分。
- 记忆有分层和召回策略,不把历史全部塞进上下文。
- Query Loop 能恢复、能暂停、能升级给人。
所以,先有边界,再谈智能。
让 Agent 决定“怎么做”,但永远由人类定义“做什么”和“绝对不做什么”。
2026.05.27 08:44
沪 · 赵巷
📌 声明:本文由 AI 辅助完成