Harness Engineering
AI Agent 的驾驭工程

当 AI Agent 成为团队一员,如何管理这位"超级实习生"?Harness Engineering 不是更好的提示词,也不是更强的模型, 而是优化模型运行环境与机制的系统性工程哲学——将 AI 的智能转化为可靠、可控、可规模化的生产力。

SOTA 模型
野马
+
Harness
缰绳
=
Agent
千里马
3
公司实践对比
5
执行特征
3
缺失原语
6
设计原则

什么是 Harness Engineering

2026 年 2 月,HashiCorp 联合创始人 Mitchell Hashimoto 在博客《My AI Adoption Journey》中首次提出并命名了 Harness Engineering。 Harness 原意为马具——Agent 是牛马,Harness 就是缰绳。马力足够大,但得有缰绳才能往对的方向跑。

随后 LangChain 的 Vivek Trivedi 在《The Anatomy of an Agent Harness》中将其系统化阐述,核心公式为 Agent = Model + Harness。 Harness 即模型之外的一切:代码、配置、执行逻辑、工具、状态管理、反馈循环等。

核心主张

Harness Engineering 不是一个需要焦虑追捧的全新发明,而是对一系列现有工程实践的系统性总结与命名。 不改模型,只改模型外面的运行环境。模型升级了,Harness 自动受益;模型不变,Harness 也能大幅提高 Agent 的表现。

三段演进脉络

从 Prompt Engineering 到 Context Engineering 再到 Harness Engineering,每次迁移指向同一个方向: 从关注"单次交互的质量"到关注"系统级的可靠运行"。

Prompt Engineering
优化「怎么跟 AI 说话」
关注单次指令的准确性
2024
Context Engineering
优化「给 AI 什么信息」
管理多轮交互的状态与记忆
2025
Harness Engineering
优化「AI 在什么系统里干活」
编排、验证和故障恢复
2026

前两层管的是单次对话的质量,第三层负责 Agent 能不能连续工作几个小时不翻车。

R.E.S.T 模型

为了让 Agent 从"有趣的玩具"变为"可靠的工具",必须满足四个核心目标:

🛡️
R
Reliability
失败可恢复、操作幂等性、行为一致性
E
Efficiency
Token 预算控制、低延迟响应、高吞吐量
🔒
S
Security
最小权限、沙盒执行、输入输出过滤
🔍
T
Traceability
全链路追踪、决策可解释、状态可审计

PPAF 闭环:Agent 的运行机制

Harness Engineering 将 Agent 的核心运行抽象为持续循环的四阶段过程。 Harness 的工程化体系解构为四个核心维度,每个维度都与 PPAF 闭环的一个或多个环节紧密耦合。

👁️
Perception
感知:翻译外部世界为 Prompt
🧠
Planning
规划:多步推理与任务拆解
🔧
Action
行动:Function Calling 执行
🔄
Feedback
反思:结果注入上下文驱动迭代
↻ 持续循环直到达成目标或触发终止条件

顶层架构:REPL 容器

在架构层面,Harness 的本质是一个带有边界控制、工具路由与确定性反馈的 REPL 容器。 它包裹在 LLM 这个非确定性的"大脑"之外,将推理能力接入确定性的工程世界。

Harness = 带边界控制的 REPL 容器
R
Read
上下文管理器将外部世界"翻译"为结构化 Prompt
E
Eval
调用拦截器捕获意图,路由到工具执行器
P
Print
反馈汇编器捕获结果,组装为结构化"观测"
L
Loop
不断迭代直到达成目标或触发终止条件
↻ LLM 的推理能力通过 REPL 循环接入确定性工程世界
状态分离原则

必须将 LLM 严格视为无状态计算单元(CPU),所有跨轮次状态存储在 Harness 的外部状态管理器。 试图用 Prompt Engineering 让 LLM 自行维护复杂状态是反模式——会导致系统行为混乱、不可预测且难以调试。

三家公司实践对比

OpenAI、Anthropic、LangChain 各自从不同角度落地 Harness Engineering,形成了差异化的实践路径,但指向高度一致的核心模式。

