快速开始
本章节是 GitHub Wiki: Getting Started 的镜像。
1. 构建
# 克隆仓库
git clone https://github.com/lingtian303/MemoryCenter.git
cd MemoryCenter
# 构建动态库(memory_center.dll / libmemory_center.so / libmemory_center.dylib)
cargo build --release -p memory-center-ffi
# 构建产物位于:
# Windows: target/release/memory_center.dll
# Linux: target/release/libmemory_center.so
# macOS: target/release/libmemory_center.dylib
2. 接入方式选择
| 场景 | 推荐方式 | 详见 |
|---|---|---|
| AI 编程客户端(Claude Code / Cursor / Trae) | MCP Server (stdio) | MCP 集成 |
| 远程 Agent / Web 端 | MCP Streamable HTTP | MCP 配置指南 |
| Python 项目 | Python 原生绑定 (PyO3) | README 示例 |
| C/C++ 项目 | C ABI 动态库 | README 示例 |
| Node.js 项目 | napi-rs 绑定 | README 示例 |
| Rust 项目 | 直接依赖 crate | Crate 选择指南 |
| 浏览器 / Edge | WASM 组件 | Crate 选择指南 |
3. MCP Server 一键配置(推荐)
最简接入:构建 MCP server 二进制,在客户端配置文件中指定 command 即可。
cargo build --release -p memory-center-mcp
# 产物:target/release/memory-center-mcp
客户端配置(Claude Code / Cursor / Trae):
{
"mcpServers": {
"memory-center": {
"command": "/path/to/memory-center-mcp",
"env": {
"MEMORY_CENTER_ROOT": "/path/to/memory/data"
}
}
}
}
启动后 Agent 会自动发现 21 个 tools,无需额外编码。
4. 下一步
整体架构
本章节是 GitHub Wiki: Architecture 的镜像。
三层分层架构
Layer 3: Bindings ① Python 原生绑定 (PyO3) ② WASM 组件 ③ Node/Go/Java
Layer 2: Interface ① C ABI ② Axum HTTP REST ③ MCP stdio ④ MCP Streamable HTTP
Layer 1: Core (Rust) 纯逻辑 crate(core-logic)+ facade crate(core)
架构图
flowchart TB
subgraph L3["Layer 3 · Bindings"]
PY["Python (PyO3)"]
WASM["WASM"]
NODE["Node.js (napi-rs)"]
end
subgraph L2["Layer 2 · Interface"]
FFI["C ABI"]
HTTP["HTTP REST (Axum)"]
MCP["MCP Server"]
end
subgraph L1["Layer 1 · Core (Rust)"]
CORE["memory-center-core (facade)"]
LOGIC["core-logic (纯逻辑)"]
SEARCH["search (BM25 + 语义)"]
LLM["llm (摘要+冲突)"]
PRESET["presets (11 Agent + 7 Scenario)"]
end
subgraph STORE["Storage"]
SQLITE["SQLite (含向量)"]
FILE["文件树"]
end
PY --> FFI
WASM --> LOGIC
NODE --> FFI
FFI --> CORE
HTTP --> CORE
MCP --> CORE
CORE --> LOGIC
CORE --> SEARCH
CORE --> LLM
CORE --> PRESET
LOGIC --> STORE
SEARCH --> STORE
设计原则
- 纯逻辑与 IO 分离:
core-logic无 IO 依赖,可编译为 WASM;core作为 facade 整合原生实现 - 可插拔架构:
Storage/Scorer/Migrator等 trait 均可替换实现 - 接入层无状态:HTTP / MCP server 无状态,水平扩展友好
- 跨语言一致性:所有接入方式共享同一组核心操作(archive / retrieve / summaries / prompt / compaction)
数据流
归档流程
sequenceDiagram
autonumber
participant Agent
participant MCP as MCP Server
participant Core as Core
participant Store as Storage
Agent->>MCP: archive(session_id, turns_json)
MCP->>Core: archive(turns)
Core->>Store: freeze_context()
Core->>Store: 生成索引钩子
Store-->>Core: hook_id
Core-->>MCP: 归档摘要
MCP-->>Agent: 归档成功
检索流程
sequenceDiagram
autonumber
participant Agent
participant MCP as MCP Server
participant Core as Core
participant Store as Storage
Agent->>MCP: prompt(session_id)
MCP->>Core: render_prompt()
Core->>Store: load_summaries()
Store-->>Core: 摘要钩子列表
Core-->>MCP: prompt 文本
MCP-->>Agent: 注入 system prompt
Note over Agent,Store: LLM 需要细节时
Agent->>MCP: retrieve(hook_id)
MCP->>Core: retrieve(hook_id)
Core->>Store: load_full_turns()
Store-->>Agent: 完整对话上下文
详细文档
完整的架构设计文档见 docs/ARCHITECTURE.md(仓库内)与 Wiki: Architecture。
Crate 选择指南
本章节是 GitHub Wiki: Crate Guide 的镜像。
Crate 矩阵
| Crate | 说明 | 状态 |
|---|---|---|
memory-center-core-logic | 纯逻辑核心(数据模型 / 归档 / 索引 / 检索 / 评分 / BM25 / 语义检索),可编译为 WASM | ✅ v2.35 |
memory-center-core | Facade crate,重导出 core-logic + 保留原生 IO 实现(SQLite / 文件树存储) | ✅ MVP |
memory-center-ffi | C ABI 动态库 + C 头文件 | ✅ MVP |
memory-center-server | Axum HTTP REST API + MCP Streamable HTTP 服务(无状态,水平扩展) | ✅ v2.36 |
memory-center-python | Python 原生绑定(PyO3 + maturin) | ✅ v2.2 |
memory-center-mcp | MCP Server(stdio + Streamable HTTP,21 个 tools) | ✅ v2.37 |
memory-center-wasm | WASM 组件(wasm-bindgen + MemoryStorage + JsStorage) | ✅ v2.35 |
memory-center-models | 型号库(11 个 Agent + 7 个 Scenario + ModelVariant 注册表) | ✅ v2.3 |
memory-center-presets | 预设配置(CombinedProfile 构建 + 场景检测 + Agent 联动) | ✅ v2.3 |
memory-center-agents | Agent 预设管理(ClaudeCode / Cursor / Trae / Codex 等 11 个) | ✅ v2.3 |
memory-center-scenarios | 场景管理(coding / writing / research 等 7 个 + 优先级标签) | ✅ v2.3 |
memory-center-llm | LLM 集成(摘要生成 + 冲突检测 + Embedding + 场景检测) | ✅ v2.3 |
memory-center-search | 搜索引擎(BM25 + 语义检索 + session 级搜索) | ✅ v2.3 |
memory-center-skills | 技能管理(内置技能 + 记忆链接 + 技能画像) | ✅ v2.3 |
memory-center-windows | 窗口管理(上下文窗口配置 + 压缩协作策略) | ✅ v2.3 |
memory-center-bench | 性能基准(核心操作 + 后端对比 + 格式对比 + 并发压测) | ✅ MVP |
memory-center-node | Node.js 绑定(napi-rs 3.x,异步 Promise API) | ✅ v2.14 |
memory-center-go | Go 绑定(cgo,v2.4+) | 🚧 计划中 |
memory-center-java | Java 绑定(JNA,v2.4+) | 🚧 计划中 |
选择决策树
你的场景是什么?
├─ AI 编程客户端(Claude Code / Cursor / Trae)
│ └─ memory-center-mcp(stdio 模式)
├─ 远程 Agent / Web 端
│ └─ memory-center-server(MCP Streamable HTTP + REST API)
├─ Python 项目
│ └─ memory-center-python(PyO3 原生绑定)
├─ Node.js 项目
│ └─ memory-center-node(napi-rs)
├─ C/C++ 项目
│ └─ memory-center-ffi(C ABI 动态库)
├─ Rust 项目
│ └─ memory-center-core(直接依赖 facade crate)
├─ 浏览器 / Edge
│ └─ memory-center-wasm(wasm-bindgen)
└─ 其他语言
└─ 通过 HTTP REST API 接入
依赖关系
core-logic:纯逻辑,无 IO 依赖,可编译为 WASMcore:依赖core-logic,添加原生 IO(SQLite / 文件树)ffi/python/node/wasm:依赖core(或core-logicfor WASM)server/mcp:依赖core+llm+search+presets等- 业务 crate 不可反向依赖入口 crate
详细文档
完整指南见 Wiki: Crate Guide。
MCP 集成
本章节是 GitHub Wiki: MCP Integration 的镜像。
MCP 是什么
MCP(Model Context Protocol)是 Anthropic 推出的 Agent 工具调用协议,主流 AI 编程客户端全支持。MemoryCenter MCP server 让 Agent 通过标准协议调用记忆库能力,无需自己实现归档/检索逻辑。
两种传输模式
| 模式 | 版本 | 适用场景 | Binary |
|---|---|---|---|
| stdio | v2.3 | 本地 IDE(Claude Code / Cursor / Trae) | memory-center-mcp |
| Streamable HTTP | v2.36 | 远程客户端(DeepSeek 网页端等) | memory-center-server |
21 个 Tools 一览
| 类别 | Tools |
|---|---|
| 归档/检索 | archive / pre_compress_hook / retrieve / batch_retrieve / batch_delete / batch_update / find_hook_by_prefix |
| 摘要/渲染 | summaries / prompt / get_config |
| 检索增强 | semantic_search / detect_conflicts / get_conflicts |
| 周期任务 | compaction |
| 预设管理 | preset_build / preset_list_agents / preset_list_scenarios / preset_list_models |
| 项目记忆 | update_project_memory / get_project_memory |
| 规则安装 | install_rules(支持本地直接写入 + 远程模板模式) |
最简配置(stdio 模式)
{
"mcpServers": {
"memory-center": {
"command": "/path/to/memory-center-mcp",
"env": {
"MEMORY_CENTER_ROOT": "/path/to/memory/data"
}
}
}
}
Streamable HTTP 模式
{
"mcpServers": {
"memory-center": {
"url": "https://your-server/mcp",
"transport": "streamable-http"
}
}
}
详细配置
各环境详细配置、踩坑排查见 MCP 配置指南。
完整 MCP tools 实现见 crates/memory-center-mcp/src/lib.rs。 MCP 集成测试见 crates/memory-center-mcp/tests/(56 个测试用例)。
MCP 配置指南
本章节是 GitHub Wiki: MCP Configuration Guide 的镜像。
配置总览
MemoryCenter MCP 支持两种传输模式 × 四种部署环境,组合出 8 种典型配置场景。
| 传输模式 | 本地直连 | Docker | Nginx 反代 | Cloudflare CDN |
|---|---|---|---|---|
| stdio | ✅ 最简 | ✅ | N/A | N/A |
| Streamable HTTP | ✅ | ✅ | ✅ | ⚠️ 需 HTTPS |
详细配置文档
完整配置指南(含通用配置 / stdio / HTTP / Cloudflare / Docker / 环境变量参考 / 常见问题排查 / 配置检查清单)见 Wiki: MCP Configuration Guide。
关键环境变量速查
| 环境变量 | 说明 | 默认值 |
|---|---|---|
MEMORY_CENTER_ROOT | 记忆数据存储根目录 | 必填 |
MEMORY_CENTER_MCP_ENABLED | 启用 MCP Streamable HTTP 端点 | false |
MEMORY_CENTER_MCP_STATEFUL | 启用 session 模式 | true |
MEMORY_CENTER_MCP_ALLOWED_HOSTS | 允许的 Host(DNS rebinding 防护) | localhost,127.0.0.1,::1 |
MEMORY_CENTER_MCP_ALLOWED_ORIGINS | 允许的 Origin(CORS 防护) | 空 |
MEMORY_CENTER_PRESET_AGENT | 预设 Agent(HTTP 模式推荐设置) | 空(自动识别) |
MEMORY_CENTER_LLM_API_BASE | LLM API 地址(摘要生成用) | 空(降级启发式) |
MEMORY_CENTER_LLM_API_KEY | LLM API Key | 空(降级启发式) |
MEMORY_CENTER_LLM_MODEL | LLM 模型名 | 空(降级启发式) |
MEMORY_CENTER_EMBEDDER_API_BASE | Embedding API 地址(语义检索用) | 空(降级 BM25) |
MEMORY_CENTER_EMBEDDER_API_KEY | Embedding API Key | 空(降级 BM25) |
踩坑提示
- Cloudflare CDN 必须 HTTPS:HTTP 请求会被 301 重定向到 HTTPS,MCP 客户端不处理重定向,导致
Connection closed - Binary 名称带连字符:
memory-center-mcp(正确)vsmemorycenter-mcp(错误) - HTTP 模式 Agent 识别:服务端无法获取 MCP ClientInfo,需通过
MEMORY_CENTER_PRESET_AGENT环境变量指定
完整踩坑排查见 Wiki: MCP Configuration Guide §常见问题排查。
REST API 参考
本章节是 GitHub Wiki: API Reference 的镜像。
接口概览
所有 REST API 路径前缀:/api/v1
| 操作 | Method | Path |
|---|---|---|
| 归档 | POST | /sessions/{sid}/archive |
| 检索 | GET | /sessions/{sid}/memories/{hook_id} |
| 摘要列表 | GET | /sessions/{sid}/summaries |
| 渲染 prompt | GET | /sessions/{sid}/prompt |
| 周期任务 | POST | /sessions/{sid}/compaction |
示例
归档
curl -X POST http://localhost:8765/api/v1/sessions/sess-001/archive \
-H "Content-Type: application/json" \
-d '{"turns": [...], "project_id": "proj-a"}'
获取摘要
curl http://localhost:8765/api/v1/sessions/sess-001/summaries
渲染 prompt
curl http://localhost:8765/api/v1/sessions/sess-001/prompt
检索记忆
curl http://localhost:8765/api/v1/sessions/sess-001/memories/<hook_id>
周期任务
curl -X POST http://localhost:8765/api/v1/sessions/sess-001/compaction \
-H "Content-Type: application/json" -d '{"period": "weekly"}'
启动服务
MEMORY_CENTER_HOST=0.0.0.0 \
MEMORY_CENTER_PORT=8765 \
MEMORY_CENTER_ROOT=./data \
cargo run -p memory-center-server
完整文档
完整 API 文档(含请求/响应 schema、错误码、鉴权)见:
部署指南
本章节是 GitHub Wiki: Deployment 的镜像。
部署方式选择
| 方式 | 适用场景 | 复杂度 |
|---|---|---|
| 单二进制 + systemd | 单机生产部署 | ⭐ |
| Docker | 容器化环境 | ⭐⭐ |
| Nginx 反代 + systemd | 需要 HTTPS / 多服务统一入口 | ⭐⭐ |
| Cloudflare CDN + Nginx | 全球加速 + DDoS 防护 | ⭐⭐⭐ |
单二进制 + systemd(最简)
1. 构建二进制
cargo build --release -p memory-center-server
# 产物:target/release/memory-center-server
2. systemd 配置
# /etc/systemd/system/memory-center.service
[Unit]
Description=MemoryCenter Server
After=network.target
[Service]
Type=simple
User=mc
WorkingDirectory=/opt/memorycenter
Environment=MEMORY_CENTER_HOST=127.0.0.1
Environment=MEMORY_CENTER_PORT=8765
Environment=MEMORY_CENTER_ROOT=/var/lib/memorycenter/data
Environment=MEMORY_CENTER_MCP_ENABLED=true
Environment=MEMORY_CENTER_MCP_ALLOWED_HOSTS=your-domain.com,localhost,127.0.0.1
ExecStart=/opt/memorycenter/memory-center-server
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
3. 启动
sudo systemctl daemon-reload
sudo systemctl enable --now memory-center
sudo systemctl status memory-center
Nginx 反代配置
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location /memory-center/ {
proxy_pass http://127.0.0.1:8765/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off; # SSE 流需要
}
}
完整文档
完整部署文档(含 Docker / Cloudflare / 备份 / 监控 / 排查)见:
变更历史
本章节是 GitHub Wiki: Changelog 的镜像,保持与 CHANGELOG.md 同步。
版本状态
- ✅ MVP(P0-P5):核心库 + C ABI 动态库 + 文档 + 示例 + 跨语言测试 + 性能基准
- ✅ v2.1:HTTP/Axum REST API 服务(无状态,水平扩展)
- ✅ v2.2:Python 原生绑定(PyO3 + maturin,OOP 风格 + 上下文管理器)
- ✅ v2.3:MCP Server(rmcp,stdio 传输)+ 预设系统(11 Agent + 7 Scenario)+ 差异化定位文档
- ✅ v2.3x:冲突检测 + 压缩前归档(pre_compress_hook)+ 语义检索 + project_memory 反向写入 + install_rules 规则安装
- ✅ v2.35:WASM 组件(wasm-bindgen + MemoryStorage + JsStorage + MemoryCenterCore JS API)
- ✅ v2.36:MCP Streamable HTTP 传输(
/mcp端点,与 REST API 共享 Axum 服务) - ✅ v2.37:install_rules 远程模式(HTTPS MCP 模式下返回模板让 LLM 用 Write 工具创建文件)
- 🚧 v2.4 路线图:Go/Java 绑定 + 语义检索增强(向量库集成)
详细变更
完整变更历史见 CHANGELOG.md 与 Wiki: Changelog。