Harness Engineering:驾驭大模型的工程新范式

Harness Engineering:驾驭大模型的工程新范式

继 Prompt Engineering、Context Engineering 之后,AI 圈又冒出了一个新名词------Harness Engineering。从 2025 年 2 月开始,这个词频繁出现在各大技术社区。OpenAI 专门发文讲述他们如何用 Harness Engineering 在五个月内生成了近 100 万行代码;Anthropic 紧接着也分享了精心设计的 Harness 架构如何驱动 Agent 应用开发;就连 Martin Fowler 的技术网站也开始公开讨论这一概念。

但也有不少质疑声:这不过是个噱头,换汤不换药。

那 Harness Engineering 到底是什么?它与 Prompt Engineering、Context Engineering 之间是什么关系?它是真正的技术突破,还是 AI 圈又在炒作概念?这篇文章将彻底厘清这些问题。


1. 两个前传:Prompt Engineering 与 Context Engineering

在讲 Harness Engineering 之前,有必要先回顾它的两位"前辈"。

1.1 Prompt Engineering:怎么把话说清楚

Prompt 就是用户发给大模型的话,而 Prompt Engineering 就是一门研究"怎么把这句话说清楚"的技术。

举个例子:你问大模型"帮我推荐一个周末去处",它可能回答"去公园散步、逛博物馆"之类的通用建议。但如果你在北京、喜欢户外活动,这些建议就不太贴切了。问题的根源在于 Prompt 没有给够信息。

按照 Prompt Engineering 的理念,你应该这样问:

帮我推荐一个北京周末去处,适合和朋友一起,户外活动,预算人均200以内。

这时候模型给出的"奥森公园骑行""什刹海划船"就更符合预期。

Prompt Engineering 的核心就是调整提示词,让模型更精准地理解你的意图。 但如今这门技术已经很少被单独提起了------一方面门槛太低,另一方面模型本身变强了,很多时候不需要精细调 Prompt 也能给出不错的回答。

1.2 Context Engineering:怎么把信息给对

假设拿到周末去处推荐后,你继续追问"那里需要预约吗?",这时发给大模型的就不只是这一个问题,还包括之前的对话历史,否则模型根本不知道"那里"指代什么。

大模型接收到的所有信息------Prompt、对话历史、工具列表、Skill 列表等等------统称为 Context 。Context 有容量上限,不可能无限制地往里塞东西,我们需要精心设计 Context 的内容,这就是 Context Engineering

Context Engineering 的经典技术包括:

  • 上下文压缩:当对话历史过长时,对前面的内容做摘要总结,防止 Context 溢出影响回答质量。
  • 动态检索:按需从外部知识库拉取相关信息注入 Context。
  • 渐进式披露:分阶段、分层次地暴露信息给模型。

Context Engineering 很能整活,但大家逐渐发现它的效果有上限。为了进一步挖掘大模型的潜力,AI 圈又整出了新花样------这就引出了我们真正的主角。


2. 什么是 Harness Engineering?

2.1 Harness 的本意:马具

Harness 这个词在日常生活中不太常见,它的本意是马具------套在马身上用来控制马的装备,比如缰绳、头套。马虽然非常强大,但必须借助马具来引导它,才能为人类所用。

把这个类比映射到 AI 领域:

  • 脱掉马具的马大模型:能力极强,但如果任由它自由发挥,就会像脱缰的野马一样发散思维,产生严重幻觉,无法稳定输出可靠结果。
  • 马具Harness:用来控制和驾驭大模型的系统。

2.2 Harness 的公式

目前业界比较认可的一个公式是:

Harness = Agent − Model

换句话说,一个完整的 Agent 减去里面的大模型,剩下的所有东西都是 Harness。

以 Claude Code 为例:所有不属于 Claude 模型的部分都是 Harness------CLAUDE.md 中的规则、可用工具、定时调度机制、权限管控等等。只要不是模型本身,都可以视为 Harness 的一部分。

