# LLM Wiki

> 基于 LLM 的智能知识库管理工具，接收用户传入的新文章或内容，自动提取关键信息并整合到现有 wiki 中，更新实体页面、修订主题摘要、标记矛盾点。

- Skill: `howdow698-ui/llm-wiki` (Agent Skill)
- Install (CLI): `npx skillmds@latest add howdow698-ui/llm-wiki`
- Raw SKILL.md: https://api.skillmd.com/api/skills/howdow698-ui/llm-wiki/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: howdow698-ui (https://skillmd.com/u/howdow698-ui)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/howdow698-ui/llm-wiki

---


# LLM Wiki 知识库管理

## 核心概念

LLM Wiki 是一种增量式知识库构建模式：
- **原始资料层 (raw/)**: 用户提供的源文档，只读
- **Wiki 层 (wiki/)**: LLM 生成的 markdown 文件，包含摘要、实体页面、概念页面等
- **Schema 层**: 本 skill 定义的工作流程和规范

与传统 RAG 不同，LLM Wiki 会**持续构建和维护**一个结构化的、相互关联的 markdown 文件集合，知识是累积的而非每次都重新检索。

## 目录结构

```
llm-wiki/
├── raw/                    # 原始资料（用户放入，LLM 只读）
│   ├── articles/
│   └── assets/            # 图片等附件
├── wiki/                   # LLM 维护的知识库
│   ├── index.md           # 内容索引目录
│   ├── log.md             # 操作日志（时间线）
│   ├── sources/           # 源文档摘要
│   ├── entities/          # 实体页面（人物、组织、产品等）
│   ├── concepts/          # 概念页面（理论、方法、术语等）
│   └── synthesis/         # 综合分析页面
└── .qoder/skills/llm-wiki/  # 本 skill
```

## 工作流程

### 1. 接收新内容

当用户提供新文章或内容时：
1. 将原始内容保存到 `raw/articles/`
2. 记录文件名和时间戳

### 2. 分析内容

使用 LLM 分析原始内容，提取：
- **关键要点**: 3-5 个核心观点
- **实体**: 提及的人物、组织、产品、地点等
- **概念**: 理论、方法、术语、技术
- **关系**: 实体/概念之间的关联
- **矛盾点**: 与现有 wiki 冲突的信息

### 3. 更新 Wiki

根据分析结果更新 wiki：

**创建/更新源文档摘要** (`wiki/sources/原始文件名.md`):
```markdown
---
title: 文章标题
date: 2026-04-06
source: raw/articles/xxx.md
tags: [tag1, tag2]
---

# 文章标题

## 摘要
一句话概括核心内容

## 关键要点
- 要点 1
- 要点 2

## 提取的实体
- [[实体A]]
- [[实体B]]

## 提取的概念
- [[概念X]]
- [[概念Y]]
```

**更新实体页面** (`wiki/entities/实体名.md`):
- 如实体已存在，追加新信息
- 标记信息来源
- 如发现矛盾，标注并解释

**更新概念页面** (`wiki/concepts/概念名.md`):
- 类似实体页面的处理方式

**创建/更新综合分析页面** (`wiki/synthesis/主题名.md`):
- 当新内容与某个主题相关时，更新该主题的综合分析
- 整合多个源文档的观点，形成统一视角
- 标记不同来源的观点差异
- 示例页面：
  - `wiki/synthesis/AI-Agent-平台对比.md` - 对比不同 Agent 平台
  - `wiki/synthesis/技术趋势分析.md` - 跨文档的技术趋势总结

**处理图片资源** (`raw/assets/`):
- 文章中的图片下载到 `raw/assets/`
- 在 wiki 页面中引用本地图片路径
- 图片命名：`{文章名}-{序号}.{扩展名}`

**更新索引** (`wiki/index.md`):
- **必须更新源文档摘要部分**: 在 `## 源文档摘要` 表格中添加新文章的链接和摘要
- **必须更新实体部分**: 如有新实体，添加到 `## 实体` 表格
- **必须更新概念部分**: 如有新概念，添加到 `## 概念` 表格
- **必须更新综合分析部分**: 如有新 synthesis，添加到 `## 综合分析` 表格
- 每个部分都要检查并更新，不要遗漏

