用途
obsidian-wiki 解决的是“重复解决同一个问题”的痛点:你周二解决了一个难题,三个月后在另一个仓库里又从零解决一遍——因为答案留在了再也找不到的聊天记录里。本框架让你把 AI 智能体学到的东西编译成互相关联的 Markdown 笔记,归你所有。其模式来自 Andrej Karpathy 的 LLM Wiki gist:知识编译一次并保持最新,而不是永远向 LLM 问同样的问题,或每次都重跑 RAG。
主要能力
- 输入(Feed it):支持任何文本形态的内容,包括文档、PDF、聊天导出、会议转录、截图、URL。
- 提问(Ask it):答案带 [[wikilink]] 引用,而非凭空生成。
- 检索(Find):帮你找到说不清名字的那次会话。
- 维护(Keep it honest):仓库会自行变乱,这些能力用于清理它。项目声称共有 39 个技能。
- 图形视图:在 Obsidian 中打开仓库并使用图谱视图(Cmd/Ctrl+P → "Open graph view")。说“color my graph”可按标签、类别或可见性给节点着色。
- 导出:可将整个图谱导出为 graph.json、GraphML(Gephi/yEd)、Neo4j Cypher、Postgres SQL,或自包含的交互式 graph.html。
- 示例仓库:examples/demo-vault/ 是一个 18 页的示例仓库,主题是构建可靠的 LLM 智能体,已按文件夹着色。
- Python 使用:提供 Python API,无需 API Key、嵌入模型、向量存储或网络。
- 记忆跨会话:会话开始时,仓库记忆已在上下文中(你是谁、有哪些未完成线索、最近有什么变化);会话结束前捕获任何可复用的内容。
使用方式
安装后打开任意项目,对智能体说 “set up my wiki”。若不想碰终端,可把仓库说明交给智能体,它会完成全部设置。也可用 uv 或 pipx 安装:uv tool install obsidian-wiki 与 pipx install obsidian-wiki 效果相同(注意:不是 uvx)。使用 Claude Code 时可作为插件安装,无需 Python;插件技能带命名空间(/obsidian-wiki:wiki-ingest),且仅附带技能——不含会话钩子或 obsidian-wiki CLI。安装时会注册两个会话钩子,使每个新会话以“你是谁、有哪些未完成事项”开始,并在结束时捕获可复用内容;使用 --no-hooks 可跳过。其他安装路径(git clone、Claude Code 插件、Skills CLI、多仓库)见 Installation。
适用场景
- 跨仓库、跨会话复用已解决过的问题与经验。
- 把文档、PDF、聊天记录、会议转录等零散资料编译为可检索的知识库。
- 需要可读、可 grep、可 diff、可版本管理的个人或团队知识库。
- 希望在已有工作环境中使用(一个 .skills/ 目录,符号链接到所用各个智能体)。
设计理念与限制
- 它是编译而非累积:新知识合并进已有页面,矛盾会被标记,不产生重复。
- 只读取变化内容:manifest 跟踪已摄入的每个来源,第二次运行只处理增量。
- 可区分知识与猜测:每条主张标记为 extracted、^[inferred] 或 ^[ambiguous],lint 会标记漂移为推测的页面。
- 查询成本随规模增长保持低廉:先读标题、标签和摘要,再读正文;20 页或 2000 页成本大致相同。
- 数据归你所有:文件夹中的纯 Markdown,可推送到私有仓库、在 Obsidian 打开、grep、删除;无服务、无锁定,数据不离开本机。
- 上下文跨会话传递:会话开始时注入所有者档案、未完成线索和运行快照。
- 并行写入安全:index.md、log.md、hot.md 以及 _meta/ 下的所有者档案与待办索引都通过单一写入器,加锁并原子写入,避免并行智能体互相丢失更新。
- user_id 用于隔离每个人的记忆,而知识保持共享。
- 官方说明项目处于早期阶段,技能可用,但在交叉引用、去重、更大规模仓库、新摄入来源方面仍有改进空间。
- 文档提到一项小规模对比研究(Claude Sonnet、无头模式、真实的 38 页仓库,n=2),给出的准确率与耗时数据被官方描述为指示性而非定论;完整数据与逐次运行日志见 PR #175。