Claude Code 插件接入
通过 duMemory Claude Code 插件(dumemory-claude-code)接入 Agent 记忆服务,可让 Claude Code 在每次提问前自动召回相关记忆,并在每次回复后自动沉淀对话内容。插件请求统一走 duMemory Cloud,本地无需配置额外 LLM 密钥,事实抽取、检索和反思能力由云端服务完成。
Claude Code 插件适合以 Claude Code 作为主要开发 Agent 的用户。相比 MCP 接入,插件可直接接入 Claude Code hooks,实现自动 recall / retain;相比 Skill 接入,插件不依赖自然语言规则触发,开箱即用程度更高。
连接信息
| 信息 | 值 |
|---|---|
| API Base URL | https://cloud.memory.bj.baidubce.com/api |
| API Key / API Token | 在控制台“API Key”页签中创建。插件配置中的 duMemoryApiToken 或 DUMEMORY_API_TOKEN 即控制台 API Key |
| Bank ID | 在控制台创建记忆库时设定,或由插件按项目、会话、通道、用户等维度动态派生 |
| 插件下载地址 | https://cloud-memory.bj.bcebos.com/baidu-claude-code-memory-0.1.0.zip |
API Base URL 已包含
/api,不要再额外拼接。API Key 请勿写入公开仓库、公开文档或截图。
前提条件
- 已安装并可运行 Claude Code
- Python
>=3.10 - 已创建记忆库,并获取 API Base URL、API Key 和 Bank ID
- 本机可访问 duMemory Cloud API
插件 hooks 使用 Python 标准库运行。首次使用知识工具时,插件会自动创建 venv 并安装 mcp,该步骤仅首次需要联网。
安装流程
1. 下载插件包
1curl -L "https://cloud-memory.bj.bcebos.com/baidu-claude-code-memory-0.1.0.zip" \
2 -o baidu-claude-code-memory-0.1.0.zip
插件以压缩包形式分发。解压后的目录同时携带 .claude-plugin/plugin.json 和 .claude-plugin/marketplace.json,因此该目录本身就是一个单插件本地市场。
2. 解压并安装插件
1unzip baidu-claude-code-memory-0.1.0.zip -d ~/
2claude plugin marketplace add ~/dumemory-claude-code
3claude plugin install dumemory-claude-code@dumemory
marketplace add 必须指向解压后的目录,不要直接指向 marketplace.json 文件,否则插件内的相对路径无法解析。
3. 配置 API Token
在 Claude Code 内执行交互式配置命令:
1/dumemory-claude-code:setup
也可以通过环境变量配置:
1export DUMEMORY_API_TOKEN="<your-api-key>"
控制台创建的 API Key 在插件中作为 API Token 使用,二者是同一份鉴权凭证。
4. 推荐固定 Bank ID
如果希望当前 Claude Code 会话都写入控制台中指定的记忆库,可在配置文件中固定 Bank ID。
配置路径:
1~/.claude/dumemory/claude-code.json
示例:
1{
2 "duMemoryApiUrl": "https://cloud.memory.bj.baidubce.com/api",
3 "duMemoryApiToken": "<your-api-key>",
4 "dynamicBankId": false,
5 "bankId": "<your-bank-id>",
6 "autoRecall": true,
7 "autoRetain": true
8}
如需按项目、会话或用户自动隔离记忆,可启用动态 Bank:
1{
2 "dynamicBankId": true,
3 "dynamicBankGranularity": ["agent", "project"]
4}
升级插件
拿到新版压缩包后,覆盖解压到同一目录,再更新本地 marketplace 并重新安装插件:
1unzip baidu-claude-code-memory-<new-version>.zip -d ~/
2claude plugin marketplace update dumemory
3claude plugin install dumemory-claude-code@dumemory
默认行为
| 能力 | 说明 |
|---|---|
| 自动召回(Auto-Recall) | 每次提问前检索相关记忆,并作为 additionalContext 注入,内容仅模型可见,不污染会话记录 |
| 自动沉淀(Auto-Retain) | 每次回复后或每 N 轮异步抽取对话内容并写入记忆库 |
| 记忆隔离 | 可通过 dynamicBankGranularity 按 Agent、项目、会话、频道或用户隔离记忆库 |
| 带记忆的子智能体 | 通过 /dumemory-claude-code:create-agent 创建可跨会话学习的专用子智能体 |
| 知识工具 | 可注册 agent_knowledge_* 系列工具,用于知识页管理、记忆检索和文档导入 |
| 多通道支持 | 适用于交互式会话和 Claude Code Channels,例如 Telegram、Discord、Slack 等 |
配置参考
配置路径:~/.claude/dumemory/claude-code.json。部分配置项可通过同名环境变量覆盖,例如 duMemoryApiToken 可通过 DUMEMORY_API_TOKEN 设置,autoRecall 可通过 DUMEMORY_AUTO_RECALL 设置。
配置加载顺序:内置默认值 < 插件 settings.json < 用户配置 < 环境变量。
连接配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
duMemoryApiUrl |
https://cloud.memory.bj.baidubce.com/api |
duMemory Cloud API 地址 |
duMemoryApiToken |
— | API 鉴权 Token,即控制台 API Key |
requestTimeoutSeconds |
— | 覆盖请求超时;留空时召回默认 10s,沉淀默认 15s,知识工具默认 10–15s |
记忆库(Bank)配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
dynamicBankId |
false |
为 true 时按上下文字段自动派生唯一 Bank ID |
bankId |
claude_code |
dynamicBankId: false 时使用的静态 Bank ID |
bankIdPrefix |
"" |
Bank ID 前缀,适合按环境或租户隔离 |
dynamicBankGranularity |
["agent", "project"] |
派生 Bank ID 所用字段,可选 agent、project、session、channel、user |
bankMission |
内置提示词 | 对智能体身份与职责的简短描述,召回时结合上下文使用 |
retainMission |
内置提示词 | 给事实抽取模型的指令,指导从对话中抽取什么 |
agentName |
claude-code |
动态 Bank ID 推导中 agent 字段使用的名称 |
resolveWorktrees |
true |
将 git worktree 归并到主仓库名,使同仓库各 worktree 共享同一 Bank |
directoryBankMap |
{} |
目录到 Bank ID 的显式映射,优先级最高 |
召回(Recall)配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
autoRecall |
true |
每次提问前自动召回记忆 |
recallBudget |
"mid" |
召回力度:low、mid、high,会影响延迟和召回范围 |
recallMaxTokens |
1024 |
召回记忆块最大 token 数 |
recallTypes |
["observation"] |
召回的记忆类型:world、experience、observation |
recallRoles |
["user", "assistant"] |
构建召回查询时包含的消息角色 |
recallContextTurns |
1 |
构建召回查询时纳入的历史轮数 |
recallMaxQueryChars |
800 |
召回查询最大字符数 |
recallPromptPreamble |
内置文本 | 注入记忆块前的引导文案 |
recallAdditionalBanks |
[] |
除主 Bank 外额外召回的 Bank 列表 |
存储(Retain)配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
autoRetain |
true |
每次回复后自动沉淀对话 |
retainMode |
"full-session" |
沉淀策略,默认沉淀完整对话并支持分块 |
retainRoles |
["user", "assistant"] |
沉淀时包含的消息角色 |
retainEveryNTurns |
10 |
每 N 轮沉淀一次,>1 时启用滑动窗口分块沉淀 |
retainOverlapTurns |
2 |
分块沉淀时额外纳入的前几轮 |
retainToolCalls |
false |
是否在沉淀内容中包含工具调用和结果 |
retainTags |
["{session_id}"] |
沉淀文档附加标签,支持 {session_id}、{bank_id}、{timestamp}、{user_id} |
retainMetadata |
{} |
沉淀文档附加元数据,占位符同 retainTags |
retainContext |
"claude-code" |
标记记忆来源的上下文标签 |
知识工具与调试
| 配置项 | 默认值 | 说明 |
|---|---|---|
enableKnowledgeTools |
true |
注册 agent_knowledge_* 系列工具 |
debug |
false |
启用 stderr 详细日志,便于排查连接、召回、沉淀和 Bank 推导 |
Claude Code Channels 场景
作为常驻后台智能体接入 Telegram、Discord、Slack 等平台时,建议按通道和用户隔离记忆。在 Channel 配置中设置:
1export DUMEMORY_CHANNEL_ID="<channel-id>"
2export DUMEMORY_USER_ID="<user-id>"
并启用动态 Bank:
1{
2 "dynamicBankId": true,
3 "dynamicBankGranularity": ["agent", "channel", "user"]
4}
本地开发与调试
开发或离线调试时,可直接把插件目录传给 --plugin-dir,改动后在 Claude Code 内执行 /reload-plugins 热重载:
1export DUMEMORY_API_TOKEN="<your-api-key>"
2claude --plugin-dir path/to/dumemory-claude-code
故障排查
| 问题 | 排查方式 |
|---|---|
| 插件未生效 | 确认插件目录下存在 .claude-plugin/plugin.json;设置 "debug": true 后查看日志中的 [duMemory] 行 |
| 召回不到记忆 | 确认后端可达、Token 正确、目标 Bank 已有沉淀内容;可将 recallBudget 调到 mid 或 high |
| 召回延迟过高 | 召回 hook 有超时限制;后端较慢时可使用 recallBudget: "low" 或调小 recallMaxTokens |
| 写入到错误 Bank | 检查 dynamicBankId、bankId、directoryBankMap 和相关环境变量 |
| 需要重置插件状态 | 删除 $CLAUDE_PLUGIN_DATA/state/ 目录,该目录记录轮次计数、沉淀追踪和最近一次召回状态 |
使用建议
- Claude Code 用户优先选择 Claude Code 插件,获得自动召回和自动沉淀能力。
- 如果需要跨 Claude Code、Cursor、Windsurf、VS Code 等多个 MCP 客户端复用同一套工具,选择 MCP 接入。
- 如果只想通过指令控制 Agent 何时调用记忆服务,可选择 Skill 接入。
- API Key 建议通过 setup、环境变量或安全配置注入,不要写入公开仓库。
- 单用户或单项目场景建议固定 Bank ID;多用户、多通道或多项目场景建议启用动态 Bank。
评价此篇文章
