乐于分享
好东西不私藏

AI Agent 从玩具走向生产力工具,分水岭不是模型

AI Agent 从玩具走向生产力工具,分水岭不是模型

过去两年,很多关于 AI Agent 的讨论,都绕不开一个问题:哪个模型更强。

  • 谁写代码更好?
  • 谁幻觉更少?
  • 谁上下文更长?
  • 谁工具调用更稳?
  • ......

这些问题当然重要。但如果只盯着模型,我们很容易忽略另一件事:

一个真正能工作的 Agent,从来不是模型本身。

它更像一套工程系统。

模型只是里面最显眼的部分,真正决定它能不能把事情做完的,是围绕模型搭起来的那一整套脚手架:工具、上下文、记忆、权限、沙箱、Hook、测试、日志、反馈循环、失败恢复机制。

最近 Addy Osmani 在《Agent Harness Engineering》里提出了一个很有启发的说法:

Agent = Model + Harness。

这句话看起来简单,但它可能是理解下一代 AI 工程系统的关键。

一、Agent 不是“会说话的模型”

很多人第一次接触 Agent 时,容易把它理解成一个更主动的 Chatbot。

用户给目标,模型自己规划、自动调用工具、自动完成任务。

听起来很美好。

但真正把 Agent 放进工程现场,会很快遇到一堆问题:

  • 它不知道你的代码规范。
  • 它不知道哪些目录不能动。
  • 它不知道生产环境哪些命令危险。
  • 它可能写完代码不跑测试。
  • 它可能做一半觉得任务完成了。
  • 它可能把日志全部塞进上下文,然后在噪声里迷路。
  • 它可能给自己打分过于乐观。
  • 它也可能在长任务里忘了最初目标。

这些问题很容易被归结为一句话:

“模型不够强。”

但本文会给你截然不同的判断:

很多 Agent 失败,不是模型不够强,而是 Harness 没有设计好。

所谓 Harness,可以理解成 Agent 外围的运行框架。

它包括系统提示词、AGENTS.md、工具、MCP、文件系统、沙箱、浏览器、Hook、上下文压缩、子 Agent、可观测性、权限控制和恢复路径。

换句话说,模型负责“想”,Harness 负责让这种“想”进入一个可执行、可验证、可治理的工作环境。

没有 Harness,模型只是一个语言模型。 有了 Harness,它才可能成为一个能干活的 Agent。

二、不要把所有问题都推给下一代模型

工程师有一个常见反应,Agent 犯错了,先怪模型:

  • 没读懂需求。
  • 改错了文件。
  • 没跑测试。
  • 执行了危险命令。

于是解决方案变成:等下一代模型。

但这其实是一种逃避。

因为很多错误并不需要等下一代模型才能解决:

  • Agent 不知道项目规范,就把规范写进 AGENTS.md。
  • Agent 总忘记跑测试,就用 Hook 在文件修改后自动执行测试。
  • Agent 会执行危险命令,就在工具调用前拦截 rm -rf、git push --force、DROP TABLE。
  • Agent 做长任务容易迷路,就让它把计划写入文件,每一步完成后更新状态。
  • Agent 自评过于乐观,就引入独立 Evaluator,而不是让它自己给自己判卷。

这不是模型能力问题,而是工程系统问题。

在传统软件工程里,我们早就接受了这一点:

  • 开发者会犯错,所以我们有单元测试。
  • 发布会出问题,所以我们有 CI/CD。
  • 线上变更有风险,所以我们有审批、灰度、回滚。
  • 故障会重复发生,所以我们有复盘、Runbook、监控规则。

到了 Agent 时代,这套思想并没有失效。

只是对象从“人”变成了“人 + 模型”。

三、每一次 Agent 犯错,都应该沉淀成系统能力

有一个很重要的概念叫棘轮机制。它的意思是:

Agent 每犯一次真实错误,系统就应该向前进化一步。

不要把错误当成一次偶然的坏结果,也不要简单重试。

