Claude Code中的12种Harness模式
你已经构建了一个AI智能体。
它在约五个步骤内运行得非常完美。
然后出现了问题。
它幻觉了一个不存在的函数。 它忘记了自己在做什么。 它覆盖了不该触碰的文件。 它陷入了无用的循环。
你调整了提示词。 你切换了模型。 你添加了更多上下文。
仍然不稳定。
于是你责怪模型。
但这里有一个令人不安的真相:
问题不在于你的模型。 问题在于你的控制层(Harness)。
将酷炫的演示与生产级AI系统区分开来的不是智能,而是控制。
高级智能体背后的真正魔力并不隐藏在LLM内部。 它在于围绕它的那一层,即决定以下内容的系统:
- 模型看到什么
- 它被允许做什么
- 它如何从失败中恢复
- 以及它如何记住重要事项
这一层现在有了名字:
Harness Engineering(控制层工程)
一旦你理解了它,你将再也不会以同样的方式构建智能体。
而这就是我们接下来要探索的12个 Harness Engineering 模式,将脆弱的智能体转变为可靠的系统。
内存与上下文(5个模式)
1. 持久指令文件(CLAUDE.md 模式)
大多数智能体会话之间会忘记一切。
生产智能体不会。
它们依赖于持久指令文件,一个动态文档(通常称为CLAUDE.md或类似名称),定义:
- 编码标准
- 项目结构
- 命名约定
- 行为规则
这个文件总是被注入上下文,充当长期的"个性+策略层"。
示例:一个跨会话工作的编码智能体永远不会忘记:
- "使用TypeScript,不是JavaScript。"
- "所有API路由必须遵循
/api/v1/" - "未经确认不得修改
/core/中的文件"
与其每次都重复指令,不如让 Harness 强制执行它们。
事实: 持久指令层减少提示词膨胀并跨会话稳定输出。
2. 作用域上下文组装
将整个代码库转储到上下文中是一个错误。
生产智能体只加载相关的,基于作用域。
不同的目录 → 不同的规则 → 不同的上下文。
示例:在单体仓库中:
/frontend/加载UI指南/backend/加载API契约/infra/加载部署配置
Harness 根据智能体操作的位置动态组装上下文。
事实: 更小、作用域化的提示词提高准确性并减少幻觉。
3. 分层内存(三层设计)
并非所有内存都应该被同等对待。
生产系统使用三层:
- 紧凑索引 → 一切的快速摘要
- 按需文件 → 详细特定主题内存
- 归档转录 → 完整历史,很少访问
这防止了上下文过载,同时保留了长期知识。
示例:与其塞入50k tokens:
- 智能体读取摘要索引
- 仅在需要时拉取详细笔记
- 除非必要,忽略旧转录
事实: 分层内存实现长期任务而不会达到上下文限制。
4. 梦境整合(AutoDream 模式)
这就是事情变得有趣的地方。
生产智能体不只是存储内存;它们清理它。
在空闲时间,后台进程:
- 删除重复项
- 合并相似想法
- 压缩冗余上下文
把它想象成"AI的睡眠模式"。
示例:在对某个功能进行多次迭代后:
- 冗余笔记被合并
- 过时的步骤被移除
- 只保留最新的理解
事实: 没有整合,内存系统会随时间退化。
5. 渐进式上下文压缩
随着对话增长,上下文变得昂贵。
生产系统随时间压缩上下文,使用多阶段摘要。
- 早期阶段 → 完整细节
- 中期阶段 → 摘要块
- 后期阶段 → 高级抽象
示例:一个200步的工作流变为:
- 最后5步(详细)
- 最后20步(摘要)
- 更旧的步骤(仅压缩洞察)
事实: 渐进式压缩对于长期运行的智能体至关重要。
工作流与编排(3个模式)
6. 探索 → 计划 → 执行 循环
业余智能体直接跳入行动。
生产智能体不会。
它们将执行分为三个不同的阶段:
- 探索(只读)→ 收集信息
- 计划 → 决定做什么
- 执行 → 应用更改
每个阶段都有递增的权限。
示例:在编辑代码之前:
- 探索:读取文件
- 计划:概述更改
- 执行:应用编辑
事实: 这大大减少了破坏性错误。
7. 并行工作流
为什么使用一个智能体,当你可以使用多个时?
生产系统为独立任务生成多个子智能体。
然后合并结果。
示例:对于一个功能请求:
- 智能体1 → 后端逻辑
- 智能体2 → 前端UI
- 智能体3 → 测试
一个监督智能体组合所有内容。
事实: 并行化显著提高速度和模块化。
8. 验证门
这是最重要的模式之一。
在任何破坏性操作之前,智能体必须通过验证步骤。
示例检查:
- "这会删除重要文件吗?"
- "这会破坏现有功能吗?"
- "这符合指令吗?"
只有通过验证 → 才允许操作。
事实: 验证门对于安全自主性至关重要。
工具与权限(2个模式)
9. 最小权限范围
不要给智能体完全访问权限。
只给它现在需要的。
示例:
- 探索阶段 → 只读访问
- 计划阶段 → 无工具执行
- 执行阶段 → 有限写入访问
事实: 过度授权的智能体是破坏性失败的第一大原因。
10. 工具适配器层
直接工具调用是脆弱的。
生产系统在智能体和工具之间使用适配器层。
这实现了:
- 测试
- 模拟
- 日志记录
- 安全执行
示例:与其直接调用API:
- 智能体 → 适配器 → API
适配器可以在测试期间模拟响应。
事实: 这种抽象在成熟软件系统中是标准的——现在应用于AI智能体。
自动化(2个模式)
11. 无头批处理模式
并非所有智能体都需要UI。
生产系统作为管道的一部分在后台运行智能体。
示例:
- CI/CD管道运行智能体来:
- 重构代码
- 更新依赖项
- 生成测试
无需人工交互。
事实: 无头智能体解锁真正的企业自动化。
12. 自愈循环
事情会失败。
生产智能体不会崩溃——它们恢复。
它们检测失败信号:
- 错误消息
- 测试失败
- 无效输出
然后重试并调整。
示例:
- API调用失败 → 智能体用修正的参数重试
- 测试失败 → 智能体重写代码并重新运行
事实: 自愈对于长期运行的自主系统至关重要。
13. 大局观
单独来看,这些模式很有用。
合在一起,它们形成了强大的东西:
一个结构化、有弹性、生产级的智能体系统。
这是区别:
- 业余智能体 → 反应
- 生产智能体 → 操作
一旦你开始用这些模式设计……
你停止"提示词工程"——开始工程化智能。
原文链接: Agent Harness: 12 Agentic Harness Patterns from Claude Code
汇智网翻译整理,转载请标明出处