架构约束与系统级治理
百万行代码实验:3 人团队 5 个月,零手写代码,1500+ PR
  • AGENTS.md 从"百科全书"重构为 100 行"索引地图"
  • 渐进式披露:Agent 从小而稳定的切入点按需查阅知识库
  • 自定义 Linter 错误信息注入修复指令,形成复用效应
  • Code GC 定期后台扫描,将"黄金原则"编码为自动化重构
  • 知识可见性框架:Agent 看不到的知识等于不存在
工作流拆分与状态追踪
Generator + Evaluator:受 GAN 启发的三智能体架构
  • Planner 生成规格 → Generator 连续构建 → Evaluator 全面 QA
  • 双重智能体架构解决跨会话状态连贯性
  • 增量式进展:强制将大任务分解为小步骤
  • 关键教训:评估器价值取决于任务是否超出模型独立能力
  • 模型进步使 Harness 边界外移而非消失
第一性原理组件推导
从期望能力逆向推导 Harness 组件设计
  • 持久化存储 → 文件系统抽象
  • 自主解决问题 → Bash + 编码能力
  • 安全执行代码 → 沙箱隔离
  • 记忆与获取新知识 → 上下文注入 + 搜索工具
  • 观察执行结果 → 日志 + UI 数据提供

差异化侧重对比

公司侧重方向核心机制标志性产物
OpenAI架构约束与系统级治理自定义 Linter + Code GC索引地图式 AGENTS.md
Anthropic工作流拆分与状态显式追踪初始器/编码器分离 + JSON 清单Generator-Evaluator 架构
LangChain第一性原理组件化与标准化能力 → 组件推导框架文件系统 + 沙箱 + Bash
三家公司的共同模式

文件系统 + 版本控制是 Agent 的最佳协作平面;浏览器、测试、Linter 让 Agent 自己发现问题(自我验证的反馈回路); 强制将大任务分解为小步骤(增量式进展)。三者共同验证:"Agents aren't hard; the Harness is hard."

生产级 Agent 的深层挑战

Runta 创始人 Guanlan 的分析为 Harness Engineering 提供了更根本的底层逻辑: Harness 不只是"给 Agent 系缰绳"——它必须在基础设施层面回答 Agent 容错单位从进程变成语义执行后的全部问题。

Agent 的五大执行特征

任何在生产中跑过超过 10 步的 Agent 都会遇到这个结构性困境——五个属性被绑在同一条执行链上:

01
长程运行
崩溃是统计必然,而非异常
02
敌意输入
处理的内容随时可能包含注入指令
03
真实权限
持有 API key、数据库凭证、云平台 token
04
不确定决策
相同 prompt,不同时间点产生不同输出
05
真实副作用
每一步都可能改变外部状态,且不可撤回

两个结构性错位

01
威胁模型错位
整个行业在用服务器代码的安全假设运行 Agent。Agent 的威胁模型是浏览器——读取的内容是敌意的,持有真实密钥。
服务器模型 浏览器模型
02
执行模型错位
现有 Infra 为确定性、短时、无状态任务设计。Agent 的执行是概率性、长程、带状态的。
确定性短时 概率性长程
Execution Isolation
把代码关起来
Semantic Isolation
把能力与副作用关起来

三条缺失的原语

正确的 Agent Infra 需要三条原语,有严格构建顺序:

01
Effect Log
副作用写前日志
将外部副作用做成 write-ahead log,tool call 按可恢复语义分类(纯读 / 幂等写 / 不可逆写 / 读写混合),恢复时执行对应策略。
02
Capability Gateway
能力网关
通过临时令牌中介所有外部访问,权限边界在 Infra 层强制执行,而非依赖 Agent 自律。
03
Fork Recovery
分叉恢复
从精确决策断点续跑,保留完整语义闭包。Agent Infra 的正确指标不是 Uptime,而是 Resumability。

六大设计原则

在构建 Harness 时,必须以这六大设计原则应对非确定性、上下文有限和安全边界模糊三大核心约束:

