LLM-WIKI:让AI替你管知识库,实现知识「一次整理,终身复利」

lxiol
📝
字数 1881,阅读大约需 10 分钟 传统RAG系统每次查询都需重新挖掘原始文档,却从不积累经验;而Karpathy提出的LLM-WIKI思想,通过AI增量构建结构化、可演进的知识库,自动整合新信息、标记矛盾点、维护关联链路。LLM-WIKI的核心突破在于:知识只编译一次,却持续复利,让人类从繁琐的整理工作中解放,专注于提问与思考

原文链接:https://mp.weixin.qq.com/s/F2_qNXiiK4b9ZwVQQKMg3g

字数 1881,阅读大约需 10 分钟

传统RAG系统每次查询都需重新挖掘原始文档,却从不积累经验;而Karpathy提出的LLM-WIKI思想,通过AI增量构建结构化、可演进的知识库,自动整合新信息、标记矛盾点、维护关联链路。

LLM-WIKI的核心突破在于:知识只编译一次,却持续复利,让人类从繁琐的整理工作中解放,专注于提问与思考。

本文将结合实战场景,分享 LLM-WIKI 的落地架构、核心操作与扩展方案。

本文要点

  • • 搭建LLM-WIKI,拆解关键知识点,聊天演化新的知识点
  • • 使用git自动进行知识库云管理
  • • 接入龙虾,打通IM端窗口式
  • • 接入Obsidian平台+Claudian插件管理知识库
  • • 使用避坑及经验分享

LLM-WIKI目录结构示例

1. 三层核心架构(源自Karpathy原典)

层级

作用说明

原始层

存储不可修改的数据源(文章、PDF、笔记等),为知识库提供”事实基石”

知识库层

AI生成的结构化内容(概念/实体/综合页),自动关联、更新、去重

配置层

AGENTS.md(国内模型优先)/CLAUDE.md(Claude优先),定义AI的工作规则

2. 实战目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
`LLM-WIKI/
├── AGENTS.md           # 核心配置文件(模型行为定义)
├── 原始/               # 数据源目录(只读)
│   ├── 文章/、PDF/、图片/等分类文件夹
├── 知识库/             # AI生成的结构化内容
│   ├── 索引.md         # 全局目录(自动更新)
│   ├── 日志.md         # 操作轨迹( ingest/query/lint 记录)
│   ├── 概念/、实体/、综合/等分类
├── 输出/               # 查询结果与检查报告
├── 脚本/               # 辅助工具
│   ├── docx2md.py      # 格式转换脚本
│   ├── qmd_query.py    # qmd降级搜索脚本
│   └── lint.py         # 健康检查脚本`

3. 官方资源

三大命令打通知识流转

1. 数据摄入:ingest - 让AI读懂你的文档

1
2
3
4
5
6
7
8
9
10
11
12
`# 基础用法:摄入单个文件
ingest 原始/文章/xxx.md

# 批量摄入:递归处理文件夹
ingest 原始/**

核心逻辑:
AI读取原始文件→提取关键信息→更新索引.md→关联现有概念/实体页→记录日志.md

注意事项:
- 实体/概念提取依赖AGENTS.md定义的规则(如标题层级、关键词匹配)
- 无法打开的文件需检查WPS/Office权限,或转换为MD格式`

2. 知识查询:query - 精准调用结构化知识

1
2
3
4
5
6
7
8
`# 基础查询
query LLM-WIKI与传统RAG的区别
或者 
根据我的知识库回答:LLM-WIKI与传统RAG的区别

进阶技巧:
- 优质查询结果可自动存入`输出/`目录,手动移入`原始/`再次ingest,实现知识闭环
- 避免幻觉放大:关键结论需人工验证后再纳入知识库`

3. 健康检查:lint - 保持知识库整洁

1
2
3
4
5
6
7
8
`# 基础检查(矛盾/孤页/缺失关联)
lint

检查内容:
- 矛盾点:新老数据冲突标记
- 孤页:无关联的孤立页面
- 缺失:重要概念未生成独立页面
- 依赖脚本:`lint.py`可自定义检查规则(如特定关键词必现)`

扩展能力:满足个性化需求

1. Git云管理知识库(可写在AGENTS.md里)

1
2
3
4
5
6
7
8
9
10
`# 1. 初始化仓库(首次执行)
git init && git add . && git commit -m "初始化LLM-WIKI"

# 2. 编写自动提交脚本
#!/bin/bash
git pull --rebase    # 拉取云端变更
git status --porcelain   # 检查是否有变更
git add .              # 若有变更则提交并推送
git commit -m "<操作类型>: <简要描述>"
git push origin main`

2. Obsidian管理知识库(需改为CLAUDE.md)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
`# 下载地址
https://obsidian.md/

# 安装claudian插件
https://github.com/YishenTu/claudian?tab=readme-ov-file

1. 进入插件目录 
cd 工程文件\.obsidian\plugins
git clone https://github.com/YishenTu/claudian.git

2. 进入claudian目录,安装依赖
cd 工程文件\.obsidian\plugins\claudian
npm install
npm run build

3. 启用插件
Settings → Community plugins → Enable "Claudian"`

3. 接入龙虾,打通IM端窗口式

    1. 添加工作区
    1. 添加技能调用知识库文件,自动识别AGENTS.md
    1. 如果希望openclaw每次回复都读取知识库图片,修改SOUL.md
