Agent Harness设计:3种模式发挥Claude智能
译文 AI 逐段翻译
智能体缰绳设计:利用Claude智能的3种模式
构建在智能、延迟和成本之间取得平衡的应用。
Anthropic的联合创始人之一Chris Olah说像Claude这样的生成式AI系统更多是生长出来的,而非构建出来的。研究人员设定条件来引导生长,但产生的确切结构或能力并不总是可预测的。
这给使用Claude构建带来了挑战:智能体缰绳编码了假设关于Claude无法独自完成的事情,但随着Claude能力的增强,这些假设会过时。
智能体缰绳是围绕模型的软件脚手架:循环、工具、上下文管理和护栏,将原始智能转化为可工作的智能体。智能体缰绳设计是决定该脚手架中应包含什么,以及随着模型改进,可以移除什么的实践。
在本文中,我们分享了团队在构建与Claude不断发展的智能保持同步并平衡延迟和成本的应用时应使用的三种模式:利用它已知的知识,询问你可以停止做什么,并仔细设置智能体缰绳的边界。
1. 依赖模型而非缰绳:利用Claude已知的内容
我们建议使用Claude理解良好的工具来构建应用。
在2024年底,Claude 3.5 Sonnet在SWE-bench Verified上达到49%——当时最先进的——仅使用bash工具和文本编辑器工具用于查看、创建和编辑文件。Claude Code基于这些相同的工具。Bash并非为构建智能体而设计,但它是Claude知道如何使用并随着时间推移使用得更好的工具。

我们看到Claude将这些通用工具组合成解决不同问题的模式。例如,智能体技能、程序化工具调用和记忆工具均基于bash和文本编辑器工具构建。

2. 精简你的智能体缰绳:询问你可以停止做什么
智能体缰绳编码了假设关于Claude无法独自完成的事情。随着Claude能力的增强,这些假设应该被测试。
让Claude编排自己的行动
一个常见的假设是每个工具结果都应流回Claude的上下文窗口以指导下一步行动。处理工具结果作为token可能缓慢、昂贵且不必要的,如果它只需要传递给下一个工具,或者Claude只关心输出的一小部分。

考虑读取一个大表以推理单个列:整个表进入上下文,Claude为不需要的每一行支付token成本。可以在工具设计中解决这个问题,使用硬编码过滤器。但这并不能解决智能体缰绳正在做出编排决策而Claude更适合做出这个决策的事实。
给Claude一个代码执行工具(例如,bash工具或特定语言的REPL)解决了这个问题:它允许Claude编写代码来表达工具调用及其间的逻辑。而不是缰绳决定每个工具调用结果都作为token处理,Claude决定哪些结果传递、过滤或管道传输到下一次调用而不触及上下文窗口。只有代码执行的结果到达Claude的上下文窗口。

编排决策从缰绳转移到模型。由于代码是Claude编排行动的通用方式,强大的编码模型也是强大的通用智能体。Claude在非编码评估上使用此模式表现出色:在BrowseComp上,一个基准测试智能体浏览网页能力,让Opus 4.6能够过滤自己的工具输出将准确率从45.3%提升到61.6%。
让Claude管理自己的上下文
任务特定的上下文引导Claude使用通用工具如bash和文本编辑器工具。一个常见的假设是系统提示应该手工制作任务特定的指令。问题在于预加载指令不能跨多个任务扩展:每个添加的token都会耗尽Claude的注意力预算,并且预加载很少使用的指令是浪费的。
赋予Claude访问技能的能力解决了这个问题:每个技能的YAML前置元数据是预加载到上下文窗口的简短描述,提供技能内容的概述。如果任务需要,Claude可以通过调用读取文件工具来渐进式披露完整技能。

虽然技能赋予Claude构建自己上下文窗口的自由,上下文编辑是相反的,提供一种选择性移除已过时或不相关的上下文的方法,如旧的工具结果或思考块。
使用子智能体,Claude越来越擅长知道何时分叉到新的上下文窗口以隔离特定任务的工作。使用Opus 4.6,生成子智能体的能力在BrowseComp上比最佳单智能体运行提高了2.8%。
让Claude持久化自己的上下文
长时间运行的智能体可能超出单个上下文窗口的限制。上下文窗口。一个常见的假设是记忆系统应依赖模型周围的检索基础设施。我们的许多工作集中在给Claude简单的方式自己选择要持久化的内容。
例如,压缩允许Claude总结过去的上下文以在长时任务上保持连续性。在几个版本中,Claude越来越擅长选择要记住的内容。在BrowseComp上例如,在代理搜索任务中,无论我们给它多少压缩预算,Sonnet 4.5 都保持在 43% 不变。而 Opus 4.5 在相同设置下扩展到了 68%,Opus 4.6 则达到了 84%。
一记忆文件夹是另一种方法,允许 Claude 将上下文写入文件,并在需要时读取。我们见过 Claude 在代理搜索中使用这个。在 BrowseComp-Plus 上,给 Sonnet 4.5 一个记忆文件夹将准确率从 60.4% 提升到 67.2%。

