Project / Agent 与工程

Cairn

从本地 Markdown 库检索少量经验卡。

本地优先、确定性的经验检索层:从 Markdown 库检索少量可追溯卡片注入 Agent 上下文,零第三方依赖、默认无网络。

v0.1.2 维护版

Overview 项目概述

Cairn 是本地优先、确定性的经验检索层。在 prompt 时从本地 Markdown 库检索少量高信号经验卡,放入 Agent 上下文;它不要求 Agent 主动搜索,也不注入整篇文档。

Motivation 为什么创建

同一个教训常被重复学习:经验没有被写下来,或写下来却在需要时没有被取回。Cairn 针对丢失、休眠和误用三类失败,目标是在正确时机提供少量相关、可追溯、适用、可撤回的经验,否则保持沉默。

Architecture 关键架构

  • 中文按 2-gram、英文与标识符按词切分;BM25 字段权重为 summary ×3 > name ×2 > body ×1。
  • 候选必须通过三道路由门:归一化分数、查询词覆盖、与第二候选的 margin;同一卡片每个 session 最多注入一次。
  • 最多三张卡片,只给 name、summary、path;全文需显式 cairn show。
  • 显式声明 scope(--scope / CAIRN_SCOPE)时,scope 不相交的条目会被标记 out_of_scope 并丢弃;未声明时行为不变。
  • 单文件核心 cairn.py,零第三方依赖;本地 Markdown 存储 + 可重建缓存;检索与 hook 默认无网络、运行时只读。

Capabilities 已实现能力

  • Claude Code、Codex CLI、纯文本与 JSON 四种 hook 格式;提供 recall / show / audit / lint / explain 等 CLI,explain 报告每个候选被注入或拒绝的原因。
  • 每次注入都带分数、门决策与路径,可审计;日志不含原始 prompt;audit 覆盖 entries、日志、session 文件与派生缓存。
  • Sanitize 拒绝写入源库、默认不覆盖已有目标,使用原子写入。
  • 声明 scope 后按 scope 硬过滤;lint 对过期的 verified_at 与 scope 拥挤给出警告;v0.1.2 记录 230 项测试(127 核心 + 103 研究 fixture),并增加 hook/recall/explain 的候选池回归测试。

Limitations 已知限制

  • 阈值手工调整;cairn calibrate 尚未实现;同义词不能被理解。
  • 评估集已扩到 80 个正例 + 60 个负例,但仍然很小;2-gram 对极短查询较粗;没有 capture loop,add 仍需手动。
  • import 只解析顶层标量 frontmatter,不解析嵌套 YAML;Experience Contract v0 是元数据而非加密证明;scope 仅在调用方显式声明时生效,verified_at 不会自动过期,冲突检测尚未实现。
  • README 中英双语,docs/ 仍以简体中文为主;它不是通用记忆层、知识管理平台或 Agent 安全边界。
  • 长任务 Prompt 会稀释查询词覆盖率,固定 margin 阈值又是在小库上校准的;卡片是检索提示,不是全文。
  • CI 目前只覆盖 Linux 的 Python 3.9 与 3.12;Windows 与 macOS 尚未测试。

Validation 测试与验证

  • v0.1.2 是最新维护补丁;仓库记录 230 项测试(127 核心 + 103 研究 fixture)与 12 条示例库。
  • 该补丁把完整评分候选池交给准入 gate;不合格或 scope 不匹配的候选不再挤占候选预算。hook、recall 与 explain 均有回归覆盖。
  • 80 正例 / 60 负例的评测结果为 Recall@1 / @3 93.8% / 100%、Injection@1 / @3 72.5% / 72.5%、误注入 3.3%(2/60)。
  • Hook 冷启动 p95 在 12 条库为 74.2ms,在 1,000 条合成库为 98.5ms(各 30 次,单机样本)。
  • Trust & Applicability Eval v0 共 13 例,显式 scope 拦截 3/3,仍有 4 个已知缺口;合约准入评估 3/3。
  • CI 覆盖 Linux 的 Python 3.9 与 3.12;Windows 与 macOS 尚未测试。所有数字都是回归基线,不是 benchmark。

Resources 公开文档与链接

← 返回项目档案

Menu