docs(wiki): 重构为模块化知识库 — 按模块组织而非按文档类型
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled

问题: 旧 wiki 按文档类型组织(architecture/data-flows/file-map),
修复 Butler Router 需要读 4 个文件才能拼凑全貌。
且 SaaS Relay 主路径 vs 本地降级的优先级描述不准确。

重构为模块化结构,每个模块页自包含:
- 设计思想: 为什么这样设计
- 代码逻辑: 数据流 + 关键代码
- 关联模块: 依赖关系

新增模块页:
- routing.md: 客户端路由 (明确 SaaS Relay 是主路径,不是本地模式)
- chat.md: 聊天系统 (3种实现 + Token Pool 中转机制)
- butler.md: 管家模式 (路由/冷启动/痛点/双模式UI)
- memory.md: 记忆管道 (提取→FTS5→检索→注入)
- saas.md: SaaS平台 (认证/Token池/计费/Admin)
- middleware.md: 中间件链 (14层 + 优先级)
- hands-skills.md: Hands(9) + Skills(75)
- pipeline.md: Pipeline DSL

删除旧文件: architecture.md, data-flows.md, module-status.md, file-map.md
(内容已分布到对应模块页中)

添加 .gitignore 排除 Obsidian 工作区状态文件
This commit is contained in:
iven
2026-04-11 00:36:26 +08:00
parent 9772d6ec94
commit 36a1c87d87
18 changed files with 839 additions and 627 deletions

View File

