SuperAPI AI 工具集

llm-wiki

写作与研究

查看项目

更新于 10-22 16:15

技能介绍

用途

llm-wiki 是一个用于构建和维护个人知识库的 AI 技能。它把知识整理成一个持久保存、相互链接的 wiki,并随着每次读入来源、每次回答问题而不断扩充。与 RAG 在每次查询时重新推导知识不同,它的知识只编译一次并保持更新。该技能基于 Karpathy 的 LLM Wiki 模式(https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)。

目录结构

所有 wiki 文件都存放在工作区内的 wiki/ 目录中,也就是由 $WIKI_DIR 指定的目录;没有设置时默认使用 ./wiki/:

  • wiki/index.md:所有页面的目录,每次读入来源后都要更新。
  • wiki/log.md:按时间顺序追加的操作记录。
  • wiki/raw/:来源文档,只读、不可修改。
  • wiki/pages/:由 LLM 维护的 wiki 页面。

首次使用时,如果这个结构不存在,就先创建它。脚本命令中的 $SKILL_DIR 指该技能安装所在的目录;如果 agent 没有自动设置,运行前请替换为 llm-wiki 目录的路径。

页面约定

wiki/pages/ 下的每个页面遵循以下格式:前置元数据包含 title、tags、sources、last-updated;正文包含标题和内容;末尾必须有“## See also”小节,列出指向相关页面的交叉链接。文件名使用小写 slug,例如 machine-learning-basics.md。新来源触及某页时更新 sources 计数;每次编辑都更新 last-updated。

主要操作

  • 列出 wiki:用户要求列出、展示或浏览 wiki 时,运行 python3 "$SKILL_DIR/scripts/list.py"(可用 --tag TAG 或 --sort updated 缩小范围),并把返回的页面以可读表格呈现(标题、标签、来源数、更新时间)。返回空数组时说明还没有页面,并提议开始创建。
  • 读入来源:读取 wiki/raw/ 下的来源(或用户提供的 URL/路径),必要时与用户讨论要点,编写摘要页 wiki/pages/<slug>-source.md,更新 index.md,并识别相关页面进行交叉引用、补充信息或标注矛盾。单个来源通常触及 5 至 15 个页面;新数据与已有说法矛盾时要明确标注。随后追加日志。
  • 查询 wiki:用 scripts/search.py 搜索相关页面并按分数从高到低阅读;若搜索无结果但 index.md 存在,可手动浏览。综合答案时引用页面文件名;若答案有复用价值,可将其归档为新页面,并追加日志。
  • 检查 wiki:运行 scripts/lint.py,处理其报告的问题:orphan(无入链,补充交叉链接或在 index 中提及)、missing(index 列出但文件不存在,删除条目或重建)、unlisted(文件存在但未列入 index,补入 index)。此外还要阅读若干页面,检查矛盾和过时说法,然后追加日志。

脚本

  • python3 "$SKILL_DIR/scripts/list.py" [--tag TAG] [--sort title|updated]:列出所有页面及元数据。
  • python3 "$SKILL_DIR/scripts/search.py" "<query>" [--top N]:按关键词相关性搜索页面。
  • python3 "$SKILL_DIR/scripts/lint.py":健康检查(孤立页、缺失文件、未列出页面)。
  • python3 "$SKILL_DIR/scripts/log.py" <ingest|query|lint> "<title>" ["<notes>"]:追加日志条目。

环境变量与使用提示

WIKI_DIR 指定 wiki 目录路径(默认 ./wiki/),可设为偏好的持久位置。提示:把综合出的答案归档为新页面,避免留在聊天记录中;新旧信息矛盾时同时更新两页并明确记录冲突;对用户长期研究的主题优先查 wiki 而非网页搜索;raw/ 中的来源文件是不可修改的事实来源。