用 AI 写代码,越改越乱?问题不在模型,在你没给它”上马具”——这就是火遍全网的 Harness Engineering。

程序员鱼皮花了 18 分钟,把这个被一堆教程讲得云里雾里的概念,掰成了五个你今天就能上手的模块,还用一个真实项目从头走了一遍。这篇把它拆透:Harness 到底是什么、为什么突然火、五个核心模块怎么落地、以及怎么最快上手。

一句话定性

Harness(马具)= 围绕 AI 模型搭的一整套工作环境和工作流程。它不是新技术,是把程序员早就会的工程经验——写规范、配工具、拆任务、跑测试、上护栏——系统地搬到 AI 身上。AI 编程的瓶颈早就不在模型够不够聪明,而在你给它搭的这套环境和流程够不够好。

先说清楚:用 AI 写代码的三个老大难

只要你用 AI 写过代码,下面三个坑大概率都踩过:

  1. 它没搞懂你要干嘛——让它改个页面样式,结果把整个布局重写了。
  2. 它会忘——你前面明明说单文件不超过 200 行,聊了十几轮后,约束被冲掉,给你写了 1000 行的大文件。
  3. 越改越乱——让它修一个 bug,结果又冒出三个新 bug,整个项目都跑不起来了。

前两个问题,业界已经有成熟解法(写好提示词、给足信息)。真正棘手的是第三个:你想让 AI 做完一个完整的项目,光会聊天不够,你得给它搭一套靠谱的工作环境和流程。这套东西,就是 Harness。

Harness 是什么:给 AI 这匹马,配上马具

Harness 这个词翻译过来是「马具」。

把 AI 模型想象成一匹马——它有力气、能跑,但你不给它套缰绳、规划路线、围上栅栏,它就乱窜,跑不到你要的地方。Harness 就是你驾驭这匹马所需要的一切:缰绳、路线规划、围栏……目标只有一个——让这匹马跑得更快、更稳,顺利把活干完。

具体到 AI 编程,Harness 包含:你给 AI 写的项目规则文件、配置的各种工具、安排的任务拆分和执行顺序、设计的测试检查流程——这些全都算 Harness

为什么突然火了:两个实打实的实验

光讲概念没说服力,让它火起来的是两个硬证据:

  • LangChain 的实验:用同一个 AI 模型,只优化围绕模型搭的 Harness 部分,在编码基准测试(SWE-bench 类)上的排名,直接从30 名开外冲进前五。模型没变,变的只是马具。
  • OpenAI 团队:三个人的小团队,全靠 Harness 引导 AI 生成了上百万行代码,做出的产品已经在内部正式上线使用。

这些成果出来后,一堆知名 AI 公司和技术大佬纷纷发博客讲 Harness,把这个概念彻底带火。行业由此达成一个共识:

AI 编程的瓶颈不在模型有多聪明,而在你围绕模型搭的这套环境和流程够不够好。

值得点破的是:Harness 不是 2026 年蹦出来的新东西。从 2022 年 ChatGPT 出来那天起,大家其实就在做 Harness 了,只是当时没人给它起名字。

三层演进:提示词 → 上下文 → Harness

要真正理解 Harness,得看清这几年 AI 工程是怎么一层层往外长的:

阶段核心问题典型手法
提示词工程(2022)怎么给 AI 下指令设定角色、约束输出格式、思维链(让它一步步想)、给几个示例让它模仿
上下文工程(2025)怎么在对的时候把对的信息喂给 AI写 AGENTS.md 规则文件、用 RAG 检索资料、压缩/摘要过长上下文、建跨对话记忆
Harness Engineering(2026)怎么让 AI 持续靠谱地干完一整件事配什么工具、大任务怎么拆、出问题怎么自检修复、怎么防代码质量下滑

三者是层层包含的关系:提示词在最内层(怎么下指令),上下文包着提示词(怎么给信息),Harness 把它俩全包进去(怎么让 AI 持续靠谱地干完整件事)。

业界把它总结成一个公式:

Agent = 模型 + Harness

也就是说,围绕模型搭的工具、规则、流程、检查机制,全都属于 Harness 的范畴。

五个核心模块:Harness 怎么落地

听起来很抽象?其实没那么复杂。Harness 要解决的,就是 AI 干活时绕不开的五个核心问题。如果你是有项目经验的程序员,会发现这些方法你早就在用了。

① 上下文架构:让 AI 了解项目的背景和规矩

做项目第一步永远是搞懂需求、背景、开发规范。用 AI 也一样,你得把这些喂给它——写一个 AGENTS.md 这样的规则文件,告诉它用什么技术栈、遵循什么代码规范、有什么禁止事项。这跟传统做项目写需求文档、方案设计文档是一回事。

但这里有个 OpenAI 团队踩过的关键坑:他们试过把几千行规则塞进一个大文件,结果 AI 反而更容易忽略里面的关键信息(上下文空间有限,信息一多就被稀释)。