🔥
为失败而设计
异常和失败是常态,所有组件需容错、重试和优雅降级
📜
契约优先
所有交互由明确的机器可读契约(Schema / API / Event)定义
🔐
默认安全
安全不是事后功能,而是设计出发点。最小权限、零信任、纵深防御
✂️
决策与执行分离
"决定做什么"与"如何做"在逻辑和物理上解耦
📊
万物皆可度量
每个行为、决策、资源消耗都可度量。没有度量就没有优化
🔄
数据驱动进化
每次运行都是学习机会,形成数据采集→标注→回流→更新闭环

实现架构

沙盒执行:四级隔离

Agent 需要一个安全的环境独立运行而不破坏系统。默认推荐容器级隔离(L2),对不可信代码引入轻量虚拟机(L3)。

L1 进程级
chroot / namespaces / seccomp
可信内部工具
L2 容器级
Docker / containerd
大多数工具执行的默认选择
推荐
L3 轻量虚拟机
Firecracker
多租户 / 不可信代码
L4 完整虚拟机
KVM / QEMU
极端安全需求

Token 转化流水线

Harness 的核心挑战之一是在"无限"的外部世界状态与"有限"的 LLM Token 序列之间建立高效映射。 Token 转化流水线在每轮调用前将多源信息规约为可控 Prompt:

📥
信息源收集
📈
相关性排序
🗜️
压缩与摘要
💰
预算分配
🧩
模板组装
关键思想

把注意力管理变成一个外部工程问题。与其指望模型"自己想清楚该关注什么",不如通过 Token 转化机制主动构建上下文,把有限的窗口留给真正重要的信息。

度量体系

任务效能
任务成功率
指令遵循度
工具使用有效性
服务质量
端到端延迟
首次响应延迟
错误率
资源效率
平均 Token 消耗
平均工具调用次数
安全合规
策略拒绝率
安全事件数

Harness Scaling:动态进化

在 Agentic Scaling Infra 框架中,Harness 不仅是 Agent 执行正确性的保障,还需要回答一个更深的问题:它自身能不能形成 scaling? 真正有价值的 Harness 应具备可泛化、可学习、可组合的特征。

📝
执行轨迹积累
每次 Agent 执行留下可复用的决策路径
🔁
验证反馈利用
失败案例沉淀为避免同类错误的约束规则
🧰
工具生态扩展
可组合的 Skills / MCP 工具持续增加
📋
任务模板复用
相似任务的规划策略可迁移
⚙️
策略持续优化
权限边界、回滚策略随执行经验粗化
从静态缰绳到动态操作系统

一个成熟的 Agentic Scaling Infra 应该让每一次 Agent 执行都不只是一次孤立调用,而是成为改进未来执行正确性的反馈来源。 Harness 的 scaling 不表现为参数规模增长,而表现为执行经验的持续沉淀与系统策略的自动演化。

严谨性转移:ThoughtWorks 2026

ThoughtWorks 2026 闭门研讨会指出:当 AI 接管代码编写后,工程严谨性并未消失,而是转移到五个方向。 其中风险映射是新的核心工程纪律——组织不应再问"有人评审过这段代码吗",而应问"如果这段代码出错,爆炸半径是什么"。

📝
规格说明评审
评审重心从代码转移到规格说明
🧪
测试套件
TDD 重定义为非确定性生成的确定性验证
🏷️
类型约束
利用语言特性约束 AI 生成代码
💥
风险映射
按业务爆炸半径对代码分级验证

这标志着工程从工匠模式(每一行人工评审)转向风险管理模式(验证投入与风险匹配)。

结论

Harness Engineering 的本质

把那些模型做不好的事情,一件件拿出来,用工程方法在系统层面解决。在大语言模型能力到达天花板之前, 这可能是提升 Agent 稳定性的关键路径。缰绳的终极目的不是束缚,而是更安全、更彻底地释放。

工程师的核心职责从未消失,而是完成了一次关键的升华:
从代码的创作者,变成创造过程的守护者。