docs: 按源码全面校正(插件数/内置 timer/RPC 数/工具数/失效行号)

逐条对着源码核过,修掉 5 类与实现不符的陈述(中英四份文档同步):

1. **内置插件数 20 → 17**
   `internal/plugins/all.go` 的空白导入实际是 17 个。旧文档还列了 `timer`
   (已外置)与 `data`/`kbtree`(根本不是内置插件,前者只有 skills 目录,
   后者未进 all.go)。清单按 all.go 重写。
   涉及:README、README_EN(含「许可」章节的 AGPL 覆盖范围)、OVERVIEW 中英、
   ARCHITECTURE 中英的加载方式表。

2. **删除所有把 timer 当内置插件的表述**
   ARCHITECTURE 中英目录树里的 `internal/plugins/timer/` 行、
   PLUGIN_DEV 内置插件示例表的 Timer 行(该行还与同页下方「timer 已移出内置插件」
   的说明自相矛盾)。示例表改用 healthcheck(真实存在、30m 定时自检)。

3. **子进程 RPC 方法数 55 → 82**
   权威清单是 `internal/plugin/proc/protocol.go` 的 Method 常量,
   实际 82 个(settings 16 / plugin 9 / io 8 / secrets 7 …)。
   v1.1.1「51 → 55」作为历史叙述保留,但补注说明 82 才是当前值,
   避免读者把 55 当现值。

4. **qq 示例工具数 20 → 24**
   按 `example/qq/plugin.go` 的 `Name: tp + "..."` 实数。

5. **修掉整张失效的「文件:行号」引用表**
   原文写 `context.go:155` / `document.go:206` / `indexer.go:96+111`,
   但 memory 重组后 `context.go` 已迁到 `agent/core/`,行号全部错位。
   改为**函数名锚点**(`RelevanceContext.Prune`、`Store.Query`、
   `Indexer.vectorSearchEntities`),并改正 `distill.go` 的算法描述:
   文档写 Bigram Jaccard,源码是**加权** Jaccard(`scene_emerge.go` 有明确注释),
   阈值 `sim > 0.75` 在 `distill.go`。

同时补 Provider 接口漏项:实际有 4 个方法(Name / Chat / ChatStream /
MaxContextTokens),文档只写了前 3 个。

验证:`go build ./...` 通过;文档内相对链接 0 坏链;
引用的 22 个 .go 路径逐个 stat 存在(`internal/memory/media/` 两处是
「已删除机制」的历史叙述,指向不存在路径是正确语义,保持不变)。
This commit is contained in:
root
2026-10-19 20:49:43 +08:00
parent 852d6a2891
commit 515cf2deb1
8 changed files with 39 additions and 25 deletions

View File

@ -235,7 +235,7 @@ internal/
├── memory/ 三层记忆:Graph(SQLite) / Document(JSON+TF-IDF) / Text(JSONL) + StaticEmbedder(预训练词嵌入/TF-IDF回退) + CleanTemplateText(去模版)
├── knowledge/ 知识库(文件系统 + TF-IDF)
├── plugin/ 插件注册表 + 子进程加载器(stdio RPC + 共享内存段 + 事件环)
├── plugins/ 内置 20 个插件(webui/cli/timer/cmd/mcp/files/cfgmgr/agentcli/healthcheck/pluginmgr/clawhubadapter/multimodal/remotedevice/ai_image/localuse/skillmgr/data/seq/kbtree 等)
├── plugins/ 内置 17 个插件(webui/cli/cmd/mcp/files/cfgmgr/agentcli/healthcheck/pluginmgr/clawhubadapter/multimodal/remotedevice/ai_image/localuse/skillmgr/seemedia/seq)
├── sdk/ PluginSDK(Tool/Stage/Event 三通道)
├── config/ SQLite 配置中心
├── events/ 事件总线
@ -390,7 +390,7 @@ make install # 安装到系统
本项目的 AGPL。因此**外部插件不是本项目的衍生作品**,作者可自行选择许可(含闭源、商业、私有),
既不必同许可、也不受 §13 网络条款约束。第三方插件生态的安全与活跃正建立在这条之上。
边界很清楚:**AGPL 覆盖内核与随包内置插件**(`homed`、`internal/`、`internal/plugins/` 下 20 个内置插件);
边界很清楚:**AGPL 覆盖内核与随包内置插件**(`homed`、`internal/`、`internal/plugins/` 下 17 个内置插件);
**MIT 覆盖公开 SDK**(`sdk/`,`go.mod` 零外部依赖、只依赖 Go 标准库,不引用内核任何代码)。
子进程隔离在这里不重要了——决定许可的是被链接的 SDK 代码本身,而它是 MIT。