基于智能体编译的下一代知识库架构
Inspired by Andrej Karpathy's "Agentic Workflow"
目前主流的文档问答(RAG)方式是:上传文件 → 暴力切片向量化 → 相似度检索 → 拼凑生成。这就像是一个"记忆力只有 7 秒的开卷考试学生"。
| 对比维度 | 传统 RAG | Agentic Wiki (LLM 编译) |
|---|---|---|
| 核心逻辑 | 检索即用 (Retrieve at query time) | 预先编译 (Compile ahead of time) |
| 数据形态 | 人类无法阅读的向量数据库 (黑盒) | 结构化、互相链接的本地 Markdown (白盒) |
| 知识积累 | 零积累。每次提问都在重复"海底捞针" | 指数级复用。跨文档链接被永久固化 |
| 维护成本 | 随文件增多呈指数级上升 | 接近于零(由 Agent 负责交叉引用与排错) |
| 可解释性 | 无法追溯知识来源和推理路径 | 每个概念页都有明确的双向链接和来源 |
Agentic Wiki 将知识库系统划分为三个清晰的层级,每一层都有明确的职责和边界。
index.md:全局索引,包含所有概念的层级目录树concepts/:按概念拆分的 Markdown 页面,每个页面包含 [[双向链接]]entities/:人物、组织、事件等实体页面raw/:原始数据区(不可变)Agentic Wiki 的运作由两条独立的流水线驱动:Ingest(摄入) 和 Query(查询)。
当新文件落入 raw/ 目录时自动触发:
文件系统监控发现新文件,触发 Ingest 流水线
LLM 通读全文,提取核心概念、实体、事件
根据概念名创建 concepts/XXX.md,或更新已有页面
扫描全文,将相关概念用 [[双向链接]] 连接
将变更提交到 Git 仓库,触发外部 Agent 服务同步
当外部应用(如 Dify 智能体)发起查询时:
判断用户问题涉及哪些概念和实体
从相关概念页出发,沿双向链接遍历 2-3 跳
将遍历到的 Markdown 内容拼接为结构化的上下文
基于纯净的 Wiki 上下文生成回答,附带来源链接
观察 Agent 如何将非结构化的原始笔记编译成结构化的知识图谱。
从 0 到 1 构建 Agentic Wiki 系统,建议分为三个阶段逐步迭代。
raw/ 下的 Markdown 文件wiki/[[双向链接]] 语法,在页面间建立显式关联watchdog 文件监控,实现文件落盘即触发编译| 层级 | 组件 | 推荐方案 |
|---|---|---|
| 底层 | 文档存储 | 本地 Markdown + Git 版本控制 |
| 可视化图谱 | Obsidian(本地查看)+ Obsidian Git(同步) | |
| 远端仓库 | GitHub / Gitee | |
| 编译层 | LLM 引擎 | DeepSeek V3 / Claude / Qwen |
| 编排框架 | Python + LangChain / 原生脚本 | |
| 文件监控 | watchdog (Python) / chokidar (Node.js) | |
| 服务层 | Agent 平台 | Dify / FastAPI 自建 |
| 检索引擎 | 图遍历(基于双向链接) + 关键词检索 |