Harness Engineering:从驾驭模型到构建 AI 工厂

Harness Engineering:从驾驭模型到构建 AI 工厂

2026 年,AI 编程工具的竞争焦点发生了根本性转变:决定 AI 助手好不好用的,不再是模型本身,而是包裹在模型外面的那层"Harness"。同一个模型,在不同的 Harness 下,性能差距可以达到 78% vs 42%。

这篇文章将带你深入了解 Harness Engineering——这个正在重新定义 AI 工程实践的新兴领域。


一、什么是 Harness Engineering?

Agent = Model + Harness
核心公式:Agent = Model + Harness

Harness 的字面意思是"马具/缰绳"——用来驾驭一匹强壮但不受控的马。在 AI 语境下,Harness 就是 LLM 之外的一切:工具定义、记忆系统、权限模型、反馈循环、文档规范、多 Agent 编排……

Harness Engineering 就是设计、构建和维护这套基础设施的工程学科。它的核心理念来自 Mitchell Hashimoto(HashiCorp 联合创始人):

"每当你发现 Agent 犯了一个错误,就花时间设计一个方案,让它永远不再犯同样的错。"

这不是一次性的 Prompt 调优,而是持续积累的基础设施建设


二、从 Prompt 到 Harness:三代演进

AI 工程三代演进
AI 工程的三次范式转移

第一代:Prompt Engineering(2022-2024)

关注怎么问问题。精心设计提示词、少样本学习、思维链(Chain of Thought)……但 Stanford HAI 的研究发现,prompt 优化超过合理基线后,质量提升不到 3%。

第二代:Context Engineering(2025)

由 Dex Horthy 在"12-Factor Agents"框架中提出,关注给模型送什么信息。管理上下文窗口、RAG 检索、工具定义、对话历史……但这仍然局限在单个 Agent 的单次交互范围内。

第三代:Harness Engineering(2026)

关注整个系统怎么运转。跳出单次交互的视角,设计工具编排、权限模型、反馈循环、多 Agent 协作、CI/CD 集成……Harness 层面的改进可以带来 28-47% 的质量提升


三、Harness 的六大核心组件

Harness 六大组件
围绕 LLM 的六层 Harness 组件

1. 文档层(Documentation Layer)

这是 Harness 中最容易上手、回报也最高的部分。

  • CLAUDE.md:Claude Code 的项目配置文件,每次会话自动加载
  • AGENTS.md:Agent 的"团队知识库",记录代码规范、踩坑经验、架构决策
  • .cursorrules:Cursor 的等效配置

Mitchell Hashimoto 的实践:每次 Agent 犯错,就在 AGENTS.md 里加一行规则。日积月累,Agent 变得越来越"懂"你的项目。

# CLAUDE.md 示例
## 代码规范
- 使用 TypeScript strict mode
- 所有 API 端点必须有 Zod schema 验证
- 不允许使用 any 类型

## 常见坑点
- 数据库迁移必须是幂等的
- Redis key 必须设置 TTL
- 前端组件必须支持 SSR

2. 工具定义(Tool Definitions)

Agent 能做什么,取决于你给它什么工具。

  • 内置工具:文件读写、Shell 命令、代码搜索
  • MCP 服务器:通过 Model Context Protocol 扩展能力(数据库查询、API 调用、浏览器操作)
  • 自定义脚本:项目特定的构建、测试、部署工具

Stripe 的做法尤为激进——他们通过 "Toolshed" 连接了 400+ 内部工具到 AI Agent,让 Agent 能直接操作几乎所有内部系统。

3. 权限与安全模型(Permission & Safety)

模型负责"决定做什么",Harness 负责"判断能不能做"——两者必须分离。

  • 分层权限:只读 → 确认后执行 → 自动执行
  • 护栏引擎:阻止 force-push、删除生产数据、暴露密钥等危险操作
  • 沙箱隔离:OpenAI Codex 在完全隔离的沙箱中运行,操作的是代码副本而非线上环境

4. 反馈控制(Feedback Controls / Sensors)

这是让 Agent 能够"自我纠错"的关键。

  • 计算型反馈:测试、Lint、TypeCheck——快速且确定性
  • 推理型反馈:AI 代码审查、语义分析——更慢但更丰富
  • CI 管道:每次提交自动验证,形成持续的质量闭环

5. 前馈控制(Feedforward Controls / Guides)

与其等 Agent 犯错再纠正,不如提前设好"防护栏"。

  • 架构约束:通过自定义 Linter 强制执行模块边界
  • 依赖规则:禁止某些模块间的直接依赖
  • 代码风格:自动格式化、命名规范

6. 编排层(Orchestration Layer)

当你需要多个 Agent 协同工作时,编排层就是"指挥中心"。

  • 任务分解:将大任务拆分为可并行的小任务
  • 状态管理:追踪每个 Agent 的进度和产出
  • 上下文隔离:Claude Code 的子 Agent 各有独立的上下文窗口,互不干扰

四、反馈循环:Harness 的灵魂

Harness 反馈循环
Harness 的核心工作流与复利效应

理解 Harness Engineering 最关键的一点是:它是一个不断积累的复利系统

  1. Agent 犯错 → 测试失败、Lint 报错、类型检查不通过
  2. Harness 捕获错误 → 阻止有问题的代码提交
  3. Agent 自我修复 → 根据错误信息重新生成代码
  4. 工程师更新规则 → 在 CLAUDE.md / AGENTS.md 中添加一条新规则
  5. 永久生效 → 所有未来的 Agent 实例都不会再犯同样的错

