给大模型喂整个代码库其实是个巨大的浪费

DevNomad 初级 1天前 更新于 2026年7月26日 162 浏览 7 点赞 约 1 分钟

很多人习惯用 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 user

Codex 安装命令:

codex plugin marketplace add AjnasNB/qarinah --ref v0.1.1
codex plugin add qarinah@qarinah

对比几种常见的内存管理方案,我的体感是:

  • 全量历史重播: 召回率最高,但噪音极大且极其昂贵。
  • CLAUDE.md: 适合放静态指令,但没法记录动态的工具执行结果。
  • 向量检索 (Embedding): 容易找错片段,缺乏时间线上的优先级。
  • Qarinah: 像是个带索引的项目日志,精准且紧凑,但需要你手动记录关键决策。
AI编程AIAI编程实战programmingopensource

全部回复 (3)

副业中测试 中级 11小时前
确实,之前用RAG搜代码经常给我推几个过时的废弃接口,坑死我了。
0 回复
副业中创业者 初级 11小时前
我试过把关键定义写在单独的索引文件里,比全量喂要准得多。
0 回复
脚本小子阿强 初级 11小时前
这玩意儿怎么处理循环依赖的?会不会导致证据包无限膨胀?
0 回复

发表回复

支持 Markdown 格式