AI Agent Harness 六大组件全解析
来源信息
- 作者:李伟山
- 发布方:腾讯云开发者
- 发布时间:2026 年 4 月 1 日
- 原文链接:一文讲透如何构建 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:贯穿所有组件的"神经系统"
四个角色:
- 定义角色边界("你是谁"和"你不是谁")
- 注入领域知识(零成本第一入口)
- 约束安全规则(第一道防线)
- 贯穿所有组件(影响文件系统、Bash、记忆、搜索、上下文、编排)
关键洞察:写 System Prompt 就是在设计 Harness 的行为规范。一个好的 System Prompt 就像一部好的公司章程——它不直接做任何事,但它决定了所有事怎么做。
深度总结
核心矛盾
Harness 设计本质是在解决以下矛盾:
| 矛盾 | 解决方案 |
|---|---|
| 模型概率性输出 vs 工程确定性要求 | Hooks 兜底检查 |
| 上下文窗口有限 vs 任务信息量大 | 文件系统 + 上下文工程 |
| 知识静态固化 vs 世界动态变化 | Web Search + MCP |
| 单 Agent 能力有限 vs 任务复杂度高 | 编排 + 多 Agent 协同 |
| 模型无记忆 vs 工作需要连续性 | AGENTS.md 记忆机制 |
工程启示
- 模型决定下限,Harness 决定上限 —— 不要急着换更强模型,先优化 Harness
- 试错能力是核心 —— 文件系统 + Git + 沙箱让 Agent 敢于尝试
- 上下文是元能力 —— 所有组件本质上都在解决"如何在正确时间把正确信息送到模型面前"
- 确定性约束概率性 —— Hooks 用规则兜住质量底线
AI Agent Harness 六大组件全解析
https://blog.weihan.fun/archives/019e6c9d-1636-71fd-8649-0b3a58297a22
评论