wiki-craft

通过LLM自动创建并维护可链接的Markdown知识库,支持持续积累与智能查询。

已扫描
适合谁
需要系统化管理知识的个人学习者、希望实现知识复用的研究人员或创作者
不适合谁
无需长期知识沉淀的临时使用者、不接受自动化内容生成的严格控制型用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @brunovu20/wiki-craft

Skill 说明

命令、参数、文件名以原文为准

LLM Wiki

构建并维护一个持久、持续积累的知识库,由相互链接的 Markdown 文件组成。LLM 负责编写和维护 wiki 内容,人类则负责提供资料源、提出问题,并引导分析方向。

这并非 RAG(检索增强生成)。与在查询时重新推导知识不同,LLM 会逐步构建一个结构化的 wiki,随着每一份新资料的加入和每一个问题的提出,知识库不断丰富。跨页引用已预先建立,矛盾点已被标记,综合分析也已反映所有已摄入的信息。


首次运行 — 初始化设置

如果 wiki/index.md 文件不存在,则表示 wiki 尚未初始化。此时应向用户提问:

  1. 这个 wiki 是用来做什么的?(领域、主题、目的)
  2. 根目录位于何处?(默认为当前工作目录)
  3. 你将添加哪些类型的资料?(文章、PDF、录音转录稿、笔记等)
  4. 在导入过程中,你希望参与程度如何?(先讨论再处理 vs. 批量静默处理)

随后执行以下操作:

  1. 创建 raw/wiki/ 目录。
  2. 创建 wiki/index.md,包含 # Wiki Index 标题及空的页面章节。
  3. 创建 wiki/log.md,包含 # Log 标题。
  4. 向用户确认设置结果,并展示目录结构。

目录结构

{root}/
  raw/          -- 原始文档(不可修改 — 永不更改)
  wiki/
    index.md    -- 目录:每一页及其简要描述
    log.md      -- 只追加的按时间顺序记录所有操作的日志
    *.md        -- 生成的页面(摘要、实体、概念等)

raw/ 是用户的领域范围。LLM 管理 wiki/ 下的所有内容。


导入(Ingest)

当用户将资料放入 raw/ 并要求处理时:

  1. 读取完整资料内容。绝不修改 raw/ 中的任何文件。
  2. 与用户讨论关键收获,在撰写任何内容前完成沟通。
  3. wiki/{source-name}.md 创建摘要页面。
  4. 为资料中涉及的每个主要思想或实体创建或更新概念页、实体页、主题页。单个资料通常影响 5–15 个页面,属正常现象。
  5. 在所有创建或更新的页面中添加 [[wiki-links]]。链接是 wiki 的核心价值——应积极连接。
  6. 标记矛盾信息。若新信息与已有陈述冲突,在两个页面上均标注:_(contradicts: [[other-page]])_
  7. **更新 wiki/index.md**:添加新页面及其一句话描述,保持排序。
  8. **追加到 wiki/log.md**:记录日期、资料名称、创建和更新的页面。

在完成第 2 步之前,不得编写任何 wiki 页面。


查询(Query)

当用户提出问题时:

  1. 先读取 wiki/index.md,找出相关页面。
  2. 阅读相关页面并进行综合分析以形成答案。
  3. 在回复中引用具体的 wiki 页面。
  4. 若答案不在 wiki 中,需明确说明。
  5. 若答案有价值,可主动提议将其保存为新的 wiki 页面。

优质回答应被归档回 wiki,实现知识的持续积累。你生成的对比、分析、用户发现的关联——这些都具有价值,不应消失于聊天历史中。

输出格式 —— 回答可根据问题类型采用不同形式:

  • Markdown 页面(默认)
  • 对比表格
  • Marp 幻灯片(若用户安装了 Marp)
  • Matplotlib 图表(适用于数值数据)
  • 用户指定的任意格式

检查 / 审计(Lint / Audit)

当用户要求检查或审计 wiki 时,请执行以下检查:

  • 矛盾点 —— 不同页面间相互冲突的陈述
  • 孤立页面 —— 无任何其他页面指向它的页面
  • 缺失页面 —— 被链接但不存在对应文件的概念
  • 过时声明 —— 被更新资料覆盖的旧事实
  • 格式违规 —— 未遵循 templates/page.md 模板的页面
  • 缺少引用 —— 无 (source: ...) 注明来源的事实性陈述
  • 数据空白 —— 被提及但内容薄弱的概念;建议补充新资料

将发现结果以编号列表形式列出,每项附带修复建议。可主动提供修复服务。


索引格式(wiki/index.md

# Wiki Index

## 摘要页面
- [[source-name]] — 一句话描述

## 实体页面
- [[entity-name]] — 一句话描述

## 概念页面
- [[concept-name]] — 一句话描述

各部分内的条目需保持排序。


日志格式(wiki/log.md

每次操作追加一个区块。永不修改已有条目。

## [YYYY-MM-DD] ingest | 资料标题

- 创建:[[page-a]], [[page-b]]
- 更新:[[page-c]], [[page-d]]
- 备注:任何显著的矛盾、空白或决策说明

使用 ## [YYYY-MM-DD] 前缀,使日志可被 grep 搜索:

grep "^## \[" wiki/log.md | tail -5


页面格式

遵循 templates/page.md 模板。每页必须包含:

# 页面标题

**摘要**:一至两句话。

**来源**:本页所依据的原始资料文件。

**最后更新**:YYYY-MM-DD

---

正文内容,全文贯穿 `[[wiki-links]]`。

## 相关页面

- [[页面]]
  • 文件名:小写、连字符、.md(如 machine-learning.md
  • 所有事实性陈述:(source: filename.ext)
  • 矛盾信息:_(contradicts: [[页面名]])_
  • 无来源陈述:_(需要验证)_

可选工具

以下工具非必需,但可供用户参考:

工具用途
[qmd](https://github.com/tobi/qmd)在本地对 wiki 页面进行搜索 —— BM25/向量混合,支持 MCP 服务器 + CLI
Obsidian支持图谱视图、反向链接、Dataview 插件、Marp 插件的 Markdown 编辑器
Obsidian Web Clipper浏览器扩展,用于将网页文章快速剪贴为 Markdown
Marp将 Markdown 转换为幻灯片,适合展示 wiki 综合成果
DataviewObsidian 插件 —— 可对 wiki 页面中的 YAML 前置元数据执行查询
git为 wiki 目录提供版本历史与分支管理支持

规则

  • **请勿修改 raw/ 目录中的任何内容。**
  • 每次更改后,务必更新 wiki/index.mdwiki/log.md
  • 当不确定如何分类某项内容时,请在编写前向用户确认。
  • 使用简洁明了的语言。维基文档是为用户服务的,而非用于展示。
  • 不要为属于 raw/ 的内容创建维基页面(原始资源应保持原始状态)。
  • 链接是核心价值所在。应积极建立链接关系。一个没有出站链接的页面是错失的机会。
B
@brunovu20

已收录 1 个 Skill

相关推荐