AI 编程与智能体工程 · 第 2 期

决定 AI 编程上限的不是模型,是 harness

智能体运行环境六大组件 · agent harness engineering

2026 年,模型已经够强了,为什么你的编码 Agent 还是会删库、跑偏、烧钱?答案不在模型里,在模型之外那层脚手架——harness。模型是引擎,harness 是底盘、刹车和方向盘。引擎再好,没有刹车你不敢上路。
⏱ 约 13 分钟 🎯 想构建/深度定制编码 Agent 或内部 Agent 平台的工程师 📦 源:agent-harness 教程

01harness 是什么:模型之外的一切

Addy Osmani 在《Agent Harness Engineering》(2026-04) 里给了一个已成共识的定义:

编码智能体 = 模型 + 提示词 + 工具 + 上下文策略 + Hook + 沙箱 + 反馈回路

等号右边除了"模型",剩下全是 harness。它已经长成一门独立的工程学科——决定一个 Agent 上限的,往往不是你用了哪个模型,而是你这层脚手架搭得好不好。

一个对比:同一个 Claude 3.5,A 团队接上 6 个工具、无审批、无沙箱,一周删了两次测试库;B 团队同样的模型,配 allowlist + 审批门 + 容器沙箱,跑半年没出过事。差别全在 harness。

harness 是模型之外的一切,
也是模型之上的一切。
灏天文库 · AI 编程与智能体工程 P.05

02六大组件全景:点一个看它解决什么

harness 由六个组件构成,每个组件解决一类"模型自己解决不了"的工程问题。点下面任意一个,看它解决什么、设计上怎么取舍。

🧩 六大组件拼图
点任意组件,看它解决什么问题 + 设计取舍。
模型决定能想多远,
harness 决定敢做什么。
灏天文库 · AI 编程与智能体工程 P.06

03危险操作多闸门护栏

六个组件里,权限门 + 沙箱 + Hook 三件套合起来构成"多闸门护栏"——任何危险操作要过好几道闸,单闸失守不会出事。点下面任意一个操作,看它会被哪道闸拦下。

🛡️ 危险操作拦截推演
点任意操作,看它要过哪几道闸、哪道先拦住它。

← 点上方操作看拦截链

设计原则:纵深防御(defense in depth)。不要指望单道闸 100% 可靠——权限门可能漏判、沙箱可能配置错、Hook 可能被绕过。三道闸串联,单点失守不致命,这才是"敢上线"的底气。

最小权限不是限制能力,
是放大可信度。
灏天文库 · AI 编程与智能体工程 P.07

04共性骨架:主流 harness 都长什么样

解剖 Claude Code、Codex CLI、OpenClaw 三个公开实现,剥掉产品细节后,剩下的是同一张骨架:

组件Claude CodeCodex CLIOpenClaw
Agent 循环有 · 感知-决策-行动有 · 同构有 · 同构
工具系统Schema 注册 + 路由同同
权限门allowlist + 审批沙箱模式 + 审批策略allowlist + 多闸门
沙箱工作区隔离容器隔离进程 + 文件边界
上下文repo map + 压缩同同
Hook编辑后 lint/格式化测试反馈自愈配置化执行点

结论:六大组件不是某家产品的设计,是所有可上线编码 Agent 的最小骨架。你自研时少哪一块,那块就是未来的事故现场。

05带走这套清单

✅ harness 工程 6 条可执行规则

  1. 把 Agent 拆成六块看:循环/工具/权限/沙箱/上下文/Hook——少一块就是事故现场。
  2. 权限走 allowlist 而非 blocklist:默认拒绝,只放行确认安全的操作。
  3. 危险操作配多闸门:权限门 + 沙箱 + Hook 至少三道,纵深防御不靠单点。
  4. 沙箱隔离执行:文件系统 + 网络边界,Agent 写不到生产、出不去内网。
  5. Hook 做编辑后动作:格式化、lint、类型检查自动化,把"一次成功"变"可重复流水线"。
  6. 上下文单列预算:参考第 1 期,harness 的上下文组件就是上下文工程的应用层。
敢上线的 Agent,
不是模型强,是闸多。
灏天文库 · AI 编程与智能体工程 P.08