后来他们改了思路:AGENTS.md 当成一个「目录」来用——主文件只写大概 100 行的摘要和索引,详细的设计文档拆到 docs/ 目录下。AGENTS.md 里只写指引:「前端规范看 fe.md,安全相关看 security.md」,AI 需要什么就去读对应文件。

按需加载,是上下文架构的核心。 别把所有东西一次性塞给 AI,给它一张能自己查的地图。

② 执行能力:给 AI 装上手脚和工具

AI 模型本身只能输出文本。想让它真正帮你开发,就得通过工具调用让它能操作电脑:

  • 基础工具:终端环境(执行命令)、文件系统(读写代码)、浏览器(测试网页)。
  • MCP 扩展:读写数据库、联网搜索、抓取最新内容……
  • Agent Skills:把一整套复杂工作流封装成「技能包」,让 AI 快速学会专业技能,比如自动生成 PPT、处理 Excel 表格。

一句话:AI 能用的工具越多,它能帮你干的活就越多。

③ 任务编排:给 AI 安排好工作计划

你丢给 AI 一个大需求,它可能会「一把梭」想全部搞定。但上下文空间有限,开发到一半信息就装不下了,前面定好的方法和约束慢慢被冲淡,最后留下一堆跑不起来的渣渣代码。

解法是一套组合拳:

  • :大任务拆成小任务,每次只做一个功能点。
  • 先规划再动手:开始前用 Plan Mode(计划模式) 让 AI 先出方案,人工确认后再写代码。
  • 沉淀文档当存档:每做完一个功能,让 AI 沉淀一份文档(实现了哪些功能、用了什么技术方案、还有哪些待做)。这样哪怕新开一个对话窗口,AI 读文档就能快速找回记忆,不用从头再来。
  • 并行:多个互不依赖的小任务,用 subagent 并行执行,效率更高。

这跟传统开发里的任务拆分、前后端并行开发,是同一个思路。

④ 反馈机制:让 AI 自己检查自己的工作

AI 写完代码常常自信满满地说「任务完成了」,结果你一运行全是 bug。所以得让它写完代码后能自检

  • Linter 查语法和规范问题;
  • 自动化测试验证功能正确;
  • 甚至让 AI 自己打开浏览器,实际操作一遍,确认功能真能用。

测试没过怎么办?AI 可以自动读取报错信息、分析原因、尝试修复。当然也可以人工把报错和截图丢给它让它修,甚至让另一个 AI 来审查代码——多 agent 互审,跟传统团队里多个同事一起 Code Review 是一回事。

⑤ 架构护栏:防止代码越改越乱

AI 生成代码有个要命的特点:它会模仿仓库里已有的代码风格,哪怕那是烂代码。 同样的页面代码写了好几遍,它也不知道拆成可复用组件,导致改一个地方、其他重复的地方全漏掉。时间一长,技术债越滚越大。

怎么防?

  • 写架构 Linter:强制执行架构层面的约束。注意这跟反馈机制里的 Linter 不一样——那个查代码风格语法,这个查架构规则,比如「UI 层不能直接调数据库层」「模块间依赖必须单向」。AI 一旦违反就被自动拦住。
  • Pre-commit Hooks:代码提交前的检查钩子,提交时自动拦截不合规代码。
  • 「垃圾回收」机制(OpenAI 的做法):定期让 AI 扫描代码库,检查有没有偏离架构规范的地方,自动提交修复 PR,持续偿还技术债
  • 每功能一次 git 提交:相当于给项目打存档点,改出问题随时回滚。

看到这你会发现:写规则文件、配工具、拆任务、跑测试、上规范——这些全是程序员做项目时的常规操作。换到 AI 编程场景里,它就叫 Harness。

Harness 不是什么新技术,它本质上是把我们已有的工程经验,系统地应用到 AI 上。 所以有项目经验的人,你积累的工程能力,到了 AI 编程时代一样吃香——越懂工程,越能驾驭 AI。

实战拆解:一个真实项目里,Harness 长什么样

概念讲完,鱼皮用一个全程直播做的真实项目落地了一遍——「万能视频下载总结器」:能从各大平台下载视频、用 AI 总结内容的网站,还做了 SEO/GEO 优化和 Stripe 国际支付。核心下载能力用开源的 YT-DLP,技术栈以 Python 为主。整个开发过程,就是一套完整的 Harness 实践。按企业做项目的四个阶段看:

1. 方案设计阶段 —— 动手写代码前,先自己想清楚核心方案(要什么前端、要不要后端、视频下载怎么实现),并用 AI 全网调研,最后定下 YT-DLP。把思考写成文档关联给 AI,让它在你的方案上补细节。关键动作:开 Plan Mode 让 AI 先出方案、人工确认,而不是一上来就写代码。 AI 出的方案文档里把一些后续才做的功能也排进去了,于是明确告诉它「先完成核心下载功能,一步步来」。这就是上下文架构 + 任务编排在方案阶段的应用。

