Claude-Mem 法语版 README 深度解读:跨会话持久记忆、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-mem
Claude-Mem 的 法语 README 是该项目 31 个官方语言版本之一,完整承载了英文主 README 的全部技术内容:跨会话持久上下文的工作机制、多平台安装路径、生命周期 hooks 架构、MCP 三层记忆搜索工作流以及~/.claude-mem/settings.json配置体系。本文以该法语文档为主体逐节展开,并结合仓库源码(hooks 定义、默认值管理器、MCP 服务器、mem-search 技能)补充实现细节,帮助法语读者与中文开发者都能完整掌握 Claude-Mem 的安装、配置与检索实战方案。
注意:该文档首行声明为自动翻译产物,欢迎社区修正。文档中的徽章显示版本为 13.4.0、Node >= 20.0.0,而当前仓库 package.json 实际版本为 13.24.0、
engines.node要求>=20.12.0——这说明该法语 README 是早期版本翻译的快照,具体版本能力请以当前仓库为准。
快速安装
法语 README 给出的核心安装命令只有一条:
npx claude-mem install针对不同 IDE / 平台的安装方式:
# 安装到 OpenCode npx claude-mem install --ide opencode # 安装到 Antigravity CLI npx claude-mem install --ide antigravity也可以在 Claude Code 内直接通过插件 marketplace 安装:
/plugin marketplace add thedotmack/claude-mem /plugin install claude-mem安装完成后重启 Claude Code,之前会话的上下文会自动出现在新会话中。
文档特别强调了一条重要的安装陷阱:npm install -g claude-mem只安装 SDK/库——它不会注册插件 hooks、也不会配置 service worker。必须使用npx claude-mem install或上面的/plugin命令完成完整安装。仓库中install/目录下的 installer.js 正是npx claude-mem的安装入口。
OpenClaw Gateway
法语 README 还提供了一键将 claude-mem 作为持久记忆插件安装到 OpenClaw 网关的方式(curl -fsSL https://install.cmem.ai/openclaw.sh | bash)。安装器会自动处理依赖、插件配置、AI 供应商配置、worker 启动,以及可选的 Telegram/Discord/Slack 实时观察流。本仓库 openclaw/ 目录下有对应的插件实现:openclaw.plugin.json 定义插件契约,install.sh 是本地安装脚本,openclaw/TESTING.md 与test-e2e.sh提供端到端验证流程。
文档列出的关键能力清单(法语原文的九项特性)对应如下:
- 持久记忆——上下文跨会话存活;
- 渐进式披露(divulgence progressive)——分层记忆检索并可见 token 成本;
- 基于技能的搜索——用
mem-search技能查询项目历史; - Web 可视化界面——worker 启动时打印的 URL 提供实时记忆流;
- Claude Desktop 技能——从桌面端会话中检索记忆;
- 隐私控制——用
<private>标签排除敏感内容; - 上下文注入配置——精确控制注入内容;
- 全自动运行——无需人工干预;
- 引用(citations)——通过 worker API 按观察 ID 引用历史,或在 Web 界面查看全部。
六大核心组件与生命周期 hooks
法语 README 的「Comment ça fonctionne」一节列出了系统的六大组成部分,这一节是整个项目架构的骨架:
- 5 个生命周期 hooks——SessionStart、UserPromptSubmit、PostToolUse、Stop、SessionEnd(共 6 个 hook 脚本);
- 智能安装——带缓存的依赖检查器(前置脚本,不属于生命周期 hook);
- Service Worker——Bun 托管的本地 HTTP API,提供 Web 可视化界面与搜索端点;
- SQLite 数据库——存储会话(sessions)、观察(observations)、摘要(summaries);
- mem-search 技能——自然语言查询 + 渐进式披露;
- Chroma 向量数据库——语义 + 关键词混合检索,实现智能上下文召回。
这些组件声明可以在 plugin/hooks/hooks.json 中得到直接印证。该文件注册了六个 hook 事件,每个事件的命令最终都通过node bun-runner.js worker-service.cjs hook claude-code <子命令>转发给 worker 服务:
| Hook 事件 | 匹配器 | worker 子命令 | 超时 | 异步 |
|---|---|---|---|---|
| Setup | * | 执行scripts/version-check.js(依赖检查,即上文第 2 条"智能安装") | 300s | 否 |
| SessionStart | startup\|clear\|compact | start(启动 worker)+context(注入上下文) | 60s | 否 |
| UserPromptSubmit | — | session-init | 60s | 否 |
| PostToolUse | * | observation(捕获工具使用观察) | 120s | 是 |
| PreToolUse | Read | file-context | 60s | 是 |
| Stop | — | summarize(生成会话摘要) | 120s | 是 |
两个值得注意的实现细节:
- hooks.json 里每个命令都内嵌了一段 bash 逻辑:优先使用
CLAUDE_PLUGIN_ROOT,否则在~/.claude/plugins/cache/thedotmack/claude-mem/下按语义化版本排序选取最新的非孤儿缓存目录,最后回退到~/.claude/plugins/marketplaces/thedotmack/plugin;在 Windows Git Bash 环境下还会调用cygpath -w把路径转为 Windows 格式。这解释了为什么插件缓存多版本共存时仍能始终命中最新副本; - 捕获类 hook(PostToolUse/Stop)标记为
async: true,不阻塞用户交互,这正是"自动记录、零感知"体验的来源。
worker 侧的入口是 src/services/worker-service.ts,MCP 服务器启动 worker 的调用链见 src/servers/mcp-server.ts(resolveWorkerScriptPath()解析 worker 脚本路径)。
MCP 三层搜索工作流
法语 README 用一整节介绍 Claude-Mem 通过4 个 MCP 工具提供的记忆检索,核心是一个节省 token 的三层工作流:
search——获取带 ID 的紧凑索引(约 50–100 tokens/条结果);timeline——查看感兴趣结果周围的时序上下文;get_observations——仅对筛选后的 ID 拉取完整详情(约 500–1000 tokens/条)。
按"先筛选、后取详情"的策略,文档宣称可获得约 10 倍的 token 节省。文档给出的用法示例:
// 第 1 步:搜索索引 search(query="authentication bug", type="bugfix", limit=10) // 第 2 步:检查索引,识别相关 ID(如 #123、#456) // 第 3 步:拉取完整详情 get_observations(ids=[123, 456])这些工具的真实定义与参数在 plugin/skills/mem-search/SKILL.md 中有完整文档,比法语 README 更细,可直接作为实操参考:
search参数:query(检索词)、limit(默认 20,最大 100)、project(项目名过滤)、type(observations/sessions/prompts)、obs_type(逗号分隔:bugfix, feature, decision, discovery, change)、dateStart/dateEnd(YYYY-MM-DD或 epoch 毫秒)、offset(跳过量)、orderBy(默认date_desc,可选date_asc、relevance)。返回形如| #11131 | 3:48 PM | 🟣 | Added JWT authentication | ~75 |的索引表;timeline参数:anchor(观察 ID 锚点)或query(自动定位锚点)、depth_before/depth_after(默认 5,最大 20)、project。返回锚点前后depth_before + 1 + depth_after个条目,观察、会话、提示词按时序交错排列;get_observations参数:ids(数字数组,必填)、orderBy(默认date_desc)、limit、project。SKILL.md 明确要求"2 条以上观察务必用一次批量请求,而不是 N 次单条请求"。
从源码结构看,MCP 服务器 src/servers/mcp-server.ts 本身不实现检索逻辑:所有工具调用经callWorker()(第 72 行起)转发到本地 worker 的 HTTP API,检索能力由 worker 内的 SQLite FTS5 + Chroma 混合搜索实现;工具集在worker与server两种运行时下的可见性由 src/servers/mcp-tool-visibility.ts 按运行时选择(server 运行时下使用observation_search等命名),MCP 工具命名与暴露面的安全性有专门测试 tests/servers/mcp-server-name-safety.test.ts。
模式与语言配置(CLAUDE_MEM_MODE)
法语 README 的「Configuration du mode et de la langue」一节说明:CLAUDE_MEM_MODE参数同时控制工作流行为(如 code、chill、investigation)和生成观察所使用的语言。配置方法是编辑~/.claude-mem/settings.json:
{ "CLAUDE_MEM_MODE": "code--zh" }语言特定模式遵循code--[lang]命名规则,[lang]为 ISO 639-1 语言代码(zh中文、ja日语、es西班牙语等)。文档提醒:模式定义存放在插件的modes/目录,本地查看可用模式的命令是ls ~/.claude/plugins/marketplaces/thedotmack/plugin/modes/;更换模式后必须重启 Claude Code 生效。
这里可以对照仓库源码做两点补充:
- 该参数是完整的设置项之一:src/shared/SettingsDefaultsManager.ts 中
CLAUDE_MEM_MODE的默认值为'code',与文档一致; - 当前仓库 plugin/modes/ 目录实际提供了31 个语言变体(ar、bn、chill、cs、da、de、el、es、fi、fr、he、hi、hu、id、it、ja、ko、nl、no、pl、pt-br、ro、ru、sv、th、tr、uk、ur、vi、zh)外加
email-investigation、law-study、meme-tokens等实验模式。以 plugin/modes/code--fr.json 为例,模式文件的prompts字段通过 footer 中的 "LANGUAGE REQUIREMENTS" 指令强制观察与摘要以目标语言写出,并为 title/subtitle/fact/narrative 各 XML 占位符提供本地化提示文案——这就是"语言模式"的完整实现机制。
系统要求与 Windows 安装注意事项
法语 README 列出的系统要求:
- Node.js:20.0.0 及以上(当前仓库实际要求
>=20.12.0); - Claude Code:支持插件的最新版本;
- Bun:JavaScript 运行时与进程管理器,缺失时自动安装;
- uv:Python 包管理器,用于向量检索,缺失时自动安装;
- SQLite 3:持久化存储,随系统提供。
Windows 部分指出:若出现npm : The term 'npm' is not recognized as the name of a cmdlet类错误,说明 Node.js/npm 未安装或未加入 PATH,需安装 Node.js 并重启终端。这条提示与 hooks.json 中大量cygpath、$SHELL -lc 'echo $PATH'的 Windows/Git Bash 适配逻辑相互印证——项目对 Windows 环境的兼容是有意为之的一等公民支持。
配置体系:settings.json 的加载规则与关键默认值
文档说明:所有参数集中在~/.claude-mem/settings.json(首次启动自动以默认值创建),可配置 AI 模型、worker 端口、数据目录、日志级别与上下文注入参数。
这一"首次启动自动创建"的行为在 src/shared/SettingsDefaultsManager.ts 的loadFromFile()中得到确认,且该文件揭示了完整的配置优先级链路:内置默认值 < settings.json 持久化值 < 环境变量。具体而言:
- 文件不存在时,用
getAllDefaults()原子写入一份完整默认配置(writeJsonFileAtomic,见 src/shared/atomic-json.ts); - 文件存在时,仅覆盖
DEFAULTS中声明过的键(第 323–328 行),未知键不会干扰运行;还兼容旧版{ "env": {...} }嵌套结构并自动扁平化迁移; - 最后
applyEnvOverrides()(第 254–262 行)让同名环境变量覆盖文件值。
法语 README 未逐一列举、但对实操最有用的部分默认值(引自 SettingsDefaultsManager.ts 第 134–239 行):
| 设置项 | 默认值 | 说明 |
|---|---|---|
CLAUDE_MEM_MODEL | claude-haiku-4-5-20251001 | 观察生成使用的模型 |
CLAUDE_MEM_WORKER_PORT | 37700 + (uid % 100) | worker 本地 HTTP 端口,按 UID 派生实现多账户隔离 |
CLAUDE_MEM_WORKER_HOST | 127.0.0.1 | worker 绑定地址 |
CLAUDE_MEM_DATA_DIR | ~/.claude-mem | 数据目录 |
CLAUDE_MEM_LOG_LEVEL | INFO | 日志级别 |
CLAUDE_MEM_MODE | code | 模式/语言配置(上文已述) |
CLAUDE_MEM_CONTEXT_OBSERVATIONS | 50 | 会话启动时注入的观察数量 |
CLAUDE_MEM_CONTEXT_SESSION_COUNT | 10 | 注入上下文中包含的会话数 |
CLAUDE_MEM_SKIP_TOOLS | ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion | 不捕获观察的工具白名单 |
CLAUDE_MEM_PROVIDER | claude | 观察生成的 AI 供应商(另有 gemini、openrouter 等参数族) |
CLAUDE_MEM_MAX_CONCURRENT_AGENTS | 2 | 并发 Claude SDK 子进程上限 |
CLAUDE_MEM_CHROMA_ENABLED/CLAUDE_MEM_CHROMA_MODE | true/local | 向量检索开关;local走 uvx 持久化 chroma-mcp,remote连现有 Chroma 服务(默认127.0.0.1:8000) |
CLAUDE_MEM_HOOK_FAIL_LOUD_THRESHOLD | 3 | 连续 N 次 worker 不可达后 hook 以退出码 2 报错 |
CLAUDE_MEM_SEMANTIC_INJECT/_LIMIT | false/5 | 实验特性:每次 UserPromptSubmit 注入 Top-N 相关历史观察 |
这些键的完整清单(含 Gemini/OpenRouter/Chroma/Telegram/Cloud Sync/Server 运行时等参数族)均可在 SettingsDefaultsManager.ts 的SettingsDefaults接口(第 22–131 行)中逐项核对。
发布分支、Bug 报告与贡献流程
发布分支:稳定版从main发布到 npm;core-dev与community-edge是供早期可靠性修复与社区集成"从源码运行"的分支,仅main会发布到 npm。
Bug 报告:文档给出了自动化 bug 报告生成器:
cd ~/.claude/plugins/marketplaces/thedotmack npm run bug-report对应当前仓库 package.json 中的脚本"bug-report": "bun scripts/bug-report/cli.ts",实现位于 scripts/bug-report/(cli.ts为命令行入口,collector.ts收集环境信息)。
贡献流程:Fork 仓库 → 建功能分支 → 带测试地修改 → 更新文档 → 提交 Pull Request。项目采用 Apache License 2.0,文档解释选择该许可的原因:持久代理记忆需要能顺利集成进开发工具、本地 agent、MCP 服务器、企业系统乃至生产 agent 基础设施;许可范围与开源/商业边界另见 docs/license.md 与 docs/ip-boundary.md。ragtime/目录同样为 Apache 2.0(见 ragtime/LICENSE)。
法语 README 本身是如何生成的
最后一个值得记录的事实:docs/i18n/下的 31 个语言版本并非纯手工翻译。仓库内置了 scripts/translate-readme/ 翻译工具链,其 README 说明该工具基于 Claude Agent SDK 将 README 翻译到多语言,核心实现 scripts/translate-readme/index.ts 有三个与可维护性直接相关的设计:
- 内容哈希缓存——用 SHA-256 前 16 位对源文件内容指纹化(
hashContent),源码未变时直接命中TranslationCache,不重复调用模型; - 成本护栏——
maxBudgetUsd参数为每次翻译作业设置美元预算上限; - 代码块保护——
preserveCode默认保留代码块不翻译,这正是法语 README 中所有 bash/typescript 代码示例与英文原文逐字一致的原因。
该工具支持--use-existing(以既有译文为参考)、-o/--pattern(输出目录与文件名模式)等 CLI 选项,translate-readme README.md es fr de一条命令即可批量产出README.{lang}.md——这与docs/i18n/目录中README.fr.md、README.ja.md等文件的命名模式完全吻合。也就是说,当你向法语 README 提交翻译修正时,需要意识到源文档更新后缓存指纹会变化、工具链可能以英文原文重新生成覆盖——社区修正的价值在于反馈给英文主文档。
小结
这篇法语 README 虽为自动翻译快照,但它完整映射了 Claude-Mem 的技术全貌:以npx claude-mem install一键接入 Claude Code/OpenCode/Antigravity/OpenClaw,以 hooks.json 注册的六个 hook 事件自动捕获观察、以 Bun 托管的本地 worker 提供 HTTP API 与 Web 可视化,以 SQLite + Chroma 支撑search → timeline → get_observations三层检索工作流,并以~/.claude-mem/settings.json(默认值、文件、环境变量三级覆盖)暴露模型、端口、模式语言等完整配置面。文中每一处结论都可以沿给出的相对路径在本仓库中复核,这也是引用本文时最可靠的验证方式。
【免费下载链接】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),仅供参考