Files
BZJZ_Material/知识库Agent构建.md
2026-06-11 03:33:14 +08:00

513 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 知识库 Agent 构建方案LLM Wiki + 文本图片多模态知识库
问题开始时间2026-06-11-03-26-41
资料来源:
- Karpathy gist<https://gist.githubusercontent.com/karpathy/442a6bf555914893e9891c11519de94f/raw/ac46de1ad27f92b28ac95459c782c07f6b8c964a/llm-wiki.md>
- 本地下载:`文档润色流和知识库构建流/llm-wiki.md`
- Gist 文件 SHA256`dc3efe98ae62f23dd08acad13aba2e95287beb20b6bec2f4af0423557fe37401`
- 参考插件:`文档润色流和知识库构建流/claude-scholar` 中 Obsidian KB、source ingestion、literature workflow、zotero-obsidian-bridge 相关说明
## 1. 核心思想
Karpathy 的 `LLM Wiki` 不是传统 RAG。传统 RAG 在每次提问时从原始资料中重新检索片段;`LLM Wiki` 则让 LLM 维护一个持久 Markdown Wiki作为原始资料和问答之间的中间知识层。
```text
Raw Sources -> LLM Maintained Wiki -> Query / Writing / Analysis
```
关键区别:
- 原始资料只读,是 source of truth
- Wiki 是 LLM 维护的结构化知识层;
- 新资料入库时,不只是建立索引,还要更新主题页、实体页、证据页、矛盾记录和索引;
- 高价值问答也可以写回 Wiki避免只留在聊天记录里
- 交叉引用、旧结论修正、缺口记录会随资料积累持续增长。
对本项目而言,目标是构建“文档润色与项目资料知识库”,支撑模板、参考文档、论文、图片、实验材料、写作草稿、证据台账和最终交付文本。
## 2. 三层架构
### 2.1 Raw Sources原始资料层
原则:只读、可追溯、尽量保留原貌。
建议目录:
```text
知识库/
raw/
papers/
proposals/
templates/
docs/
web/
images/
data/
```
可放入:
- PDF 论文、技术报告、政策文件;
- Word、Markdown、PPT、Excel 等项目资料;
- 获批标书、模板、参考案例;
- 网页剪藏的 Markdown
- PDF 转换出的图片、表格截图、机制图、流程图;
- 原始实验数据或结果图。
Raw 层不由 Agent 修改。Agent 可以读取、转换、引用,但不直接改写原件。
### 2.2 WikiLLM 维护层
原则LLM 可编辑,人主要审查和阅读。
推荐结构:
```text
知识库/
wiki/
index.md
log.md
00-项目总览.md
01-写作任务板.md
Sources/
Papers/
Web/
Docs/
Data/
Images/
Notes/
Knowledge/
主题综述.md
方法分类.md
证据台账.md
术语表.md
矛盾与缺口.md
Writing/
立项依据.md
研究内容.md
技术路线.md
创新点.md
研究基础.md
Maps/
literature.canvas
mechanism.canvas
Daily/
Archive/
_system/
registry.md
schema.md
lint-report.md
```
### 2.3 SchemaAgent 规则层
Schema 可以写在 `AGENTS.md``CLAUDE.md``_system/schema.md` 或项目规则文件中。它告诉 Agent 如何维护 Wiki。
最小规则:
- Raw Sources 不可修改;
- 新资料必须先进入 `Sources/*`
- 稳定论断才能进入 `Knowledge/*`
- 进入 `Writing/*` 的论断必须能追溯到 Evidence Record
- 图片必须本地化,并建立图片 source note
- 每次 ingestion 后更新 `index.md`
- 每次重要操作后向 `log.md` 追加记录;
- `log.md` 只追加,不重写历史。
## 3. 与 claude-scholar Obsidian KB 的对应关系
`claude-scholar` 的 Obsidian KB 已经提供一套可落地的项目知识库结构:
```text
Research/{project-slug}/
00-Hub.md
01-Plan.md
02-Index.md
Sources/
Papers/
Web/
Docs/
Data/
Interviews/
Notes/
Knowledge/
Experiments/
Results/
Reports/
Writing/
Daily/
Maps/
Archive/
_system/
```
对应关系:
- `00-Hub.md`:项目入口和当前状态;
- `01-Plan.md`:任务计划、里程碑、下一步;
- `02-Index.md`:人类可读的导航索引;
- `Sources/*`:原始资料的结构化 source notes
- `Knowledge/*`:经过证据门槛的稳定知识;
- `Writing/*`:可进入标书、论文、报告的写作资产;
- `Maps/literature.canvas`:默认文献图谱;
- `_system/registry.md`:可见注册表;
- `.claude/project-memory/*`:仓库本地绑定信息,不是主要知识内容。
## 4. 多模态资料处理:文本 + 图片
### 4.1 文本处理流程
文本来源:
- PDF 转 Markdown
- 网页剪藏;
- Zotero PDF 全文;
- DOCX/Word 标书;
- PPT、会议记录、实验记录
- 表格和数据说明文档。
处理流程:
```text
读取原文
-> 建 Source Note
-> 抽 Evidence Record
-> 更新 Knowledge 页面
-> 更新 Writing 草稿或待写清单
-> 更新 index.md 和 log.md
```
Source Note 模板:
```markdown
# 资料标题
Source:
Source type: full paper | proposal | template | webpage | project note | dataset
Path:
Date ingested:
## Summary
## Key Evidence
## Relevance to Current Project
## Limitations
## Evidence Records
## Links
```
Evidence Record 模板:
```markdown
## Evidence Record
Evidence ID:
Source:
Source type:
Supports:
Contradicts:
Method / dataset / metric:
Limitation:
Project relevance:
Claim strength: speculative | observed | supported | strong
Allowed wording:
Forbidden stronger wording:
```
Claim strength 建议:
- `speculative`:想法、假设、间接启发;
- `observed`:单一资料或初步结果观察到;
- `supported`:有可靠文献、实验或数据支持;
- `strong`:多来源一致、方法可靠、可用于核心论断。
### 4.2 图片处理流程
Karpathy gist 特别提醒图片应下载到本地。LLM 不能一次性可靠读取 Markdown 中的内嵌图片,较好的方式是先读文本,再逐张查看关键图片。
图片来源:
- PDF 转 Markdown 生成的 `images/*.jpg``*.png`
- 论文中的 figure
- 标书模板截图;
- 机制图、技术路线图;
- 实验结果图;
- 表格截图或流程图。
图片入库流程:
```text
图片本地化
-> 建 Image Source Note
-> OCR 或人工描述
-> 提取坐标轴、图例、分组、箭头、节点
-> 记录可支持的论断
-> 链接到 Knowledge / Writing / Maps
```
Image Source Note 模板:
```markdown
# Image: 简短标题
Image path:
Source document:
Original page / figure:
Date ingested:
## Visual Description
## Extracted Labels / OCR
## What This Image Supports
## Limitations
## Reuse Plan
- 可用于:立项依据 | 研究基础 | 技术路线 | 机制模式图 | 结果展示
- 是否需要重绘:
## Links
```
图片调用口令:
```text
请先读取这份 Markdown 的图片引用列表,再逐一查看关键图片,提取图题、坐标轴、图例、分组、结论和可迁移证据。
```
```text
请为这张机制图建立图片笔记:描述节点、箭头方向、证据含义、可支持的机制假说,以及需要重绘或替换的地方。
```
## 5. 核心操作
### 5.1 Ingest新增资料入库
单篇资料入库:
```text
1. 读取 raw/source。
2. 判断 source type。
3. 在 Sources/* 下生成 source note。
4. 抽取 Evidence Records。
5. 检查会影响哪些 Knowledge 页面。
6. 如图片重要,建立 Images source note。
7. 更新 02-Index.md 或 index.md。
8. 向 log.md 追加记录。
```
调用方式:
```text
/kb-ingest path/to/source.pdf
```
或自然语言:
```text
请将 raw/papers/xxx.pdf 转换后的 Markdown 入库:先写 Sources/Papers 笔记,再抽 Evidence Record最后只把证据足够的内容提升到 Knowledge。
```
### 5.2 Query基于 Wiki 回答
回答问题时,优先读取 Wiki而不是直接盲搜所有原始文件
```text
读 index.md / 02-Index.md
-> 找相关 Knowledge / Source 页
-> 必要时回看 raw source
-> 输出带证据链答案
```
调用方式:
```text
请基于当前 Wiki 回答:某个机制链条有哪些证据、哪些只是迁移假说、哪些需要继续检索?
```
### 5.3 File Back把高价值问答写回 Wiki
有价值的分析不应只留在聊天里:
```text
问答结果
-> 新建或更新 Knowledge / Writing 页面
-> 更新 index.md
-> 追加 log.md
```
调用方式:
```text
请把刚才关于“主题 A 与机制 B”的回答整理成 Knowledge/A-B-Mechanism.md并把不确定论断标成 speculative。
```
### 5.4 Promote把稳定内容提升到知识或写作
来源笔记不能直接等同于知识结论。提升条件:
- 有 Evidence Record
- 来源类型足够强;
- claim strength 与措辞匹配;
- 有 allowed wording 和 forbidden stronger wording
- 能链接回 source note。
调用方式:
```text
/kb-promote
```
或:
```text
请把 Daily 和 Sources 中已经稳定的内容提升到 Knowledge没有证据记录的内容只保留为待核查。
```
### 5.5 Lint健康检查
周期性检查:
- 断链;
- 孤立页面;
- 重复主题页;
- 新资料与旧结论矛盾;
- `Writing` 中是否存在无 Evidence Record 的论断;
- 图片路径是否失效;
- canvas 是否有效;
- index 是否覆盖关键页面。
调用方式:
```text
/kb-lint
/kb-links
/kb-sync
```
## 6. Agent 分工建议
| Agent / Skill | 角色 | 输入 | 输出 |
|---|---|---|---|
| `obsidian-source-ingestion` | Source 入库 | PDF、网页、DOCX、图片、数据 | `Sources/*` 笔记、registry、index、daily |
| `zotero-obsidian-bridge` | 文献桥接 | Zotero collection | `Sources/Papers`、Evidence Records、Knowledge/Writing 初稿 |
| `obsidian-literature-workflow` | 文献综合 | `Sources/Papers` | `Knowledge/Literature Overview.md``Research Gaps.md``Maps/literature.canvas` |
| `obsidian-project-kb-core` | KB 主控 | 项目目录和 vault | scaffold、hub、plan、index、registry、lifecycle |
| `obsidian-kb-artifacts` | Obsidian 原生产物 | Markdown、wikilink、canvas | 链接修复、canvas、registry table、lint report |
| `citation-verification` | 引用核验 | 参考文献、DOI、arXiv、Zotero 条目 | 真实元数据、claim-citation 对齐检查 |
| `paper-self-review` | 写作自审 | 草稿、图表、证据记录 | Claim Audit、结构问题、过强论断 |
| `writing-anti-ai` | 语言润色 | 中文或英文段落 | 更自然、少 AI 痕迹的表述 |
## 7. 多模态知识库的调用方法
### 7.1 初始化
```text
/kb-init 项目名 /absolute/path/to/obsidian-vault
```
如果不用 Obsidian也可以在项目内创建普通 Markdown wiki
```text
请在当前项目下创建 知识库/wiki 结构,包含 index.md、log.md、Sources、Knowledge、Writing、Maps、_system。
```
### 7.2 文本资料入库
```text
/kb-ingest path/to/file.md
/kb-ingest path/to/file.pdf
/kb-ingest https://example.com/article
```
如果是网页资料,可先使用 Obsidian Web Clipper 或 `defuddle` 生成干净 Markdown。
### 7.3 图片资料入库
```text
请扫描 raw/images 中的新图片,为每张关键图片创建 Image Source Note提取图中标签、箭头关系、坐标轴、可支持论断和复用计划。
```
### 7.4 文献综合
```text
/kb-literature-review
```
要求:
- synthesis 必须链接到 `Sources/Papers`
- abstract-only 和 webpage-placeholder 只能进入 coverage 或 To-Read
- `Writing/related-work-draft.md` 必须通过 evidence gate。
### 7.5 写作输出
```text
请基于 Knowledge 和 Evidence Records 起草 Writing/立项依据.md。每个关键论断都要标注证据来源证据不足处用“拟探索/提示/可能”。
```
## 8. index.md 与 log.md 规范
`index.md` 面向内容导航:
```markdown
# Index
## Sources
- [[Sources/Papers/xxx]] - 一句话说明
## Knowledge
- [[Knowledge/主题综述]] - 当前稳定结论
## Writing
- [[Writing/立项依据]] - 当前草稿状态
```
`log.md` 面向时间线:
```markdown
## [2026-06-11] ingest | source-title
- Source:
- Pages updated:
- Evidence records:
- Open questions:
```
建议使用一致前缀,便于命令行检索:
```bash
grep "^## \\[" log.md | tail -5
```
## 9. 可选工具
- Obsidian Graph View观察知识图谱、孤立页、中心页
- Obsidian Web Clipper网页转 Markdown
- Obsidian attachment folder固定图片附件目录例如 `raw/assets/`
- Dataview基于 YAML frontmatter 生成动态列表;
- Marp从 Markdown 生成 slides
- `qmd`:本地 Markdown 混合检索,适合 Wiki 较大后使用;
- Git给 Wiki 提供版本历史、回滚和协作能力。
## 10. 推荐落地流程
```text
第 1 步:初始化 wiki / Obsidian KB
第 2 步:把模板、参考文档、论文、图片放入 raw
第 3 步:逐个 /kb-ingest不批量盲灌
第 4 步:为文本和图片建立 Source Notes
第 5 步:抽 Evidence Records
第 6 步:提升稳定论断到 Knowledge
第 7 步:把可写内容汇总到 Writing
第 8 步:周期性 /kb-lint、/kb-links、/kb-sync
第 9 步:把高价值问答写回 Wiki
第 10 步:用 Git 备份整个知识库
```
## 11. 文本 + 图片知识库的质量底线
- 不从图片外链直接建立长期知识,先本地化;
- 不把摘要页、网页占位页当成强证据;
- 不把图中趋势写成统计显著,除非原文或数据支持;
- 不把机制图当成实验证据,机制图通常只支持“作者假说/模型示意”;
- 不把模板写法等同于事实内容;
- `Writing` 中每个强论断都要能回链到 Evidence Record
- `log.md` 保留入库和修改时间线;
- 用 Git 管理 Wiki避免长期知识被无痕覆盖。