这就是 Mitchell Hashimoto 所说的:"每一次犯错都是一次投资。" 随着规则不断积累,Agent 变得越来越可靠——不是因为模型变聪明了,而是因为 Harness 变厚了。


五、实战案例

实战数据对比
来自一线团队的实战数据

OpenAI Codex:百万行代码零人工编写

OpenAI 在 2026 年 2 月披露了一组惊人数据:

  • 一个小团队使用 Codex 构建了 100 万+行代码的产品
  • 零人工编写的代码——所有代码都由 Agent 生成
  • 每天消耗约 10 亿 token(约 $2-3k/天)
  • 5 个月内合并了 ~1500 个 PR

他们的秘诀不是更好的模型,而是用 Elixir 构建的 "Symphony" 编排系统和精心设计的 AGENTS.md 文件体系。

Stripe:400+ 工具接入的 AI 工厂

  • 通过 "Toolshed" 接入 400+ 内部工具
  • 每周由 Agent 合并 1000+ PR
  • "Minions" 系统自动处理 Slack 中的任务请求
  • "Blueprints" 将反馈传感器集成到标准工作流

Claude Code:80+ 模块化组件

  • 每次会话从 80+ 模块化组件中拼装独特的 Prompt
  • 子 Agent(Plan、Explore、Task)拥有隔离的上下文窗口
  • Hooks 系统实现生命周期事件自动化
  • MCP 协议扩展工具能力边界

独立开发者 Peter Steinberger (OpenClaw)

  • 一个人同时运行 5-10 个 Agent
  • 月提交量达 6600+
  • 个人产能堪比一个小型工程团队

六、如何开始你的 Harness Engineering 实践

Level 1:写好你的 CLAUDE.md(10 分钟)

这是投入产出比最高的起点。在项目根目录创建 CLAUDE.md,写入:

# 项目概述
[一句话描述你的项目]

# 技术栈
- 语言:TypeScript
- 框架:Next.js 15
- 数据库:PostgreSQL + Prisma

# 开发命令
- 启动:npm run dev
- 测试:npm test
- Lint:npm run lint
- 类型检查:npx tsc --noEmit

# 代码规范
[你希望 Agent 遵守的规则]

# 已知坑点
[Agent 容易犯的错误]

Level 2:接入反馈循环(30 分钟)

确保你的项目有:

  • 可运行的测试套件
  • Lint 配置(ESLint / Prettier)
  • 类型检查(TypeScript strict)
  • pre-commit hooks(Husky + lint-staged)

有了这些,Agent 的每次修改都会自动得到反馈,形成 "写代码 → 检查 → 修复" 的自动循环。

Level 3:扩展工具能力(1-2 小时)

通过 MCP 服务器给 Agent 接入更多工具:

// .claude/settings.json
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["@anthropic-ai/mcp-server-postgres", "postgresql://..."]
    },
    "github": {
      "command": "npx",
      "args": ["@anthropic-ai/mcp-server-github"]
    }
  }
}

Level 4:多 Agent 编排(进阶)

当你的项目需要处理大型任务时,考虑使用 Ralph 这样的编排工具,让多个 Agent 实例分工合作、自动推进——这正是我们上一篇文章介绍的内容。


七、争议与思考

Harness Engineering 并非没有争议。批评者认为这不过是给 CI/CD、Lint、文档规范这些老概念贴了个新标签——"我们做了二十年的软件工程最佳实践,现在换个名字就变成新学科了?"

这个批评有一定道理。但支持者认为,关键区别在于:

  1. 系统性:传统实践是分散的,Harness Engineering 将它们统一为一个围绕 AI Agent 的系统性框架
  2. 受众变了:这些基础设施现在不只是给人用的,还要给 AI 用——设计思路需要调整
  3. 复利模型:传统规范是静态的,Harness 是在与 Agent 的持续交互中动态积累的

无论你怎么看这场命名之争,有一点是确定的:在模型能力日趋趋同的今天,你围绕模型构建的基础设施,比选择哪个模型更重要


总结

Harness Engineering 的核心启示很简单:

不要追求更好的模型,而是为现有模型构建更好的工作环境。

就像一个优秀的工程团队,不只依赖个人能力,还依赖流程、工具链、Code Review、CI/CD、文档体系。AI Agent 也一样——它需要的不只是一颗聪明的"大脑",更需要一整套精心设计的"工作环境"。

这就是 Harness Engineering 的意义:从驾驭模型,到构建 AI 工厂

延伸阅读:

Read more

Claude Code CLI + Ralph:让 AI 自动完成大型编程任务的终极方案

TL;DR 当你的编程任务大到一个 AI 对话窗口装不下时,Ralph 会帮你把任务拆成小块,让 Claude Code CLI 一个接一个地自动完成——每轮都用全新的上下文窗口,不会越写越糊涂。 一、什么是 Ralph? Ralph 是一个开源项目(GitHub 16k+ Stars),基于 Geoffrey Huntley 提出的 "Ralph Pattern" 构建。它的核心理念很简单: 不要让 AI 在一个漫长的会话里做完所有事情,而是把大任务拆成小故事,每个故事用一个全新的 AI 实例来完成。 这解决了 AI 编程中最常见的痛点——上下文窗口耗尽。当对话越来越长,AI 的输出质量会明显下降。Ralph 通过「每轮一个新实例」的方式,

By Fuyu Jia