文章目录
-
- [1. 一句话定义](#1. 一句话定义)
- [2. 起源:从 prompt engineering 到 context engineering 再到 harness engineering](#2. 起源:从 prompt engineering 到 context engineering 再到 harness engineering)
-
- [2.1 ReAct:循环的雏形(2022)](#2.1 ReAct:循环的雏形(2022))
- [2.2 Karpathy 的一句话点燃了 2025](#2.2 Karpathy 的一句话点燃了 2025)
- [2.3 命名的定型(2025 年下半年到 2026 年 4 月)](#2.3 命名的定型(2025 年下半年到 2026 年 4 月))
- [3. 三个工程层级:Prompt / Context / Harness](#3. 三个工程层级:Prompt / Context / Harness)
- [4. Harness 都包含什么?11 个常见组件](#4. Harness 都包含什么?11 个常见组件)
- [5. Karpathy 的 OS 类比,再走一步](#5. Karpathy 的 OS 类比,再走一步)
- [6. 为什么 2026 年是 "harness 之年"?](#6. 为什么 2026 年是 "harness 之年"?)
-
- [6.1 模型差距在缩小](#6.1 模型差距在缩小)
- [6.2 同样的模型,不同的 harness,结果天差地别](#6.2 同样的模型,不同的 harness,结果天差地别)
- [6.3 模型与 harness 出现"耦合训练"](#6.3 模型与 harness 出现"耦合训练")
- [7. 看一眼真实世界的 harness:Claude Code](#7. 看一眼真实世界的 harness:Claude Code)
- [8. 什么时候你不需要 harness engineering?](#8. 什么时候你不需要 harness engineering?)
- [9. 本系列接下来要讲什么](#9. 本系列接下来要讲什么)
- [10. 关键 takeaway](#10. 关键 takeaway)
- 参考资料

1. 一句话定义
Agent = Model + Harness
这是 2025--2026 年 AI 工程领域最重要的一条公式。它出自 Anthropic、LangChain、OpenAI 等团队几乎同时收敛出的共识------一个真正可用的 AI 智能体,模型只占一半 ,另一半来自模型之外的所有工程构件:系统提示词、工具集合、权限系统、上下文管理、记忆与持久化、会话状态、子代理、钩子、沙箱、可观测性......这些统称为 harness(缰具/线束)。
围绕这一切的工程实践,叫作 Harness Engineering(缰具工程 / 线束工程)。
为了避免混淆,我们先把同一概念在不同社区的叫法对齐:
| 术语 | 提出者 / 流行场合 | 含义边界 |
|---|---|---|
| Harness | Anthropic, LangChain, Martin Fowler | 模型之外的全部代码、配置与运行时逻辑 |
| Scaffolding | Sebastian Raschka, OpenDev 论文 | 偏静态/构造期:系统提示词、工具 schema 在启动前的"脚手架"装配 |
| Agent Framework | LangChain, LlamaIndex, CrewAI 等 | 用于"造 agent"的库;harness 经常用 framework 搭建出来 |
| Orchestrator | 多 agent 编排术语 | 决定何时怎么调用模型;偏控制流 |
| Runtime / Engine | 工程产品语境 | harness 跑起来之后的执行体 |
最常引用的一句对比来自 Parallel.ai:
Orchestration is the brain; the harness is the hands.
编排是大脑;harness 是手。
2. 起源:从 prompt engineering 到 context engineering 再到 harness engineering
整个范式有一条清晰的演化路径:
2020--2022 Prompt Engineering ── "怎么写一句话让模型听话"
2023--2024 Context Engineering ── "怎么把对的信息塞进上下文窗口"
2025--2026 Harness Engineering ── "怎么把模型嵌入一个能干活的系统"
2.1 ReAct:循环的雏形(2022)
Yao 等人 2022 的 ReAct 论文(ICLR 2023)首次系统提出 Reasoning + Acting 交错 的范式:模型不仅"想",还能"做"------发出工具调用、看到结果、再继续推理。这个 Thought → Action → Observation → Thought →... 的循环(后来常被简记为 TAOR)成为今天几乎所有 agent 的骨架。
ReAct 在 ALFWorld 上提升了 34%、在 WebShop 上提升了 10%。但它本质上还停留在"prompt 模板 + 少量胶水"的阶段,循环之外的东西------权限、压缩、子代理、状态持久化------还没有被工程化。
2.2 Karpathy 的一句话点燃了 2025
2025 年中,Andrej Karpathy 在一篇被广泛引用的发言中说:
LLMs are a new kind of operating system.
The context window is the RAM.
Context engineering is the delicate art and science of filling the context window with just the right information for the next step.
这段话把 LLM 类比成 CPU、上下文窗口类比成 RAM、外部数据库类比成磁盘、工具集成类比成驱动程序------一下让"做 agent"变成一件像写操作系统一样的事。Tobi Lütke 紧接着附议:"prompt engineering 严重低估了真正要做的工作量"。
但仅有"上下文工程"还不够。当 Anthropic、LangChain、Manus 这些团队真的把 agent 推到生产线上时,他们发现:麻烦的从来不是上下文那一帧,而是围绕它的一整套生命周期------
- 工具怎么注册、怎么发现、怎么沙箱化?
- 权限怎么分级?哪些动作要弹窗、哪些要拒绝、哪些要审计?
- 上下文 95% 满了怎么压缩?跨会话怎么续接?
- 一个任务跑 6 小时,模型反复"忘事",怎么办?
- 子代理什么时候开?怎么把它的产出收回来?
- 失败了怎么 rollback?怎么 resume?怎么 fork?
这些问题已经不属于"prompt"也不属于"context",它们属于一个更高层的抽象层级。这就是 harness engineering。
2.3 命名的定型(2025 年下半年到 2026 年 4 月)
几个关键节点:
- 2025 年 11 月 :Anthropic 发表 Effective Harnesses for Long-Running Agents,首次把"harness"作为头号工程术语推出。文中给出 initializer + coding agent 的双代理模式。
- 2026 年初 :Anthropic 又发表 Harness Design for Long-Running Application Development,把架构推进到 planner + generator + evaluator 三代理。
- 2026 年 4 月 :Martin Fowler 网站上线 Birgitta Böckeler 的 Harness Engineering for Coding Agent Users,把它正式当成一门独立工程学科。
- 同期 :Aakash Gupta 的 Medium 长文 喊出"The model is commodity. The harness is moat."------模型是商品,harness 才是护城河。
- 学术界 :arXiv 出现了 Building AI Coding Agents for the Terminal、Dive into Claude Code、Natural-Language Agent Harnesses 等系统性论文,Preprints.org 上的 Agent Harness for LLM Agents: A Survey 提出了带标号迁移系统语义的 harness 形式化定义,开始把它从工程实践推向学术形式化。
3. 三个工程层级:Prompt / Context / Harness
新人最容易把这三件事混为一谈。它们的关系像同心圆------prompt engineering 在最里面,harness engineering 在最外面:
┌────────────────────────────────────────────────────────┐
│ HARNESS ENGINEERING │
│ 工具、权限、子代理、记忆、状态、钩子、沙箱、... │
│ ┌──────────────────────────────────────────────┐ │
│ │ CONTEXT ENGINEERING │ │
│ │ 上下文压缩、检索、隔离、scratchpad、记忆 │ │
│ │ ┌────────────────────────────────────┐ │ │
│ │ │ PROMPT ENGINEERING │ │ │
│ │ │ 一次调用里说什么、怎么排序、口吻 │ │ │
│ │ └────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────┘
modal call
Prompt Engineering 关心 单次调用 内的措辞:少样本、思维链格式、角色设定。
Context Engineering 关心 单次调用之前 哪些信息被放进了那个 8K / 200K / 1M 窗口:检索什么、摘要什么、去掉什么。LangChain 把它归纳成 写 / 选 / 压 / 隔 四种动作(见本系列第 3 篇)。
Harness Engineering 关心 从用户意图到产出落地 整条链路上的所有工程构件------也就是上下文工程的"上一层"。它把 "what to put in this single LLM call" 升级成 "how to operate the model as a service that survives across sessions, days, dollars and disasters"。
区别一句话:context engineering 是给一次调用装弹;harness engineering 是设计整支步枪、整条供应链、还有靶场和教练。
4. Harness 都包含什么?11 个常见组件
不同来源(Anthropic Agent SDK、Claude Code 架构剖析、Arize Blog、《The Anatomy of an Agent Harness》、OpenDev 论文)枚举的部件略有出入,把它们去重之后大致 11 项:
- 编排循环(Orchestration Loop) --- 心跳。while 循环:装配 prompt → 调模型 → 解析输出 → 执行工具 → 回喂结果 → 重复。
- 工具与工具注册表(Tools / Registry) --- 文件读写、Bash、搜索、Web、子代理派发......外加 schema、权限、沙箱包装。
- 记忆系统 --- 会话内 vs 会话间;scratchpad、CLAUDE.md、向量库、知识图谱。
- 上下文管理 --- 压缩、削减、观察遮蔽(observation masking)、即时检索(just-in-time retrieval)、子代理委派。
- 提示词组装(Prompt Construction) --- 系统提示词 + 工具定义 + 记忆 + 历史 + 当前消息的层级化拼装。
- 输出解析 --- 从 free-text 转向 structured tool calls,schema 校验。
- 状态管理 --- 持久化转录、断点 / fork / rewind、git 提交作 checkpoint。
- 错误处理 --- 重试、可恢复 / 不可恢复、bubble up。10 步 99% 成功率 ≈ 90.4% 端到端成功率。
- 护栏与安全(Guardrails) --- 输入护栏、输出护栏、工具护栏;权限模式;deny-first。
- 验证循环(Verification) --- 类型检查器、测试、linter、LLM-as-judge、视觉反馈。
- 子代理编排 --- Fork / Teammate / Worktree、agents-as-tools、handoff。
后面六篇会逐项展开。
5. Karpathy 的 OS 类比,再走一步
Beren Millidge 把这条比喻具体化了:
| 操作系统 | LLM 代理 |
|---|---|
| CPU | LLM 模型本身 |
| RAM | 上下文窗口(小、快、易丢) |
| 磁盘 / 文件系统 | 外部数据库、向量库、git 仓库 |
| 设备驱动 | 工具集成(MCP、Bash、Read/Write) |
| 内核态 / 用户态 | bypassPermissions / acceptEdits / default |
| 调度器 | agent loop + max_turns + max_budget_usd |
| 系统调用表 | Tool Registry / 工具 schema |
| 信号 / 中断 | hooks(PreToolUse、PostToolUse、Stop、PreCompact) |
| 进程隔离 | sub-agent 的独立上下文窗口 + 工具白名单 |
| init / systemd | "Initializer agent" 或 launcher |
| swap 区 | scratchpad 文件、progress.txt、MEMORY.md |
| 终止 / OOM | 自动压缩(auto-compact)、turn cap、budget cap |
这张表不只是好玩。它对工程师意义重大------意味着你能用过去 50 年操作系统设计的所有惯用法来设计 harness:deny-first 的安全策略、append-only 的日志、checkpoint+resume、copy-on-write、过载保护......
6. 为什么 2026 年是 "harness 之年"?
2026 年初,几篇广为流传的文章共同提出一个判断:模型质量正在收敛,harness 才是真正的护城河。证据有三条:
6.1 模型差距在缩小
GPT-5.x、Claude Opus 4.7、Gemini 系列在标准 coding benchmark 上的差距越来越小,往往落在 5 个百分点之内。Sebastian Raschka 直言:"vanilla 版本的 GPT-5.4、Opus 4.6、GLM-5 能力其实接近------大量被感知为'模型质量'的差异,本质上是 context quality 的差异"。
6.2 同样的模型,不同的 harness,结果天差地别
- Manus 在 6 个月里用同一类模型重写 harness 5 次,每次都显著提升任务完成率。
- LangChain 一年内 4 次重构他们的 Deep Research 流程,几乎不靠模型升级。
- Vercel 把工具数砍掉 80%,反而让 agent 更可靠------"更少的工具意味着更少的步骤、更少的 token、更快的响应、更高的成功率"。
- 一个被广泛传播的 benchmark:Opus 4.6 在 Claude Code 里排第 33,在另一个 harness 里排第 5。换 harness 比换模型有用得多。
6.3 模型与 harness 出现"耦合训练"
更深一层的现象:post-training 现在 发生在 harness 之内。Claude 被显式地训练成"在 Claude Code 这套工具集里好用";OpenAI 的 Codex 模型也在为它原生的 harness 训练。Addy Osmani 总结道:
把一个模型从它训练时的 harness 搬出去,性能可能上升也可能下降------取决于新 harness 的假设和模型能力是否对齐。
这意味着 harness 不是"模型的附属品"------它是模型必须依赖的栖息地,二者共同进化。
7. 看一眼真实世界的 harness:Claude Code
Claude Code 是目前最常被剖析的工业级 harness。它把上面 11 个组件都做成了产品:
- 19 个权限门控的工具:Read / Edit / Write / Bash / Glob / Grep / WebSearch / WebFetch / Agent / TodoWrite / NotebookEdit / Task* / ToolSearch / Skill / AskUserQuestion 等。
- 6 种权限模式:default / acceptEdits / plan / auto / dontAsk / bypassPermissions。
- 三层权限管线 :tier 1 自动放行(只读);tier 2 由 Sonnet 4.6 跑的 分类器 决定要不要弹窗;tier 3 永远拒绝或显式审批。分类器不看 agent 的"自言自语",避免被 prompt 注入劫持------把 reasoning 与 enforcement 切成两条 code path。
- 五层压缩管线:budget reduction → snip → microcompact → context collapse → auto-compact。
- 四种扩展机制:MCP servers / plugins / skills / hooks,按"上下文成本"梯度排列。
- 三类子代理:Fork(同进程克隆)/ Teammate(独立 pane + 文件信箱)/ Worktree(git worktree 隔离)。
学术论文 Dive into Claude Code 用一句话总结它的设计哲学:
Graduated layering over monolithic mechanisms; append-only over query-power; model judgement within deterministic harness.
后一句尤其值得单独裱起来------让模型在确定性的 harness 之内做判断:harness 负责"什么动作合法、状态怎么持久、上下文怎么收纳",模型负责"在合法动作里挑哪个"。
8. 什么时候你不需要 harness engineering?
为了避免把它捧上神坛,也把适用边界讲清楚------以下场景完全可以不要:
- 一次性问答 / 摘要:模型 + 一段 prompt 就够。
- 同步、单轮、确定性的工具调用:function calling 一次解决,无需循环。
- 窗口完全够用、且不会跨会话:不需要压缩、不需要 scratchpad、不需要持久化。
- 业务对幂等性要求极高、不允许任何不确定性:那应该写普通代码而不是 agent。
判断准则:如果一次调用里"模型决定调什么工具"或"任务跨多轮 / 多文件 / 多小时",你就需要至少一个最小 harness。如果跨多天、要回滚、要分工------你需要正经的 harness engineering。
9. 本系列接下来要讲什么
| # | 标题 | 主要议题 |
|---|---|---|
| 1 | 什么是 Harness Engineering(本篇) | 概念、起源、Karpathy OS 类比、三层级、为什么 2026 是 harness 之年 |
| 2 | Agent 循环解剖学 | ReAct → 扩展 ReAct,turn / message / 停止条件,effort 与 budget |
| 3 | 上下文工程深度剖析 | Write / Select / Compress / Isolate;context rot;五层压缩管线 |
| 4 | 工具系统与权限模型 | 工具注册表、19 工具、三层权限、纵深防御、MCP 与 ToolSearch |
| 5 | 长任务多代理 harness | initializer / coder、planner / generator / evaluator、Ralph Loop、子代理三态 |
| 6 | Harness 实战 12 条经验 | Skill Issue、Ratchet 原则、CLAUDE.md / hooks / skills、Vercel / Manus 案例 |
| 7 | 未来方向与开放问题 | HaaS、自适应 harness、NLAH、模型--harness 共训练 |
每一篇都可以独立读,但顺着读会形成一张完整的知识图谱。
10. 关键 takeaway
Agent = Model + Harness------这是 2026 年最重要的工程公式。- 演化路径:Prompt → Context → Harness,关心的边界一层比一层大。
- 模型已经接近商品,harness 才是真正的工程护城河。改 harness 比换模型更划算。
- 把 LLM 当 OS 来想------所有 50 年的 OS 设计经验都用得上。
- 11 个常见组件:循环 / 工具 / 记忆 / 上下文 / 提示组装 / 输出解析 / 状态 / 错误 / 护栏 / 验证 / 子代理。
- harness 不是模型的附属品,而是它的栖息地------两者一起进化。
下一篇我们走进循环本体,看看那个 while-loop 内部到底发生了什么。
参考资料
- Andrej Karpathy 关于 LLM 是新 OS 的论述(汇编)
- Yao et al., ReAct: Synergizing Reasoning and Acting in Language Models, ICLR 2023.
- Anthropic, Effective Harnesses for Long-Running Agents, 2025.
- Anthropic, Harness Design for Long-Running Application Development, 2026.
- Birgitta Böckeler, Harness Engineering for Coding Agent Users, martinfowler.com, 2026.
- Addy Osmani, Agent Harness Engineering, 2026.
- HumanLayer, Skill Issue: Harness Engineering for Coding Agents, 2026.
- arXiv, Building AI Coding Agents for the Terminal, 2026.
- arXiv, Dive into Claude Code: The Design Space of Today's and Future AI Agent Systems, 2026.
- arXiv, Natural-Language Agent Harnesses, 2026.
- Preprints.org, Agent Harness for Large Language Model Agents: A Survey, 2026.
- Avi Chawla, The Anatomy of an Agent Harness, Daily Dose of DS, 2026.
- Sebastian Raschka, Components of a Coding Agent, 2026.
- Aakash Gupta, 2025 Was Agents. 2026 Is Agent Harnesses., Medium, 2026.
- Parallel.ai, What is an agent harness in the context of LLMs?
- Arize AI, What is an Agent Harness?
- WaveSpeedAI, Claude Code Agent Harness: Architecture Breakdown
- Decoding AI, Agentic Harness Engineering: LLMs as the New OS