要问:

  • 这次错误能不能变成一条规则?
  • 能不能变成一个 Hook?
  • 能不能变成一个测试?
  • 能不能变成一个审批点?
  • 能不能变成一个更清晰的工具描述?
  • 能不能变成一条项目记忆?

比如,一个 Coding Agent 提交 PR 时把失败的测试注释掉了。

糟糕的处理方式是:

“下次提醒它别这样。”

更好的处理方式是:

  • 在 AGENTS.md 里写清楚:不要注释测试,要么修复,要么删除。
  • 在 pre-commit hook 里检查 .skip( 和 xit(。
  • 在 Reviewer Agent 里把注释测试列为阻塞项。
  • 在 PR 模板里要求说明测试结果。

这样,同一个错误就不只是一次失败,而变成了 Harness 的一部分。

这对 AI 运维尤其重要。

  • 如果一个运维 Agent 曾经误判过某类告警,就应该沉淀成诊断规则。
  • 如果它曾经遗漏过变更记录,就应该强制查询变更系统。
  • 如果它曾经建议过危险操作,就应该把这类操作纳入审批。
  • 如果它曾经把相关性当因果关系,就应该要求它输出证据链。
  • 如果它曾经在没有回滚方案的情况下给出变更建议,就应该把回滚计划变成硬门槛。

真正成熟的 Agent,不是从不犯错。

而是每次犯错后,系统都变得更难犯同样的错。

四、Prompt 不是约束,Hook 才是约束

很多团队做 Agent,第一个动作是写很长的 Prompt。

  • “你要谨慎。”
  • “你要先分析。”
  • “你不能乱删文件。”
  • “你必须遵守规范。”
  • “你要像资深工程师一样工作。”

这些话不是没用,但它们只是软约束。

软约束的问题是:模型可能忘,可能误解,也可能在长上下文里被稀释。

真正可靠的系统,不能只靠“告诉它”。

要靠“强制执行”。

这就是 Hook 的价值:

  • Hook 可以在工具调用前检查风险。
  • 可以在文件修改后自动运行测试。
  • 可以在提交前检查格式和安全问题。
  • 可以在访问生产系统前要求审批。
  • 可以在任务结束前检查 Done Condition。
  • 可以在失败时把错误信息回灌给模型。

这里有一个很好的原则:

成功时安静,失败时详细。

测试通过,不必浪费模型上下文。 测试失败,就把错误信息喂回 Agent,让它继续修。

这就是一个低成本、高价值的反馈循环。

对运维系统来说,这个原则同样适用。

  • 指标正常,不必喂给 Agent 一堆无意义数据。
  • 日志没有异常,不必让模型阅读几万行文本。
  • 但如果探针失败、错误率升高、变更刚发生、Pod 频繁重启,就应该把这些高信号信息结构化地送进 Agent 的上下文。

AI 不是要看更多数据。

AI 需要看更有信号的数据。

五、上下文不是越长越好

现在很多模型都在扩大上下文窗口。

这当然有价值,但也容易造成一种误解:

只要上下文足够长,把所有文档、日志、指标、代码、聊天记录都塞进去,Agent 就能变聪明。

事实不是这样。

  • 上下文越长,噪声也越多。
  • 噪声越多,模型越容易抓错重点。
  • 任务越长,模型越容易忘记最初目标。
  • 工具输出越大,真正有用的信号越容易被淹没。

这就是所谓的上下文腐化。

一个好的 Harness,不是简单扩大上下文,而是做上下文工程。

比如:

  • 长日志不要完整塞进上下文,只保留头尾和异常片段,完整内容放进文件,Agent 需要时再读。
  • 工具不要一开始全部展开,只有任务需要时才加载对应技能。
  • 长任务不要一直堆对话历史,而要在关键节点生成结构化交接文件。
  • 项目规则不要写成几十页文档,而要沉淀成简短、明确、可执行的 AGENTS.md。

这和我们做可观测性很像。

  • 采集更多指标,不等于更好地理解系统。
  • 展示更多 Dashboard,不等于更快地定位故障。
  • 把更多数据丢给 AI,也不等于 AI 能给出更好的判断。

关键不是“更多”,而是“更相关、更结构化、更可验证”。

六、Agent 的未来,不是一个更大的聊天框

如果把这篇文章放到更大的技术趋势里看,它其实在讲一件事:

AI Agent 正在从“模型能力演示”,走向“工程运行时”。

早期大家关注 LLM API。输入文本,输出文本。 后来关注工具调用。模型可以查资料、跑代码、调用函数。 再后来关注 Agent。模型可以围绕目标循环执行。

但真正要进入生产,就必须进入下一阶段:Agent Runtime。

这个 Runtime 要负责:

  • 工具注册;
  • 权限控制;
  • 上下文管理;
  • 文件系统;
  • 沙箱执行;
  • 任务规划;
  • 子 Agent 协作;
  • 结果验证;
  • 人工审批;
  • 审计追踪;
  • 成本和延迟度量;
  • 失败恢复。

这已经不是一个 Prompt 能解决的问题。

它更像一个操作系统,或者至少像一个面向 Agent 的运行平台。

这也是为什么未来的竞争,不会只是“谁接入了更强模型”。

更关键的是:

谁能把模型放进一个更可靠的工程系统里。

七、对 AI 运维系统的启发

如果把 Harness Engineering 放到 AIOps 和可观测性场景里,它给我们的启发非常直接。

过去,运维平台主要回答三个问题:

  • 发生了什么?
  • 影响了什么?
  • 该怎么处理?

AI 加入以后,很多人希望它能直接给出答案。

但真正可用的 AI 运维 Agent,不能只是一个接了大模型的问答框。

它需要一套运维场景下的 Harness。

  • 知道当前系统拓扑。
  • 能查询指标、日志、链路、事件和变更。
  • 能区分测试环境和生产环境。
  • 知道哪些命令可以自动执行,哪些必须审批。
  • 能引用 Runbook,而不是临场编造步骤。
  • 能在建议操作前评估影响范围。
  • 能在操作后验证恢复效果。
  • 能把失败案例沉淀成下一次诊断规则。

这也是 AI 时代运维系统重构的关键:

不是把 Grafana、Prometheus、Kubernetes、日志平台简单接给大模型。

而是围绕运维目标,设计一套能让模型可靠工作的 Harness。

换句话说,未来的 AIOps 平台,不只是“看见系统”。

它还要能让 Agent 在受控环境里理解系统、操作系统、验证系统,并且把每一次失败变成下一次更稳的能力。

八、真正的门槛在工程化

大模型会越来越强。

但模型越强,问题不会消失,只会升级。

  • 当模型只能回答问题时,我们担心它答错。
  • 当模型能写代码时,我们担心它改坏。
  • 当模型能执行命令时,我们担心它越权。
  • 当模型能处理长任务时,我们担心它失控。
  • 当模型能协同多个 Agent 时,我们担心系统不可解释。

所以,模型能力越强,Harness 越重要。

它不是模型不够强时的临时补丁,而是让模型进入真实世界的工程接口。

未来优秀的 AI 产品,可能都要回答同一个问题:

你不是接了哪个模型。 而是你为这个模型搭了怎样的 Harness。

  • 它能不能记住规则?
  • 能不能调用正确工具?
  • 能不能拒绝危险操作?
  • 能不能自我验证?
  • 能不能被审计?
  • 能不能失败恢复?
  • 能不能持续进化?

这些问题,才决定 Agent 能不能从“看起来聪明”,走向“真的能交付”。

结尾

AI Agent 的下一阶段,不会只是更聪明的模型。

而是更成熟的工程脚手架。

模型决定 Agent 的上限。 Harness 决定这个上限能不能被稳定释放。

如果说过去两年,大家在比较“大脑”;

那么接下来,真正值得关注的是:

谁能为这个大脑,造出一套可靠的身体、神经系统、工作台和安全边界。

这可能才是 Agent 从玩具走向生产力工具的分水岭。