**记录日志** (`wiki/log.md`):
```markdown
## [2026-04-06] ingest | 文章标题
- 添加了源文档摘要
- 更新了实体: A, B, C
- 更新了概念: X, Y
- 发现矛盾: 无/有（说明）
```

### 4. 回答查询

当用户提问时：
1. 先读取 `wiki/index.md` 找到相关页面
2. 读取相关页面内容
3. 综合信息生成答案
4. 答案可保存为新的 wiki 页面（如用户要求）

**使用 QMD 进行语义检索（推荐）**：
- 在内容更新后，先执行 `qmd update` 扫描文件系统更新索引
- 然后执行 `qmd embed` 生成向量嵌入（用于语义搜索）
- 使用语义搜索查找相关内容：`qmd query "搜索内容"`
- QMD 会自动进行混合搜索（向量相似度 + 全文检索）并重排序
- 示例：`qmd query "Agent 平台对比"` 或 `qmd query "嵌入式架构特点"`
- 高级用法：使用结构化查询 `qmd query $'lex: 关键词\nvec: 语义描述'`

## 操作指令

### 接收新文章

**方式 1 - 自然语言指令**：
用户说"添加这篇文章"或提供内容时：
1. 询问文章标题（如未提供）
2. 保存原文到 `raw/articles/`
3. 执行分析 → 更新 wiki 流程
4. 汇报更新摘要

**方式 2 - 命令格式（推荐）**：
用户使用 `/llm-wiki <文章链接>` 格式时：
1. 识别命令格式，提取文章链接
2. 使用 fetch_content 获取文章内容
3. 从 URL 或内容中提取文章标题
4. 保存原文到 `raw/articles/`
5. 执行分析 → 更新 wiki 流程
6. 汇报更新摘要

示例：
- `/llm-wiki https://example.com/article`
- `/llm-wiki https://github.com/user/repo/blob/main/docs/guide.md`

### 查询知识库

**方式 1 - 命令格式（推荐）**：
用户使用 `/llm-wiki 搜索<关键词>` 或 `/llm-wiki <问题>` 格式时：

**使用 QMD 语义检索**：
1. 先执行 `qmd update` 更新索引（扫描文件系统，检测新增/修改/删除的文件）
2. 然后执行 `qmd embed` 生成向量嵌入（用于语义搜索）
3. 使用 `qmd query "用户问题"` 进行语义搜索
4. 根据搜索结果读取相关 wiki 页面
5. 综合信息生成带引用的回答

示例：
- `/llm-wiki 搜索Agent平台`
- `/llm-wiki Agent平台有哪些`
- `/llm-wiki CoPaw和OpenClaw的区别`

**方式 2 - 自然语言指令**：
用户直接提问时：
1. 读取 `wiki/index.md`
2. 识别相关页面
3. 读取并综合答案
4. 提供带引用的回答

### 健康检查

用户说"检查 wiki"或"lint"时：
1. 扫描所有页面
2. 检查：
   - 页面间的矛盾
   - 过时声明
   - 孤立页面（无入链）
   - 缺失的概念页面
   - 缺失的交叉引用
3. 生成检查报告
4. 建议修复措施

## 命名规范

- 文件名使用小写，空格用 `-` 替换
- 实体页面: `wiki/entities/实体名.md`
- 概念页面: `wiki/concepts/概念名.md`
- 源摘要: `wiki/sources/原始文件名.md`
- 内部链接使用 Obsidian 格式: `[[页面名]]`

## 输出格式

所有 wiki 页面使用标准 markdown，可选 YAML frontmatter：

```markdown
---
title: 页面标题
date: 2026-04-06
sources: [source1, source2]
tags: [tag1, tag2]
---

# 页面标题

内容...

## 相关页面
- [[相关页面A]]
- [[相关页面B]]
```

