Harness Engineering:给千里马套上缰绳——从 Claude Code 实战看 AI 工程化的终极形态

2025 年下半年,Claude Code 接棒 Cursor,在 AI Coding 领域掀起了一场范式革命。但 Claude Code 真正的革命性,不在于它有多聪明,而在于它终于给 LLM 这匹千里马套上了挽具。

看看下面这段终端输出,你能看出什么门道?

scss 复制代码
❯ /init
  Thought for 8s, searched for 1 pattern, read 2 files

● 这是一个极简项目,现有的 CLAUDE.md 已经相当准确。我只有一个小建议:
  建议的改进:项目概述可以提到它同时包含加法和减法运算,这样描述更准确。

● Update(CLAUDE.md)
  ⎿  Added 1 line, removed 1 line
      6 -极简Node加法工具
      6 +极简Node加减法工具 --- 包含 `add` 和 `sub` 两个函数

❯ 审核index.js并作出es6风格的修改

  Thought for 18s, read 1 file

● 改进点:sub 函数用参数解构替代 reduce 中的索引判断

● Update(index.js)
  ⎿  const sub = (first, ...rest) => rest.reduce((diff, n) => diff - n, first ?? 0);

● Bash(node F:/add-demo/index.js)
  ⎿  add(1, 2) = 3
     add(1, 2, 3, 4, 5) = 15
     sub(10, 3) = 7
     sub(100, 20, 30, 5) = 45

Claude Code 在这段对话里做了四件事:自动检索项目文件 理解项目结构、读取并更新记忆文件 CLAUDE.md审阅代码并给出修改建议修改后自动运行验证。整个过程没有提示词模板、没有角色扮演、没有思维链------它自己知道该做什么。

这背后,是 AI 工程化从 Prompt Engineering 到 Context Engineering,再到 Harness Engineering 的范式跃迁。这篇文章用 Claude Code 的实战过程,把 Harness Engineering 这件事讲透。


一、LLM 的四个结构性缺陷

在理解 Harness Engineering 之前,先要理解它要解决的问题。LLM 有四个天生的结构性缺陷,任何一个都足以让它在生产环境中翻车:

缺陷一:无状态(Stateless)。 每次对话结束,模型什么都不记得。上一轮你告诉它"项目用的是 Node.js 20 + ES6",下一轮它就忘了,你得重新说一遍。这不是 bug,是 Transformer 架构的底层设计决定的------模型没有持久记忆。

缺陷二:无法主动操作外部世界。 模型只能生成文字和图片,不能读写文件、不能查询数据库、不能调用 API。复杂项目里文件系统、浏览器、终端、MCP 工具、Skills 模块------管理起来头疼,模型本身一个都碰不到。

缺陷三:输出是概率性的。 同样的输入,可能产出不同的输出。写文章时这是优势(文无第一),但写代码时这是灾难(武无第二)。你不会希望同一个需求,每次生成出来的代码逻辑都不一样。

缺陷四:上下文窗口有限。 即使 DeepSeek V4 Flash 有 100 万 Token 的超长上下文,相对一个几十万行代码的项目来说,这仍然不够。模型不能无限处理信息,必须有所取舍。

这四个缺陷,任何一个单独拎出来都不致命,但四个叠加在一起,意味着:裸的 LLM 根本没法独立完成任何有意义的工程任务。 它需要一套外部系统来弥补这些缺陷------这就是 Harness Engineering 存在的理由。


二、Harness 是什么:引擎和车的比喻

Prompt Engineering 教会了我们怎么跟模型说话。Context Engineering 教会了我们怎么给模型提供背景信息。Harness Engineering 更进一步------它给模型装上了一整套"挽具"。

想象你有一台 V8 发动机,动力澎湃,但它本身哪也去不了。你需要变速箱、刹车、方向盘、仪表盘、底盘------把这些装在一起,才是一辆能上路的车。

模型就是那台 V8 引擎。Harness 就是装着引擎的车。

Harness Engineering 不是某个具体的工具或框架,而是围绕 LLM 构建的一整套工程化基础设施的总称。它要做的,是在模型的结构性缺陷之上,建造一套系统,让模型可以稳定、重复地完成原本无法完成的任务。

Harness 有四个核心层级:

