# 把知识库拆成几个独立的小库

> **这一页是给人看的。** 下面的「发给你的 Agent」整段复制，粘到你自己的 agent 会话里就行 ——
> 它会先做只读体检，再问你几个问题，最后给你一张方案表格等你确认。
>
> Agent 侧还有一份等价的操作手册（skill）：`dsh-tiddlywiki-wiki-split`。装好插件（≥ 0.28.0）
> 后它就在你的 skill 目录里，你也可以直接说「用拆库 skill 帮我拆」。

---

## 发给你的 Agent（整段复制）

```
我的 dsh-tiddlywiki 知识库该拆了：日常笔记和一大坨只读语料放在同一个库、同一个 git 仓库里，
Agent 检索每天在几十倍于工作集的内容上跑。

请按「拆分知识库」的流程帮我做，规则：
1) 先只读体检（统计 tiddler 数、tag 分布、files/ 附件体积、git 拓扑与仓库体积），不要改任何文件；
2) 一次问完你需要知道的几个问题，每个问题都给出你建议的默认答案；
3) 给我一张方案表格（每个库：显示名 / 收什么 / 目录 / git 仓库 / 是否需要被 Agent 看见）等我确认；
4) 我确认之前，不要创建、移动、删除任何文件；
5) 执行时先做备份，用 git mv 保留历史，旧库一个都不许删。

如果你有 dsh-tiddlywiki 的 wiki-split skill，直接用它。
```

---

## 什么时候值得拆

出现下面任意一条，拆分就不是洁癖而是止损：

- **检索被淹没**：Agent 搜一个词，前十条全是语料/导入的旧归档，工作笔记排在后面。
- **种类不同、生命周期不同**：写作稿需要备份与双机同步；书籍语料基本只读；导入的
  Obsidian/Logseq 归档迁完就不动；Agent 工作记忆天天写。它们混在一个库里，谁的行为都照顾不到。
- **仓库太重**：图片附件让 `.git` 涨到几百 MB，而 60 秒一次的自动提交还要背着它。
- **想分别备份到不同的远端**：语料不需要和私人笔记推到同一个仓库。

**不需要拆的情况**：只有一类内容，或者你只是"觉得库有点大"。拆分本身有成本（每个库是一个
独立的 TiddlyWiki 进程）。

---

## Agent 会问你什么（提前想好，回答会快很多）

| 问题 | 它要的答案 | 你大概会说什么 |
|---|---|---|
| 拆成几个库，各叫什么？ | 显示名（会出现在界面入口/选择器里） | 「书籍」「工作」「个人」 |
| 每个库收什么？ | 按 tag / 关键词 / 目录 / 时间段说清归属 | 「`书籍` 标签的都归书籍库」 |
| git 怎么分？ | 共用现有仓库（按文件夹物理划分）/ 各自独立仓库 | 「书籍独立仓库；工作和个人共用现在的仓库」 |
| 哪些库对 Agent 可见？ | 可见 = 能被检索/写入；隐身 = Agent 永远碰不到 | 「书籍对 Agent 隐身」 |
| 现在就搬，还是先出报告？ | 先出报告 = 只读 dry-run | 「先给我看一眼方案」 |

---

## Agent 会怎么做（可以随时叫停）

1. **只读体检**：tiddler 总数、tag 分布 Top-N、`files/` 体积、`git rev-parse --show-toplevel`
   与仓库体积。这一步不改任何东西。
2. **出方案**：一张表（库名 → 收纳规则 → 目录 → git 仓库 → 对 Agent 是否可见 + 是否开局自启），
   附上"预计搬多少条"和**不可逆点提示**。
3. **等你确认**。确认后才动手。
4. **备份**：给现有仓库打一个 tag 或clone 一份（能整体回滚）。
5. **搬迁**：建目录 → `git mv` 尽量保住历史 → 每个库补上 `tiddlywiki.info`。
6. **登记**：把库写进插件的知识库清单（设置页「知识库列表」或
   `$DSH_HOME/dsh-tiddlywiki/wikis.json`），按你的答案设 `agentVisible` / `autostart`。
7. **校验**：各库 tiddler 计数与预期一致、工作库检索不再命中语料、每个库能独立打开并提交、
   Agent 作用域隔离生效。

**回滚**：旧库目录不会被删；`git reset --hard <备份 tag>` 可以退回去。

---

## 拆分之后

- **每个库有自己的一套设置**（各自的配置 tiddler）：笔记标签、语言、主题、是否对 Agent 可见。
  设置页顶部会显示「配置作用域：…」，点某个库那一行的「配置」就能改它的设置。
- **每个库的编辑器和入口**：右下角「知识库」按钮的菜单里会列出所有库；侧边栏/右栏入口按你的
  开关生成。每个库在界面上有自己的一份 TW 编辑器。
- **每个库一个 TW 进程**（约 150 MB）：标了「开局自启」的随 DSH 启动，其余的在你打开或选中它时
  启动 —— 打开一个没在跑的库会自动把它拉起来。
- **对 Agent 隐身的库**不会出现在会话选择器里，检索/lint/反向链接也永远不碰它。

---

## 前置条件与旧版本

- 需要插件 **≥ 0.28.0**（多知识库模式）。
- 更早的版本只有「切换知识库位置」（同一时刻只有一个库是活的）。用它也能缓解检索被淹没，但
  **做不到同时在线**：你切到语料库去翻资料时，Agent 也跟着切过去了。旧版本的降级做法是：
  建好目录 → 手工搬迁 → 在设置页「知识库位置」里切换，并在自己的笔记里写清"语料在另一个库"。

## 相关

- [`usage.md`](./usage.md) —— 安装、配置与日常使用
- [`features.md`](./features.md) —— 能力清单
- [`CHANGELOG.md`](./CHANGELOG.md) —— 版本记录
