记忆工具目前处于测试阶段。要启用它,请在您的API请求中使用测试版标头
context-management-2025-06-27
。请通过我们的反馈表单联系我们,分享您对此功能的反馈。使用场景
- 在多个代理执行之间维护项目上下文
- 从过去的交互、决策和反馈中学习
- 随着时间的推移构建知识库
- 启用跨对话学习,让Claude在重复工作流程中不断改进
工作原理
启用后,Claude在开始任务之前会自动检查其记忆目录。Claude可以在/memories
目录中创建、读取、更新和删除文件,以存储它在工作时学到的内容,然后在未来的对话中引用这些记忆,以更有效地处理类似任务或从中断的地方继续。
由于这是一个客户端工具,Claude会进行工具调用来执行记忆操作,而您的应用程序在本地执行这些操作。这让您完全控制记忆的存储位置和方式。为了安全起见,您应该将所有记忆操作限制在/memories
目录中。
示例:记忆工具调用的工作方式
当您要求Claude帮助完成任务时,Claude会自动首先检查其记忆目录。以下是典型交互的样子: 1. 用户请求:支持的模型
记忆工具可用于:- Claude Sonnet 4.5 (
claude-sonnet-4-5-20250929
) - Claude Sonnet 4 (
claude-sonnet-4-20250514
) - Claude Opus 4.1 (
claude-opus-4-1-20250805
) - Claude Opus 4 (
claude-opus-4-20250514
)
入门指南
要使用记忆工具:- 在您的API请求中包含测试版标头
context-management-2025-06-27
- 将记忆工具添加到您的请求中
- 为记忆操作实现客户端处理程序
要在您的应用程序中处理记忆工具操作,您需要为每个记忆命令实现处理程序。我们的SDK提供记忆工具助手来处理工具接口——您可以子类化
BetaAbstractMemoryTool
(Python)或使用betaMemoryTool
(TypeScript)来实现您自己的记忆后端(基于文件、数据库、云存储、加密文件等)。有关工作示例,请参阅:- Python:examples/memory/basic.py
- TypeScript:examples/tools-helpers-memory.ts
基本用法
工具命令
您的客户端实现需要处理这些记忆工具命令:view
显示目录内容或文件内容,可选择特定行范围:create
创建或覆盖文件:str_replace
替换文件中的文本:insert
在特定行插入文本:delete
删除文件或目录:rename
重命名或移动文件/目录:提示指导
当包含记忆工具时,我们会自动将此指令包含到系统提示中:注意:编辑记忆文件夹时,始终尝试保持其内容最新、连贯和有组织。您可以重命名或删除不再相关的文件。除非必要,否则不要创建新文件。您还可以指导Claude向记忆中写入什么,例如,“只在您的记忆系统中记录与<主题>相关的信息。“
安全考虑
以下是实现记忆存储时的重要安全考虑:敏感信息
Claude通常会拒绝在记忆文件中写下敏感信息。但是,您可能希望实现更严格的验证,过滤掉潜在的敏感信息。文件存储大小
考虑跟踪记忆文件大小并防止文件变得过大。考虑为记忆读取命令可以返回的字符数添加最大限制,让Claude分页浏览内容。记忆过期
考虑定期清理长时间未访问的记忆文件。路径遍历保护
恶意路径输入可能试图访问
/memories
目录之外的文件。您的实现必须验证所有路径以防止目录遍历攻击。- 验证所有路径都以
/memories
开头 - 将路径解析为其规范形式并验证它们保持在记忆目录内
- 拒绝包含
../
、..\\
或其他遍历模式的路径 - 注意URL编码的遍历序列(
%2e%2e%2f
) - 使用您语言的内置路径安全实用程序(例如,Python的
pathlib.Path.resolve()
和relative_to()
)