# 驾驭 Claude 的智能 | 构建应用的 3 个关键模式【译】
**作者**: 宝玉
**日期**: 2026-04-02T23:44:59.000Z
**来源**: [https://x.com/dotey/status/2039851620293636379](https://x.com/dotey/status/2039851620293636379)
---

原文:Harnessing Claude's Intelligence | 3 Key Patterns for Building Apps | Claude
作者:Lance Martin
Anthropic 的联合创始人 Chris Olah 曾说过,像 Claude 这样的生成式 AI 系统,与其说是被“制造”出来的,不如说是被“培育”出来的。研究人员设定好引导它们生长的条件,但最终会演化出怎样的确切结构或能力,往往是无法准确预测的。
这给使用 Claude 开发应用带来了挑战:开发者通常会使用 AI 套壳或智能体框架 (agent harnesses)(指用来包裹、控制和辅助 AI 模型运行的外部代码结构)来弥补 Claude 自身做不到的事情。这些框架基于各种“假设”构建,但随着 Claude 能力的不断进化,这些假设很快就会过时。因此,即使是本文分享的经验之谈,也需要你时常温故而知新。
在这篇文章中,我们将分享团队在构建应用时应该采用的三个核心模式。这些模式能帮助你的应用跟上 Claude 智能进化的步伐,同时兼顾延迟和系统成本。这三大模式分别是:善用它已知的技能、思考“我可以放手不管什么”,以及谨慎设定智能体框架的边界。
## 1. 善用 Claude 已知的技能 (Use what Claude knows)
我们强烈建议,使用 Claude 已经非常熟悉的工具来构建你的应用。
时间拉回 2024 年底,Claude 3.5 Sonnet 在 SWE-bench Verified(一个用于评估 AI 解决真实软件工程问题能力的权威基准测试)上达到了 49% 的得分,创下了当时的行业最高水平。令人惊讶的是,它仅仅使用了一个 bash 工具(一种允许 AI 在计算机命令行中执行指令的工具)和一个用于查看、创建和修改文件的文本编辑器工具。Anthropic 的官方编程助手 Claude Code 也是基于这些同样的工具构建的。Bash 最初并非为构建 AI 智能体 (AI Agent) 而设计,但它却是 Claude 深谙此道的工具,并且随着时间的推移,Claude 驾驭它的技巧会越来越纯熟。

各个版本 Claude 模型在 SWE-bench Verified 基准测试中的得分,直观地展现了它的进化之路。
我们发现,Claude 能够将这些通用工具组合成极其丰富的模式,以此来解决各种复杂问题。例如,智能体技能 (Agent Skills)、编程式工具调用 (programmatic tool calling) 以及记忆工具 (memory tool),本质上都是由基础的 bash 和文本编辑器工具组合衍生而来的。

编程式工具调用、技能和记忆工具,其实都是我们 bash 和文本编辑器工具的精妙组合。
## 2. 思考:“我可以放手不管什么?” (Ask‘what can I stop doing?’)
如前所述,智能体框架里写满了我们对 Claude 能力边界的偏见(认为它这也不行,那也不行)。随着 Claude 变得越来越强大,是时候去重新检验这些陈旧的假设了。
让 Claude 自主编排行动
大家常犯的一个错误假设是:认为每次调用工具返回的结果,都必须立刻塞回 Claude 的上下文窗口 (context window) 中,好让它决定下一步干嘛。但实际上,把所有的工具结果都转化成词元 (tokens) 给模型处理,不仅速度慢、成本高,而且往往毫无必要——尤其是当这个结果仅仅是为了传递给下一个工具,或者 Claude 只需要结果中极小的一部分数据时。

Claude 调用工具,随后这些工具在特定的环境中执行。
想象一个场景:为了分析一个庞大数据表中的某一列,你把整个表格都扔给了模型。结果是整个表格塞满了上下文,而你要为 Claude 根本不需要的那些行支付高昂的 token 费用。虽然你可以在工具开发时加入硬编码过滤 (hard-coded filters) 来解决这个问题,但这治标不治本。问题的核心在于:外层的智能体框架正在替模型做编排决策 (orchestration decision),而现实是,Claude 自己才是做这个决定的最佳人选。
只要给 Claude 开放一个代码执行 (code execution) 工具(比如 bash 工具 或特定编程语言的交互环境 REPL),难题就迎刃而解:它允许 Claude 自己写代码来执行工具调用,并亲自处理这些工具之间的数据流转逻辑。与其让框架强制把所有结果都喂给上下文,不如让 Claude 决定哪些结果直接略过、哪些进行过滤,或者哪些直接像流水线一样输入给下一次调用。全程无需弄脏宝贵的上下文窗口,只有最终代码执行得出的精简结果,才会真正进入 Claude 的视野。

Claude 能够亲自编写代码,来控制工具的调用并串联它们之间的逻辑。
在这个过程中,流程编排的指挥棒从外层框架交还给了大语言模型 (LLM) 本身。因为写代码是 Claude 编排动作的一种极其通用的方式,所以一个强大的编程模型,自然也就是一个强大的通用 AI 智能体。Claude 巧妙运用这一模式,在非编程类的评估测试中也大放异彩:在 BrowseComp(一个测试智能体浏览网页能力的基准测试)中,当我们赋予 Opus 4.6 过滤自身工具输出的能力后,它的准确率直接从 45.3% 狂飙到了 61.6%。
让 Claude 管理自己的上下文
针对特定任务的上下文提示,能指引 Claude 更好地使用 bash 和文本编辑器等通用工具。过去我们总以为,必须针对每个任务,手工雕琢极其详细的系统提示词 (system prompts)。然而,这种提前把指令“填鸭式”塞进提示词的做法,在面对海量任务时根本行不通:你增加的每一个 token,都在无情消耗 Claude 的注意力预算(相当于模型的脑力,塞入太多无用信息会导致模型抓不住重点),提前加载那些百年不用一次的指令,纯粹是浪费资源。
赋予 Claude 访问技能 (skills) 库的能力,完美破解了这个僵局:现在,只需把每个技能简短的 YAML 头部信息(类似目录摘要)预先加载到上下文窗口中,让 Claude 知道有哪些技能可用即可。如果当前任务需要,Claude 会主动调用读取文件的工具,将完整的技能内容进行“渐进式展开”(按需加载)。

Claude 会借助技能库,根据任务需求逐步展开相关的上下文。
如果说技能让 Claude 拥有了自由拼装上下文的能力,那么上下文编辑 (context editing) 则是相反的艺术:它提供了一种机制,允许模型选择性地删掉那些过时或不再相关的废话,比如陈旧的工具执行结果,或者自己早期的思考草稿。
不仅如此,有了子智能体 (subagents) 的协助,Claude 越来越懂得何时应该“另起炉灶”——开启一个干干净净的全新上下文窗口,来隔离并专注处理某项特定任务。在 Opus 4.6 中,这种召唤子智能体的神技,让其在 BrowseComp 测试上的成绩,比表现最好的单智能体方案还提升了 2.8%。
让 Claude 持久化自己的上下文
对于需要长时间运行的智能体,很容易耗尽单一上下文窗口 (context window) 的容量。业界普遍以为,这时候必须在模型外部搭建一套复杂的检索架构(例如 RAG)来充当记忆系统。但我们的大量研究表明:更聪明的做法是给 Claude 提供简便的工具,让它自己决定哪些内容值得保存下来。
例如,压缩 (compaction) 技术允许 Claude 自己对过去的上下文进行浓缩总结,从而在马拉松式的长周期任务中不至于“断片”。经历了几轮模型迭代,Claude 挑选记忆内容的眼光越来越准。以 BrowseComp 为例(这是一个自主探索型的搜索任务),以前无论我们给 Sonnet 4.5 多少压缩预算,它的准确率死活卡在 43%。但在同样的配置下,Opus 4.5 跃升到了 68%,而最新的 Opus 4.6 更是飙升至了 84%。
引入记忆文件夹 (memory folder) 则是另一种妙招。它允许 Claude 像记笔记一样,把重要的上下文写成文件存起来,需要的时候再去读取翻看。我们在智能体搜索任务中见证了它的威力:在 BrowseComp-Plus 测试中,仅仅是给了 Sonnet 4.5 一个记忆文件夹,就让它的准确率从 60.4% 稳稳提升到了 67.2%。

Claude 可以将重要的上下文持久化保存到记忆文件夹中。
让 AI 玩《宝可梦》(Pokémon) 这样的长线游戏,是展示 Claude 记忆文件夹利用能力飞跃的绝佳案例。早期的 Sonnet 3.5 简直把记忆当成了会议速记,只会傻乎乎地记录游戏里 NPC(非玩家角色)说了什么废话,根本抓不住重点。玩了 14,000 步之后,它生成了 31 个凌乱的文件——甚至包括两份几乎一模一样的关于毛毛虫宝可梦的无聊笔记——而且游戏进度悲催地卡在第二个城镇:
> [json]
> caterpie_weedle_info (绿毛虫和独角虫信息):
> - 绿毛虫 (Caterpie) 和独角虫 (Weedle) 都是毛毛虫形态的宝可梦。
> - 绿毛虫是没有毒性的。
> - 独角虫是有毒性的。
> - 这些信息对未来的相遇和战斗至关重要。
> - 如果我们的宝可梦中毒了,我们需要尽快去宝可梦中心治疗。
而当我们派上后期的强大模型时,画风突变,它开始记起“硬核战术笔记”。同样的 14,000 步,Opus 4.6 只生成了 10 个井井有条、按目录分类的文件。它不仅横扫拿下了 3 枚道馆徽章,甚至还从自己踩过的坑里,提炼出了一份专门的“经验教训”文档:
> [json]
> /gameplay/learnings.md (游戏/经验教训.md):
> - 喇叭芽的催眠粉+紧束连招:必须在它催眠粉命中前,用“咬住”快速击倒它。绝对不能让它布置战术!
> - 第一世代背包限制:最多只能放 20 个道具。进迷宫前一定要把没用的技能机器 (TMs) 扔掉。
> - 旋转地砖迷宫:不同的入口 y 坐标会导致完全不同的终点。尝试所有入口,并在多个口袋空间中穿梭。
> - B1F y=16 墙壁确认是实体的,范围覆盖所有 x=9-28(第 14557 步记录)
## 3. 谨慎设定边界 (Set boundaries carefully)
外层的智能体框架相当于给 Claude 穿上了一层约束衣,目的通常是为了保障用户体验 (UX)、控制花销,或者是守住安全底线。
巧妙设计上下文工程 (Context Engineering),让缓存命中率拉满
Messages API 是无状态的。这意味着 Claude 本身就像拥有“金鱼的记忆”,它看不到之前的对话历史。因此,在每一轮对话中,外层框架都必须像个尽职的快递员,把新的上下文连同之前所有的动作记录、工具说明以及给 Claude 的指令,一并打包重新发送过去。
为了避免重复劳动,我们可以通过设置断点 (breakpoints) 来缓存提示词。换句话说,Claude API 会把断点之前的所有上下文内容写进缓存里,并在下一次请求来的时候,检查当前内容是否与之前的缓存相匹配。
要知道,命中缓存的 token 价格仅仅是基础输入 token 价格的 10%!为了帮你的应用既省钱又提速,以下是在智能体框架中最大化缓存命中率的几条黄金原则:
原则 描述 静态内容在前,动态内容在后 安排请求顺序时,将稳定的内容(如系统提示词、工具列表)放在最前面。 用消息来更新 如果需要提醒模型,请在消息末尾追加一个 <system-reminder>,而不是去修改原始的提示词(修改前面会导致整个缓存失效)。 别中途换模型 避免在同一个会话中切换不同的模型。缓存是跟着特定模型走的;一旦切换,缓存全盘作废。如果你需要一个更便宜的模型处理简单任务,请使用子智能体。 谨慎管理工具 工具列表位于缓存的头部。因此,增加或删除任何一个工具都会使其失效。对于动态发现新工具的场景,请使用 工具搜索 (tool search) 功能,这只会向后追加内容而不会破坏缓存。 及时更新断点 对于多轮对话应用(比如智能体),应将断点移至最新的一条消息上,以保持缓存的新鲜度。强烈建议使用 自动缓存 (auto-caching) 来处理此事。
利用声明式工具打造 UX、可观测性与安全边界
Claude 并不天然懂得你应用的“安全底线”在哪,也不知道你的产品界面长啥样。它只会闷头发出“调用工具”的指令,剩下的脏活累活全由外层框架接手。虽然 bash 工具给了 Claude 在代码世界里翻江倒海的超能力,但对于外层框架而言,bash 工具抛出来的只是一串干巴巴的命令行字符——不管 Claude 执行什么危险动作,格式全是一样的,这让框架很难做管控。
此时,将某些关键动作晋升为专属的声明式工具 (dedicated tools) 就显得尤为重要。这给了外层框架一个特定的、带有明确参数类型的“抓手”,让它能游刃有余地进行拦截审查、设置权限闸门、渲染前端界面,或者进行安全审计。

那些容易触碰安全红线的动作,天生就该被做成专属工具。“是否可逆”是一个极佳的判断标准。对于像调用外部 API 这种泼水难收的操作,你可以设置一道门槛,强制要求“用户确认”后才能放行。对于像 edit(编辑)这样的写入工具,你可以内置一个“文件陈旧度检查”,防止 Claude 稀里糊涂地覆盖掉别人刚刚修改过的文件。
基于安全性、用户体验或可观测性的考量,我们应当为特定的高危/关键操作配备专属工具。
当某个动作需要直观地展示给终端用户时,专属工具也大有可为。例如,它可以被渲染成一个前端弹窗 (modal),清晰地向用户提问、抛出多个选项,或者干脆暂停智能体的运行循环,乖乖等待用户给出反馈再继续。
最后,专属工具对于系统的可观测性(排查问题)大有裨益。当动作是一个格式严谨的工具时,外层框架就能拿到结构化的参数数据,随后的日志记录、链路追踪和场景回放都会变得轻而易举。
当然,“要不要把这个动作做成专属工具”绝不是一锤子买卖,需要你持续重新评估。以 Claude Code 的自动模式 (auto-mode)(本文发布时正处于研究阶段)为例,它为 bash 工具套上了一层极其硬核的安全边界:它会召唤“第二个 Claude”来阅读这串命令行字符,让 AI 来审查 AI 的操作是否安全。这种“用魔法打败魔法”的模式,实际上减少了对传统专属工具的依赖。不过,这种做法只适用于用户对大方向足够信任的任务。对于那些一着不慎满盘皆输的高危操作,老老实实写一个专属工具依然拥有不可撼动的地位。
## 展望未来 (Looking forward)
Claude 智能的边界一直在狂奔拓荒。每当它完成一次能力上的跃迁,我们过去对它“做不到什么”的成见,都必须重新推翻再验证。
我们一次次见证了历史的重演。在我们为长周期任务搭建的一个智能体中,Sonnet 4.5 一旦察觉到上下文快要塞满了,就会出现“恐慌”,然后草草结束任务。为了缓解它的“上下文焦虑症”,我们在代码里硬加了强行清理上下文窗口的“重置”逻辑。结果到了 Opus 4.5,这个毛病竟然自己不治而愈了!于是,我们当年煞费苦心写出来的“上下文重置”代码,瞬间变成了智能体框架里毫无用处的历史包袱(dead weight)。
痛快地砍掉这些包袱极其重要,因为它们往往会反过来成为束缚 Claude 发挥实力的瓶颈(这也印证了 AI 界著名的“苦涩的教训 (the Bitter Lesson)”:过度依赖人类经验的手工规则,最终往往会拖累模型自身依靠算力进化出的能力)。在未来漫长的岁月里,我们应当不厌其烦地审视应用中的结构和边界,并反复拷问自己那个灵魂问题:“这一次,我又可以放手不管什么了?”
如果你想亲手把玩本文讨论的所有工具和开发模式,欢迎访问我们的 claude-api 技能库。
## 致谢 (Acknowledgements)
本文由 Claude 平台团队技术人员 Lance Martin 撰写。特别感谢 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 提供的编辑审阅与宝贵反馈。
来源:https://claude.com/blog/harnessing-claudes-intelligence
## 相关链接
- [@dotey](https://x.com/dotey)
- [15K](https://x.com/dotey/status/2039851620293636379/analytics)
- [Harnessing Claude's Intelligence | 3 Key Patterns for Building Apps | Claude](https://claude.com/blog/harnessing-claudes-intelligence)
- [行业最高水平](https://www.anthropic.com/engineering/swe-bench-sonnet)
- [bash 工具](https://platform.claude.com/docs/en/agents-and-tools/tool-use/bash-tool)
- [文本编辑器工具](https://platform.claude.com/docs/en/agents-and-tools/tool-use/text-editor-tool)
- [Bash](https://platform.claude.com/docs/en/agents-and-tools/tool-use/bash-tool)
- [智能体技能 (Agent Skills)](https://agentskills.io/home)
- [编程式工具调用 (programmatic tool calling)](https://platform.claude.com/docs/en/agents-and-tools/tool-use/programmatic-tool-calling)
- [记忆工具 (memory tool)](https://platform.claude.com/docs/en/agents-and-tools/tool-use/memory-tool)
- [智能体框架里写满了我们对 Claude 能力边界的偏见](https://www.anthropic.com/engineering/harness-design-long-running-apps)
- [上下文窗口 (context window)](https://platform.claude.com/docs/en/build-with-claude/context-windows)
- [硬编码过滤 (hard-coded filters)](https://platform.claude.com/docs/en/about-claude/models/migration-guide#additional-recommended-changes)
- [代码执行 (code execution)](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool)
- [bash 工具](https://platform.claude.com/docs/en/agents-and-tools/tool-use/bash-tool)
- [特定编程语言的交互环境 REPL](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool)
- [非编程类的评估测试中](https://claude.com/blog/improved-web-search-with-dynamic-filtering)
- [基准测试](https://arxiv.org/abs/2504.12516)
- [系统提示词 (system prompts)](https://platform.claude.com/docs/en/release-notes/system-prompts)
- [Claude 的注意力预算](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)
- [技能 (skills)](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview)
- [上下文编辑 (context editing)](https://platform.claude.com/docs/en/build-with-claude/context-editing)
- [子智能体 (subagents)](https://code.claude.com/docs/en/sub-agents)
- [在 Opus 4.6 中](https://www-cdn.anthropic.com/0dd865075ad3132672ee0ab40b05a53f14cf5288.pdf)
- [上下文窗口 (context window)](https://platform.claude.com/docs/en/build-with-claude/context-windows)
- [压缩 (compaction)](https://platform.claude.com/docs/en/build-with-claude/compaction)
- [以 BrowseComp 为例](https://www-cdn.anthropic.com/14e4fb01875d2a69f646fa5e574dea2b1c0ff7b5.pdf)
- [记忆文件夹 (memory folder)](https://platform.claude.com/docs/en/agents-and-tools/tool-use/memory-tool)
- [从 60.4% 稳稳提升到了 67.2%](https://www-cdn.anthropic.com/bf10f64990cfda0ba858290be7b8cc6317685f47.pdf)
- [长线游戏](https://www.youtube.com/watch?v=CXhYDOvgpuU)
- [Messages API](https://platform.claude.com/docs/en/build-with-claude/working-with-messages)
- [断点 (breakpoints)](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)
- [基础输入 token 价格的 10%](https://platform.claude.com/docs/en/about-claude/pricing)
- [自动模式 (auto-mode)](https://www.anthropic.com/engineering/claude-code-auto-mode)
- [我们为长周期任务搭建的一个智能体](https://www.anthropic.com/engineering/harness-design-long-running-apps)
- [我们的 claude-api 技能库](https://github.com/anthropics/skills/tree/main/skills/claude-api)
- [https://claude.com/blog/harnessing-claudes-intelligence](https://claude.com/blog/harnessing-claudes-intelligence)
- [Upgrade to Premium](https://x.com/i/premium_sign_up)
- [7:44 AM · Apr 3, 2026](https://x.com/dotey/status/2039851620293636379)
- [15.5K Views](https://x.com/dotey/status/2039851620293636379/analytics)
---
*导出时间: 2026/4/3 11:50:16*