用途
llm-wiki 适用于希望知识以“被持续维护的 Markdown 产物”形式积累、而非每次查询都从原始文件中重新发现的场景。它把 Andrej Karpathy 的 gist 转化为一套可操作的工作流,核心模式是:保持原始来源不可变,让 LLM 拥有 wiki 层,并把维护契约编码进 AGENTS.md 或 CLAUDE.md。
适用情形包括:
- 为长期知识工作引导一个新的 Obsidian 或 Markdown 仓库
- 把原始文章、论文、转录稿或笔记转换为来源摘要加交叉链接的 wiki 页面
- 在引入更重的搜索基础设施之前,先维护 index.md 和 log.md 作为导航原语
- 把好的答案归档回 wiki,而不是丢在聊天记录里
- 定期执行 lint 检查,处理断链、孤立页面、过时断言和缺失的综合页面
- 增加可选辅助工具,例如用 Scrapling 做 URL 抓取、用 qmd 做搜索、或用 Obsidian CLI 做仓库自动化
主要能力
- 仓库引导:通过 scripts/bootstrap-vault.sh 创建 wiki 骨架,包括 raw/sources/(不可变来源)、raw/assets/(下载的图片与附件)、wiki/sources/(逐来源摘要)、wiki/entities/ 与 wiki/concepts/(持久综合页面)、wiki/queries/ 与 wiki/reports/(归档答案与更高价值输出),以及 index.md、log.md、AGENTS.md。
- 操作契约:以 AGENTS.md 或 CLAUDE.md 作为跨会话保持一致的规则载体,包括 raw/ 为事实来源且不可变、wiki/ 加 index.md 和 log.md 为 LLM 拥有的工作产物、每次入库都要更新来源摘要与相关综合页面及索引与日志、每个持久查询答案都要归档回 wiki/queries/ 或 wiki/reports/、lint 检查要查找断链、孤立页面、过时断言、矛盾与缺失页面候选。
- 来源入库:本地来源放入 raw/sources/ 后由 agent 处理;URL 来源使用 Scrapling 驱动的脚本,例如 bash scripts/ingest-url.sh /path/to/vault "https://example.com/article",也支持 --mode fetch --wait-selector article 以及 --mode stealth --solve-cloudflare 等参数。
- 基于 wiki 查询:先读 index.md,再打开最相关的 wiki 页面,只在需要落地或解决冲突时才深入 raw 来源,显式引用页面路径与原始来源路径,并把持久输出归档回仓库。可用 scripts/new-query-note.sh 创建可复用的笔记骨架。
- lint 与修复:通过 python3 scripts/lint-wiki.py /path/to/vault(支持 --format json)执行本地健康检查,聚焦结构而非真伪,检查必需文件与目录、断链与孤立页面,并以此为基础进行人工清理。
- 按需扩展:index.md 加 log.md 足以应对中小型仓库,后续可引入 Scrapling、qmd、Obsidian CLI、Dataview,并从第一天起使用 Git。
使用方式
在 jeo 运行时下,仓库是项目范围的,按 $LLM_WIKI_VAULT → <obsidian-mind vault>/llm-wiki 解析,其中 obsidian-mind vault 为 $OBSIDIAN_MIND_VAULT → 当前目录的 git toplevel → 无 git 仓库时的 ~/vaults/obsidian-mind。因此每个仓库拥有自己的 <repo>/llm-wiki/。
典型步骤:
- 引导仓库:bash scripts/bootstrap-vault.sh /path/to/vault
- 把 AGENTS.md 或 CLAUDE.md 作为操作契约,并通过 references/schema-playbook.md 逐步完善模式文件
- 一次入库一个来源,保持工作流稳定;URL 来源使用 scripts/ingest-url.sh
- 基于 wiki 查询,而不是原始文件堆;用 scripts/new-query-note.sh 创建查询笔记或报告骨架
- 定期运行 python3 scripts/lint-wiki.py 进行结构 lint 与人工清理
- 只有在规模需要时才增加搜索与自动化工具
示例:
- bash scripts/bootstrap-vault.sh ~/vaults/company-research
- bash scripts/ingest-url.sh ~/vaults/company-research "https://example.com/article"
- bash scripts/ingest-url.sh ~/vaults/company-research "https://app.example.com/dashboard" --mode fetch --network-idle
- bash scripts/new-query-note.sh ~/vaults/company-research "Why this market is consolidating" --question "Why is this market consolidating?" --citation "[[wiki/concepts/market-structure]]"
- bash scripts/new-query-note.sh ~/vaults/company-research "Q3 diligence memo" --section reports
- python3 scripts/lint-wiki.py ~/vaults/company-research
适用场景
长期知识工作、研究仓库、Obsidian 笔记体系、公司研究、需要把问答结果沉淀为可复用产物的场景。
最佳实践
- 保持 raw/ 不可变,更正应放在 wiki 页面或后续来源笔记中
- 每次入库、查询归档和 lint 都更新 index.md 与 log.md
- 宁要少量强实体与概念页面,不要大量弱碎片
- 在做昂贵检索前先读 index.md
- 区分事实与综合:来源页面应有据可依,概念页面可更具解释性
- 把好答案归档回仓库
- 用 git 提交区分入库、查询和 lint 操作
- 让模式文件保持存活,发现重复漂移或歧义时更新 AGENTS.md
限制
资料中未提供收费、价格、平台支持范围或效果保证等信息。资料未提供 other-ai-tools 相关分类以外的具体许可信息。资料提到对显式 Jevgrep 请求需遵循 jevgrep 及其单独的远程内容与成本门控,但未提供该门控的细节。