长期任务游戏,例如《宝可梦》,是 Claude 改进后使用记忆文件夹能力的例子。Sonnet 3.5 将记忆视为转录文本,记录非玩家角色(NPC)说的话,而不是重要的事情。在 14000 步后,它有 31 个文件——包括两个关于毛毛虫宝可梦的近乎重复的文件——并且还在第二个城镇:
caterpie_weedle_info:
- Caterpie and Weedle are both caterpillar Pokémon.
- Caterpie is a caterpillar Pokémon that does not have poison.
- Weedle is a caterpillar Pokémon that does have poison.
- This information is crucial for future encounters and battles.
- If our Pokémon get poisoned, we should seek healing at a Pokémon
Center as soon as possible.后来的模型写下了战术笔记。Opus 4.6 在相同步数下,有 10 个文件组织到目录中,三个道馆徽章,以及一个从自身失败中提炼的学习文件:
/gameplay/learnings.md:
- Bellsprout Sleep+Wrap combo: KO FAST with BITE before Sleep
Powder lands. Don't let it set up!
- Gen 1 Bag Limit: 20 items max. Toss unneeded TMs before dungeons.
- Spin tile mazes: Different entry y-positions lead to DIFFERENT
destinations. Try ALL entries and chain through multiple pockets.
- B1F y=16 wall CONFIRMED SOLID at ALL x=9-28 (step 14557)3. 在设计 harness 时谨慎设置边界
Agent harnesses 为 Claude 提供结构以强制执行用户体验、成本或安全。
设计上下文以最大化缓存命中率
The Messages API是无状态的。Claude 无法看到先前轮次的对话历史。这意味着 agent harness 需要在每一轮将新上下文与所有过去的操作、工具描述和指令打包在一起。
提示可以根据预设的断点进行缓存。换句话说,Claude API 将直到断点的上下文写入缓存,并检查上下文是否与任何先前的缓存条目匹配。
由于缓存的令牌是基础输入令牌成本的 10%,以下是在 agent harness 中帮助最大化缓存命中率的一些原则:
| 原则 | 描述 |
|---|---|
| 静态优先,动态最后 | 对请求排序,使稳定内容(系统提示、工具)放在前面。 |
| 通过消息更新 | 在消息中附加<system-reminder>,而不是编辑提示。 |
| 不要更换模型 | 避免在会话期间切换模型。缓存是特定于模型的;切换会破坏它们。如果你需要更便宜的模型,请使用子代理。 |
| 谨慎管理工具 | 工具位于缓存前缀中。添加或移除一个会使缓存失效。对于动态发现,请使用工具搜索,它追加而不会破坏缓存。 |
| 更新断点 | 对于多轮应用(例如代理),将断点移动到最新消息以保持缓存最新。使用自动缓存来实现这一点。 |
使用声明性工具来实现 UX、可观察性或安全边界
Claude 不一定知道应用的安全边界或 UX 表面。Claude 发出工具调用,由 harness 处理。bash 工具为 Claude 提供广泛的程序性操作能力,但它只给 harness 一个命令字符串——每种操作都是相同的形式。将操作提升为专用工具,为 harness 提供操作特定的钩子,带有类型化参数,可以拦截、门控、渲染或审计。
需要安全边界的操作是专用工具的天然候选。可逆性通常是一个好的标准,难以逆转的操作,如外部 API 调用,可以通过用户确认来门控。像edit这样的写工具可以包含过期检查,这样 Claude 就不会覆盖自上次读取以来已更改的文件。

当操作需要向用户呈现时,工具也很有用。例如,它们可以作为模态框渲染,清晰地向用户显示问题,给用户多个选项,或阻止代理循环直到用户提供反馈。
最后,工具对于可观察性很有用。当操作是类型化工具时,harness 获得结构化参数,可以记录、跟踪和回放。
将操作提升为工具的决定应不断重新评估。例如,Claude Code 的自动模式(在发布时处于研究模式)为 bash 工具提供了安全边界:它让第二个 Claude 读取命令字符串并判断其是否安全。这种模式可以限制对专用工具的需求,并且只应用于用户信任总方向的任务。对于某些高风险的行动,专用工具仍然可以发挥作用。
Agent harness 设计的未来
Claude 智能的前沿总是在变化。关于 Claude 不能做什么的假设需要在其能力的每一步变化中重新测试。
我们看到这种模式重复出现。在我们为长期任务构建的代理中,Sonnet 4.5 在感觉到上下文限制接近时会过早结束。我们添加了重置来清除上下文窗口以解决这种“上下文焦虑”。随着 Opus 4.5 的出现,这种行为消失了。我们为补偿而构建的上下文重置已成为 agent harness 中的累赘。
去除这些累赘很重要,因为它可能成为瓶颈,限制 Claude 的性能。随着时间的推移,我们应用程序中的结构或边界应根据以下问题修剪:我能停止做什么?
要使用这里讨论的所有工具和模式,请查看我们的 claude-api 技能。
致谢
由 Lance Martin 撰写,他是 Claude 平台团队的技术人员。特别感谢 Thariq Shihipar、Barry Zhang、Mike Lambert、David Hershey 和 Daliang Li 对相关主题的有益讨论。感谢 Lydia Hallie、Lexi Ross、Katelyn Lesse、Andy Schumeister、Rebecca Hiscott、Jake Eaton、Pedram Navid 和 Molly Vorwerck 的编辑审阅和反馈。
未找到项目。
0/5
电子书
常见问题
未找到项目。
相关文章
探索更多产品新闻和最佳实践,适用于使用 Claude 构建的团队。
2026 年 8 月 6 日
Millennium 和 Anthropic 正在使用 Claude 构建数字风险分析师
企业 AI
Millennium 和 Anthropic 正在使用 Claude 构建数字风险分析师
Millennium 和 Anthropic 正在使用 Claude 构建数字风险分析师
2026 年 7 月 24 日
Claude 模型解析:为您的用例选择最佳模型
企业 AI
2025年11月10日
2026年提示工程最佳实践
智能体
2026年7月24日
Claude 5 代模型的上下文工程新规则
Claude Code
利用 Claude 改变组织的运营方式
查看定价
联系销售
获取开发者通讯
产品更新、操作指南、社区亮点等,每月发送到你的邮箱。
谢谢!你已订阅。
抱歉,提交时出现问题,请稍后重试。