知识语料库模式
知识语料库模式
学习目标
读完本章后,你将能够:
- 理解知识语料库的四阶段生命周期
- 设计基于过滤条件的记忆筛选管线
- 实现语料库注入和知识 Agent 会话的创建
- 评估语料库更新和刷新的策略
核心概念
从记忆到知识
记忆系统积累的大量观察和摘要,本质上是一个项目经验数据库。知识语料库模式将这些原始记忆转化为可查询的领域知识:
- 筛选:按类型、概念、文件、日期等维度过滤出相关记忆
- 构建:将筛选结果组织为结构化的语料库
- 注入:创建专用 AI 会话,将语料库内容注入为上下文
- 查询:用户通过问答与语料库交互,Agent 基于语料库知识回答
四阶段生命周期
阶段 1:构建(build_corpus)
定义筛选条件,从记忆中提取相关观察:
| 筛选维度 | 示例 |
|---|---|
| 类型 | bugfix,refactor,feature |
| 概念 | authentication,session |
| 文件 | src/auth/middleware.ts |
| 项目 | my-project |
| 日期范围 | 2026-01-01 至 2026-05-28 |
| 语义搜索 | ”authentication bug” |
构建结果是一个持久化的语料库定义,包含名称、描述和筛选条件。
阶段 2:注入(prime_corpus)
创建一个专用的 AI Agent 会话,将语料库中的所有观察注入为上下文。这相当于给 Agent 做一次”领域知识培训”。
注入完成后,Agent 拥有了该领域的背景知识,可以回答相关问题。
阶段 3:查询(query_corpus)
用户向已注入的语料库提问。Agent 基于语料库中的知识回答,而非依赖通用训练知识。
阶段 4:刷新(rebuild + reprime)
当记忆中新增了相关观察时:
rebuild_corpus:重新运行筛选,包含新观察reprime_corpus:创建新的 AI 会话,清除旧对话上下文
设计决策
语料库 vs 直接搜索
| 维度 | 直接搜索 | 语料库 |
|---|---|---|
| 适用场景 | 临时查询 | 持续领域专精 |
| 知识范围 | 全部记忆 | 筛选后的子集 |
| 上下文注入 | 每次查询单独注入 | 一次性注入,持久有效 |
| 维护成本 | 低 | 需要定期 rebuild |
语料库大小控制
- 过小的语料库:知识不足,回答质量低
- 过大的语料库:注入 token 过多,可能超出上下文窗口
- 建议:通过
limit参数控制最大观察数量(默认 500)
设计权衡
优势
- 领域专精:Agent 可以深度了解特定子系统的历史和决策
- 可复用:语料库一旦构建,可被多次查询
- 可更新:通过 rebuild 保持语料库与最新记忆同步
代价
- 维护开销:需要定期 rebuild 以保持时效性
- 注入成本:prime 阶段需要消耗大量 token 注入全部知识
- 知识漂移:如果长期不 rebuild,语料库可能过时
替代方案
| 方案 | 优势 | 劣势 |
|---|---|---|
| 每次搜索 | 总是最新 | 每次都需要注入 |
| 知识语料库(本方案) | 一次注入,多次查询 | 需要维护时效性 |
| 向量化知识库 | 语义检索、可扩展 | 需要向量基础设施 |