Simple Rick
Simple Rick
面向 AI 编码代理的持久记忆。
每一次与 AI 代理的编码会话都是从零开始的。你重新解释架构,重新论证三周前已经做出的决策,并重新发现自己已经修复过一次的 bug。会话记录确实存在,但它是一堵无人(无论是人类还是模型)会回读的文字墙。
Simple Rick 是一个与你的代理并排运行的 MCP 服务器,它解决了这个问题。它记录会话中实际发生的情况,将其规范化为带有嵌入的结构化块,将这些块连接成一个图,并在下一次会话开始时把相关部分交还给代理。
一切都在本地运行。SQLite 文件位于你的项目中,无需外部数据库,无遥测。
状态:alpha。 它能用也被使用过,但仍有粗糙之处——参见已知限制。接口可能会变化。
工作原理
flowchart LR
A["Claude Code<br/>PostToolUse hook"] -->|POST /api/record| B[Recorder]
W["File watcher<br/>(chokidar)"] --> B
B --> Q[Norm queue]
Q --> L["Lightweight<br/>normalizer"]
L --> D["Deep<br/>normalizer"]
D --> E[Edge wirer]
E --> G[("SQLite<br/>+ sqlite-vec")]
G --> BR[Briefer]
G --> S[Semantic search]
G --> I[Insight engine]
BR --> M["MCP tools<br/>→ your agent"]
S --> M
I --> M
G --> U["Web UI<br/>:3777"]有两样东西为流水线提供输入:一个钩子,报告你的代理发出的每次工具调用;以及一个文件监视器,以毫秒级时间戳捕获差异。两者都进入记录器,记录器以崩溃安全的方式写入原始会话轮次。
一个后台队列在不阻塞你的会话的情况下排空这些轮次。轻量级规范化器以低成本对意图和领域进行分类;深度规范化器进行摘要和嵌入;边连接器将新块与相关的已有块连接起来。最终得到的是一张小型知识图谱,而不是一份会话记录。
在下一次会话开始时,简报器读取那张图,并给你的代理一份简报,而不是一张白纸。
Related MCP server: hive-memory
快速开始
需要 Node.js 20+。
git clone https://github.com/good-v1be/simple-rick.git
cd simple-rick
npm install
npm run build1. 为其配置一个 AI 提供商
Simple Rick 需要一个提供商来生成嵌入,一个用于对话补全。它会从环境中自动检测,以第一个匹配项为准:
环境变量 | 嵌入 | 对话 |
| OpenAI | OpenAI |
| Gemini | |
| Mistral | Mistral |
| Voyage | Claude Haiku |
Anthropic 没有嵌入模型,这就是它需要搭配 Voyage 的原因。
2. 将其注册为 MCP 服务器
在你的项目的 .mcp.json 中:
{
"mcpServers": {
"simple-rick": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/simple-rick/src/server/index.ts"],
"env": {
"PROJECT_PATH": ".",
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
}
}
}
}3. 安装记录器钩子
没有这个,Simple Rick 只能看到文件变更——而不是你的代理实际做了什么。将 hooks/simple-rick-recorder.js 复制到一个永久位置,并在 ~/.claude/settings.json 中将其注册为 PostToolUse 钩子:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Bash|Edit|Write|MultiEdit",
"hooks": [
{ "type": "command", "command": "node /path/to/simple-rick-recorder.js" }
]
}
]
}
}这个钩子是即发即忘(fire-and-forget)的:它从不阻塞你的代理,而且当 Simple Rick 未在运行时,它会静默地什么都不做。
4. 使用它
启动一个会话,调用一次 simple_rick_init 来初始化项目上下文。此后,用 simple_rick_briefing 打开每个会话,并用 simple_rick_close 关闭它。
MCP 工具
工具 | 功能 |
| 一次性设置。扫描代码库,从代码和 git 历史中提取隐式的架构决策,并初始化初始上下文。 |
| 在会话开始时调用。 返回项目上下文、未决问题、经验教训和建议。可通过可选的 |
| 在会话结束时调用。 排空队列:规范化消息对,提取经验教训,创建嵌入。 |
| 在整个项目历史中进行语义搜索。可按意图( |
| 就代码、过去的决策或事物之间的关联方式提出问题。 |
| 明确记录一条架构决策,包含理由和被否决的备选方案。 |
| 手动交叉链接两个块或概念。 |
| 从知识库中挖掘相关性、趋势和异常,并由 LLM 验证。模式: |
Web 界面
服务器还在 http://127.0.0.1:3777 上提供本地流程可视化,显示流水线的实时状态和生成的图。该界面由首次运行时生成的 Bearer 令牌保护;包含令牌的 URL 会由 simple_rick_briefing 打印。
REST 端点:GET /api/graph、GET /api/sessions、POST /api/record。
你的数据存储在哪里
所有内容都存放在你项目内的 .simple-rick/ 目录中:
.simple-rick/
simple-rick.db SQLite: sessions, turns, chunks, edges, embeddings (sqlite-vec)
.token bearer token for the local HTTP server (mode 0600)Simple Rick 在首次运行时会将 .simple-rick/ 添加到你的 .gitignore 中。除发送到你配置的 AI 提供商以进行规范化和嵌入之外,不会有任何内容被发送到其他任何地方。
请注意体积。 完整记录在磁盘上并不便宜——一个繁重的多日项目可能会产生数百兆字节大小的数据库。
开发
npm run dev # tsx watch
npm run build # compile to dist/
npm run lint # tsc --noEmit
npm test # vitest (11 unit + integration tests)在 e2e/ 中还有一个端到端测试套件,它针对服务器驱动真实的 Claude Code CLI 会话,以测试每个 MCP 工具:
python3 e2e/test_mcp_e2e.py # requires the `claude` CLI and a configured provider它没有接入 npm test,因为它会消耗真实的 API 调用。
调优
以下都是可选配置——这些默认值是该项目几个月来一直使用的设置。
变量 | 默认值 | 作用 |
|
|
|
|
| 代码库扫描器遍历多少个文件。对于大型仓库,请调高此值。 |
|
| 扫描器读取的最大文件大小,以字节为单位。 |
|
| 规范化遍历之间的暂停时间。调低会更快地消耗 API 调用。 |
已知限制
这是一份坦诚的清单,以免有人感到意外:
仅在 Claude Code 上测试过。 MCP 接口是标准的,但记录器钩子是针对 Claude Code 的钩子格式编写的。
记录在磁盘上并不便宜。 参见你的数据存储在哪里。
知识图谱的质量取决于其背后的模型。 规范化、领域路由和洞察验证都是 LLM 调用;一个小型或廉价的模型会产生相应模糊的图谱。
尚无清理机制。 没有任何内容会自行从数据库中过期。
许可证
MIT——参见 LICENSE。
This server cannot be deployed
Maintenance
Related MCP Connectors
Shared memory for coding agents. Stop re-explaining your codebase every session.
Persistent engineering memory designed to follow developers across coding agents.
Shared long-term memory for AI agents: save and recall context as a searchable knowledge graph.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePersistent memory for AI coding tools that captures conversations, builds a searchable knowledge graph, and automatically injects relevant context into new prompts.14 npm246MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI coding agents with persistent, graph-connected memory across projects, enabling cross-project context retrieval via synaptic connections and hybrid search.19 npm8MIT
- AlicenseNot gradedqualityDmaintenanceEnables persistent memory for AI coding agents, allowing them to remember people, decisions, and context across sessions through a knowledge graph and automated briefings.56 PyPI15MIT
- AlicenseNot gradedqualityAmaintenanceProvides persistent, searchable memory and knowledge capture for AI-assisted development, enabling agents to retain decisions, bugs, and patterns across sessions and projects.MIT