AI Agent Harness 六大组件全解析

来源信息


核心公式

Agent = Model + Harness

模型提供智能,Harness 让智能变得有用。

如果你不是模型本身,那你就是 Harness 的一部分。

关键洞察:过去两年行业聚光灯在模型上,但真正在生产环境创造价值的是 Harness。Harness 的工程空间还几乎未被充分探索——这才是 AI Agent 真正的竞争壁垒。


裸模型的四大硬伤

硬伤 缺失能力 Harness 对应组件
无法维持跨会话状态 长期记忆 文件系统 + 记忆(AGENTS.md)
无法执行代码 行动能力 Bash + 沙箱
无法获取实时知识 感知能力 Web Search + MCP
无法搭建工作环境 环境操控 文件系统 + 上下文工程 + 编排

Harness 六大组件详解

1. 文件系统——最基础的原语

核心能力

  • 工作空间与中间结果存储(突破上下文窗口限制)
  • Agent 协作的基础(共享白板)
  • 版本追踪与错误回滚(Git 集成)

关键洞察:文件系统 + Git 给了 Agent"试错"的能力。没有这个能力,Agent 只能小心翼翼地走;有了这个能力,Agent 可以大胆尝试——反正随时可以回滚。

设计原则

  • 目录结构要清晰且约定俗成
  • 文件粒度要适中(一个文件对应一个模块/职责单元)
  • 元数据要丰富(文件名、README、ADR)

2. Bash + 沙箱——让 Agent 从"说"到"做"

自我验证循环:写 → 跑 → 看 → 修 → 再来

实际效果:具备自我验证循环的 Agent,编程任务完成率比"一次性生成"高出 40%–60%。

为什么必须沙箱

  • 资源限制(CPU、内存、磁盘)
  • 网络隔离
  • 文件系统隔离
  • 超时机制

技术选型

  • Docker 容器(主流,隔离性好)
  • gVisor / Firecracker(轻量,毫秒级启动)
  • WebAssembly(边缘场景)
  • Nix / 纯函数式环境(声明式,环境一致性)

3. 记忆(AGENTS.md)——不改权重也能给模型加知识

工作机制

  • 写入阶段:Agent 将工作中产生的知识写入 AGENTS.md
  • 存储阶段:文件存于项目目录,人类可阅读编辑
  • 注入阶段:下次启动时自动注入上下文

核心等式:上下文注入 = 不改权重给模型加知识

最佳实践

  • 层次化存放(根目录全局知识 + 子目录局部知识)
  • 结构化书写(项目架构、技术约束、编码规范、已知陷阱、决策记录)
  • 定期清理(过时知识比没有知识更危险)
  • 双向可编辑(人类与 Agent 的知识契约)

4. Web Search + MCP——突破知识的"时间牢笼"

Web Search 解决的问题

  • 查询构建(自然语言 → 精准搜索关键词)
  • 结果筛选(过滤低质量来源)
  • 内容提取(提取核心内容)
  • 信息整合(处理冲突、去重、排序)

MCP(Model Context Protocol)

  • Anthropic 2024 年底推出的开放协议
  • "AI 世界的 USB 接口"
  • 让 Agent 能连接数据库、内部 Wiki、Jira、GitHub、监控系统等

协同效应

MCP 连接监控系统 → 获取错误日志
MCP 连接代码仓库 → 查看相关代码和变更历史
Web Search 搜索错误信息 → 查找社区解决方案
MCP 连接项目管理工具 → 检查已知问题
Agent 综合所有信息 → 生成修复方案并提交 PR

5. 上下文工程——对抗 AI 系统的"熵增"

Context Rot(上下文腐烂)问题

  • 信噪比下降(重要信息被冗余内容淹没)
  • 矛盾信息累积(早期决定被推翻但旧信息仍在)
  • Token 浪费
  • 推理质量退化("大海捞针"问题)

核心策略

  • 压缩:定期摘要压缩历史上下文
  • 工具输出卸载:大输出存文件,上下文只保留摘要
  • Skills 渐进加载:按任务阶段动态加载知识
  • 分层上下文结构:核心层(始终保留)/ 工作层(按需更新)/ 历史层(逐渐压缩)

关键地位:上下文工程是 Harness 的"元能力",影响所有其他组件。Harness 本质上就是好的上下文工程的交付机制。


6. 编排 + Hooks——让单兵作战变成集团军

编排解决的问题

  • 子 Agent 调度
  • 任务分发
  • 模型路由(成本/质量平衡)
  • 结果聚合

编排模式演进

  • 线性管道(Sequential Pipeline)
  • DAG 编排(Directed Acyclic Graph)
  • 动态编排(Dynamic Orchestration)
  • 层级编排(Hierarchical Orchestration)

Hooks 的作用:注入确定性

  • Lint 检查
  • 续接(Continuation)
  • 格式约束
  • 安全过滤
  • 成本控制

核心价值:用确定性规则约束概率性模型输出。"概率性生成 + 确定性校验"是当前 Agent 工程最有效的质量保障策略。


System Prompt:贯穿所有组件的"神经系统"

四个角色

  1. 定义角色边界("你是谁"和"你不是谁")
  2. 注入领域知识(零成本第一入口)
  3. 约束安全规则(第一道防线)
  4. 贯穿所有组件(影响文件系统、Bash、记忆、搜索、上下文、编排)

关键洞察:写 System Prompt 就是在设计 Harness 的行为规范。一个好的 System Prompt 就像一部好的公司章程——它不直接做任何事,但它决定了所有事怎么做。


深度总结

核心矛盾

Harness 设计本质是在解决以下矛盾:

矛盾 解决方案
模型概率性输出 vs 工程确定性要求 Hooks 兜底检查
上下文窗口有限 vs 任务信息量大 文件系统 + 上下文工程
知识静态固化 vs 世界动态变化 Web Search + MCP
单 Agent 能力有限 vs 任务复杂度高 编排 + 多 Agent 协同
模型无记忆 vs 工作需要连续性 AGENTS.md 记忆机制

工程启示

  1. 模型决定下限,Harness 决定上限 —— 不要急着换更强模型,先优化 Harness
  2. 试错能力是核心 —— 文件系统 + Git + 沙箱让 Agent 敢于尝试
  3. 上下文是元能力 —— 所有组件本质上都在解决"如何在正确时间把正确信息送到模型面前"
  4. 确定性约束概率性 —— Hooks 用规则兜住质量底线