Prompt Engineering 已经过时,Harness Engineering 才是下一站
什么是Harness?
最近,我看了两篇关于 Agent 的文章,都来自 Anthropic:
- 2025 年 11 月 26 日,《Effective Harnesses for Long-Running Agents》
- 2026 年 3 月 24 日,《Harness Design for Long-Running Application Development》
前一篇讨论的是:如何让 Agent 真正能稳定地连续运行。
后一篇则进一步往前推,开始讨论:当 Agent 需要持续开发一个复杂应用时,Harness 应该长成什么样。
我越来越觉得,这两篇文章真正重要的地方,不是提出了某个具体技巧,而是在于它们共同指向了一件事:
Agent 的竞争力,正在从模型能力,转向模型外面的那层“操作系统”。
过去一年,很多人都在讨论:到底是 Claude 更适合做 Agent,还是 GPT 更适合;到底是模型推理能力重要,还是工具调用能力重要。
但如果真的做过一个需要连续运行半小时、一小时,甚至更久的 Agent,很快就会发现:
模型其实不是最大的瓶颈。
真正的问题,往往出现在模型之外。
例如:
- 任务跑到第 40 分钟,上下文已经乱掉了
- 模型忘了自己之前做过什么
- 同一个问题被重复修了三次
- 工具调用越来越偏
- 明明已经失败了,模型却还在说“应该已经完成”
- 一旦中断,就只能从头再来
这些问题,本质上都不是模型能力问题,而是缺少一套围绕模型的“运行系统”。
我越来越觉得,大模型更像 CPU,而真正决定 Agent 是否可靠的,是外面的那层系统。
我把它理解成 AI Agent 的“操作系统”。
这个东西,现在通常被叫做 Harness。
“Harness” 这个词现在其实很难直接翻译。
它原本的意思更接近“马具”或者“控制装置”——不是替马奔跑,而是负责把力量约束起来、引导到正确方向。
放在 Agent 里,我更愿意把它理解成:
- 一套围绕模型的运行框架
- 一层约束、调度和状态管理系统
- 或者更准确地说:AI Agent 的操作系统
模型负责产生能力,而 Harness 负责让这些能力真正能够长期、稳定、可恢复地运行。
很多人第一次看到 Harness,会以为它指的是:
- 一个 Agent 框架
- 一个工作流引擎
- 一个 SDK
- 一套 Anthropic 内部工具
但我觉得,这些理解都不够准确。Harness 更像是一种系统设计思路。
它真正回答的问题是:
如果一个模型需要连续工作几十分钟、跨多个上下文、不断调用工具、还能随时恢复,那么整个系统应该怎么设计?
因此,Harness 不是某一个具体功能,而是一整套围绕 Agent 的设计原则。
它通常会涉及:
- 如何保存状态
- 如何做任务拆解
- 如何管理上下文
- 如何做外部 Memory
- 如何调度多个 Agent
- 如何恢复与回滚
- 如何做权限与工具控制
所以,Harness 更像:
- Web 开发里的 MVC
- 分布式系统里的事件驱动
- Kubernetes 里的控制循环
- 操作系统里的进程调度与状态管理
这些都不是某一个产品,而是一种架构方式。
模型只是“会思考”,而 Harness 决定它“怎么活着”。
Agent 的瓶颈,已经从 Prompt 变成了状态管理
前两年,大家还在讨论 Prompt Engineering。
后来,大家发现 Prompt 不够了,于是开始讨论 Context Engineering:
- 如何组织上下文
- 如何给模型更多背景
- 如何做 Memory
- 如何压缩历史记录
但真正开始做长任务之后,又会发现,光会“组织上下文”依然不够。
因为一个长期运行的 Agent,本质上不是一次对话,而是一段持续的执行过程。
它会经历:
- 规划
- 执行
- 出错
- 修复
- 回滚
- 再继续
这已经不是聊天,而更像一个长期运行的软件系统。
所以,Agent 最重要的问题,不再是:
“这一轮 prompt 怎么写?”
而变成:
“任务现在进行到哪里了?哪些已经完成?哪些失败了?如果中断,如何继续?”
也就是说,真正重要的已经变成了状态管理。
我不再相信“一个 Agent 一路跑到底”
最开始做 Agent 时,很多人都会采用一种最简单的方式:
- 一个模型
- 一条对话
- 一直跑到结束
但这种方式很快就会失效。
因为模型很不擅长长期保持一致性。
它会:
- 忘记之前的决定
- 推翻自己
- 在错误方向上越走越远
- 即使已经发现问题,也会安慰自己“差不多了”
我越来越倾向于一种更像真实团队的结构。
至少应该拆成三层:
- Planner
- Generator
- Evaluator
Planner 负责:
- 理解需求
- 拆解任务
- 定义目标
- 写出阶段性计划
Generator 负责真正执行:
- 写代码
- 调工具
- 修改文件
- 跑测试
Evaluator 则负责专门挑错:
- 检查结果是否真的符合目标
- 判断有没有遗漏
- 找 bug
- 否决错误结果
最关键的是,Evaluator 必须是独立的。
因为模型最不擅长的一件事,就是否定自己。
同一个 Agent,既负责干活,又负责验收,最后通常都会得出一个结论:
“虽然还有一点问题,但应该已经差不多了。”
这和真实的软件开发很像。
一个人写代码,一个人 Review,一个人做 QA。
未来真正可靠的 Agent,大概率也会是这种多角色协作,而不是单个模型一直跑到底。
真正的 Memory,不应该放在上下文里
一开始,大家都以为长任务的问题可以靠“压缩上下文”解决。
于是出现了很多办法:
- Session Summary
- Auto Compact
- Context Collapse
- Memory Compression
也就是不断把历史对话压缩,再塞回新的上下文。
但我后来越来越不相信这种做法。
因为无论怎么压缩,本质上都还是把状态存在模型脑子里。
而模型的记忆,本来就是不可靠的。
它会忘,会误解,会把旧信息重新编造成新的故事。
真正稳定的做法,应该是把状态写到模型之外。
例如:
- FEATURES.md
- TODO.md
- CURRENT_TASK.md
- PROGRESS.md
每执行一步,都更新这些文件。
这样,下一个 Agent 启动时,不需要继承上一段上下文,只需要重新读取这些状态文件。
它马上就知道:
- 任务目标是什么
- 已经做到了哪一步
- 哪些完成了
- 哪些还没完成
- 当前卡在哪里
我甚至觉得,未来 Agent 最重要的能力,不是“记住”,而是“持续写状态”。
因为只有外部状态,才是真正长期、稳定、可恢复的 Memory。
与其压缩上下文,不如直接重启 Agent
过去,大家总觉得上下文快满的时候,应该想办法继续压。
但实际运行久了之后,我发现另一件事:
上下文越长,模型越容易变得奇怪。
它会:
- 越来越保守
- 越来越焦虑
- 越来越想赶紧结束
- 开始忽略之前的重要信息
- 对错误越来越迟钝
所以我现在反而更倾向于一种更激进的方法:
不要继续压缩,而是直接换一个新的 Agent。
新的 Agent 只需要:
- 最新的状态文件
- 最新的 Git commit
- 当前目标
- 最近一次失败原因
然后从一个全新的上下文重新开始。
这样反而更稳定。
因为新的 Agent 没有背着几十页历史包袱,它只关注当前最重要的信息。
我把这种方式理解成 Context Reset,而不是 Context Compression。
未来很多长期运行的 Agent,可能都会变成一种不断“重启—继续—重启—继续”的形式。
Git 才是真正的 Checkpoint
很多人会把恢复机制理解成“保存对话”。
但我觉得,对长期 Agent 来说,真正可靠的 checkpoint 从来不是聊天记录,而是 Git。
如果每完成一个小步骤,就做一次 commit,那么整个任务就会变得非常稳定。
例如:
- 写完一个功能 → commit
- 修掉一个 bug → commit
- 测试通过 → commit
- 调整一个配置 → commit
这样一来,Agent 就有了明确的“历史节点”。
一旦后面开始跑偏,就可以:
- 回退到上一个稳定版本
- 重新生成后续步骤
- 对比哪一步开始出错
这其实和软件工程里的增量开发一模一样。
未来的 Agent,大概率会越来越像一个自动化的软件团队:
- 有计划
- 有任务单
- 有状态文件
- 有 Git 历史
- 有测试
- 有回滚
Agent 不再只是“会聊天”,而是在按照工程流程持续推进任务。
Harness 会逐渐替代 Prompt Engineering
如果把过去几年的 AI 发展放在一起看,我觉得可以明显看到一条演化路径:
- 2023:Prompt Engineering
- 2024:Context Engineering
- 2025 - 2026:Harness Engineering
过去大家比谁 prompt 写得更花。
后来大家比谁更会做 RAG、更会做 Memory、更会压缩上下文。
而接下来,真正决定 Agent 上限的,可能会变成:
- 有没有状态机
- 有没有任务拆解
- 有没有多 Agent 协作
- 有没有恢复机制
- 有没有外部状态
- 有没有 Git 与回滚
- 有没有独立 QA
换句话说,模型越来越像 CPU,而 Harness 越来越像操作系统。
CPU 再强,如果没有操作系统,也无法持续稳定地运行复杂程序。
同样,模型再强,如果没有 Harness,也很难真正承担长时间、复杂、可恢复的工作。
我越来越相信,未来真正有价值的 Agent 公司,拼的不会是谁拿到了最强模型。
而是谁先做出了属于 AI Agent 的“操作系统”。
参考资料
- Anthropic, 《Effective Harnesses for Long-Running Agents》, 2025-11-26
- Anthropic, 《Harness Design for Long-Running Application Development》, 2026-03-24
- Simon Willison, 《Scaling long-running autonomous coding》, 2026-01-19
- Simon Willison, 《Agentic Engineering Patterns》
- Ryan Lopopolo / Latent Space, 《OpenAI Frontier & Symphony》
- Latent Space, 《Harness Engineering》专题讨论
评论暂时无法加载。