本文深入探讨了Harness工程在大模型应用中的重要性,从模型选择到系统构建,详细解析了如何通过工具、状态、记忆、沙箱等手段,提升大模型在复杂系统中的执行能力和稳定性。文章还结合OpenAI、Anthropic等公司的实战案例,为读者提供了构建高效Harness系统的实战指南,帮助开发者更好地将大模型应用于生产环境。
过去一年,很多团队讨论 Agent 时,第一反应仍然是问:用哪个模型?GPT、Claude、Gemini、Qwen、DeepSeek,谁的推理更强,谁的代码能力更好,谁的价格更低。
这些问题当然重要,但它们已经不是全部。真正到了生产环境,你很快会发现另一个更硬的问题:同一个模型,放在不同系统里,表现像两个完全不同的执行系统。一个 Agent 可以稳稳复现问题、修改代码、跑测试、生成 PR;另一个 Agent 只会在一个长上下文里越写越乱,最后自信地宣布“已经完成”。
差别不只在模型,而在 Harness。
如果说模型是智能本身,Harness 就是把智能变成可靠工作的工程系统。它包括工具、状态、记忆、沙箱、权限、评测、反馈循环、上下文组织、任务拆解、多模型路由,以及团队沉淀下来的各种规则和判断标准。
这也是为什么 OpenAI、Anthropic、Martin Fowler 网站上的 Thoughtworks 文章,以及关于 Harness 的讨论,都在指向同一个变化:Agent 的竞争正在从“单次回答质量”转向“长周期执行能力”。而长周期执行能力,很大一部分是 Harness 工程能力。
- Harness 到底是什么
一个最简洁的定义是:
Agent = Model + Harness
这句话最早在 LangChain 等文章中被系统化讨论,Martin Fowler 网站上的文章也引用了这个定义,并进一步指出,在 coding agent 的语境里,Harness 可以理解为模型之外所有帮助它完成工作的外层系统。
但如果只说Model + Harness,还不够。在知乎文章《我眼中的Harness:复杂优化问题,AGI灵魂争夺之战》里提出了一个更值得技术管理者重视的版本:
Agent = Models + Harness
注意这里是 Models。真实业务不会只靠一个模型解决所有问题。代码理解、长上下文检索、视觉识别、低成本分类、高风险决策、审查与评测,本来就可能对应不同模型。未来的 Agent 很可能不是“一个大模型加几个工具”,而是多个模型在 Harness 中被调度、约束和评估。
这意味着 Harness 不只是工具调用框架。它更像一个运行时和控制层,负责回答这些问题:
| 问题 | Harness 要做的事 |
|---|---|
| 模型该知道什么 | 上下文、仓库知识、文档、历史决策 |
| 模型能做什么 | 工具、命令、浏览器、文件系统、MCP |
| 模型不能做什么 | 权限、沙箱、命令白名单、数据边界 |
| 模型做完怎么判断对不对 | 测试、类型检查、评审、回放、指标 |
| 模型卡住了怎么办 | 状态持久化、任务拆分、上下文重置、人工升级 |
| 模型持续犯错怎么办 | 把失败模式沉淀为规则、检测器、评测集 |
所以,Harness 的价值不是让 Agent 看起来更“聪明”,而是让它可执行、可验证、可恢复、可审计。
- Harness 不是 Prompt Engineering 的新包装
很多人第一次听到 Harness Engineering,会觉得这只是 Prompt Engineering 换了一个更时髦的名字。这个判断低估了变化的幅度。
Prompt Engineering 解决的是“这一轮怎么说”。Context Engineering 解决的是“这一轮该给模型什么材料”。Harness Engineering 解决的是“整个系统如何让 Agent 在多轮、多工具、多约束、多反馈中持续工作”。
| 层次 | 关注点 | 典型产物 |
|---|---|---|
| Prompt Engineering | 怎么写指令 | 提示词模板、角色设定、输出格式 |
| Context Engineering | 给什么上下文 | RAG、记忆、文档切片、上下文压缩 |
| Workflow / Agent Framework | 怎么串步骤 | 工作流、工具调用、状态机 |
| Harness Engineering | 如何让 Agent 被可靠地使用 | 工具、状态、沙箱、权限、反馈、评测、交接、恢复 |
Martin Fowler 网站上的 Harness Engineering 文章给了一个很有用的模型:Harness 由两类控制组成,一类是 feedforward guides,另一类是 feedback sensors。
前馈指南是在 Agent 行动前影响它,例如AGENTS.md、架构文档、代码规范、Skills、项目模板。反馈传感器是在 Agent 行动后观察它,例如测试、lint、类型检查、浏览器回放、日志、评审 Agent。
这个模型的关键点是:不要把每一次失败都当作一次单独的提示词问题。只要一个错误重复出现,它就应该被沉淀进 Harness。要么变成行动前的指南,要么变成行动后的传感器。
Fowler 原文中的图把这个闭环讲得很清楚:人类不只是审查最终结果,而是持续调校 Agent 周围的 guides 和 sensors。
- OpenAI 和 Anthropic 真正在做什么
OpenAI 在 Harness Engineering 文章里描述了一个很激进的实验:他们用 Codex 建了一个内部 beta 产品,并刻意要求所有代码都由 Codex 生成。这个实验最有价值的地方,不是“AI 写了多少代码”,而是他们发现人的工作层次变了。
人不再主要写代码,而是设计环境、明确意图、建立反馈循环。
OpenAI 提到的几个做法,对技术管理者尤其重要。
第一,把仓库知识变成系统记录。设计原则、产品感、架构边界、质量分数、可靠性、安全规则,都应该进入仓库,而不是散落在人的脑子里、飞书文档里或口头约定里。
第二,追求 agent legibility,也就是让代码库对 Agent 可读。过去我们说代码要对新人友好,现在还要对 Agent 友好。目录结构、模块边界、命名、类型、文档、测试,都在影响 Agent 是否能正确理解系统。
第三,用“黄金原则”对抗熵。OpenAI 提到,Agent 会复制仓库里已有的模式,包括坏模式。如果没有清理机制,AI 生成代码会不断放大已有混乱。解决方式不是每周靠人清理,而是把原则写回仓库,并让 Agent 周期性地做“垃圾回收”。
Anthropic 的文章则更像一组实战设计手册。它们在 long-running agents 中遇到的问题很典型:Agent 想一次做太多,做到一半上下文耗尽;或者做了一些功能后,过早宣布完成。Anthropic 的解法是 initializer agent 加 coding agent。第一个 Agent 负责初始化环境、拆出完整特性列表、创建进度文件和初始提交;后续 Agent 一次只推进一个功能,并留下结构化交接。
随后,Anthropic 又把这个思路推进到 planner、generator、evaluator 三 Agent 架构。Planner 把短提示扩展成产品规格;Generator 按 sprint 实现;Evaluator 像 QA 和 code review 一样给出外部判断。这个设计背后有一个非常务实的观察:让一个 Agent 自己评价自己,往往会偏宽松;把“做事”和“评价”拆开,反馈会更硬。
再往后,Anthropic 在 Managed Agents 文章里强调了 session、harness、sandbox 的解耦。Session 是持久事件日志,Harness 是调用模型和路由工具的循环,Sandbox 是执行代码和操作文件的环境。它们分离后,系统才更容易恢复、更安全,也更容易适配未来不同模型和不同工具。
这些材料放在一起看,结论很清楚:Agent 产品真正难的不是“接一个模型 API”,而是构建模型周围的运行系统。
- Harness 会被模型吃掉吗
这是一个很关键的问题。模型越来越强,长上下文越来越大,工具调用越来越自然,那么 Harness 会不会只是一个过渡形态?
我的判断是:一部分会被吃掉,但 Harness 不会消失。
会被吃掉的是那些“弥补模型短板”的临时设计。例如某些模型过去会在上下文接近上限时焦虑,提前收尾;Anthropic 提到,特定模型升级后,这类 context reset 可能就不再必要。再比如一些固定的计划提示、反思模板、简单自检,也可能逐步被模型内化。
但另一部分不会被模型吃掉,因为它们本来就不属于模型内部。
权限不会被模型吃掉。你不应该让模型自己决定能不能读生产数据库、能不能拿 GitHub token、能不能访问客户数据。
安全边界不会被模型吃掉。执行模型生成的代码,天然需要隔离环境、网络策略、凭证托管和审计。
组织知识不会被模型吃掉。每家公司都有自己的产品原则、架构取舍、历史债务和质量底线。它们必须被显式化,否则 Agent 只能猜。
评测和反馈不会被模型吃掉。模型可以更会自检,但生产系统仍然需要外部事实:测试有没有过,页面有没有渲染,接口有没有超时,用户路径有没有跑通。
多模型路由也不会被模型吃掉。成本、延迟、风险、专业能力不同,决定了未来很多 Agent 会是多模型协作,而不是一个模型吞掉所有任务。
所以更准确的说法不是“模型会吃掉 Harness”,而是模型和 Harness 会共同进化。好的 Harness 会产生高质量轨迹、失败样本、评测标准和工具使用数据,这些数据又会反哺下一代模型。相关文章里讲的model parameters与harness parameters联合优化,真正有想象力的地方就在这里。
- 实战案例:给 30 人研发团队搭一个代码研发 Harness
假设你负责一个 30 人研发团队。团队有 5 个前后端业务小组,代码库中等规模,测试覆盖还可以但不完美。你的目标不是让 Agent 接管核心架构决策,而是先让它稳定处理中低复杂度需求和 bug,比如文案调整、表单校验、状态展示错误、简单接口适配、低风险重构。
这时,一个可落地的代码研发 Harness 可以这样设计。
入口:不要给 Agent 一个模糊愿望
任务入口必须结构化。每个任务至少包含四件事:背景、复现或目标、验收标准、风险边界。
坏输入是:“订单页有 bug,帮我修一下。”
好输入是:“当订单状态为 cancelled 时,前台订单列表仍显示待支付。请复现并修复。验收标准:列表页、详情页、移动端订单卡片都显示已取消;支付按钮不可见;已有 paid、pending、refunded 状态不受影响。不要改订单状态机,只修展示层和适配层。”
这一步看似普通,其实是整个 Harness 的第一道前馈控制。
仓库知识库:把隐性经验写成 Agent 可读材料
在仓库根目录维护AGENTS.md,并配套几个领域文档:
docs/domain/order.md:订单状态机、字段含义、前后端映射。docs/frontend/conventions.md:组件约定、状态展示规范、设计系统。docs/testing/playbook.md:如何跑单测、如何跑关键 E2E、如何生成截图证据。docs/security/agent-boundaries.md:哪些文件不能改,哪些命令不能跑,哪些数据不能读。
不要写成给人看的散文,要写成 Agent 可以执行的规则。例如:“修改订单状态展示时,必须同时检查OrderStatusBadge、OrderActionBar、MobileOrderCard三处入口。”
Planner:先拆任务,不急着改代码
Planner Agent 接到任务后,只做三件事:复述目标、列出影响面、生成验证计划。它不能改代码。
对于上面的 bug,它应该输出:
- 可能涉及状态映射、展示组件、按钮可见性。
- 先用浏览器复现列表页和详情页。
- 再搜索
cancelled、pending、OrderStatusBadge。 - 修改展示适配层,避免改动订单核心状态机。
- 验证 paid、pending、refunded、cancelled 四类状态。
这个计划会写入agent-plan.md,作为后续 Coder 和 Reviewer 的共同契约。
Coder in Sandbox:给它手,但不要给它所有钥匙
Coder Agent 在沙箱里工作。它可以读代码、改代码、运行允许的测试命令、启动本地服务、用浏览器验证页面。但它不能访问生产环境,不能读取真实用户数据,不能绕过权限拿凭证。
所有工具调用都要留痕:执行过哪些命令、读过哪些文件、改过哪些文件、测试结果是什么。工具输出太长时,完整日志落盘,摘要进入上下文,避免上下文被噪声污染。
如果测试失败,Harness 把失败信息喂回 Coder,让它自修复。自修复最多两轮,超过就升级给人。这个限制很重要,因为 Agent 有时会为了修测试不断扩大修改面。
验证层:让事实说话
验证层分三类。
第一类是计算型传感器:类型检查、单测、lint、依赖检查、架构边界检查。它们便宜、快、确定性强,应该尽量左移。
第二类是行为型传感器:Playwright 复现、浏览器截图、接口 mock、关键用户路径回放。它们验证“用户看到的东西是不是对的”。
第三类是推理型传感器:评审 Agent、架构审查 Agent、测试质量审查 Agent。它们不如测试确定,但能发现过度设计、误解需求、测试假阳性、没有必要的改动。
Fowler 原文中的生命周期图很适合放到团队内部做培训:哪些检查应该在 Agent 自修复环里跑,哪些检查应该在 CI 跑,哪些检查应该留给人类判断。
Reviewer:把人类评审前移成机器预审
Reviewer Agent 不负责写代码,只负责挑刺。它检查:
- 是否真的满足
agent-plan.md。 - 是否修改了无关文件。
- 是否绕过了领域边界。
- 是否只加了“看起来会过”的脆弱测试。
- 是否引入安全或性能风险。
- PR 描述是否包含复现证据和修复证据。
Reviewer 通过后,Harness 才允许打开 PR。PR 模板中必须包含:问题复现、修复摘要、验证命令、截图或视频、残余风险、需要人类判断的点。
人类闸门:把人放在最值得的位置
人类不应该被迫审查所有机械细节。Harness 的目标不是消灭人,而是把人的注意力从“有没有跑测试、有没有改错文件”转移到更高价值的问题:
- 这个修复是否符合产品语义?
- 这个方案会不会让长期架构更差?
- 这次变更是否触及高风险业务?
- 这类问题是否应该沉淀为新的规则或测试?
一旦人类发现重复问题,就不要只在 PR 下留一句评论。应该把它写回 Harness:更新AGENTS.md,新增架构测试,补一条评审 checklist,或者加入一个最小评测样本。
指标:没有度量,就没有 Harness 工程
研发 Harness 至少要看这些指标:
| 指标 | 含义 |
|---|---|
| 任务一次通过率 | Planner、Coder、验证层协作是否有效 |
| 人类介入率 | Agent 在哪些环节需要判断或救援 |
| 自修复成功率 | 反馈传感器是否真的能帮助 Agent 改正 |
| 平均修改面 | Agent 是否倾向于过度改动 |
| PR 返工率 | Reviewer 与 CI 是否拦住了低质量变更 |
| 失败模式 Top 10 | 下一轮 Harness 优化的优先级 |
| 单任务成本与耗时 | 哪些任务适合 Agent,哪些不适合 |
这才是 Harness Engineering 和“随便开一个 Agent 写代码”的区别。前者有系统,有边界,有反馈,有复盘;后者只是把不确定性外包给模型。
- 管理者应该怎么开始
不要一上来就追求全自动研发。最稳的路径是三步。
第一步,选一个低风险任务池。比如前端展示 bug、文案改动、简单字段适配、测试补齐。目标不是炫技,而是积累可控样本。
第二步,建立最小 Harness。包括AGENTS.md、任务模板、允许命令列表、测试入口、PR 模板、失败日志。先让 Agent 在一个窄场景中稳定工作。
第三步,每周做 Harness 复盘。不要只看 Agent 做成了什么,更要看它为什么失败。失败原因如果重复两次,就进入 Harness backlog。
这里有一个管理观念需要转变:过去团队维护的是代码资产,未来团队还要维护 Harness 资产。
代码资产回答“系统是什么”。Harness 资产回答“Agent 应该如何理解、修改和验证这个系统”。前者让软件可运行,后者让 AI 能持续参与软件演化。
- 结语:模型是发动机,Harness 是生产系统
未来几年,模型能力还会快速提升。很多今天需要 Harness 补位的能力,会变成模型的自然能力。计划、工具使用、自检、长任务连贯性,都会越来越好。
但企业真正需要的不是一个“更会聊天的模型”,而是一个能在真实约束下稳定交付结果的生产系统。这个系统必须知道边界,必须能验证,必须能恢复,必须能审计,必须能把组织经验变成机器可执行的规则。
所以,技术管理者不应该只问“我们该买哪个模型”。更应该问:
我们的仓库是否足够 Agent 可读?
我们的工程规则是否已经显式化?
我们的验证反馈是否能让 Agent 自修复?
我们的权限和沙箱是否能承受
最后
如果说程序员已经是高薪职业,那么干AI的程序员,就是高薪中的高薪。
现在的市场,已经用数据给程序员指明了方向:学AI大模型,就是冲刺高薪的最优解!
看着身边越来越多的同行转型大模型、拿到高薪offer,很多人心里都动了心,但真正的难题来了:零基础小白不知道从哪入门?有基础的程序员找不到系统学习路径?实战项目练手无门?面试不知道考什么?
别慌!今天就给大家整理了一份【2026年最新版】AI大模型免费学习资源包,覆盖从入门到实战、从理论到面试、从基础到进阶的全流程,所有资料均已整理归档,无冗余、无套路,免费分享给每一位想抓住AI风口的程序员和小白!
👇👇扫码免费领取全部内容👇👇
1、大模型系统化学习路线
2、大模型学习书籍&文档
3、AI大模型最新行业报告
4、大模型项目实战&配套源码
5、大模型大厂面试真题
四阶段精细化学习规划(附时间节点,可直接照做)
结合上述资源,给大家整理了一份可直接落地的四阶段学习规划,总时长约2个月,小白可循序渐进,程序员可根据自身基础调整节奏,高效掌握大模型核心能力,快速实现从“入门”到“能落地、能面试”的跨越。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
👇👇扫码免费领取全部内容👇👇
6、这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】