SamurAIGPT/llm-wiki-agent
A personal knowledge base that builds and maintains itself. Drop in sources — Claude (or Codex/Gemini) reads them, extracts knowledge, and maintains a persistent interlinked wiki. Works with Claude Code, Codex, OpenCode, Gemini CLI. No API key needed.
LLM Wiki Agent – 由 LLM 代理构建的自我维护知识维基
是什么 – 一个本地的、基于文件的知识库,您只需将任意格式的文档(PDF、DOCX、PPTX、Markdown 等)放入 raw/ 文件夹,然后使用 LLM 驱动的 代理 来处理。代理提取实体、概念和摘要,创建相互链接的 Markdown 页面,标记矛盾,并更新持久化知识图谱。所有输出以纯 Markdown 和静态 graph.html 可视化形式存在,因此您可使用任何编辑器(如 Obsidian)或网页浏览器进行浏览。
为何重要 – 与典型的检索增强生成(RAG)管道在每次查询时重新处理原始片段不同,此工具仅编译一次知识并保持更新。交叉引用、实体页面和矛盾标记在导入时生成,让您获得一个不断增长、随时可查询的维基,而无需面对仅聊天助手的“会话后遗忘”问题。
快速开始(无需 Python 代码)
# 克隆仓库
git clone https://github.com/SamurAIGPT/llm-wiki-agent.git
cd llm-wiki-agent
# 使用任何支持的 LLM 代理打开仓库(Claude、Codex、Gemini 等)
# 代理会读取配置文件(CLAUDE.md、AGENTS.md、GEMINI.md)
claude # 或 `codex`, `gemini`, `opencode`
代理可理解自然语言命令,如 ingest …、query: …、lint 和 build graph。
核心工作流
| 步骤 | 命令(自然语言) | 发生了什么 |
|---|---|---|
| 导入 | ingest raw/papers/attention-is-all-you-need.md |
文件被转换为 Markdown(如需),解析,并更新维基。新实体页面(人物、公司)和概念页面(想法、方法)将自动创建。 |
| 查询 | query: what are the main themes? |
LLM 读取结构化维基,合成答案,并建议将其保存为 wiki/syntheses/ 下的 合成页面。 |
| Lint | lint |
运行一致性检查:孤立页面、损坏链接、缺失实体页面和检测到的矛盾将在 wiki/log.md 中报告。 |
| 图谱 | build graph |
生成 graph.json(节点/边缓存)和由 vis.js 驱动的自包含 graph.html 可视化。 |
磁盘上生成的内容
wiki/
├─ index.md # 所有页面的自动生成目录
├─ log.md # 仅追加的操作日志
├─ overview.md # 所有源的动态合成
├─ sources/ # 每个原始文档一个摘要页面
├─ entities/ # 人物、组织、项目自动创建的页面
├─ concepts/ # 想法、框架、方法自动创建的页面
└─ syntheses/ # 代理被要求保留的回答
graph/
├─ graph.json # 缓存的节点/边数据(SHA-256 键)
└─ graph.html # 知识图谱的交互式浏览器视图
所有文件均为纯 Markdown,因此可与任何编辑器、版本控制系统或 Obsidian 仓库兼容。
核心功能
- 多格式导入 – PDF、DOCX、PPTX、XLSX、HTML、CSV、JSON、EPUB 等可通过 Microsoft 的 markitdown(或可选工具如
Marker用于复杂 PDF)自动转换。 - 实体与概念自动创建 – 代理提取专有名词和技术术语,创建专用页面,并在所有出现位置建立链接。
- 矛盾检测 – 当新源与现有主张冲突时,将在导入时添加标记。
- 持久化知识图谱 – 两阶段构建:确定性维基链接 + LLM 推断的语义边(带置信度评分)。Louvain 社区检测用于聚类主题。
- Lint 报告 – 孤立页面、损坏链接、数据缺口、建议缺失来源。
- Obsidian 兼容 – 维基使用标准
[[wikilink]]语法;可将wiki/符号链接到任意 Obsidian 仓库,实现实时图谱视图。 - 零服务器、零数据库 – 所有内容均存储在文件系统中;唯一运行时依赖是读取配置文件的 LLM 代理。
示例用例
| 领域 | 使用方式 |
|---|---|
| 研究 | 导入论文(/wiki-ingest raw/papers/*.md),然后询问代理如“减少幻觉的主要方法有哪些?”——答案将作为维基页面保存以供未来参考。 |
| 阅读书籍 | 将每章作为 Markdown 文件放入,让代理创建人物和主题页面,然后查询叙事弧或矛盾。 |
| 个人知识库 | 存档日记条目、文章摘要、播客笔记;查询模式(如“哪些习惯能提升我的精力?”),并观察维基的演化。 |
| 团队智能 | 导入会议记录、路线图、客户通话;询问“最常出现的功能请求是什么?”并获得结构化答案,同时若路线图与客户反馈矛盾则标记。 |
| 竞争分析 | 持续输入竞争对手公告和市场报告;查询对比表格或生成“竞争格局”合成页面。 |
技术栈(如 README 所列)
- LLM 代理 – Claude Code、OpenAI Codex、Gemini CLI(可读取所提供模式文件的任意代理)。
- 图处理 – NetworkX + Louvain 社区检测。
- 可视化 – vis.js(静态
graph.html)。 - 文件转换 –
markitdown(默认),可选Marker、arxiv2md、PyMuPDF4LLM(用于 PDF)。 - 脚本 –
tools/中的小型 Python 工具,仅需上述 Python 包和 Anthropic API 密钥(若直接运行转换脚本)。
获取帮助 / 扩展
- 仓库包含模式文件(
CLAUDE.md、AGENTS.md、GEMINI.md),定义了每个代理的精确命令集。编辑这些文件可自定义命名约定、前端字段或添加新触发器。 - 由于维基只是一个 Git 仓库,您可以版本追踪变更、为实验分支、或合并协作者的贡献。
TL;DR – LLM Wiki Agent 是一个本地运行、由代理驱动的管道,可将任意文档集合转化为一个动态、相互链接的 Markdown 维基,具备自动实体提取、矛盾标记和可视化知识图谱。它与任何 Claude/Codex/Gemini 风格的 LLM 代理兼容,无需服务器,并可无缝集成 Obsidian 等工具。
相关
- 项目
- 项目
- 项目
- 项目
- 项目