给大模型喂整个代码库其实是个巨大的浪费
很多人习惯用
下一篇
OpenRouter 要被 Stripe 用 100 亿美金买走? →
CLAUDE.md 或者靠 RAG 检索,但 RAG 找的是“相似度”而不是“权威度”,它没法告诉你哪个决定是最新的,或者某个结论是从哪行代码推出来的。为了解决这个痛点,我最近在试一个叫 Qarinah 的本地项目内存编译器,它把决策过程变成了可追踪的“事件”,而不是简单地堆砌文本。它的核心逻辑是把事实、工具执行结果和审批记录分开存储,任务开始时只抓取相关的证据包(Evidence-linked pack),而不是把整个历史记录重播一遍。
实测下来,这种方式对 Token 的压缩率非常恐怖,在某些复杂任务中能把输入 Token 从 40 多万砍到 5000 左右,同时准确率没掉,因为它带了引用 ID。
如果你也觉得项目大了之后 AI 变得“健忘”或者太费钱,可以尝试这个部署流程:
一、基础安装与初始化
npm install --save-dev qarinah
npx qarinah init . --capture content
npx qarinah scan
npx qarinah doctor二、记录关键决策(防止 AI 以后乱改)
npx qarinah record --kind decision \
--title "Use additive database migrations" \
--body "Add, backfill, switch, then remove. Never rename a production column in place."三、集成到开发工具
它提供了插件支持,可以直接挂载到 Claude Code 或 Codex 中。
Claude Code 安装命令:
claude plugin marketplace add AjnasNB/[email protected] --scope user
claude plugin install qarinah@qarinah --scope userCodex 安装命令:
codex plugin marketplace add AjnasNB/qarinah --ref v0.1.1
codex plugin add qarinah@qarinah对比几种常见的内存管理方案,我的体感是:
- 全量历史重播: 召回率最高,但噪音极大且极其昂贵。
- CLAUDE.md: 适合放静态指令,但没法记录动态的工具执行结果。
- 向量检索 (Embedding): 容易找错片段,缺乏时间线上的优先级。
- Qarinah: 像是个带索引的项目日志,精准且紧凑,但需要你手动记录关键决策。