2.3 Harness Engineering 的定义

顺理成章地,Harness Engineering 就是一门专门研究如何构建与设计 Harness 的技术。它不再仅仅盯着模型输入的那点提示词或上下文,而是站在更高的系统层面,研究怎么给大模型设计一套可以稳定运行的框架,让大模型踏踏实实地为人类做事。

2.4 三者关系:层层递进

Prompt Engineering Context Engineering Harness Engineering
研究什么 怎么"问问题" 怎么"给信息" 怎么"搭系统"
关注范围 Prompt 本身 Prompt + 对话历史 + 工具列表等 除了模型之外的所有内容
核心目标 把话说清楚 在最合适的时机给最合适的内容 围绕大模型搭建完整可靠的 Agent

三者是层层递进、研究范围不断向外扩展的关系------关注的问题越来越大、越来越系统化。


3. OpenAI 的实践:五个月、100 万行代码

2025 年 8 月,OpenAI 内部启动了一个疯狂的实验:用 AI 从零开始写一个真实的软件产品,全程不允许工程师手写一行代码。所有组成部分------业务逻辑、测试、CI 配置、文档、内部工具------全由 AI 生成。

  • 代码规模:近 100 万行
  • 耗时:约五个月
  • 团队规模:从 3 人扩展到 7 人
  • 开发效率:约为纯人工的 10 倍

有意思的是,实验一开始并不顺利------不是因为大模型不够聪明,而是因为 Harness 没搭好 。工程师发现 Agent 经常走错方向,甚至重复犯同一个错误。他们意识到:要想让 Agent 可靠地工作,真正的功夫在于把 Harness 设计好。

OpenAI 的优化可以归纳为三大类:

3.1 上下文管理:让 Agent 获取充足的信息

最初的做法是把所有项目规范塞进一个超大的 AGENTS.md 文件,结果发现有两个致命问题:

  1. 内容太多,模型效果变差------就像第一天入职 HR 砸给你一本巨厚的员工手册,完全抓不住重点。
  2. 文件逐渐腐化------项目在演进,但文件没人及时更新,变成一堆过时信息的垃圾堆。

改进方案 :将 AGENTS.md 压缩到 100 行左右,只保留目录结构,具体文档分门别类存放。用到哪块再给 Agent 看哪块,效果就好很多。

此外,OpenAI 还发现很多重要信息散落在 Slack 聊天记录、Google Docs 里,甚至只存在于老员工的脑子里。他们的解法是:强制把所有重要决策和约定搬进代码仓库,让仓库成为唯一的真相来源(Single Source of Truth)。

3.2 验证与反馈:让 Agent 能检验自己的产出

写完代码之后,Agent 必须能验证自己的成果是否正确。OpenAI 的做法:

  • 集成 Chrome DevTools:Agent 可以自己截图、查看 DOM 结构、模拟用户操作,验证 UI 是否符合要求。发现问题原地修复,无需人工介入。
  • 接入可观测性工具栈:Agent 能读取日志、指标,追踪链路排查问题。每个任务跑在完全隔离的环境中,有独立的日志和指标,结束后自动销毁。
  • 用 Linter 和测试保证架构规范:OpenAI 将系统分成 UI → Runtime → Service → Wrapper → Config → Types 多层,严格规定依赖关系。Agent 生成代码后,Linter/测试自动检测合规性,报错信息发回 Agent 自行修改,形成闭环。

3.3 技术债清理:不让代码腐化

Agent 在大规模生成代码的过程中,会不可避免地引入重复代码、偏离规范的写法、不一致的命名等问题。

OpenAI 设了一个后台 Codex 任务,定期扫描整个代码库,找出偏离规范的地方,自动修改并提交。文档方面同理------定期扫描文档库,找出过时内容,自动修复。

核心洞察:Human Steer, Agents Execute

这五个月的实验让 OpenAI 重新定义了人与 AI 的工作边界:

