Skip to main content
Glama
Simple Rick
by good-v1be

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 build

1. 为其配置一个 AI 提供商

Simple Rick 需要一个提供商来生成嵌入,一个用于对话补全。它会从环境中自动检测,以第一个匹配项为准:

环境变量

嵌入

对话

OPENAI_API_KEY

OpenAI

OpenAI

GOOGLE_API_KEY

Google

Gemini

MISTRAL_API_KEY

Mistral

Mistral

ANTHROPIC_API_KEY + VOYAGE_API_KEY

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 工具

工具

功能

simple_rick_init

一次性设置。扫描代码库,从代码和 git 历史中提取隐式的架构决策,并初始化初始上下文。

simple_rick_briefing

在会话开始时调用。 返回项目上下文、未决问题、经验教训和建议。可通过可选的 focus 参数缩小范围。

simple_rick_close

在会话结束时调用。 排空队列:规范化消息对,提取经验教训,创建嵌入。

simple_rick_search

在整个项目历史中进行语义搜索。可按意图(bugfix、refactor、architecture_decision、……)筛选。

simple_rick_ask

就代码、过去的决策或事物之间的关联方式提出问题。

simple_rick_decision

明确记录一条架构决策,包含理由和被否决的备选方案。

simple_rick_link

手动交叉链接两个块或概念。

simple_rick_insights

从知识库中挖掘相关性、趋势和异常,并由 LLM 验证。模式:deep、semantic、chains、all。


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 调用。


调优

以下都是可选配置——这些默认值是该项目几个月来一直使用的设置。

变量

默认值

作用

SIMPLE_RICK_LOG_LEVEL

inf

error、warn、info 或 debug。所有日志都输出到 stderr;stdout 属于 MCP。

SIMPLE_RICK_MAX_FILES

500

代码库扫描器遍历多少个文件。对于大型仓库,请调高此值。

SIMPLE_RICK_MAX_FILE_SIZE

50000

扫描器读取的最大文件大小,以字节为单位。

SIMPLE_RICK_QUEUE_THROTTLE_MS

2000

规范化遍历之间的暂停时间。调低会更快地消耗 API 调用。

已知限制

这是一份坦诚的清单,以免有人感到意外:

  • 仅在 Claude Code 上测试过。 MCP 接口是标准的,但记录器钩子是针对 Claude Code 的钩子格式编写的。

  • 记录在磁盘上并不便宜。 参见你的数据存储在哪里。

  • 知识图谱的质量取决于其背后的模型。 规范化、领域路由和洞察验证都是 LLM 调用;一个小型或廉价的模型会产生相应模糊的图谱。

  • 尚无清理机制。 没有任何内容会自行从数据库中过期。


许可证

MIT——参见 LICENSE。

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Persistent memory for AI coding tools that captures conversations, builds a searchable knowledge graph, and automatically injects relevant context into new prompts.
    14 npm
    246
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI coding agents with persistent, graph-connected memory across projects, enabling cross-project context retrieval via synaptic connections and hybrid search.
    19 npm
    8
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides persistent, searchable memory and knowledge capture for AI-assisted development, enabling agents to retain decisions, bugs, and patterns across sessions and projects.
    MIT