层级 解决的问题 典型手段
记忆层 无状态 CLAUDE.mdagents.md、项目记忆文件
工具层 无法操作外部世界 MCP、Skills、文件系统、终端
控制层 概率性输出 Loop 循环、规则围栏、质量校验
上下文层 窗口限制 智能检索、代码库索引、动态上下文组装

四个层级中,记忆层是最基础、也是最容易被忽视的一层。没有记忆,模型每次对话都是从零开始,后续的工具、控制、上下文都无从谈起。


三、记忆层:CLAUDE.md 是如何工作的

Claude Code 最核心的创新,不是聊天界面,不是代码生成,而是一个看似不起眼的文件:CLAUDE.md

这个文件的内容很简单------一个极简 Node 加减法工具的 CLAUDE.md 长这样:

markdown 复制代码
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## 项目概述
极简Node加减法工具 --- 一个演示项目,包含 `add`(加法)和 `sub`(减法)两个函数,所有逻辑集中在单一入口文件。

## 技术栈
- Node.js 原生 JS,仅使用内置模块,不引入第三方 npm 包

## 目录规范
- 入口文件:`index.js`,所有代码写入该文件,不拆分文件

## 代码要求
1. 函数必须加单行注释,代码极简,拒绝冗余
2. 输出结果用 `console.log` 清晰打印
3. 必须提供调用示例
4. 代码全面使用es6+,如果有es6+代码,直接修改

## 运行
node index.js

这个文件干了什么?它把项目最关键的信息------项目概述、技术栈、目录规范、代码要求、运行命令------全部结构化地写下来,作为 Claude Code 每次对话的"导航地图"。

但 Claude Code 不是让你手动写这个文件。/init 命令会自动扫描项目 ,读取所有文件,理解项目结构,然后生成或更新 CLAUDE.md。上面的终端会话里,Claude Code 扫描了项目后,发现 CLAUDE.md 里写的是"加法工具",但 index.js 里实际有 addsub 两个函数,于是自动把描述改成了"加减法工具"。

这就是记忆层的核心逻辑:不是让模型记住对话,而是让模型在每次对话开始时,都能读到一份项目最关键的信息摘要。 每次 Prompt 发出时,CLAUDE.md 的内容都会自动注入到上下文中,解决了"无状态"的问题。

/init 的另一个重要行为是:CLAUDE.md 改变后,需要重新执行 /init 来更新记忆。 这是一个持续迭代的过程------项目在演进,记忆文件也在演进。


四、案例驱动:先理解,再动手

Claude Code 的工作方式,和传统 AI 编程工具有一个根本性的区别:它不会一上来就生成代码。

回到终端会话。当用户说"审核 index.js 并作出 ES6 风格的修改"时,Claude Code 的流程是:

  1. 思考 18 秒------不是卡住了,是在检索项目文件、读取 CLAUDE.md 中的规范
  2. 读取 index.js------理解当前代码的写法
  3. 给出分析------"当前的 index.js 已经使用了 ES6+ 语法,但仍有一处可以改进:sub 函数可以通过参数解构使代码更简洁"
  4. 精准修改 ------只改一行,把 (...nums) => nums.reduce((diff, n, i) => i === 0 ? n : diff - n, 0) 改成 (first, ...rest) => rest.reduce((diff, n) => diff - n, first ?? 0)
  5. 自动验证 ------运行 node index.js,确认所有输出不变

对比一下传统 AI 编程工具的做法:你给个 prompt,它直接吐一段代码,对不对你自己试。Claude Code 的做法是先检索、再理解、再分析、再修改、再验证------每一步都基于 CLAUDE.md 中定义的项目规范。

这就是"案例驱动"的核心:不要急于生成代码。先让 AI 理解项目的全貌,再让它动手。

Claude Code 在 CLAUDE.md 的指导下,知道这个项目用 Node.js 原生 JS、必须用 ES6+、要有注释和示例。所以它不会引入第三方包,不会用 CommonJS 的 require,改完代码后会自动跑 node index.js 验证。这些不是用户告诉它的,是从 CLAUDE.md 里读到的。


五、从 CLAUDE.md 到整个 Harness 体系

CLAUDE.md 只是记忆层的入口。完整的 Harness 体系还包括:

