← 返回首页项目区

CASE STUDY · LEARNING PROTOTYPE

Personal Knowledge RAG

从本地 Markdown 知识库到可评估的最小 RAG 闭环。

这个项目证明的是一条已经运行并观察过的最小检索闭环、统一评估意识和边界判断,不是生产级 RAG 服务。

真实完成

本地检索、统一评估与 Agent 上下文闭环已经实际运行并观察。

静态演示

页面交互只切换预生成的虚构数据,不执行在线检索。

尚未实现

生产服务、浏览器实时 Embedding、持久化索引和候选重排。

OVERVIEW

个人知识不能只依赖聊天历史,也不能默认全部进入检索

问题

不同 Agent 应按任务读取最少必要资料,同时区分当前事实、历史资料、待确认内容和私密信息。

目标

比较人工路由、LLM Router 和向量检索的职责,用本地 Embedding 建立可重复基线,并让结果进入 Agent 上下文。

完成口径

问题经过本地向量召回,以 Tool Result 进入 Agent 上下文,再由 Agent 基于结果回答或分析。这条最小闭环已经真实完成。

ARCHITECTURE

职责分开,而不是把所有问题交给向量排序

下面是两个分别跑通的学习链路,不把它们拼成尚不存在的生产架构。

元数据 Router 与 Context Injection

远程 Router 只接收文档 ID、职责、状态与敏感级别;正文在候选 ID 返回后由本地程序读取。

用户问题元数据 Catalog候选文档 ID本地边界校验允许的正文Tool ResultAgent 回答

本地向量检索

确定性过滤先于语义排序;普通索引只读取 normal 且状态为 current 或 confirmed 的文档。

Markdownfront matter 过滤标题路径分块本地 BGE余弦相似度Top-k 文本块Tool ResultAgent

SANITIZED RETRIEVAL DEMO

用虚构数据复刻三种真实检索现象

STATIC DEMO结果为预先准备的脱敏样例。浏览器未运行 Embedding,也未访问真实个人知识库。
已选择样例

离线搜索原型下一步应该验证什么?

01
Project Atlas/ 下一阶段

先收集同类失败,再决定是否加入项目范围过滤、关键词融合或候选重排。

0.7824
02
Retrieval Notes/ 评估策略

使用固定查询集比较改动前后的召回结果,不以单次搜索替代统一评估。

0.7241
03
Architecture Log/ 当前限制

当前版本在进程内生成向量,没有持久化索引、ANN 或候选重排。

0.6918

观察:查询明确包含项目与阶段,正确的项目状态文档位于首位。以下排名和分数仅用于静态演示。

EVALUATION

先建立可重复基线,再决定是否增加复杂度

18固定查询
16普通索引内可评估查询
11/16Hit@1
15/16Hit@3
15/16Hit@5
0historical / pending / private 进入普通索引

2026-07-30 运行快照:17 份普通文档、121 个文本块。

评估口径:以一个文档得分最高的文本块作为该文档排名;一条查询有多个普通索引内预期文档时,全部进入 Top-k 才算命中。

Hit@k 是一次学习基线,不代表生产准确率、稳定性承诺或永久规模。

FAILURE CASE · Q12

主题相似,不等于任务意图相关

“如何向一名偏好分阶段学习的开发者讲解一组相关的新编程概念?”
预期

描述教学与协作方式的文档进入 Top 3。

实际

目标文档首次出现于第 8 位,没有进入 Top 3。

原因

稠密向量优先匹配“编程、概念、学习”等表面主题,没有稳定识别“应该如何讲”的协作意图。

当前策略

先由 Router、目录职责或元数据限定任务范围,再按需向量召回;只有同类失败反复出现时才验证混合检索或重排。

TRADEOFFS

当前规模下,简单和可验证比堆叠基础设施更重要

01

Markdown,而不是先建数据库

当前规模小,Markdown 易于人工审阅、版本控制和维护权威位置;数据库不会自动解决事实状态和隐私边界。

02

标题路径分块,而不是固定字符

复用人为组织的章节语义,避免把不同主题机械截断在同一个文本块中。

03

本地中文 Embedding

普通正文无需发送给远程 Embedding 服务;模型缓存缺失时直接失败,不在运行时自动联网修复。

04

全量余弦,而不是提前引入 ANN

百余文本块尚未形成近似最近邻索引的必要性,第一版优先保持数据流简单、可观察。

05

过滤先于排序

状态和敏感级别不是相似度问题,应由确定性代码处理,不能要求向量模型自行理解权限。

06

记录失败,再决定升级

一个 q12 不足以证明必须立即增加混合检索和重排,复杂度应由重复出现的问题触发。

CAPABILITY BOUNDARY

完成一个里程碑,不等于完成一个生产系统

真实完成

  • 本地 Markdown 元数据与普通索引边界
  • 本地 BGE Embedding、标题路径分块、余弦相似度与 Top-k 检索
  • 18 条固定查询的统一批量评估
  • Tool Result 进入 Agent 上下文后的最小回答闭环
  • q12 意图错位和跨项目噪声分析

本页静态展示

  • 浏览器中的查询选择与结果切换
  • 虚构文档名、脱敏摘要和预生成相似度
  • 页面中的架构流程和指标卡

尚未实现

  • 浏览器实时 Embedding
  • 持久化索引、ANN 或向量数据库
  • 关键词/BM25、混合检索和候选重排
  • 自动模式判断、正式 Tool 接口和独立回答 API
  • 生产级权限、监控、延迟、规模和准确率验证

这个里程碑证明我在 AI 辅助下跑通并能够解释最小检索闭环、统一评估和失败边界;它不证明我已经独立从零实现或运营生产级 RAG。