ReMe/integrations/claude_code/README_ZH.md
Sen Huang 749c653f23
feat(integrations): add automatic memory plugins for Claude Code and Codex (#575)
* feat(integrations): add native Claude Code and Codex memory plugins

* docs(integrations): make plugin installation the coding agent entry point

* feat(integrations): configure plugin connections from user settings

* refactor(codex): use MCP tools and native plugin settings

* fix(codex): restore plugin hooks on current runtimes

* docs(codex): expand setup guide and reserve screenshot slots

* feat(codex): add configurable memory consolidation and status

* feat(codex): merge connection checks into a tabbed status app

* docs(codex): diagnose blocked status panel sandbox loading

* fix(codex): simplify status panel layout for narrow cards

* docs(codex): focus guides on connecting and using ReMe

* docs(codex): specify validated CLI and desktop version requirements

* feat(codex): add ReMe branding to plugin icons

* docs(codex): prepare manual screenshot workflow

* fix(codex): simplify ReMe status layout and activity

* docs(codex): explain Hook loading and local project context

* fix(codex): keep status refresh clear of host close control

* fix(codex): retain status resources for active MCP connections

* docs(codex): add real desktop screenshots to usage guides

* fix(integrations): address memory capture and consolidation review

* fix(codex): preserve capture endpoint during background delivery
2026-10-12 20:12:47 +08:00

8.9 KiB
Raw Blame History

Claude Code 的 ReMe 长期记忆插件

English

先启动 ReMe 服务,再在 Claude Code 中安装 ReMe 插件,即可使用长期记忆。这是本宿主支持的集成方式。 插件统一安装自动召回、完成轮次记录、MCP 工具和内置 reme-memory Skill;ReMe 服务负责工作区中的记忆存储与整理。

插件与本地 marketplace 维护在 integrations/claude_code/,从仓库安装。 使用插件期间,保持 ReMe 服务运行。

启动 ReMe 服务 → 安装 ReMe 插件 → 在 Claude Code 中使用记忆

环境要求

  • 宿主环境中有 Python 3.11+,可通过 python3 执行,并已安装 FastMCP >= 3.1(ReMe 自带此依赖)。
  • 当前 Claude Code 版本支持插件、UserPromptSubmit、Stop、原生异步命令 Hook 和 last_assistant_message。
  • 已启动 ReMe HTTP 服务,开放 search、auto_memory、health_check,并启用 MCP。
  • ReMe 服务端有可用于自动记忆提取的模型配置。默认 BM25 召回不要求 Embedding。

1. 启动 ReMe 服务

pip install "reme-ai[core]"
reme start workspace_dir=/absolute/path/to/workspace service.backend=http

默认地址为 http://127.0.0.1:2333,MCP 路径为 /mcp。HTTP 服务没有内建 API Key 鉴权, 应保持 loopback 监听或部署受保护的代理。不同 workspace 隔离记忆;不同宿主使用同一 workspace 时会共享召回。

2. 安装 ReMe 插件

在 Claude Code 中使用仓库的绝对路径:

/plugin marketplace add /absolute/path/to/ReMe/integrations/claude_code
/plugin install reme@reme-marketplace

重启 Claude Code 或重新加载已安装的插件,然后新建会话。插件安装会一并加载 Hook、MCP 连接和内置 Skill。 更新后重新安装或加载插件。

3. 在 Claude Code 中使用记忆

在新会话中询问“检查 ReMe 是否可用”,由已安装插件的工具检查服务连接;也可通过 /mcp 查看插件连接状态。 之后正常使用 Claude Code:插件在消息提交前自动召回相关记忆,每完成五轮对话分批记录一次。 需要主动查询时,可以询问“之前关于 Juniper 项目做了什么决定?请附上记忆来源”。

自动记录会把完成的用户/助手文本发送到配置的 ReMe 服务;仅需召回时,将 auto_memory 设为 false。

可选配置

使用默认服务地址时,安装插件后即可使用。需要调整下列默认行为时,再创建配置文件。

直接编辑用户配置文件即可调整地址和行为,升级插件会保留配置。文件中只需写入要覆盖的选项。

配置位于 ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/reme/config.json。首次创建时,可从仓库根目录复制示例;已有文件请直接编辑:

mkdir -p "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/reme"
cp integrations/claude_code/reme/config.example.json "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/reme/config.json"
配置项 默认值 作用
mcp_url http://127.0.0.1:2333/mcp ReMe MCP 地址;默认去掉末尾 /mcp 得到 Hook 的 HTTP 地址
api_url 空字符串 可选 HTTP Job API 基址;MCP 使用自定义路径时需显式填写
auto_recall true 用户提交消息时自动检索
auto_memory true 自动捕获与提交;关闭后也不重试已有队列
recall_limit 5 检索结果上限
recall_min_score 0 自动召回最低分数
recall_timeout 5 前台 HTTP 超时秒数,最大 10
request_timeout 600 写入与 MCP 请求超时秒数,最大 600
memory_interval 5 每批完成的对话轮数;设为 1 则逐轮提交
shutdown_timeout 2 退出时尽力刷新队列的总秒数,最大 2
context_max_chars 8000 召回正文字符上限
timezone Asia/Shanghai 批次按此时区分日,应与 ReMe workspace 一致

例如,改用另一个端口并关闭自动记录:

{
  "mcp_url": "http://127.0.0.1:2444/mcp",
  "auto_memory": false,
  "auto_recall": true,
  "memory_interval": 1
}

MCP 和 Hook 从同一份用户配置读取地址。Hook 在下一次调用时读取修改;更改地址或 MCP 超时后, 请重新连接 MCP 或重启宿主,确保现有 MCP 进程也使用新配置。无需修改插件源码、安装缓存或重装插件。 使用自定义 MCP 路径时,例如 https://memory.example.com/tools,同时设置 api_url 为 HTTP Job API 基址,例如 https://memory.example.com/reme。

未知字段或无效值会使配置校验失败,Hook 会跳过并记录 hook_failed,不会回退到其他服务。 关闭 auto_memory 会停止自动捕获和重试,保留已有队列;显式 MCP 工具仍可使用。 修改服务地址不会把旧地址下的待提交对话发送到新服务。移除配置项即可恢复该项默认值。

插件通过宿主管理的 stdio 连接进程转发 MCP,请确保启动宿主时的 python3 环境包含 FastMCP。 如果 ReMe 服务运行在另一台机器或另一个 Python 环境,在宿主环境执行 python3 -m pip install "fastmcp>=3.1"。Hook 本身仅使用标准库。

生命周期与失败行为

  • UserPromptSubmit 在短超时范围内同步调用 search,用 <reme-context> 包裹有长度限制的结果,明确其为不可信历史数据。失败不阻止用户消息。
  • 同步 Stop Hook 在下一轮开始前,从本地 transcript 捕获并入队完成轮次的用户与最终助手文本。独立的原生异步 Stop Hook 仅提交已捕获的批次,通过 JSON Job API 调用 auto_memory,不再读取 transcript。工具输出、推理内容和注入的 ReMe 上下文不作为对话来源,服务端无需读取宿主文件。
  • 使用带宿主命名空间的稳定会话和消息 ID,重复 Stop 去重;每个会话串行提交,跨日拆分批次。排除子 Agent 事件和 Hook 续写。插件不启动独立守护进程,也不自动下载依赖或启动 ReMe。
  • 队列与确认收据保存在宿主的 reme/queue/,按服务地址隔离;失败或超时不会丢弃队列。SessionStart 后台重试,SessionEnd 在短时间预算内同步尝试刷新。
  • 退出刷新是尽力而为:宿主在捕获前被强制结束时可能丢失该轮。HTTP 确认丢失时可能重复提取;稳定消息 ID 避免重复存储来源,但记忆提取是至少一次语义。未满批次或未及时完成的任务留待下次会话处理。
  • 队列包含原始对话文本,请在交付完成前保留。reme/hooks.log 仅记录事件及异常类型。关闭 auto_memory 保留队列且停止重试。
  • auto_dream 整理继续由 ReMe 服务管理。与 OpenClaw 常驻 Gateway 不同,短生命周期 Hook 不另建定时调度器。

验证与排查

  1. 在 Claude Code 中让已安装的 ReMe 插件检查连接,通过 /mcp 确认插件连接状态。
  2. 快速验证时把 memory_interval 设为 1,新建会话,要求记住一条合成事实,例如“Juniper 项目每周四评审”。
  3. 等待后台写入,检查 reme/hooks.log 的 memory_saved,以及 ReMe workspace 的 daily/ 笔记。
  4. 再新建一个独立会话,询问该事实,并确认回答附有 ReMe 来源路径。

自动记忆和显式检索、阅读、健康检查均由已安装的插件提供。工具缺失时,检查插件是否已安装并启用、 ReMe 服务是否运行,以及 service.jobs 是否开放所需 Job。Hook 无法加载时,请使用满足插件要求的宿主版本, 再重新安装或加载插件。

记录要求 Hook 提供 transcript_path 和 last_assistant_message,读取标准用户/助手 JSONL, 不读取私有推理;未知格式或缺失文件会跳过并记录状态,不猜测对话。 召回正常但未记录时,检查 capture_skipped、hook_failed。

从旧 Claude Code 插件迁移

0.2 版本用自动召回与客户端完成轮次捕获替换旧的脱离宿主 Stop 进程,新记录调用 auto_memory。 服务端 auto_memory_cc 仍保留兼容,已有 session/claude_code/ transcript 和笔记不改写。 新来源使用标准 {session_dir}/dialog/claude-code-<hash>.jsonl 与带命名空间的会话 ID。 不回放旧对话;请移除手工安装的重复 Stop Hook。日志从插件目录迁移到宿主 reme/hooks.log。

端到端验证时,应保持会话打开,直到出现 memory_saved。短暂的 claude -p 进程可能在异步 Hook 收到写入确认前结束;已捕获的任务会在下一次会话重试。仅看到 Markdown 笔记不代表队列已经收到确认。

源码与验证

在 ReMe 仓库运行 pytest tests/unit/test_coding_agent_plugins.py -v。测试使用隔离目录和模拟服务。 宿主行为以 Claude Code Hook 文档 为准。 ReMe 在 agentscope-ai/ReMe 开发,采用 Apache-2.0 许可证。