ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Claude-Mem 持久记忆系统完全指南:从安装配置到 MCP 三层搜索工作流的源码级解析

Claude-Mem 持久记忆系统完全指南:从安装配置到 MCP 三层搜索工作流的源码级解析 Claude-Mem 持久记忆系统完全指南从安装配置到 MCP 三层搜索工作流的源码级解析【免费下载链接】claude-memPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode More项目地址: https://gitcode.com/GitHub_Trending/cl/claude-memClaude-Memnpm 包名claude-mem仓库主 README 已标注其以 Grok Mem 名义延续是一套为 Claude Code 等 AI 编码代理构建的持久记忆压缩系统它自动捕获会话中的工具使用观察、用 AI 生成语义摘要并在后续会话中把相关上下文重新注入使代理在会话结束或重连后依然保有项目知识。本篇基于仓库内的国际化 READMEdocs/i18n/README.ro.md罗马尼亚语版内容与其他语言版同源展开结合 hooks 注册文件、MCP 服务实现 与 modes 目录 等源码证据完整讲解其安装方式、工作原理、MCP 搜索工具参数、系统要求与模式/语言配置读完后你应能在本地完成安装、读懂上下文注入链路并正确使用search/timeline/get_observations三件套进行 token 高效的历史记忆检索。一、项目定位与核心能力Claude-Mem 的定位用仓库 README 的一句话概括就是Persistent Context Across Sessions for Every Agent——跨会话的持久上下文。它通过自动捕获工具使用观察observations、生成语义摘要summaries并在未来会话中提供这些内容让 Claude 在会话结束或重连后仍能保持对项目知识的连续性。核心能力清单继承自 README持久记忆Persistent Memory上下文跨会话存活渐进式披露Progressive Disclosure分层记忆检索并带有 token 成本可见性基于 Skill 的搜索用mem-searchskill 以自然语言查询项目历史对应仓库中的 mem-search skill 定义Web Viewer 界面worker 启动时打印的 URL 上可以看到实时记忆流Claude Desktop 能力从 Claude Desktop 的对话中搜索记忆隐私控制用private标签将敏感内容排除在存储之外上下文配置对注入的上下文做细粒度控制自动运行无需人工干预引用Citations通过 worker API 以 ID 引用历史观察或在 web viewer 中查看全部。需要注意的一点事实边界npm 上的claude-mem包当前版本为13.24.0见 package.json而本 README 快照中的徽章停留在 13.4.0文中涉及的命令与配置均以仓库当前源码为准。二、快速开始四种安装路径README 给出了四条官方安装路径全部继承并展开如下。2.1 一条命令安装Claude Codenpx claude-mem install2.2 为其他 IDE / CLI 安装# OpenCode npx claude-mem install --ide opencode # Antigravity CLI npx claude-mem install --ide antigravity2.3 从 Claude Code 插件市场安装/plugin marketplace add thedotmack/claude-mem /plugin install claude-mem安装后重启 Claude Code之前会话的上下文会自动出现在新会话中。重要提醒README 原文强调claude-mem虽然发布在 npm 上但npm install -g claude-mem只安装 SDK/库——不会注册插件 hooks也不会配置 worker 服务。必须通过npx claude-mem install或上述/plugin命令安装。2.4 OpenClaw Gateway 一键安装在 OpenClaw 网关上把 claude-mem 装成持久记忆插件curl -fsSL https://install.cmem.ai/openclaw.sh | bash安装脚本负责依赖管理、插件配置、AI 提供商配置、worker 启动以及可选的实时观察推送到 Telegram / Discord / Slack。仓库内 openclaw 目录 提供了插件清单与 skill 定义安装脚本对应 install/openclaw 相关脚本。三、工作原理六大核心组件与 Hook 源码印证README 的 How It Works 一节列出 6 个核心组件5 个生命周期 HookSessionStart、UserPromptSubmit、PostToolUse、Stop、SessionEnd共 6 个 hook 脚本智能安装带缓存的依赖检查器pre-hook 脚本不属于生命周期 hookWorker 服务本地 HTTP API带 web viewer 与搜索端点由 Bun 管理SQLite 数据库存储会话、观察、摘要mem-search skill带渐进式披露的自然语言查询Chroma 向量数据库语义 关键词混合检索支撑智能上下文召回。3.1 从 hooks.json 看真实的 Hook 调用链打开仓库的 plugin/hooks/hooks.json 可以看到每个生命周期事件实际执行的命令。所有 hook 都遵循同一个模式先用 bash 定位插件根目录优先CLAUDE_PLUGIN_ROOT其次扫描~/.claude/plugins/cache/thedotmack/claude-mem/[版本]/并排序取最新再调用bun-runner.js驱动worker-service.cjs的hook claude-code 子命令生命周期事件matcher子命令超时说明Setup*直接执行version-check.js300s依赖检查/版本校验即智能安装的 pre-hookSessionStartstartup\|clear\|compactworker-service.cjs starthook ... context60s第一个启动 worker第二个注入会话上下文UserPromptSubmit—hook ... session-init60s用户提交 prompt 时初始化会话记录PostToolUse*hook ... observationasync120s每次工具调用后捕获观察PreToolUseReadhook ... file-contextasync60s读文件前的文件上下文对应 file-read-gateStop—hook ... summarizeasync120s会话停止点生成语义摘要几个值得注意的实现细节从源码结构看PostToolUse、PreToolUse、Stop三个 hook 都设置了async: true意味着观察捕获与摘要生成不阻塞主对话流程这是自动运行、无感介入的关键每条命令开头都有export PATH$($SHELL -lc echo $PATH):$PATH用于在 hook 的非登录 shell 环境中还原用户 PATH路径解析逻辑里包含cygpath -w转换说明 WindowsGit Bash是显式支持的运行环境。3.2 Worker 服务与 MCP 服务的关系MCP 服务实现 中的search/timeline/get_observations工具处理器并不直接查库而是统一走callWorker(/api/search, ...)、callWorker(/api/timeline, ...)、callWorker(/api/observations/batch, ...)——即 MCP 层是 worker HTTP API 的薄封装。此外 src/servers/mcp-tool-visibility.ts 定义了SERVER_BETA_ONLY_TOOL_NAMES列表在 server-betaPostgres 后端运行时observation_add、memory_search等新工具才会对客户端可见本地 worker 运行时会把这批 beta 工具从 MCP 广告中过滤掉。四、MCP 搜索工具token 高效的三层工作流这是 README 中技术密度最高的章节Claude-Mem 提供遵循三层工作流模式的 MCP 工具集核心思想是先过滤、后取详情实现约 10 倍的 token 节省。4.1 三层工作流search— 获取带 ID 的紧凑索引约 50–100 token/条timeline— 获取感兴趣结果周围的时序上下文get_observations—只为过滤后的 ID 拉取完整详情约 500–1000 token/条。工作流说明先用search拿结果索引 → 用timeline查看特定观察前后发生了什么 → 用get_observations拉取相关 ID 的完整详情。用法示例README 原文// 第 1 步搜索得到索引 search(queryauthentication bug, typebugfix, limit10) // 第 2 步审阅索引识别相关 ID例如 #123、#456 // 第 3 步拉取完整详情 get_observations(ids[123, 456])4.2 源码级参数细节src/servers/mcp-server.ts仓库源码给出了比 README 更完整的参数表search第 474 行起参数参数类型说明querystring搜索查询full-textlimitnumber最大结果数默认 20projectstring按项目名过滤platformSourcestring按平台来源过滤如claude、codex、cursor限定为某代理自己的记忆typestring文档类别observations/sessions/prompts默认 all其他值视为obs_type别名obs_typestring按观察类型过滤如bugfix、feature逗号分隔支持多个dateStart/dateEndstringISO 日期范围过滤offsetnumber分页偏移orderBystring排序date_desc或date_asc源码中还能看到一条值得注意的路由逻辑见 mcp-server.ts 第 492–522 行当 server-beta 可用、存在文本查询、类型为 observations或未指定、且没有/v1/search不支持的过滤条件时请求会被路由到 PG 后端的/v1/search否则回落到 worker 的/api/search本地 SQLite Chroma 混合检索路径。timeline第 525 行起参数参数类型说明anchornumber作为时间线中心的观察 IDquerystring自动定位 anchor 的查询与anchor二选一depth_beforenumberanchor 之前取几条默认 3depth_afternumberanchor 之后取几条默认 3projectstring按项目名过滤get_observations第 543 行起参数idsnumber 数组必填始终建议批量传入多个 ID另有orderBy、limit、project可选过滤。第 4 个工具important_workflow第 440–472 行它不执行查询而是返回三层工作流的完整文字说明无输入参数相当于把永远先过滤再拉详情的规则内嵌给模型这正是 README 所说4 个 MCP 工具的构成——三个检索工具 一个工作流守门工具。此外还有session_start_context工具可渲染与 SessionStart hook 完全一致的注入文本便于调试。五、系统要求与 Windows 注意事项系统要求README 原文Node.js20.0.0 或更高package.json 的engines字段实际声明为node 20.12.0、bun 1.0.0Claude Code支持插件的最新版本BunJavaScript 运行时与进程管理器缺失时自动安装uvPython 包管理器用于向量搜索缺失时自动安装SQLite 3持久存储内置。Windows 配置注意若看到如下错误npm : The term npm is not recognized as the name of a cmdlet请确认已安装 Node.js 与 npm 并加入 PATH从 nodejs.org 下载最新安装器安装后重启终端。六、配置settings.json 与模式/语言6.1 基础配置设置统一由~/.claude-mem/settings.json管理首次运行自动创建并写入默认值。可配置项包括AI 模型、worker 端口、数据目录、日志级别、上下文注入设置。完整设置参考仓库文档 docs/public/configuration.mdx。6.2 模式与语言CLAUDE_MEM_MODECLAUDE_MEM_MODE同时控制两件事工作流行为如 code、chill、investigation与生成观察所用的语言。配置方式——编辑~/.claude-mem/settings.json{ CLAUDE_MEM_MODE: code--zh }模式定义位置plugin/modes/。在本地查看所有可用模式ls ~/.claude/plugins/marketplaces/thedotmack/plugin/modes/README 列出的基础模式模式说明code默认英文模式code--zh简体中文模式code--ja日文模式语言模式遵循code--[lang]模式[lang]为 ISO 639-1 语言代码。源码级补充从 plugin/modes 目录结构看实际内置的模式远不止 README 表格所列 3 个还包括code--ar、code--de、code--es、code--fr、code--ko、code--pt-br、code--ro、code--ru、code--tr、code--vi、code--chill、email-investigation、law-study等 30 个模式文件覆盖几乎与 i18n README 相同的多语言矩阵。以 plugin/modes/code--zh.json 为例其内部是一个prompts对象footer提示词末尾附加了LANGUAGE REQUIREMENTS: Please write the observation data in 中文并通过xml_title_placeholder、xml_subtitle_placeholder、xml_fact_placeholder等占位符把观察输出的 XML 结构title / subtitle / fact / narrative / concept / file与摘要结构request / investigated / learned / completed / next_steps / notes全部本地化——也就是说模式文件不是简单改语言而是整套提示词模板的本地化。注意code--zh简体中文已内置无需额外安装或更新插件。更改模式后需重启 Claude Code 生效。七、发布分支策略Claude-Mem 从三条分支发布继承自 README Release Branches 与 Contributing 章节main稳定分支发布到 npm 的唯一来源core-dev直接从源码运行用于早期可靠性修复community-edge直接从源码运行用于社区集成。只有main会发布到 npm其余分支需要按 docs/public/branches.mdx 的说明从源码运行。八、开发、排障与 Bug 报告开发构建、测试与贡献流程见仓库文档 docs/public/development.mdxpackage.json 中提供了完整的脚本矩阵例如bun test tests全量测试、npm run test:search/test:sqlite/test:worker等分模块测试以及worker:logs、worker:tail等 worker 运维脚本。排障遇到问题时直接把问题描述给 Claude——troubleshootskill 会自动诊断并给出解决方案常见问题参考 docs/public/troubleshooting.mdx。自动化 Bug 报告在插件市场目录运行生成器实现位于 scripts/bug-report/cli.tscd ~/.claude/plugins/marketplaces/thedotmack npm run bug-report贡献流程Fork 仓库 → 建功能分支 → 带测试地修改 → 更新文档 → 提交 Pull Request。九、文档地图与延伸阅读README 的 Documentation 一节对应仓库docs/public/下的完整 mdx 文档树关键入口入门docs/public/installation.mdx、docs/public/usage/getting-started.mdx、docs/public/usage/search-tools.mdx最佳实践docs/public/context-engineering.mdx、docs/public/progressive-disclosure.mdx架构docs/public/architecture/overview.mdx、docs/public/architecture-evolution.mdx、docs/public/hooks-architecture.mdx、docs/public/architecture/hooks.mdx、docs/public/architecture/worker-service.mdx、docs/public/architecture/database.mdxSQLite 模式与 FTS5 搜索、docs/public/architecture/search-architecture.mdxChroma 混合检索配置与运维docs/public/configuration.mdx、docs/public/development.mdx、docs/public/branches.mdx、docs/public/troubleshooting.mdx其他平台集成docs/public/openclaw-integration.mdx、docs/public/antigravity-cli/setup.mdx。十、许可证与 IP 边界Claude-Mem 采用Apache License 2.0许可。README 解释了选型理由持久化的代理记忆应当能方便地嵌入开发者工具、本地代理、MCP 服务器、企业系统、机器人技术栈与生产级代理运行环境。详见 LICENSE 全文以及 docs/license.md 与 docs/ip-boundary.md 中关于许可范围与开源/商业边界的说明。关于 Ragtime 的特别说明ragtime/目录同样采用Apache License 2.0详见 ragtime/LICENSE。小结Claude-Mem 的技术价值集中在两条链路上——写入链路lifecycle hooks → worker → SQLite Chroma → AI 摘要保证无感采集、跨会话存活读取链路MCP 三层工作流 渐进式披露保证按需召回、token 成本可控。本文给出的 hooks.json 调用表、MCP 工具参数表 与 modes 模式矩阵 均直接取自仓库源码可作为二次开发自定义 hook、扩展模式、对接自有 worker时的第一手参考。【免费下载链接】claude-memPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode More项目地址: https://gitcode.com/GitHub_Trending/cl/claude-mem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表