工具层(MCP + Skills)。 MCP(Model Context Protocol)是连接 LLM 和外部世界的标准协议,让模型可以读写文件、查询数据库、调用 API。Skills 是模型的可复用能力模块,比如"生成单元测试"、"分析代码复杂度"。两者结合,模型的能力边界从"生成文字"扩展到"模型 + 工具 + 数据"。

控制层(Loop + 规则围栏)。 Loop 循环让 AI 自动迭代,生成结果后自动校验,不满足要求就重试,直到达标。规则围栏定义 AI 绝对不能做的事------比如不能删除用户文件、不能修改生产配置。这两层保障,让 AI 的输出从"概率性"走向"确定性"。

上下文层(智能检索 + 动态组装)。 代码库大了,不能把所有文件都塞进上下文窗口。智能检索让模型只读相关的文件,动态上下文组装让模型在需要时自动获取更多信息。Claude Code 的"searched for 1 pattern, read 2 files"就是这一层的体现。

四层叠加,构成了一套完整的工程体系:

markdown 复制代码
CLAUDE.md 记忆层(项目规范、技术栈、约束)
        ↓
MCP + Skills 工具层(文件系统、终端、外部 API)
        ↓
Loop + 规则 控制层(自动迭代、质量校验、安全围栏)
        ↓
智能检索 上下文层(按需读取、动态组装)
        ↓
LLM 推理(核心引擎)
        ↓
自动验证(运行测试、检查输出)
        ↓
确定性交付

当你用 /init 初始化项目记忆,用自然语言描述需求,Claude Code 自动检索、分析、修改、验证------整套流程的背后,就是 Harness Engineering 在运转。


六、总结:Harness Engineering 正在重新定义 "AI 开发"

回到文章开头那段终端会话。Claude Code 在几分钟内完成了:扫描项目、更新记忆文件、分析代码风格、精准修改一行代码、自动运行验证。整个过程用户只说了两句话:/init 和"审核 index.js 并作出 ES6 风格的修改"。

这不是魔法,是 Harness Engineering 的工程化成果。

从 Prompt Engineering 到 Context Engineering 再到 Harness Engineering,AI 工程化的每一步都在解决一个核心问题:

范式 核心问题 核心手段 时间
Prompt Engineering 模型听不懂人话 精确指令、角色扮演、思维链 2022-2023
Context Engineering 模型不知道背景 RAG、代码库索引、结构化配置 2024-2025
Harness Engineering 模型输出不可控 记忆层、工具层、控制层、上下文层 2025-2026

Harness Engineering 时代,CLAUDE.md 就是你的项目记忆文件,/init 就是你的项目初始化命令。不要一上来就写代码,先让 AI 理解你的项目------技术栈、规范、约束、目录结构。把这些写进 CLAUDE.md,每次对话自动带上。

模型是 V8 引擎,Harness 是装着引擎的车。引擎再牛,没有变速箱、刹车、方向盘,这车没法上路。2026 年的 AI 开发,不再是"写 Prompt"的竞赛,而是"搭 Harness"的竞赛。

在模型之上,是 Harness 的工程。在模型之下,是数据的地基。千里马已经就位,套上挽具,它才能跑得又快又稳。

相关推荐
小林ixn1 小时前
从“酸辣土豆丝”到“马铃薯做法”:手把手教你用 RAG 实现语义搜索
人工智能·llm
小林ixn1 小时前
用 100 行代码手搓一个 MCP Server,让 LLM 直接读你本地文件
面试·llm
组合缺一2 小时前
用 ChatModel 构建 LLM 驱动的 Java 应用
java·开发语言·ai·llm·solon·rag
CoderJia程序员甲2 小时前
GitHub 热榜项目 - 周榜(2026-07-04)
ai·大模型·llm·github
带刺的坐椅2 小时前
ReActAgent 使用指南:构建会思考、能行动的 AI Agent
java·ai·llm·solon·loop·react-agent
Hyyy3 小时前
Opencode是怎么设计的
llm·agent·ai编程
Hyyy12 小时前
如何设计Agent的Harness
llm·agent·ai编程
董厂长12 小时前
从 Claude Code 放弃 RAG 说起:实际项目中如何合理创建知识库
人工智能·llm
武子康14 小时前
调查研究-211 AgentBound 深度解析:AI Agent 不只要“有权限”,还要有可验证的行为治理
人工智能·llm·agent