@@ -7,90 +7,56 @@ status: active
# ZCLAW 项目知识库
> 面向中文用户的 AI Agent 桌面客户端。管家模式 + 多模型 + 9 自主能力 + 75 技能。
> **使用方式**: 找到你要处理的模块,读对应页面,直接开始工作。
## 一句话画像
## 项目画像
Rust 10 crates (~66K行) + React 19 + Tauri 2.x + PostgreSQL + Axum。发布前稳定化阶段功能冻结中。
| 维度 | 值 |
|------|-----|
| 定位 | AI Agent 桌面客户端 (Tauri 2.x) |
| 技术栈 | Rust 10 crates (~66K行) + React 19 + TypeScript + PostgreSQL |
| 阶段 | 发布前稳定化,功能冻结中 |
## 关键数字
| 维度 | 数量 |
|------|------|
| Rust Crates | 10 |
| Rust 代码 | ~66,000 行 |
| Rust 测试 | 822 (684 workspace + 138 SaaS) |
| Tauri 命令 | 182 (92 有前端调用, 20 @reserved, 70 孤儿) |
| SaaS API | 140 端点 |
| SaaS 数据表 | 34 |
| Zustand Store | 18 |
| React 组件 | ~135 |
| 中间件层 | 14 |
| SKILL.md | 75 |
| Hands | 9 启用 + 2 禁用 |
| Pipeline 模板 | 17 YAML |
| LLM Provider | 8 |
Rust Crates: 10 | 测试: 822 | Tauri 命令: 182 | SaaS API: 140 | Store: 18 | 中间件: 14 | Hands: 9 | Skills: 75 | Pipeline: 17
## 核心架构 → [[architecture]]
- **客户端路由**: Admin / SaaS Relay / Local Kernel / External Gateway
- **聊天流**: GatewayClient(WS) / KernelClient(Tauri Event) / SaaSRelay(HTTP SSE)
- **LLM 驱动**: Anthropic / OpenAI / Gemini / Local + 国内 3 家(DeepSeek/Qwen/Moonshot)
- **管家模式**: ButlerRouter 4域分类 + 冷启动 4阶段 + 双模式UI
## 子系统状态 → [[module-status]]
| 子系统 | 状态 | 说明 |
|--------|------|------|
| 管家模式 (Butler) | 活跃 | ButlerRouter + 冷启动 + 简洁UI + 痛点持久化 |
| Hermes 管线 | 活跃 | ExperienceStore + UserProfiler + NlScheduleParser + TrajectoryRecorder |
| 聊天流 (ChatStream) | 稳定 | 3 种实现5min 超时守护 |
| 记忆管道 (Memory) | 稳定 | 对话→提取→FTS5+TF-IDF→检索→注入 |
| SaaS 认证 (Auth) | 稳定 | Token池 RPM/TPM 轮换 + JWT pwv 失效 |
| Pipeline DSL | 稳定 | 17 模板 + DAG 执行器 |
| Hands 系统 | 稳定 | 9 启用 |
| 技能系统 | 稳定 | 75 SKILL.md + 语义路由 |
| 中间件链 | 稳定 | 14 层 (含 DataMasking@90, ButlerRouter, TrajectoryRecorder@650) |
## 核心数据流 → [[data-flows]]
## 模块导航树
```
用户操作 → React UI → Zustand Store → Tauri Commands → Kernel → LLM/Tools/Skills/Hands
ZCLAW
├── [[routing]] 客户端路由 — 4分支决策SaaS Relay是主路径
│ └── [[chat]] 聊天系统 — 3种ChatStreamSaaS Token Pool是主路径
├── [[saas]] SaaS平台 — 认证/Token池/计费/AdminTauri的中枢
│ ├── 认证 JWT + Cookie + Token池 RPM/TPM轮换
│ ├── 计费 配额实时递增 + Alipay/WeChat
│ └── Admin V2 15页管理后台
├── [[butler]] 管家模式 — 默认交互范式4域路由+冷启动+痛点
├── [[middleware]] 中间件链 — 14层DataMasking→ButlerRouter→TrajectoryRecorder
├── [[memory]] 记忆管道 — 对话→提取→FTS5+TF-IDF→检索→注入
├── [[hands-skills]] Hands(9) + Skills(75) — 自主能力+语义技能路由
├── [[pipeline]] Pipeline DSL — YAML+DAG执行器+17行业模板
├── [[development]] 开发规范 — 闭环工作法/验证命令/提交规范
├── [[known-issues]] 已知问题 — P0/P1已修复P2待处理
└── [[log]] 变更日志 — append-only
```
- 4 种 LLM Driver国内兼容通过 base_url
- SaaS unreachable 时自动降级到本地 Kernel
- 记忆闭环: 对话 → extraction → FTS5+TF-IDF → 检索 → 注入 system prompt
## 核心架构决策(为什么这样设计)
## 开发须知 → [[development]]
**Q: 为什么 Tauri 不直连 LLM**
→ 因为 SaaS Token Pool 集中管理 API Key支持用量追踪、计费、模型白名单。直连是降级后备。
- **闭环工作法**: 定位→修复→验证→提交→文档,每步不可跳过
- **功能冻结**: 禁止新增 SaaS API / SKILL.md / Tauri 命令 / 中间件 / admin 页面
- **验证命令**: `cargo check --workspace` / `pnpm tsc --noEmit` / `pnpm vitest run`
**Q: 为什么有3种 ChatStream**
→ GatewayClient(WS) 用于外部进程KernelClient(Tauri Event) 用于桌面端SaaSRelay(SSE) 用于浏览器。Tauri 桌面端的 KernelClient 通过 `baseUrl` 指向 SaaS relay 实现间接中转。
## 已知问题 → [[known-issues]]
- 所有 P0/P1 已修复
- 10 项 P2 代码质量问题待处理
- 70 个 Tauri 命令孤儿(无前端调用且无 @reserved
## 文件地图 → [[file-map]]
关键路径速查,按 `crates/` / `desktop/src/` / `admin-v2/` 组织。
## 变更日志 → [[log]]
Append-only 操作记录。
---
## 给新会话的快速引导
1. 先读本文件 (你正在读)
2. 需要了解架构 → 读 [[architecture]]
3. 需要了解某模块状态 → 读 [[module-status]]
4. 需要了解数据流 → 读 [[data-flows]]
5. 需要开发 → 读 [[development]]
6. 需要知道有哪些 bug → 读 [[known-issues]]
7. 需要找文件 → 读 [[file-map]]
**Q: 为什么管家模式是默认?**
→ 面向医院行政等非技术用户4域关键词分类+痛点积累+方案生成,降低使用门槛。
> 数字真相源: `docs/TRUTH.md` — 如有冲突以 TRUTH.md 为准