# LLM Wiki Ops

> LLM Wiki 知识库运维技能。用于在飞书知识库中进行 LLM Wiki 的初始化、绑定、入库、查询、体检和词条管理。当用户要求操作 LLM Wiki 知识库、入库资料/文章、查询词条、体检知识库、管理索引/日志时使用。支持自动检测绑定状态，未绑定时引导初始化，已绑定时直接运维。

- Skill: `liucongg/llm-wiki-ops` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add liucongg/llm-wiki-ops`
- Raw SKILL.md: https://api.skillmd.com/api/skills/liucongg/llm-wiki-ops/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: Apache-2.0
- Author: liucongg (https://skillmd.com/u/liucongg)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/liucongg/llm-wiki-ops

---


# LLM Wiki 运维技能

在飞书知识库中运维 LLM Wiki——基于 Karpathy 的 LLM Wiki 模式：LLM 把原始资料持续编译成互相链接的持久化 wiki。

## 第一步：检测绑定状态

**每次使用本技能前，必须先检测知识库绑定状态。**

1. 读取本技能目录下的 `config/wiki-binding.json`。
2. 如果文件存在且包含有效的 `space_id` 和 `nodes`，则视为**已绑定**，直接进入运维模式。
3. 如果文件不存在、为空或缺少关键字段，则视为**未绑定**，进入初始化流程（见 `references/init.md`）。

绑定文件路径：`<skill_dir>/config/wiki-binding.json`

## 已绑定：直接运维

绑定后，所有操作基于 `wiki-binding.json` 中的节点 token 和 doc_id 执行。无需再让用户提供知识库地址。

### 核心操作

#### 1. Ingest（入库）

**原始资料入库**：
1. 读取用户提供的资料文件（全文，不跳过）。
2. 在「原始资料」区创建资料卡文档，保留原文链接。
3. 从资料中提取值得沉淀的实体/概念/方法论，在「词条」区创建词条文档。
4. 每个新词条必须同时建立与已有词条的**双链关系**（见下方「双链规则」）。
5. 更新「索引」文档（A-Z 排序，先英文后中文）。
6. 在「更新日志」追加 `ingest` 条目。

**文章入库**：
1. 判断是成稿还是草稿，分别放入「我的文章/成稿」或「我的文章/草稿」。
2. 清理文章中的无关内容（如视频播放器 UI 文字）。
3. 从文章中提取有价值的概念/实体创建词条（词条来源标注文章标题）。
4. 更新索引和日志。

详细流程见 `references/ingest.md`。

#### 2. Query（查询）

1. 先读「索引」定位相关词条和资料卡。
2. 深入阅读相关文档。
3. 综合出带引用的答案。
4. 有价值的答案（比较、分析、新连接）归档回 wiki 成为新页面，并更新索引与日志。

详细流程见 `references/query.md`。

#### 3. Lint（体检）

定期检查：
- 页面间矛盾、过期论断
- **孤儿页**（无入链的词条）——发现后立即补全双链
- 提到但缺页的概念
- 缺失的交叉引用
- 事实标注是否完整（每条事实是否标注来源）
- 索引与实际词条是否一致

结果记录到更新日志，类型为 `lint`。详细流程见 `references/lint.md`。

#### 4. 词条管理

- **新建词条**：必须包含定义、关键事实（标注来源）、与其他词条的关系（双链）、来源四个部分。
- **更新词条**：只改被点名的范围，保留未要求改动的内容。
- **删除词条**：需用户明确授权，删除后更新索引和相关词条的双链。

词条模板见 `references/entry-template.md`。

#### 5. 索引与日志维护

- **索引**：每次入库/删除后必须更新。按 A-Z 字母排序，每个字母下先英文后中文。包含原始资料、我的文章（成稿+草稿）、词条三个区域。
- **更新日志**：追加式记录，不修改历史。条目格式：`## [YYYY-MM-DD] <动作> | <主题>`，动作取值：`ingest`/`query`/`lint`/`init`/`update`。

## 词条文档规范（强制）

每篇词条文档必须包含以下结构：

1. **定义**：一句话定义该实体/概念。
2. **关键事实**：列出从资料/文章中提取的事实。
3. **与其他词条的关系**：说明与其他词条的关联，**必须使用飞书文档双链链接**。
4. **来源**：标注来源文件名或文章标题。

### 事实与来源规则（强制）

- 所有事实必须来自用户提供的资料和文章，禁止编造。
- 每条事实必须标注来源，格式：`（来源：<文件名/文章标题>）`。
- 资料里没有的信息，明确写「暂无资料」，不得臆造。

### 双链规则（强制）

- 每个词条的「与其他词条的关系」部分必须使用飞书文档链接（`[词条名](https://<tenant>.feishu.cn/docx/<doc_id>)`），不得使用纯文本。
- **禁止产生孤儿词条**：每个新词条至少链接到 1-2 个已有词条；被链接的词条也应在关系部分回链。
- 关系描述要具体，不能只写“相关”，要说明是什么关系（对比、基于、同属、被采用等）。
- 绑定文件 `wiki-binding.json` 中不记录每个词条的 doc_id；查询时通过索引或 wiki 节点列表获取。

## 未绑定：初始化流程

如果检测到未绑定，按以下流程初始化：

1. 询问用户是否已有 LLM Wiki 知识库。
   - **已有**：让用户提供知识库的 space_id 或 wiki 链接，自动解析节点结构，生成 `wiki-binding.json`。
   - **没有**：在飞书创建新知识空间，建立标准目录结构（原始资料、词条、我的文章/成稿、我的文章/草稿、索引、更新日志、AGENT.md），生成 `wiki-binding.json`。
2. 初始化完成后，告知用户绑定成功，并可直接开始运维。

详细流程见 `references/init.md`。

## 绑定文件格式

`config/wiki-binding.json` 必须包含：

```json
{
  "wiki_name": "LLM Wiki",
  "space_id": "<飞书知识空间ID>",
  "space_url": "<知识库URL>",
  "root_node_token": "<根节点token>",
  "nodes": {
    "原始资料": { "node_token": "...", "obj_token": "..." },
    "词条": { "node_token": "...", "obj_token": "..." },
    "我的文章": {
      "node_token": "...",
      "children": {
        "成稿": { "node_token": "...", "obj_token": "..." },
        "草稿": { "node_token": "...", "obj_token": "..." }
      }
    }
  },
  "docs": {
    "索引": { "doc_id": "..." },
    "更新日志": { "doc_id": "..." },
    "AGENT.md": { "file_token": "..." }
  },
  "created_at": "YYYY-MM-DD",
  "last_updated": "YYYY-MM-DD"
}
```

## 注意事项

- 本技能操作的是飞书知识库，需要飞书登录态。操作前确认 `lark-cli` 可用；如果 Agent 提供等价的飞书知识库和文档工具，也可以使用等价工具完成同一操作。
- 绑定文件是本技能的核心运行时状态，不要提交到版本库。如果知识库结构发生变化（如新增节点），必须同步更新绑定文件。
- 写入绑定前确保 `config/` 目录存在。可参考 `config/wiki-binding.example.json`，但不得把示例占位值视为有效绑定。
- 所有写入操作（创建文档、更新索引、追加日志）执行后，必须验证结果（列出节点确认数量、读取文档确认内容）。
- 用户可在对话中直接要求执行入库、查询、体检或词条管理，无需重复确认绑定状态（已在第一步检测）。

