# codebuddy-mem 跨会话持久记忆系统 — 基于 [claude-mem](https://github.com/thedotmack/claude-mem) AGPL-3.0 分叉,适配 DeepSeek V4 / CodeBuddy Code。 ## 与 claude-mem 的区别 | 项目 | claude-mem | codebuddy-mem | |------|-----------|---------------| | AI 后端 | Claude API | DeepSeek V4(直连) | | MCP 客户端 | Claude Code | CodeBuddy Code | | 仓库 | github.com/thedotmack | git.yxcowork.vip/qiukai | | 维护 | @thedotmack | 筑基阁 / 开阳星 | ## 功能 - **跨会话记忆**:自动记录所有操作,下次会话自动恢复上下文 - **语义搜索**:搜索历史会话中的工具调用、观察记录、输出 - **语料库**:构建知识语料库,通过 AI 问答检索 - **代码结构**:smart_outline / smart_unfold 快速浏览代码 ## 数据目录 默认 `~/.codebuddy-mem/`,由 `CODEBUDDY_MEM_DATA_DIR` 环境变量控制。 ``` ~/.codebuddy-mem/ ├── codebuddy-mem.db ← 主数据库 (SQLite) ├── claude-mem.db → codebuddy-mem.db ← 符号链接,兼容 worker 硬编码 ├── chroma/ ← HNSW 向量索引 ├── chroma-sync-state.json ← 各项目同步水位线 ├── settings.json ← 运行时配置 ├── supervisor.json ← 进程管理状态 └── logs/ ← 运行日志 ``` > **命名说明**:worker 二进制中硬编码了 `claude-mem.db` 文件名。真实文件已改为 `codebuddy-mem.db`,`claude-mem.db` 是符号链接。上游修复后删除链接即可。 ## 从 claude-mem 迁移 ```bash # 1. 停掉旧版 pkill -f "thedotmack/claude-mem" pkill -f "claude-mem/chroma" # 2. 复制数据 cp ~/.claude-mem/claude-mem.db ~/.codebuddy-mem/codebuddy-mem.db cp -r ~/.claude-mem/chroma/ ~/.codebuddy-mem/chroma/ # 3. 重置 chroma 同步水位线(否则搜索不返回结果) # 将 chroma-sync-state.json 中各项目的 observations/summaries/prompts 置为 0 # 4. 创建符号链接 cd ~/.codebuddy-mem && ln -s codebuddy-mem.db claude-mem.db # 5. 清理旧残留 mv ~/.claude-mem ~/.Trash/ rm ~/.codebuddy/hooks/claude-mem-*.sh ``` ## Hook 配置 Hook 负责在 CodeBuddy Code 生命周期事件中向 worker 发送数据。必须设置以下环境变量,否则 `bun-runner.js` 会回写到 `~/.claude-mem/`: ```json { "hooks": { "SessionStart": [{ "matcher": "startup|clear|compact", "hooks": [{ "type": "command", "command": "export CLAUDE_MEM_DATA_DIR=\"$HOME/.codebuddy-mem\"; export CODEBUDDY_MEM_DATA_DIR=\"$HOME/.codebuddy-mem\"; ..." }] }] } } ``` 完整配置见 `hooks/hooks.json`。 ## 回归测试 ```bash bash scripts/regression-test.sh ``` 11 层 47 项覆盖:进程 / 文件 / 数据库 / 数据统计 / 完整性 / Chroma / 配置 / 日志 / HTTP / Hook / MCP API。 ## 安装 ### 方式一:独立 MCP 服务 ```bash # 克隆仓库 git clone https://git.yxcowork.vip/qiukai/codebuddy-mem.git ~/.codebuddy-mem # 安装依赖 cd ~/.codebuddy-mem && bun install # 配置 MCP(~/.codebuddy/.mcp.json) { "mcpServers": { "codebuddy-mem": { "type": "stdio", "command": "bun", "args": ["~/.codebuddy-mem/scripts/mcp-server.cjs"] } } } ``` ### 方式二:CodeBuddy 插件 ```bash bash install.sh ``` ## 配置 配置文件:`~/.codebuddy-mem/settings.json` ```json { "CODEBUDDY_MEM_PROVIDER": "deepseek", "CODEBUDDY_MEM_DEEPSEEK_API_KEY": "sk-xxx", "CODEBUDDY_MEM_MODEL": "deepseek-chat", "CODEBUDDY_MEM_WORKER_PORT": "37701" } ``` ## 协议 AGPL-3.0 — 继承自 claude-mem,源码必须保持开放。 ## 上游 本仓库基于 [claude-mem v12.6.0](https://github.com/thedotmack/claude-mem) 分叉。详见 [UPSTREAM.md](./UPSTREAM.md)。