人类负责掌舵,Agent 负责干活。

软件工程师的核心职责变了:不再是亲自手写代码,而是为 Agent 搭建稳定可靠的系统与支撑框架,以此最大化代码产出效率。


4. Anthropic 的实践:Planner → Generator → Evaluator

Anthropic 先后发表了两篇与 Harness Engineering 相关的文章:

  • 2024 年 11 月:Effective Harnesses for Long-Running Agents
  • 2025 年 3 月:Harness Design for Long-Running Application Development

两篇文章信息量很大,但最核心的就两点:任务规划质量评估

4.1 任务规划:引入 Planner

一开始,Anthropic 让 Agent 直接执行"克隆 Claude.ai"任务------需求工作量太大,Agent 急于求成,干到一半上下文满了就撂挑子,下一个接手的 Agent 完全不知道前面发生了什么,要么重复造轮子要么草草收工。

解法 :引入一个叫 Initializer 的 Agent,核心职责是把用户需求拆解为详细的功能列表,后续干活的 Agent 按功能点一个一个做,做完一个标记一个。

在第二篇文章中,这个思路演进为独立的 Planner Agent:专门负责把用户一句模糊的需求扩展成一份完整清晰的功能列表。后面的 Agent 照着功能点做就行,不用对着需求猜。

4.2 质量评估:引入独立的 Evaluator

质量评估有三种方案:

方案 问题
人工评估 效率太低
Agent 自评 王婆卖瓜,对自己产出天然有滤镜,有 Bug 也视而不见
独立评估 Agent 第三方评估,客观公正,还可单独优化训练

Anthropic 最终选择了第三种方案:将生成代码质量评估 拆成两个 Agent------GeneratorEvaluator

4.3 完整流程:Full Harness 方案

flowchart TB P[Planner] -->|拆解需求为功能列表| FL[功能列表] subgraph "阶段一: 标准讨论" G1[Generator] <--> E1[Evaluator] E1 -->|讨论交付标准| S[达成共识] end FL --> G1 subgraph "阶段二: 迭代实现" G2[Generator] -->|实现功能点| R[提交结果] R --> E2[Evaluator] E2 -->|不通过| G2 end S --> G2 E2 -->|通过| NEXT{下一功能点} NEXT -->|是| G2 NEXT -->|否| DONE[全部完成]

Anthropic 拿"做一个游戏制作工具"的任务做了对比:

方案 耗时 花费 效果
Solo(单 Agent) 20 分钟 $9 布局不合理、逻辑混乱、Bug 遍布
Full Harness(三 Agent) 6 小时 $200 布局和逻辑达到可用水准

精雕细琢有代价,但效果提升显著------就像考 60 分只需复习三天,考 90 分则需一个月。

4.4 模型变强后的简化

有趣的是,当 Anthropic 升级到 Opus 4.6 后,很多 Harness 约束不再需要了

  • 上下文焦虑消失:Opus 4.5 在上下文过长时会急于结束任务,Opus 4.6 大幅缓解了这一问题,原先用的"上下文重置"技术不再必要。
  • 强制分步执行不必要了:Opus 4.6 的全局统筹能力够强,可以一次性拿到所有功能点,自己决定执行顺序,不需要外力干预。

5. Harness Engineering 是不是噱头?

5.1 这个词是怎么火起来的

"Harness"这个词本身并不新------软件测试领域早有"Test Harness",AI 领域也有开源项目"LM Evaluation Harness"。真正新的是"Harness Engineering"这两个词的组合。

目前公认的起点是 Mitchell Hashimoto 于 2025 年 2 月 5 日发表的博客 My AI Adoption Journey。他写道(大意):

我也不知道业界有没有公认的叫法,我就姑且叫它 Harness Engineering。核心就是:只要 Agent 犯了错,你就去改造系统,让它绝不再犯。要是有更好的词,我随时改口。

