2026年7月17日 2 分钟阅读

场景:AI 编码 Agent 每次回到项目都失忆?Scribe 把所有代码经验和决策自动写成 Wiki,让 Claude Code 和 Codex 永远带着上下文

tinyash 0 条评论

你一定遇到过这个场景:花了一整个下午带着 Claude Code 排查了一个棘手的 Oban Worker 幂等性 Bug,仔细记录了根因和修复方案。三天后,在另一个项目里提到”幂等性”三个字,Claude Code 一脸茫然地从头开始分析,完全忘了三天前相同的讨论和结论。你叹了口气——又得重讲一遍。

这不是 Claude Code 的问题。AI 编程 Agent 的上下文是会话级的——每个新会话都是白板。你的架构决策、已评估的库(”Oban 已通过”、”Quantum 已否定”)、踩过的坑和学到的教训,都在会话关闭时消失。传统方案是自己写 CLAUDE.md 或 AGENTS.md 来喂上下文,但你写了一周后就忘了更新。

痛点对比表

问题传统方案Scribe 方案
Agent 记不住跨会话的决策手动维护 CLAUDE.md自动从 git 提交和 Agent 会话中提取决策
项目 A 的教训无法在项目 B 复用每个项目独立维护笔记跨项目的统一知识库,全局可搜索
工作流被打断——”先记一下”停下工作写文档写代码时 Agent 会话自动被挖掘
知识库过期后无人维护Vault 停灰,数据腐烂定时 cron 自动更新和合并
查找以前的决策需要翻 Git 日志git log --grepqmd query "XX 决策" 语义搜索

快速上手:30 分钟搭建你的 Agent 记忆库

Scribe 是一个 Go 单二进制 CLI(28⭐, MIT 许可证),安装后只需三步就能跑起来。

安装

brew tap oliver-kriska/scribe
brew install oliver-kriska/scribe/scribe

curl -fsSL https://raw.githubusercontent.com/oliver-kriska/scribe/main/install.sh | bash

初始化知识库

scribe init --path ~/my-kb
cd ~/my-kb
git remote add origin git@github.com:you/my-kb.git  # 可选——推送到远端
scribe cron install
scribe doctor

scribe init 会交互式询问你的名字、工作领域、iMessage 自聊号码等。完成后它会自动写两样东西:

  1. 一个 scribe.yaml 配置文件
  2. ~/.claude/CLAUDE.md~/.codex/AGENTS.md 中的握手区块——告诉 Claude Code 和 Codex 在每次会话前先去知识库里查一下

非交互式模式(适合脚本或 CI):

scribe init \
  --path ~/my-kb \
  --owner-name "Alice" \
  --owner-context "Platform engineer. Main projects: weblog, infra." \
  --domains weblog,infra \
  --handle "+155****4567" \
  --yes

依赖项

scribe doctor 会告诉你缺什么。核心依赖只有 claude(Agent)、ccrider(会话索引)、qmd(语义搜索)和 gitsqlite3。macOS 用户用 Homebrew 安装时会自动拉齐 ccridersqlite

核心功能:Scribe 如何让 Agent 拥有跨会话记忆

1. 四路输入源自动采集

Scribe 通过四条管道持续收集信息,全部走 cron 定时执行,无需人工参与:

  • Git 仓库:每 2 小时扫描工作项目,提取新出现的决策、模式和学到的教训
  • Claude Code / Codex 会话:通过 ccrider 的 FTS5 索引挖掘历史会话。每天三次(03:00、12:00、18:00)批量处理
  • 自聊 iMessage:你给自己发的链接评论,每 30 分钟抽一次
  • 拖放文件:其他项目通过 .claude/scribe/ 目录投放的笔记

每条输入在进入 LLM 处理前,会先经过 BM25 密度评分过滤——只会调整配置的例行会话直接被判定为低密度,跳过 LLM 处理,不消耗任何 API 费用。

2. 两段吸收:从原始数据到结构化 Wiki

Scribe 的处理流水线分为两段:

  • Pass 1(扎根):提取原子事实(”Oban 已选用”、”Quantum 已否决,原因是单线程瓶颈”)
  • Pass 2(展开):将密集源材料拆解为多个实体优先的 Wiki 页面

一周后,你的知识库看起来像这样:

my-kb/
├── scribe.yaml
├── wiki/
│   ├── decisions/
│   │   ├── chose-oban-over-quantum.md
│   │   └── dropping-circuit-breaker-middleware.md
│   ├── patterns/
│   │   ├── idempotent-worker-skeleton.md
│   │   └── phoenix-scope-based-auth.md
│   ├── learnings/
│   │   ├── why-my-liveview-reconnect-loops.md
│   │   └── fts5-match-cant-be-parameterized.md
│   ├── tools/
│   │   ├── oban.md        # verdict: use
│   │   └── quantum.md      # verdict: skip
│   └── projects/
│       └── my-app/
│           ├── overview.md
│           └── learnings.md
├── raw/articles/
└── output/runs/

每篇文章都有 YAML frontmatter(type:domain:confidence:tags:related:),自动生成 [[wikilinks]] 和 See Also 段落,完全可以用 Obsidian 打开阅读

3. 握手区块:Agent 启动时主动查询知识库

scribe init 写入 CLAUDE.md 的区块告诉 Claude Code:在推荐库、提架构建议或用户提到以前做过的事情时,先查知识库再说

这个区块包含了清晰的指引:

How to search: Use the mcp__plugin_qmd_qmd__query tool when available (preferred), or qmd query "" via Bash.

>

When to search proactively — don’t wait for the user to ask. – Before recommending a library — query " evaluation verdict". Don’t suggest something already rejected. – Before proposing an architectural choice — query " decision reasoning". – When the user references past work — search instead of answering from memory.

这意味着:你说”帮我看看有没有更适合的库”时,Claude Code 先查知识库,告诉你”你半年已经评估过 Y,因为 Z 原因放弃——我建议看看 X2 版本是否改进了这些点”,而不是重新梳理十多个候选。

4. 定时自动运行:全自动的知识资产管理

Scribe 的 cron 体系覆盖了全生命周期的知识管理:

频率任务
每小时自动提交 KB 到 Git
每 2 小时扫描 Git 仓库提取新决策
每天 3 次挖掘 Claude Code 和 Codex 会话
每 30 分钟消费投递的 URL
周日 02:00每周 Dream 周期——4 阶段知识结构化合并
每天 03:10热点领域 Mini-Dream——自动选择最活跃领域

Dream 周期是 Scribe 最有趣的设计——它每周自动对整个知识库进行一次”反思式合并”:检测矛盾条目(”Oban 已通过”和”需要重新评估 Oban”并列时自动标记为矛盾)、收敛身份别名、补全所有失落的反向链接。

横向对比表:Scribe vs 同类方案

维度Scribeclaude-memory-compilerbasic-memory手动 CLAUDE.md
会话挖掘✅ ccrider FTS5 + Codex✅ 每次会话全部处理❌ 无此功能❌ 手动
密度预过滤(省费用)✅ BM25 三分类❌ 每次完整提n/an/a
两段吸收✅ 扎根+展开n/a
跨项目共享✅ 统一 KB✅ 通过 projects
全本地运行($0)✅ Ollama✅ 零成本
定时自动执行✅ LaunchAgents/cron❌ 机会主义❌ 建议 cron
知识库格式Markdown + YAML frontmatter + 图JSON 侧边栏内联 DSL 观测Markdown
许可证MITMITMITn/a

注意事项

  • 仅限 Claude Code 和 Codex:Scribe 当前与 Claude Desktop App 的集成需要手动配置 MCP 服务器,Claude Code 和 Codex CLI 则自动完成。
  • macOS 需要 Full Disk Accessscribe capture(读取 iMessage)需要 macOS 授权一次。运行 scribe fda 一行命令即可打开设置引导流程。
  • 付费 API 有兜底:如果使用 Anthropic 而非本地 Ollama,sync.daily_output_token_ceiling 会阻止循环改写的费用失控。
  • ccrider 的隐私含义:Scribe 通过 ccrider 读取 Claude Code 的本地 SQLite 数据库,所有处理都在本地完成,不将原始数据发送到外部。

总结

如果你的工作涉及多个项目、多个 Agent 会话,Scribe 解决了 Agent 生态中最烦人的问题之一:会话间的知识孤岛。安装一次、设置好 cron,然后你只要继续写代码就好——每次 commit 和 Agent 会话都在自动沉淀知识。六个月后你会有一本精确记录了你所有架构决策和踩坑经验的 Wiki,比你自己记得清多了。

相关链接:

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。