1
2
`添加这条信息
- When the skill **llm-wiki** is triggered, the relevant images need to be sent along with the answers to the questions. Note that the images should not be displayed repeatedly.`
    1. 示例目录结构
1
2
3
4
5
6
7
8
9
10
11
12
13
`workspace-knowledge
├── LLM-WIKI/        # 自定义agent的文件夹
    ├── 知识库/
    ├── ....
    └── AGENTS.md
├── skills
    ├── ....         # 其他技能
    └── llm-wiki/    # 调用agent的技能
        ├── references
                └── AGENTS.md
        └── SKILL.md   
AGENTS.md
...`

注意事项

1. 指令偶尔失效

  • • trae等IDE中指令控制时,CLAUDE.md改成AGENTS.md才能更好识别
  • • 使用openclaw时需要触发技能的关键词(如:根据我的知识库回答)

2. lint时检查结果信息缺失

  • • 自定义lint.py脚本逻辑

3. ingest的产出,没有完全准确地把原始知识库的内容做索引,依赖执行ingest时的脚本

  • • 部分文件打开不了(取决于用的脚本和word工具权限)
  • • 实体、来源、概念 提取的原理是什么?(按照AGENTS.md的规则来)
  • • 感觉内容零碎且不完整(取决于用的claude和模型)

4. query的产出,比较零碎,如果是修正内容,能直接生成一份新的内容吗,生成后是否还需要人工更新?

  • • 输出的文件内容仅仅是优化建议,没有直接可应用性(可用的又放入原始文件夹,再次摄入)
  • • 如果输出的是幻觉,采纳后会被无限放大幻觉(需要判断再采纳)

5. qmd工具安装不了,导致自动生成的脚步

  • • query时提问知识库文章中的某个概念时,AI拿不到内容(ingest时的索引和日志不完整)

6. qmd安装方式:

1
2
3
4
5
6
`下载地址:
https://github.com/tobi/qmd
安装指令:
npm install -g @tobilu/qmd
qmd --version
还是用不了就让AI解决,实在用不了就降级处理,写py脚本搜索或直接查索引.md。`

Windows下qmd兼容问题处理:

1
2
3
4
`问题原因:
@tobilu/qmd 包只提供了 Unix/Linux 的启动脚本(bin/qmd 是 shell 脚本),
没有为 Windows 提供兼容的启动方式。
npm 自动生成的 .cmd 和 .ps1 文件尝试调用 /bin/sh,这在 Windows 上不存在。`

解决:

1
2
3
4
`替换npm下的文件,
对应C:\Users\~\AppData\Roaming\npm 以下3个文件:
两个文件现在都直接调用Node.js来运行@tobilu/qmd/dist/cli/qmd.js,
绕过对 Unix shell 的依赖。`

qmd(shell 脚本)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
`#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")

case `uname` in
    *CYGWIN*|*MINGW*|*MSYS*)
        if command -v cygpath > /dev/null 2>&1; then
            basedir=`cygpath -w "$basedir"`
        fi
    ;;
esac

if [ -x "$basedir//bin/sh" ]; then
  exec "$basedir//bin/sh"  "$basedir/node_modules/@tobilu/qmd/bin/qmd" "$@"
else 
  exec /bin/sh  "$basedir/node_modules/@tobilu/qmd/bin/qmd" "$@"
fi`

qmd.cmd(Windows 批处理)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
`@ECHO off
SETLOCAL

REM Get the directory of this script
SET "SCRIPT_DIR=%~dp0"

REM Remove trailing backslash
SET "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"

REM Navigate to the package directory and execute the CLI
IF EXIST "%SCRIPT_DIR%\node_modules\@tobilu\qmd\dist\cli\qmd.js" (
  node "%SCRIPT_DIR%\node_modules\@tobilu\qmd\dist\cli\qmd.js" %*
) ELSE (
  ECHO Error: qmd.js not found. Please reinstall the package.
  EXIT /B 1
)`

qmd.ps1(PowerShell 脚本)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
`#!/usr/bin/env pwsh

$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent

$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
  $exe=".exe"
}

# Execute the Node.js CLI directly
if (Test-Path "$basedir/node_modules/@tobilu/qmd/dist/cli/qmd.js") {
  & node "$basedir/node_modules/@tobilu/qmd/dist/cli/qmd.js" @args
  $ret=$LASTEXITCODE
} else {
  Write-Error "Error: qmd.js not found. Please reinstall the package."
  $ret=1
}

exit $ret`

结语
LLM-WIKI 的本质不是 “让 AI 写文档”,而是构建一个人机协作的知识生态——AI 负责机械的整理、关联、维护工作,人类专注于内容筛选、深度思考与价值判断。它既可以是个人的 “第二大脑”,也能成为团队的 “知识中台”,通过 git 自动化、IM 集成等扩展,打破知识流转的壁垒。


💬 本文评论区已开启,但暂无读者留言。

本文转载自微信公众号,如有侵权请联系删除。

  • 标题: LLM-WIKI:让AI替你管知识库,实现知识「一次整理,终身复利」
  • 作者: lxiol
  • 创建于 : 2026-05-08 21:51:59
  • 更新于 : 2026-05-12 16:07:03
  • 链接: https://blog.lxiol.cn/2026/05/08/LLM-WIKI让AI替你管知识库实现知识一次整理终身复利/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。