几天后(2 月 11 日),OpenAI 发表那篇信息量极大的 Harness Engineering 文章,引爆了讨论。随后 Martin Fowler 网站、LangChain 等纷纷跟进,LangChain 还明确给出了公式:Agent = Model + Harness

5.2 质疑的声音

反对者的核心论点有两个:

  1. 没有新技术:Linter 代码检查、任务拆解规划、质量评估机制这些东西早就有了。Harness Engineering 只是把旧技术重新组织了一下,新瓶装旧酒。
  2. 迟早被淘汰:随着大模型能力持续增强,今天的 Harness 设计未来会被模型自身吸收,不再需要。Anthropic 从 Opus 4.5 到 4.6 的演进就是例证------模型越强,需要的 Harness 越少。

5.3 我的看法

Harness Engineering 不是噱头,但大概率也不是终局。

说它不是噱头,因为两点: 一是成果,OpenAI 和 Anthropic 都通过它把 Agent 的稳定性和产出效率推到了新高度,这是实打实的成绩;二是框架,它第一次把零散的"调 Prompt""管上下文""写 Linter"整合成一套可系统设计、可持续优化的工程方法论------工程进步的本质就是把经验变成方法。

说它不是终局,理由同样实在: 今天精心设计的 Harness 约束,正在被更强的模型自身吸收。从 Opus 4.5 到 4.6,原本必须的"上下文重置"技术就不再需要了。照这个趋势,纠偏、兜底、任务拆解这些 Harness 的核心职能,大概率会逐步内化到模型自身。

所以我的结论是:这是一个过渡期的关键技术。 它不是未来的终极答案,但它是当下最现实的答案。模型依然会犯错、会幻觉、会在复杂任务中走偏------在这种现实下,谁能把 Harness 搭得更稳,谁就能更早地把 AI 能力转化为真正的生产力。


6. 总结

概念 核心问题 研究范围 时代定位
Prompt Engineering 怎么把话说清楚 Prompt 入门必备,但已基础化
Context Engineering 怎么把信息给对 Context(Prompt + 历史 + 工具等) 仍有价值,但天花板明显
Harness Engineering 怎么把系统搭稳 Agent 中除模型外的所有内容 当前最优解,但可能非终局

Harness Engineering 的本质,是把人对 AI 的控制从"话说得对不对"升级到"系统搭得稳不稳"。它不是炒概念,而是一套能落地、能见效的工程方法论。但与此同时,我们也要认识到它的过渡性质------未来模型更强大后,Harness 的形态还会持续演化。

最后,建议有兴趣深挖的读者直接去读 OpenAI 和 Anthropic 的原文,信息密度极高,一定会大有启发。


Human Steer, Agents Execute. 在 Harness Engineering 的时代,工程师的使命不再是亲自写每一行代码,而是为 AI 搭建一套能稳定运行的体系------你负责舵,它负责帆。

相关推荐
Python私教2 小时前
AI回答太冗长?我设计了三段式流式显示让信息层次分明
人工智能
谁似人间西林客2 小时前
汽车点焊如何走向工艺智能化?AI质量监控已成为主流解决方案
人工智能·汽车
2601_956743682 小时前
上海大模型应用开发技术路径全解析:从架构选型到落地约束
人工智能·软件工程
云天AI实战派2 小时前
AI智能体总是跑偏怎么办?ChatGPT/API 调用排查指南:从工具路由到语音闭环的全流程修复手册
人工智能·chatgpt·aigc
逐米时代2 小时前
四川制造企业智改数转怎么申报?本地化AI项目落地一般分5步
大数据·人工智能
weixin_553654482 小时前
有没有一种可能,现在的大语言模型已经发展得接近极限了?
人工智能·语言模型·大模型
GISer_Jing2 小时前
基于 GitHub Actions 端到端工程化落地——AI全栈项目实战案例
人工智能·github
图灵农场2 小时前
SpringAI实用-RAG
人工智能