# LLM Wiki 知识库 v2 — 知识管理三步流程 + 持续生长 > 基于 Karpathy LLM Wiki 模式,v2 实现完整的 Ingest → Query → Lint 三步流程, > 新增交叉引用、过期检测、自动修复和主动生长机制。 ## 1. 核心理念 ### RAG 的问题 常见 RAG 流程:文档 → 切块 → 塞向量库 → 查的时候捞出来 → 让模型现编。 每次提问都像一个昨晚没睡好的实习生:重新读材料、重新组织语言、重新犯差不多的错。 ### Wiki 的解法 LLM Wiki 不是检索,而是**知识编译**: - Ingest 时 LLM 阅读理解,将知识写入结构化的 wiki 页面 - Query 时直接查已编译的 wiki 页面,不需要从碎片重搜 - Wiki 越用越丰富——持续生长 ## 2. 三步流程 (v2) ### 第一步: Ingest (资料导入) ``` 新资料 → 抽取要点 → 补充交叉引用 → 更新相关页面 10+ ``` **v2 新增能力**: | 能力 | v1 | v2 | |------|----|----| | LLM 提取结构化信息 | ✅ | ✅ | | 创建 source/entity/topic 页面 | ✅ | ✅ | | **补充交叉引用** | ❌ | ✅ 扫描已有页面,自动补 `[[链接]]` | | **反向更新相关页面** | ❌ | ✅ 已有实体页追加新来源引用 + 更新时间戳 | **实现函数**: - `_cross_reference_new_pages()` — 扫描已有页面,找提到新实体但没有 `[[链接]]` 的,自动补上 - `_update_related_pages()` — 让已有实体/主题页反向引用新源文件 **效果**: 一个源文件触及 10-15 个 wiki 页面,不仅创建新页面,还主动链接和更新已有页面。 ### 第二步: Query (信息查询) ``` 直接查 Wiki 页面 → 综合多页信息 → 生成回答 ``` **v2 新增能力**: | 能力 | v1 | v2 | |------|----|----| | 关键词搜索 | ✅ | ✅ | | **实体页优先** | ❌ | ✅ entities/ 权重 ×3,topics/ ×2 | | **标签路由** | ❌ | ✅ 匹配 front matter tags | | **[[链接]]跟踪** | ❌ | ✅ 读 top 页面的 `[[链接]]`,补充相关页面 | **实现函数**: - `_find_relevant_pages_v2()` — 替代 v1 的简单关键词匹配 **效果**: 查询 "JWT" 时,不仅找到 `entities/jwt.md`,还自动跟踪其中的 `[[OAuth]]`、`[[认证系统]]` 等链接,综合多页信息回答。 ### 第三步: Lint (知识库检查) ``` 知识库检查 → 查矛盾 → 查孤岛页 → 查过期引用 → 揪出问题 → 自动修复 ``` **v2 新增能力**: | 能力 | v1 | v2 | |------|----|----| | 孤页检测 | ✅ | ✅ | | 断链检测 | ✅ | ✅ | | LLM 深度分析 | ✅ | ✅ | | **过期检测** | ❌ | ✅ 检测 >90 天未更新的页面 | | **自动修复** | ❌ | ✅ `auto_fix=true` 创建断链占位页 + 重建索引 | **用法**: ```json {"action": "WikiLint", "input": {"auto_fix": true}} ``` ## 3. 持续生长: WikiGrow (v2 新增) ``` 发现知识空白 → 自动创建占位页 → 补充交叉引用 ``` **功能**: 1. 发现被 2+ 页面 `[[引用]]` 但无独立页面的概念 → 自动创建实体占位页 2. 发现被 3+ 源文件引用的实体 → 标记为"可综合" 3. 支持 `dry_run=true` 预览不执行 **用法**: ```json {"action": "WikiGrow", "input": {"wiki_root": "./wiki"}} {"action": "WikiGrow", "input": {"wiki_root": "./wiki", "dry_run": true}} ``` **效果**: Wiki 像有机体一样不断生长,主动发现和填补知识空白。 ## 4. 生长指标: WikiStatus (v2 增强) v2 的 `WikiStatus` 新增生长指标和健康评分: ``` 📊 Wiki 状态 (v2) 源文件页: 508 实体页: 1410 主题页: 1085 总页数: 3004 总大小: 13204 KB 📈 生长指标 交叉引用: 4521 个 (1.5/页) 实体/源文件: 2.8 主题/源文件: 2.1 健康评分: 85/100 ``` **健康评分**: - 交叉引用 < 1.0/页 → -20 分 - 没有主题页 → -15 分 - 实体/源文件 < 1.0 → -10 分 ## 5. 三层架构 ``` ╔═══════════════════════════════════════╗ ║ 用户交互层 ║ ║ Query (查询) Lint (维护) ║ ╠═══════════════════════════════════════╣ ║ LLM 处理层 ║ ║ Ingest Query Lint ║ ║ ├ 抽取要点 ├ 综合多页 ├ 查矛盾 ║ ║ ├ 交叉引用 ├ 标签路由 ├ 查孤岛页 ║ ║ └ 更新相关 └ 链接跟踪 ├ 查过期 ║ ║ └ 自动修复 ║ ║ ║ ║ WikiGrow (持续生长) ║ ║ 发现缺失概念 → 创建占位页 ║ ╠═══════════════════════════════════════╣ ║ 持久化知识层 ║ ║ Markdown Wiki 知识库 (持续生长) ║ ║ ├ index.md (导航索引) ║ ║ ├ sources/ (源文件摘要) ║ ║ ├ entities/ (实体页面) ║ ║ ├ topics/ (主题综合) ║ ║ ├ analyses/ (查询结果) ║ ║ └ log.md (操作日志) ║ ║ ║ ║ 核心概念: Obsidian + Markdown ║ ║ [[双括号]] 交叉引用 → 知识网络 ║ ╚═══════════════════════════════════════╝ ``` ## 6. 工具清单 | 工具 | 功能 | v2 新增 | |------|------|---------| | `WikiIngest` | 喂文件 → 知识编译 → 交叉引用 → 更新相关 | ✅ 交叉引用 + 反向更新 | | `WikiQuery` | 查询 → 综合多页 → 回答 | ✅ 实体优先 + 链接跟踪 | | `WikiLint` | 健康检查 → 自动修复 | ✅ 过期检测 + auto_fix | | `WikiSearch` | 关键词搜索 | - | | `WikiStatus` | 统计 + 生长指标 + 健康评分 | ✅ 全部新增 | | `WikiGrow` | 主动生长 → 创建缺失页面 | ✅ 全新工具 | ## 7. 受影响的文件 | 文件 | 改动 | |------|------| | `lambdagent/builtin_tools/wiki_tools.py` | 核心升级: Ingest 交叉引用 + Query v2 搜索 + Lint 过期/修复 + WikiGrow + WikiStatus 指标 | | `lambdagent/builtin_tools/registry.py` | 注册 WikiGrow + 更新工具描述 | | `agentexample/qaagent67wiki/agent-config.yml` | 更新 system prompt (三步流程) + 加入 WikiGrow | ## 8. 适用场景 | 场景 | 使用的 agent | 说明 | |------|-------------|------| | 海事法规问答 | qaagent67wiki | 1326 文档 → 3000+ wiki 页面 | | 通用领域知识库 | qaagent67lambda | Wiki 作为 4 路检索之一 | | 个人研究笔记 | agent67/agent67v2 | 通过 ResearchWorkflow 写入 wiki | | Obsidian 知识管理 | 任意 agent | `[[双括号]]` 兼容 Obsidian 图谱 |