2. 编码开发阶段 —— 给 AI 装联网能力:配 Firecrawl MCP(抓网页内容)、Context7 MCP(拿最新技术文档),这样 AI 遇到不确定的 API 用法能自己查最新文档,不用过时写法。核心功能做完后,让 AI 沉淀一份总结文档并提交 git。为什么新功能要新开对话? 因为同一个对话框聊久了,上下文会越来越脏、AI 表现下降;新开对话相当于给它一个干净环境,再用文档帮它找回记忆。

3. 测试验证阶段 —— AI 通过 Cursor 内置的 Browser Use 功能自己启动浏览器、输入视频链接、点解析、检查结果,比人工测试方便太多。但 AI 自测不是万能的:

  • B 站视频下载报 403,人工把报错贴给 AI,它很快发现是防盗链问题、自己搞定了。
  • Markdown 渲染卡住,说了好几轮都没修对。后来换个角度描述问题——「会不会是后端 SSE 返回的内容丢了,前端解析当然错?」AI 这才恍然大悟,改后端逻辑就好了。
  • 小技巧:别每次都走「输链接→解析→总结」的完整流程(太慢),让 AI mock 一段 markdown 数据直接测渲染,反馈快得多。

这些都是反馈机制的体现:给 AI 信号让它自我修复,搞不定时人工介入纠偏。Harness 不是完全放手不管,而是把人的精力用在最关键的地方

4. 功能扩展阶段 —— 核心跑通后又加了三个相互独立的小需求(优化 Markdown 排版、思维导图全屏+下载、字幕文件下载)。在提示词里引导 AI 合理规划、用 subagent 并行执行多个子任务。每完成一个就提交代码、更新文档作为检查点。后来做 SEO 优化用了一个 SEO Audit 技能自动分析生成方案;做 GEO 优化时直接复用 SEO 的对话上下文——AI 已经了解项目背景和代码,省了重新读一遍的时间。

怎么最快上手:5 条今天就能用的方法

Harness 本身并不复杂,没什么需要专门去啃的理论。上面项目里的很多操作,都是你现在立刻能用的技巧。按做项目的流程,总结成 5 条:

  1. 做项目前先写好 AGENTS.md:把项目背景、技术栈、代码规范都告诉 AI。
  2. 先让 AI 出方案、人工确认,再动手写代码(Plan Mode)。
  3. 用 MCP 和 Skills 给 AI 配好工具,让它能联网查资料、拿最新信息。
  4. 做完功能一定让 AI 自己跑测试验证,确保真能正常运行。
  5. 每完成一个功能就让 AI 沉淀文档 + 提交代码,作为存档点。

如果你缺乏做项目经验,或觉得自己搭 Harness 太麻烦,可以直接用现成的开源工具:

  • Spec Kit:用的是 SDD(规范驱动开发) 思路——先引导你把需求拆成详细的规范文档,再让 AI 按文档一步步开发,每个阶段都有明确的验收标准。
  • Superpowers:一个 Agent Skills 框架,内置一整套开发工作流——强制 TDD(先写测试再写代码)、两阶段代码审查、子代理协作等,相当于直接给 AI 装了一套完整的项目管理流程。

工具能帮你快速起步,但理解 Harness 的思路,比掌握某个工具更重要。工具一直在变,但「怎么系统地驾驭 AI」这个思路是通用的。想真正掌握,最好的办法还是在实战项目里体会。

最后一层:AI 时代,工程能力才是你最好的 Harness

以前工程师的核心工作是写代码。现在 AI 能帮我们写越来越多的代码了——但这恰恰意味着,我们得把更多精力放在需求分析、方案设计、任务拆解、质量把关这些事上。

能不能用好 AI,取决于你自己的工程能力有多强。

所以别停止做完整的项目。从 0 到 1 走完一整套流程,这个过程里积累的工程经验,就是你驾驭 AI 最好的 Harness。


给正在搭 agent 的人:三条可迁移的判断

抛开「AI 编程」这个具体场景,这套方法论对任何想让 AI 长期靠谱干活的人都成立:

  1. 规则文件别写成大杂烩,写成可索引的目录。 几千行塞一个文件,模型会忽略关键信息——这是 OpenAI 用真金白银换来的教训。主文件给摘要+索引,细节拆分文件按需加载。这条对写任何 agent 的系统提示词都适用。
  2. 「持续靠谱」靠的是闭环,不是单次发挥。 自检(linter/测试/自己开浏览器验)+ 护栏(架构 linter/pre-commit/定期扫描偿还技术债)才是 AI 能长期不跑偏的底座。把验证做成流程的一部分,而不是事后补。
  3. 上下文会变脏,要主动「重置 + 文档找回」。 同一对话聊久了表现下降是普遍规律;正解是新开干净对话、用沉淀的文档把记忆喂回去。这意味着——让 AI 边干边写文档,不是负担,是它下一程的燃料。

说到底,Harness 把一句话讲明白了:未来真正稀缺的不是会用 AI 的人,是懂工程、能给 AI 搭好环境和流程的人。