Files
codebuddy-mem/README.md
qiukai b84d163af1 docs: 更新 README 和 CHANGELOG,记录 v13.0.1 所有变更
README 新增:
- 数据目录结构与命名约定说明
- 从 claude-mem 迁移步骤
- Hook 配置要点与必须的环境变量
- 回归测试使用说明

CHANGELOG 新增 v13.0.1:
- Hook DATA_DIR 环境变量修复
- 数据库文件命名规范 (codebuddy-mem.db + symlink)
- 回归测试脚本
- 已知问题更新
2026-05-05 03:50:43 +08:00

137 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)。