Skip to main content
专为Anthropic的Claude模型设计的中间件。了解中间件的更多信息。

中间件 vs 工具

langchain-anthropic提供两种使用Claude原生工具的方式:
  • 中间件(本页):生产就绪实现,内置执行、状态管理和安全策略
  • 工具(通过bind_tools):低级构建模块,需自行实现执行逻辑

如何选择使用方式

功能对比

使用中间件(开箱即用方案):
使用工具(自定执行逻辑):

提示词缓存

通过在Anthropic服务器端缓存静态或重复的提示词内容(如系统提示词、工具定义和会话历史),可降低成本并减少延迟。此中间件实现了一种会话式缓存策略,直接标记稳定的智能体内容(如系统提示词和工具定义),并将 cache_control 通过 model_settings 传递。对话模型和提供方会处理消息尾和提供方特定的缓存行为,从而允许会话历史在后续API调用中被缓存和重用。 提示词缓存适用于以下场景:
  • 长且静态的系统提示词在请求间不变化的场景
  • 工具定义数量众多且在多次调用中保持不变的智能体
  • 跨多个回合重复使用早期消息历史的会话
  • 高并发部署场景中降低API成本和延迟至关重要的情况
对于简单场景,也可通过在调用时传递 cache_control 而无需中间件使用自动缓存。当需要显式控制系统提示词和工具定义的缓存断点时,建议使用中间件。
学习更多关于 Anthropic 提示词缓存 策略和限制。
API 参考文档: @[AnthropicPromptCachingMiddleware]
string
default:"ephemeral"
缓存类型。当前仅支持 'ephemeral'。
string
default:"5m"
缓存内容的有效期。有效值: '5m' 或 '1h'
number
default:"0"
开始缓存前的最小消息数
string
default:"warn"
使用非Anthropic模型时的行为。选项: 'ignore'、 'warn' 或 'raise'
中间件缓存每个请求中包括最新消息的所有内容。在TTL窗口内(5分钟或1小时)的后续请求中,已缓存内容将被直接检索而非重新处理,显著降低成本和延迟。工作原理:
  1. 第一次请求:系统提示词、工具和用户消息 “Hi, my name is Bob” 被发送到 API 并缓存
  2. 第二次请求:从缓存中检索缓存的会话内容(系统提示词、工具和第一条消息)。仅需处理新消息 “What’s my name?”,并附加第一次请求的模型响应
  3. 该模式持续应用于每个回合,每次请求均重用缓存的会话历史
提示词缓存通过缓存 Token 减少 API 成本,但不提供会话记忆。若需跨调用持久化会话历史,请使用类似 checkpointer 的 MemorySaver 实现方式。

Bash 工具

执行 Claude 的原生 bash_20250124 工具(本地命令执行) Bash 工具中间件适用于以下场景:
  • 使用 Claude 内置的 bash 工具进行本地执行
  • 利用 Claude 优化的 bash 工具接口
  • 需要与 Anthropic 模型保持持久化 shell 会话的智能体
该中间件封装 ShellToolMiddleware 并暴露为 Claude 原生 bash 工具
API 参考: @[ClaudeBashToolMiddleware]
ClaudeBashToolMiddleware 接受 @[ShellToolMiddleware] 的所有参数,包括:
str | Path | None
Shell 会话的基础目录
tuple[str, ...] | list[str] | str | None
会话启动时运行的命令
BaseExecutionPolicy | None
执行策略(HostExecutionPolicy、DockerExecutionPolicy 或 CodexSandboxExecutionPolicy)
tuple[RedactionRule, ...] | list[RedactionRule] | None
命令输出净化规则
详见 Shell 工具 获取完整配置细节。

文本编辑器

提供 Claude 的文本编辑工具(text_editor_20250728)用于文件创建与编辑 文本编辑器中间件适用于以下场景:
  • 基于文件流的智能体工作流
  • 代码编辑与重构任务
  • 多文件项目协作
  • 需持久化文件存储的智能体
提供状态驱动(文件存储于 LangGraph 状态)和文件系统驱动(文件存储于磁盘)两种模式
API 参考:
  • @[StateClaudeTextEditorMiddleware]
  • @[FilesystemClaudeTextEditorMiddleware]
State-based text editor
Filesystem-based text editor
Claude 文本编辑工具支持以下命令:
  • view - 查看文件内容或列出目录
  • create - 创建新文件
  • str_replace - 在文件中替换字符串
  • insert - 在指定行号插入文本
  • delete - 删除文件
  • rename - 重命名/移动文件
@[StateClaudeTextEditorMiddleware] (state-based)
Sequence[str] | None
可选的允许路径前缀列表。若指定,仅允许路径以这些前缀开头
@[FilesystemClaudeTextEditorMiddleware] (filesystem-based)
str
required
根目录用于文件操作
list[str] | None
可选的允许虚拟路径前缀列表(默认: ["/"])
int
default:"10"
最大文件大小(MB)

记忆

为持续对话轮次间智能体的记忆,提供memory_20250818的Claude记忆工具。 记忆中间件适用于以下场景:
  • 长对话会话
  • 保持上下文连贯性
  • 任务进度追踪
  • 智能体持久化状态管理
Claude记忆工具使用/memories目录,并自动注入系统提示,鼓励智能体检查并更新记忆。
API reference: @[StateClaudeMemoryMiddleware], @[FilesystemClaudeMemoryMiddleware]
State-based memory
Filesystem-based memory
@[StateClaudeMemoryMiddleware] (state-based)
Sequence[str] | None
可选的允许路径前缀列表(默认: ["/memories"])
str
系统提示(默认使用Anthropic推荐的记忆提示,鼓励智能体检查并更新记忆)
@[FilesystemClaudeMemoryMiddleware] (filesystem-based)
str
required
根目录用于文件操作
list[str] | None
可选的允许虚拟路径前缀列表(默认: ["/memories"])
int
default:"10"
最大文件大小(MB)
str
系统提示
智能体会自动执行以下操作:
  1. 启动时检查/memories目录
  2. 执行期间记录进展与思考
  3. 工作过程中更新记忆文件
智能体会自动执行以下操作:
  1. 启动时检查/memories目录
  2. 执行期间记录进展与思考
  3. 工作过程中更新记忆文件

文件搜索

为LangGraph状态中的文件提供Glob和Grep搜索工具。文件搜索中间件适用于以下场景:
  • 搜索基于状态的虚拟文件系统
  • 与文本编辑器和记忆工具配合使用
  • 通过模式匹配查找文件
  • 正则表达式内容搜索
API reference: @[StateFileSearchMiddleware]
str
default:"text_editor_files"
存储要搜索的文件的状态键(使用"text_editor_files"搜索文本编辑器文件,使用"memory_files"搜索记忆文件)
中间件添加了Glob和Grep搜索工具,支持基于状态文件的操作。

官方原文:src/oss/python/integrations/middleware/anthropic.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026