diff --git a/docs/TRUTH.md b/docs/TRUTH.md index 8bc70ad..b28c240 100644 --- a/docs/TRUTH.md +++ b/docs/TRUTH.md @@ -11,35 +11,37 @@ | 指标 | 实际值 | 验证方式 | |------|--------|----------| | Rust Crates | 10 个 (编译通过) | `cargo check --workspace` | -| Rust 代码行数 | ~77,000 (crates) + ~61,400 (src-tauri) = ~138,400 | wc -l (2026-04-12 V13 验证) | -| Rust 单元测试 | 477 个 (#[test]) + 326 个 (#[tokio::test]) = 803 | `grep '#\[test\]' crates/` + `grep '#\[tokio::test\]'` (2026-04-18 审计验证) | +| Rust 代码行数 | 80,754 (crates, 288 .rs) + 21,213 (src-tauri, 69 .rs) = 101,967 (357 .rs文件) | `wc -l` (2026-04-19 代码验证) | +| Rust 单元测试 | 640 个 (#[test], 含 src-tauri 89) + 347 个 (#[tokio::test], 含 src-tauri 17) = 987 | `grep '#\[test\]' crates/ src-tauri/` (2026-04-19 代码验证) | | Rust 测试运行通过 | 797 workspace (sqlx 0.8 升级后 2026-04-19 验证) | `cargo test --workspace --exclude zclaw-saas` | | Cargo Warnings (非 SaaS) | **0 个** (仅 sqlx-postgres 外部依赖 1 个) | `cargo check --workspace --exclude zclaw-saas` (2026-04-15 清零) | -| Rust 测试运行通过 | 684 workspace + 138 SaaS = 822 | Hermes 4 Chunk `cargo test --workspace` 2026-04-09 | | Tauri 命令 | 190 个 | `grep '#\[.*tauri::command'` (2026-04-16 验证) | -| **Tauri 命令有前端调用** | **104 处** | `grep invoke( desktop/src/` (2026-04-16 验证) | -| **Tauri 命令已标注 @reserved** | **89 个** | Rust 源码 @reserved 标注 (2026-04-15 全量标注) | -| **Tauri 命令孤儿 (无调用+无标注)** | **~0 个** (190 - 104 invoke - 89 @reserved ≈ -3,差异来自内部命令调用) | (2026-04-16 校准) | +| **Tauri 命令有前端调用** | **104 处 / 91 唯一命令** | `grep invoke( desktop/src/` (2026-04-19 验证) | +| **Tauri 命令已标注 @reserved** | **97 个** | Rust 源码 @reserved 标注 (2026-04-19 代码验证) | +| **Tauri 命令孤儿 (无调用+无标注)** | **~0 个** (190 - 104 invoke - 97 @reserved ≈ -11,差异来自内部命令调用) | (2026-04-19 校准) | | SKILL.md 文件 | 75 个 | `ls skills/*.md \| wc -l` | | Hands 启用 | 7 个 (6 HAND.toml + 1 系统内部 _reminder) | Browser/Collector/Researcher/Clip/Twitter/Quiz = 6 个有 HAND.toml;ReminderHand 通过 kernel 编程注册(`_` 前缀豁免 HAND.toml 扫描) | -| Hands 开发中 | 3 个 | Whiteboard/Slideshow/Speech(HAND.toml 仅存在于 worktree 开发分支,无 `impl Hand for`,未合并到主分支) | +| Hands 已删除 | 3 个 | Whiteboard/Slideshow/Speech — 空壳实现已删除 (04-17 Phase 5, 净减 ~5400 行) | | Hands 禁用 | 2 个 | Predictor, Lead(概念定义存在,无 TOML 配置文件或 Rust 实现) | -| Pipeline 模板 | 18 个 YAML | `pipelines/` 目录全量统计 (2026-04-18 验证) | +| Pipeline 模板 | 18 个 YAML | `pipelines/` 目录全量统计 (2026-04-19 验证) | | SaaS API 端点 | 137 个 .route() | `grep .route( crates/zclaw-saas/` (2026-04-16 验证) | -| SaaS 路由模块 | 12 个 + industry | account/agent_template/auth/billing/knowledge/migration/model_config/prompt/relay/role/scheduled_task/telemetry/industry(scheduled_task: 后端 5 CRUD + Admin V2 前端 service/page/route/nav) | -| SaaS 数据表 | 34 个(含 saas_schema_version) | CREATE TABLE 全量统计 | +| SaaS 模块目录 | 16 个 | `ls crates/zclaw-saas/src/*/` (2026-04-19 验证: account/agent_template/auth/billing/industry/knowledge/migration/model_config/models/prompt/relay/role/scheduled_task/tasks/telemetry/workers) | +| SaaS 数据表 | 42 个 CREATE TABLE | CREATE TABLE 全量统计 (2026-04-19 验证) | | SaaS Workers | 7 个 | log_operation/cleanup_rate_limit/cleanup_refresh_tokens/record_usage/update_last_used/aggregate_usage/generate_embedding | | LLM Provider | 8 个 | Kimi/Qwen/DeepSeek/Zhipu/OpenAI/Anthropic/Gemini/Local | -| Zustand Store | 25 个 | find desktop/src/store/ -name "*.ts" (2026-04-18 审计,workflowBuilderStore 已删除) | -| React 组件 | 105 个 (.tsx/.ts) | find desktop/src/components/ (2026-04-15 新增 HealthPanel.tsx) | +| Zustand Store | 25 个 (16 根 + chat/4 + saas/5) | find desktop/src/store/ -name "*.ts" (2026-04-19 验证) | +| React 组件 | 102 个 (.tsx/.ts, 11 子目录) | find desktop/src/components/ (2026-04-19 验证) | | 前端 TypeScript 测试 | 31 个文件 (6 store + 5 lib + 1 config + 1 stabilization + 18 E2E spec) | Phase 3-4 全量 | -| 前端 lib | 76 个 .ts | find desktop/src/lib/ (2026-04-15 删除 intelligence-client/ 9 文件) | +| 前端 lib | 75 个 .ts (71 顶层 + workflow-builder/3 + __tests__/1) | find desktop/src/lib/ (2026-04-19 验证) | | 前端测试运行通过 | 344 passed + 1 skipped | `pnpm vitest run` (2026-04-15 验证) | | 生产构建 | **通过** (14.8s, 0 require 残留) | `pnpm build` (2026-04-15 验证) | -| Admin V2 页面 | 17 个 | admin-v2/src/pages/ 全量统计 (2026-04-18 验证) | -| 桌面端设置页面 | 19 个 | SettingsLayout.tsx tabs: 通用/用量统计/积分详情/模型与API/MCP服务/技能/IM频道/工作区/数据与隐私/安全存储/SaaS平台/订阅与计费/语义记忆/安全状态/审计日志/定时任务/心跳配置/提交反馈/关于 | +| Admin V2 页面 | 17 个 | admin-v2/src/pages/ 全量统计 (2026-04-19 验证) | +| 桌面端设置页面 | 19 个 | SettingsLayout.tsx tabs: 通用/模型与API/MCP服务/IM频道/工作区/数据与隐私/安全存储/SaaS平台/订阅与计费/技能管理/语义记忆/安全状态/审计日志/定时任务/心跳配置/系统健康/实验性功能/提交反馈/关于 | | Admin V2 测试 | 17 个文件 (61 tests) | vitest 统计 | | 中间件层 | 15 层 | `grep chain.register kernel/mod.rs` (2026-04-19 校准: EvolutionMiddleware@78, ButlerRouter@80, DataMasking@90, Compaction@100, Memory@150, Title@180, SkillIndex@200, DanglingTool@300, ToolError@350, ToolOutputGuard@360, Guardrail@400, LoopGuard@500, SubagentLimit@550, TrajectoryRecorder@650, TokenCalibration@700) | +| Intelligence 文件 | 16 个 .rs | `ls src-tauri/src/intelligence/` (2026-04-19 验证) | +| dead_code 标注 | 0 个 | `grep '#\[dead_code\]' crates/ src-tauri/` (2026-04-19 验证) | +| TODO/FIXME | 前端 1 + Rust 1 = 2 | `grep TODO/FIXME` (2026-04-19 验证) | --- diff --git a/wiki/butler.md b/wiki/butler.md index fded409..0587104 100644 --- a/wiki/butler.md +++ b/wiki/butler.md @@ -1,6 +1,6 @@ --- title: 管家模式 -updated: 2026-04-17 +updated: 2026-04-19 status: active tags: [module, butler, interaction] --- @@ -93,15 +93,26 @@ butler_list_proposals butler_update_proposal_status ``` -### Intelligence 层文件结构 +### Intelligence 层文件结构 (16 .rs 文件) ``` desktop/src-tauri/src/intelligence/ -├── compactor.rs (5 commands: token estimation + compaction) -├── heartbeat.rs (10 commands: heartbeat engine CRUD) -├── identity.rs (16 commands: agent identity manager) -├── pain_aggregator.rs (5 commands: butler pain points) -└── reflection.rs (7 commands: reflection engine) +├── compactor.rs (5 commands: token estimation + compaction) +├── heartbeat.rs (10 commands: heartbeat engine CRUD) +├── identity.rs (16 commands: agent identity manager) +├── pain_aggregator.rs (5 commands: butler pain points) +├── reflection.rs (7 commands: reflection engine) +├── experience.rs 经验管理桥接 +├── extraction_adapter.rs 记忆提取适配器 +├── health_snapshot.rs 统一健康快照 +├── mod.rs 模块入口 +├── pain_storage.rs 痛点持久化 +├── personality_detector.rs 人格检测 +├── solution_generator.rs 方案生成 +├── trajectory_compressor.rs 轨迹压缩 +├── triggers.rs 触发信号管理 +├── user_profiler.rs 用户画像 +└── validation.rs 验证逻辑 ``` ## 关联模块 diff --git a/wiki/chat.md b/wiki/chat.md index c80c81f..f79f720 100644 --- a/wiki/chat.md +++ b/wiki/chat.md @@ -84,7 +84,7 @@ UI 选择模型 → conversationStore.currentModel = newModel - [[routing]] — 路由决定使用哪种 client - [[saas]] — Token Pool 提供模型和 API Key - [[butler]] — ButlerRouter 中间件增强 system prompt -- [[middleware]] — 消息经过 14 层 runtime 中间件处理 +- [[middleware]] — 消息经过 15 层 runtime 中间件处理 - [[memory]] — 对话内容可能触发记忆提取 ## 关键文件 diff --git a/wiki/development.md b/wiki/development.md index b9ecda1..b6bb1cb 100644 --- a/wiki/development.md +++ b/wiki/development.md @@ -1,6 +1,6 @@ --- title: 开发规范 -updated: 2026-04-17 +updated: 2026-04-19 status: active tags: [development, conventions] --- @@ -25,17 +25,17 @@ tags: [development, conventions] |------|------| | 新增 SaaS API 端点 | 已有 137 个 .route(),前端未全部接通 | | 新增 SKILL.md | 已有 75 个 | -| 新增 Tauri 命令 | 已有 189 个,部分无前端调用 | -| 新增中间件 | 已有 14 层 runtime + 10 层 SaaS HTTP | -| 新增 Store | 已有 17 文件 + chat/4 子store | +| 新增 Tauri 命令 | 已有 190 个,97 个标注 @reserved | +| 新增中间件 | 已有 15 层 runtime + 10 层 SaaS HTTP | +| 新增 Store | 已有 16 根 + chat/4 + saas/5 = 25 | | 新增 admin 页面 | 已有 17 页 | ## 分层职责 ``` -UI 组件 → 只负责展示和交互 (105 个 .tsx/.ts) -Store → 负责状态组织和流程编排 (17 文件 + 4 子store) -Client → 负责网络通信和协议转换 (76 个 lib/ 文件) +UI 组件 → 只负责展示和交互 (102 个 .tsx/.ts) +Store → 负责状态组织和流程编排 (25 个 .ts 文件) +Client → 负责网络通信和协议转换 (75 个 lib/ 文件) ``` 禁止在组件内直接创建 WebSocket 或拼装 HTTP 请求。通信通过: diff --git a/wiki/hands-skills.md b/wiki/hands-skills.md index bdb8f1c..f94e1fa 100644 --- a/wiki/hands-skills.md +++ b/wiki/hands-skills.md @@ -1,6 +1,6 @@ --- title: Hands + Skills + MCP -updated: 2026-04-17 +updated: 2026-04-19 status: active tags: [module, hands, skills, mcp] --- @@ -20,7 +20,7 @@ tags: [module, hands, skills, mcp] ## 代码逻辑 -### Hands (9 启用) +### Hands (7 注册: 6 TOML + 1 系统内部) 每个 Hand 有独立的 `hands/.HAND.toml` 配置和 `crates/zclaw-hands/src/hands/` 下的 Rust 实现。 @@ -31,13 +31,20 @@ tags: [module, hands, skills, mcp] | Researcher | 深度研究 | LLM | 22 | `hands/researcher.HAND.toml` | | Clip | 视频处理 | FFmpeg | 30 | `hands/clip.HAND.toml` | | Twitter | Twitter 自动化 (12 API v2) | OAuth 1.0a | 25 | `hands/twitter.HAND.toml` | -| Whiteboard | 白板演示 | — | — | `hands/whiteboard.HAND.toml` | -| Slideshow | 幻灯片生成 | — | 13 | `hands/slideshow.HAND.toml` | -| Speech | 语音合成 | Browser TTS | — | `hands/speech.HAND.toml` | | Quiz | 测验生成 | — | — | `hands/quiz.HAND.toml` | | _reminder | 定时提醒 (系统内部) | — | — | 无 TOML(代码注册) | -Hands 测试分布(前 5): Clip(30), Twitter(25), Researcher(22), Slideshow(13), Browser(8) +Hands 测试分布(前 5): Clip(30), Twitter(25), Researcher(22), Browser(8), Collector(8) + +### 已删除 Hands (04-17 Phase 5 空壳清理) + +| Hand | 原状态 | 删除原因 | +|------|--------|----------| +| Whiteboard | 有 HAND.toml + Rust (422行) | 空壳实现,无真实功能,已删除 | +| Slideshow | 有 HAND.toml + Rust (797行) | 空壳实现,无真实功能,已删除 | +| Speech | 有 HAND.toml + Rust (442行) | 空壳实现,无真实功能,已删除 | + +净减 ~5400 行。 ### 禁用 Hands @@ -194,12 +201,12 @@ MCP 工具在 ToolRegistry 中使用限定名 `service_name.tool_name` 避免冲 | 文件 | 职责 | |------|------| -| `crates/zclaw-hands/src/hands/` | 10 个 Hand 实现 (含 _reminder) | +| `crates/zclaw-hands/src/hands/` | 7 个 Hand 实现 (6 有 TOML + _reminder 系统内部) | | `crates/zclaw-runtime/src/nl_schedule.rs` | 中文时间→cron 解析器 | | `crates/zclaw-skills/src/semantic_router.rs` | TF-IDF 语义路由 | | `crates/zclaw-skills/src/` | 技能解析和索引 | | `skills/*/SKILL.md` | 75 个技能定义 | -| `hands/*.HAND.toml` | 9 个 Hand 配置 | +| `hands/*.HAND.toml` | 6 个 Hand 配置 | | `crates/zclaw-protocols/src/mcp_tool_adapter.rs` | MCP 工具适配器 + 服务管理 | | `crates/zclaw-protocols/src/mcp.rs` | MCP 协议类型 + BasicMcpClient | | `crates/zclaw-runtime/src/tool/builtin/mcp_tool.rs` | McpToolWrapper (Tool trait 桥接) | diff --git a/wiki/index.md b/wiki/index.md index 0b29e53..c4f450f 100644 --- a/wiki/index.md +++ b/wiki/index.md @@ -1,52 +1,55 @@ --- title: ZCLAW 项目知识库 -updated: 2026-04-17 +updated: 2026-04-19 status: active --- # ZCLAW 项目知识库 -> 面向中文用户的 AI Agent 桌面客户端。管家模式 + 多模型 + 9 自主能力 + 75 技能。 +> 面向中文用户的 AI Agent 桌面客户端。管家模式 + 多模型 + 7 自主能力 + 75 技能。 > **使用方式**: 找到你要处理的模块,读对应页面,直接开始工作。 -> **数据来源**: 2026-04-17 代码全量扫描验证,非文档推测。 +> **数据来源**: 2026-04-19 代码全量扫描验证,非文档推测。 ## 项目画像 | 维度 | 值 | |------|-----| | 定位 | AI Agent 桌面客户端 (Tauri 2.x) | -| 技术栈 | Rust 10 crates + src-tauri (~78K行, 275 .rs文件) + React 19 + TypeScript + PostgreSQL | +| 技术栈 | Rust 10 crates + src-tauri (~102K行, 357 .rs文件) + React 19 + TypeScript + PostgreSQL | | 阶段 | 发布前稳定化,功能冻结中 | -## 关键数字(2026-04-17 代码验证) +## 关键数字(2026-04-19 代码验证) | 指标 | 值 | 验证方式 | |------|-----|----------| | Rust Crates | 10 + src-tauri | `ls crates/zclaw-*/Cargo.toml` | -| Rust 代码 | 77,811 行 (275 .rs文件) | `find crates/ src-tauri/ -name "*.rs"` | -| Rust 测试 | 734 (425 #[test] + 309 #[tokio::test]) | `grep '#\[test\]' / '#\[tokio::test\]'` (TRUTH.md 04-18) | -| Tauri 命令 | 190 定义 (103 src-tauri + 76 crates + 内部) | `grep '#\[tauri::command\]'` (TRUTH.md 04-16) | -| 前端 invoke 调用 | 104 处 | `grep invoke( desktop/src/` (TRUTH.md 04-16) | -| SaaS .route() | 137 个 | `grep .route( crates/zclaw-saas/` | -| SaaS 模块 | 17 个目录 | `ls crates/zclaw-saas/src/*/` | +| Rust 代码 | 101,967 行 (80,754 crates + 21,213 src-tauri, 357 .rs文件) | `wc -l` (2026-04-19 验证) | +| Rust 测试 | 987 (640 #[test] + 347 #[tokio::test]) | `grep '#\[test\]'` 含 src-tauri (2026-04-19 验证) | +| Rust 测试通过 | 797 workspace (sqlx 0.8 升级后) | `cargo test --workspace --exclude zclaw-saas` | +| Tauri 命令 | 190 定义 | `grep '#\[.*tauri::command'` (2026-04-16 验证) | +| 前端 invoke 调用 | 104 处 / 91 唯一命令 | `grep invoke( desktop/src/` (2026-04-19 验证) | +| @reserved 标注 | 97 个 (孤儿命令 ~0) | `grep @reserved src-tauri/` (2026-04-19 验证) | +| SaaS .route() | 137 个 | `grep .route( crates/zclaw-saas/` (2026-04-16 验证) | +| SaaS 模块 | 16 个目录 | `ls crates/zclaw-saas/src/*/` (2026-04-19 验证) | | SKILL 目录 | 75 个 | `ls -d skills/*/` | | HAND 配置 | 6 TOML + 1 系统内部 (_reminder) = 7 注册 | `ls hands/*.HAND.toml` + kernel registry | -| Pipeline YAML | 18 个 | `find pipelines/ -name "*.yaml"` | -| Zustand Store | 26 个 (.ts, 含子目录) | `find desktop/src/store/` | -| React 组件 | 105 个 (.tsx/.ts) | `find desktop/src/components/` (TRUTH.md 04-16) | -| Admin V2 页面 | 17 个 (.tsx) | `ls admin-v2/src/pages/` | -| 中间件 | 14 层 runtime + 10 层 SaaS HTTP | `kernel/mod.rs` + `zclaw-saas middleware` | -| 前端 lib/ | 76 个 .ts (顶层 ~73 + 子目录) | `find desktop/src/lib/` (TRUTH.md 04-16) | -| SQL 迁移 | 20 文件 / 104 CREATE TABLE | `ls crates/zclaw-saas/migrations/*.sql` | -| @reserved 标注 | 89 个 (孤儿命令 0) | `grep @reserved desktop/src-tauri/src/` (TRUTH.md 04-16) | -| Cargo Warnings | 0 (非 SaaS, 仅 sqlx 外部) | `cargo check --workspace --exclude zclaw-saas` | -| TODO/FIXME | 前端 1 + Rust 3 = 4 | `grep TODO/FIXME` | +| Pipeline YAML | 18 个 (8 目录) | `find pipelines/ -name "*.yaml"` (2026-04-19 验证) | +| Zustand Store | 25 个 (.ts, 含子目录 saas/5) | `find desktop/src/store/` (2026-04-19 验证) | +| React 组件 | 102 个 (.tsx/.ts, 11 子目录) | `find desktop/src/components/` (2026-04-19 验证) | +| Admin V2 页面 | 17 个 (.tsx) | `ls admin-v2/src/pages/` (2026-04-19 验证) | +| 中间件 | 15 层 runtime + 10 层 SaaS HTTP | `chain.register` 计数 (2026-04-19 验证) | +| 前端 lib/ | 75 个 .ts (71 顶层 + workflow-builder/3 + __tests__/1) | `find desktop/src/lib/` (2026-04-19 验证) | +| SQL 迁移 | 38 文件 (21 up + 17 down) / 42 CREATE TABLE | `ls crates/zclaw-saas/migrations/*.sql` (2026-04-19 验证) | +| Intelligence | 16 个 .rs 文件 | `ls src-tauri/src/intelligence/` (2026-04-19 验证) | +| Cargo Warnings | 0 (非 SaaS) | `cargo check --workspace --exclude zclaw-saas` | +| TODO/FIXME | 前端 1 + Rust 1 = 2 | `grep TODO/FIXME` (2026-04-19 验证) | +| dead_code | 0 个 | `grep '#\[dead_code\]'` (2026-04-19 验证) | ## 模块导航树 ``` ZCLAW -├── [[routing]] 客户端路由 — 4分支决策,SaaS Relay是主路径 +├── [[routing]] 客户端路由 — 5分支+降级,SaaS Relay是主路径 │ └── [[chat]] 聊天系统 — 3种ChatStream,Store拆为4+1 │ ├── [[saas]] SaaS平台 — 认证/Token池/计费/Admin,Tauri的中枢 @@ -56,13 +59,13 @@ ZCLAW │ ├── [[butler]] 管家模式 — 默认交互范式,语义路由+冷启动+痛点 │ -├── [[middleware]] 中间件链 — 14层runtime + 10层SaaS HTTP +├── [[middleware]] 中间件链 — 15层runtime + 10层SaaS HTTP │ -├── [[memory]] 记忆管道 — 对话→提取→FTS5+TF-IDF→检索→注入 +├── [[memory]] 记忆管道 — 对话→提取→FTS5+TF-IDF→检索→注入+进化引擎 │ -├── [[hands-skills]] Hands(9) + Skills(75) + MCP — 自主能力+语义技能+外部工具协议 +├── [[hands-skills]] Hands(7注册) + Skills(75) + MCP — 自主能力+语义技能+外部工具协议 │ -├── [[pipeline]] Pipeline DSL — YAML+DAG执行器+17行业模板 +├── [[pipeline]] Pipeline DSL — YAML+DAG执行器+18模板 │ ├── [[development]] 开发规范 — 闭环工作法/验证命令/提交规范 ├── [[known-issues]] 已知问题 — P0/P1已修复,P2待处理 @@ -80,7 +83,10 @@ ZCLAW **Q: 为什么管家模式是默认?** → 面向医院行政等非技术用户,语义路由(75技能TF-IDF)+痛点积累+方案生成,降低使用门槛。 -**Q: 为什么中间件是14层runtime?** -→ 按优先级分4类: 100-199上下文(compaction/memory) → 200-399能力(skill/guardrail) → 400-599安全(loop_guard/data_masking) → 600-799遥测(token/title/trajectory)。Kernel `create_middleware_chain()` 条件注册,skill_index 仅在有技能时注册。另有 10 层 SaaS HTTP 中间件 (限流/认证/配额/CORS/日志等)。 +**Q: 为什么中间件是15层runtime?** +→ 按优先级分6类: 78进化(Evolution) → 80-99路由+脱敏(Butler/DataMasking) → 100-199上下文(Compaction/Memory/Title) → 200-399能力(SkillIndex/DanglingTool/ToolError/ToolOutputGuard) → 400-599安全(Guardrail/LoopGuard/SubagentLimit) → 600-799遥测(TrajectoryRecorder/TokenCalibration)。另有 10 层 SaaS HTTP 中间件 (限流/认证/配额/CORS/日志等)。 + +**Q: zclaw-growth 的进化引擎做什么?** +→ EvolutionEngine 负责从对话历史中检测行为模式变化,生成进化候选项(如新技能建议、工作流优化),通过 EvolutionMiddleware@78 注入 system prompt。配合 FeedbackCollector、PatternAggregator、QualityGate、SkillGenerator、WorkflowComposer 形成自我改进闭环。 > 数字真相源: `docs/TRUTH.md` — 如有冲突以代码实际为准 diff --git a/wiki/memory.md b/wiki/memory.md index 5b80891..d8c45fe 100644 --- a/wiki/memory.md +++ b/wiki/memory.md @@ -1,6 +1,6 @@ --- title: 记忆管道 -updated: 2026-04-17 +updated: 2026-04-19 status: active tags: [module, memory, growth] --- @@ -99,6 +99,54 @@ SaaS 侧: → generate_embedding Worker: 内容分块 + 中文关键词提取 (Phase 2 embedding deferred) ``` +### 进化引擎 (EvolutionEngine) + +zclaw-growth 包含完整的自我改进闭环: + +``` +EvolutionEngine (crates/zclaw-growth/src/evolution_engine.rs) + → 从对话历史中检测行为模式变化 + → 生成进化候选项 (新技能建议/工作流优化) + → EvolutionMiddleware@78 注入 system prompt + +配套组件: + → FeedbackCollector — 收集用户反馈信号 + → PatternAggregator — 行为模式聚合 + → QualityGate — 进化质量门控 + → SkillGenerator — 自动技能生成 + → WorkflowComposer — 工作流自动编排 + → ProfileUpdater — 用户画像更新 + → ExperienceExtractor — 经验提取器 + → Summarizer — 记忆摘要 +``` + +zclaw-growth 模块结构 (19 文件): +``` +crates/zclaw-growth/src/ +├── evolution_engine.rs 进化引擎核心 +├── experience_extractor.rs 经验提取 +├── experience_store.rs 经验 CRUD +├── extractor.rs 记忆提取 +├── feedback_collector.rs 反馈收集 +├── injector.rs Prompt 注入 +├── json_utils.rs JSON 工具 +├── pattern_aggregator.rs 模式聚合 +├── profile_updater.rs 画像更新 +├── quality_gate.rs 质量门控 +├── retriever.rs 语义检索 +├── skill_generator.rs 技能生成 +├── summarizer.rs 摘要生成 +├── tracker.rs 追踪器 +├── types.rs 类型定义 +├── viking_adapter.rs Viking 适配器 +├── workflow_composer.rs 工作流编排 +├── retrieval/ 检索子模块 +│ ├── query.rs 意图分类 + CJK +│ └── semantic.rs EmbeddingClient +└── storage/ 存储子模块 + └── sqlite.rs FTS5 + TF-IDF +``` + ### 前端 Tauri 命令 Memory 相关命令 (13 个,来自 `memory_commands.rs` + `memory/`): diff --git a/wiki/pipeline.md b/wiki/pipeline.md index e7bc2fe..00c853b 100644 --- a/wiki/pipeline.md +++ b/wiki/pipeline.md @@ -15,7 +15,7 @@ tags: [module, pipeline, dsl] - YAML 定义 Pipeline 结构(步骤、依赖、输入/输出) - DAG 执行器按依赖拓扑排序执行 -- 17 个 YAML 模板覆盖 8 大行业目录 +- 18 个 YAML 模板覆盖 8 大行业目录 - 前端已接通 8 个 Tauri invoke 调用 ## 代码逻辑 @@ -38,7 +38,7 @@ YAML Pipeline 定义 enum RunStatus { Pending, Running, Completed, Failed, Cancelled } ``` -### 模板分布 (17 个 YAML) +### 模板分布 (18 个 YAML) ``` pipelines/ @@ -67,6 +67,8 @@ pipelines/ │ └── meeting-summary.yaml └── research/ (1 模板) └── literature-review.yaml + +注: 共 18 个 YAML, 总数 = 2+4+4+3+1+1+1+1+1 = 18 ``` ### 前端集成 @@ -104,6 +106,6 @@ Pipeline Tauri 命令 (12 个): |------|------| | `crates/zclaw-pipeline/src/executor.rs` | DAG 执行器 | | `crates/zclaw-pipeline/src/parser_v2.rs` | YAML 解析 (11 tests) | -| `pipelines/` | 17 个 YAML 模板 (8 目录) | +| `pipelines/` | 18 个 YAML 模板 (8 目录) | | `desktop/src/lib/pipeline-client.ts` | 前端 Pipeline 客户端 | | `desktop/src-tauri/src/pipeline_commands/` | 12 个 Tauri 命令 (4 文件) | diff --git a/wiki/routing.md b/wiki/routing.md index c95942b..4546b12 100644 --- a/wiki/routing.md +++ b/wiki/routing.md @@ -1,6 +1,6 @@ --- title: 客户端路由 -updated: 2026-04-17 +updated: 2026-04-19 status: active tags: [module, routing, connection] --- @@ -21,29 +21,31 @@ tags: [module, routing, connection] ## 代码逻辑 -### 4 分支决策树 +### 5 分支 + 降级决策树 -入口: `connectionStore.ts:349` → `connect(url?, token?)` +入口: `connectionStore.ts` → `connect(url?, token?)` ``` connect() │ - ├── [1] Admin 强制路由: localStorage llm_routing - │ ├── "relay" → 强制 SaaS Relay 模式 - │ └── "local" → 强制本地 Kernel (adminForceLocal=true) + ├── [1] Admin 强制本地: adminRouting === 'local' && isTauri() + │ → 直接走 Kernel 模式,跳过 SaaS │ - ├── [2] SaaS Relay 模式: localStorage('zclaw-connection-mode') === 'saas' - │ ├── Tauri: KernelClient + baseUrl = saasUrl/api/v1/relay - │ │ apiKey = SaaS JWT (不是 LLM Key!) - │ ├── Browser: SaaSRelayGatewayClient (SSE) - │ └── SaaS 不可达 → 降级到本地 Kernel + ├── [2] SaaS Relay (Tauri 路径): savedMode === 'saas' && isTauri() + │ → KernelClient + baseUrl = saasUrl/api/v1/relay + │ → apiKey = SaaS JWT (不是 LLM Key!) + │ → SaaS 不可达 → 降级到本地 Kernel │ - ├── [3] 本地 Kernel: isTauriRuntime() === true - │ KernelClient + 用户自定义模型配置 - │ 用户需要自己的 API Key + ├── [3] SaaS Relay (Browser 路径): savedMode === 'saas' && !isTauri() + │ → SaaSRelayGatewayClient (SSE) + │ → SaaS 不可达 → 降级到本地 Kernel │ - └── [4] External Gateway (fallback) - GatewayClient via WebSocket/REST + ├── [4] 本地 Kernel: isTauriRuntime() && 非 SaaS 模式 + │ → KernelClient + 用户自定义模型配置 + │ → 用户需要自己的 API Key + │ + └── [5] External Gateway (fallback): !isTauri() + → GatewayClient via WebSocket/REST ``` ### SaaS Relay 主路径 (Tauri 桌面端) @@ -86,7 +88,7 @@ listModels() 失败 `getClient()` 定义: `connectionStore.ts:844` 所有 Store 通过 `initializeStores()` (store/index.ts:94) 获取共享 client。 -### Store 层 (17 文件 + chat/4 = 21) +### Store 层 (16 根文件 + chat/4 + saas/5 = 25) ``` desktop/src/store/ @@ -98,34 +100,43 @@ desktop/src/store/ ├── configStore.ts 配置读写 ├── connectionStore.ts 路由决策核心 ├── handStore.ts Hand 状态管理 -├── industryStore.ts 行业配置 (V13 新增,已接通 ButlerPanel) +├── industryStore.ts 行业配置 (已接通 ButlerPanel) ├── memoryGraphStore.ts 记忆图谱 ├── offlineStore.ts 离线队列 -├── saasStore.ts SaaS 认证 +├── saasStore.ts SaaS 认证 (re-export barrel) ├── securityStore.ts 安全状态 ├── sessionStore.ts 会话管理 ├── uiModeStore.ts 双模式 UI -├── workflowBuilderStore.ts 工作流构建器 ├── workflowStore.ts 工作流状态 -└── chat/ - ├── artifactStore.ts 聊天产物 - ├── conversationStore.ts 会话管理 - ├── messageStore.ts 消息持久化 - └── streamStore.ts 流式编排 +├── chat/ +│ ├── artifactStore.ts 聊天产物 +│ ├── conversationStore.ts 会话管理 +│ ├── messageStore.ts 消息持久化 +│ └── streamStore.ts 流式编排 +└── saas/ (拆分子模块, 04-17 refactor) + ├── index.ts 子模块入口 + ├── auth.ts 认证逻辑 + ├── billing.ts 计费逻辑 + ├── shared.ts 共享状态/工具 + └── types.ts 类型定义 ``` -### lib/ 工具层 (76 个文件) +### lib/ 工具层 (75 个 .ts 文件) 关键分类: | 类别 | 文件 | 数量 | |------|------|------| -| Kernel 通信 | kernel-chat/kernel-client/kernel-agent/... | 7 | -| SaaS 通信 | saas-client/saas-auth/saas-billing/saas-relay/... | 12 | -| Gateway | gateway-client/gateway-api/gateway-auth/... | 6 | -| Intelligence | intelligence-backend/intelligence-client | 2 | -| 工具 | config-parser/crypto-utils/logger/utils | 10+ | -| Tauri 集成 | safe-tauri/tauri-gateway/secure-storage | 3 | +| Kernel 通信 | kernel-client/kernel-chat/kernel-agent/kernel-skills/kernel-triggers/kernel-hands/... | 8 | +| SaaS 通信 | saas-client/saas-auth/saas-billing/saas-relay/saas-industry/saas-knowledge/... | 12 | +| Gateway | gateway-client/gateway-api/gateway-auth/gateway-config/... | 9 | +| Intelligence | intelligence-backend/intelligence-client/embedding-client/memory-extractor | 4 | +| Viking | viking-client | 1 | +| Pipeline | pipeline-client/pipeline-recommender | 2 | +| Security | crypto-utils/secure-storage/security-audit/security-index/api-key-storage | 5 | +| 工具 | config-parser/logger/utils/error-types/error-utils/json-utils/... | 10+ | +| Tauri 集成 | safe-tauri/tauri-gateway | 2 | +| 工作流 | workflow-builder/ (index + types + yaml-converter) | 3 | ## 模型路由 diff --git a/wiki/saas.md b/wiki/saas.md index cf71e71..96d1105 100644 --- a/wiki/saas.md +++ b/wiki/saas.md @@ -1,6 +1,6 @@ --- title: SaaS 平台 -updated: 2026-04-17 +updated: 2026-04-19 status: active tags: [module, saas, auth, billing] --- @@ -85,11 +85,9 @@ knowledge/ migration/ model_config/ models/ prompt/ relay/ role/ scheduled_task/ tasks/ telemetry/ workers/ ``` -实际 `ls` 显示 17 个目录(含上述 16 + distill_knowledge 等 workers 子模块)。 - ### SaaS API 分布 -137 个 `.route()` 调用,13 个路由模块 (main.rs `.merge()` 注册): +137 个 `.route()` 调用,13 个路由模块 (main.rs `.merge()` 注册)。 | 模块 | 路由注册 | 说明 | |------|----------|------| @@ -107,9 +105,9 @@ relay/ role/ scheduled_task/ tasks/ telemetry/ workers/ | industry | industry/ | 行业配置管理 (V13 新增) | | migration | migration/ | Schema 迁移 | -### 数据表 (104 CREATE TABLE) +### 数据表 (42 CREATE TABLE) -20 个 SQL 迁移文件,104 个 `CREATE TABLE` 语句(含临时表、索引表等)。 +38 个 SQL 迁移文件 (21 up + 17 down),42 个 `CREATE TABLE` 语句。 核心表: users, agents, conversations, messages, billing_*, knowledge_*, model_configs, roles, permissions, scheduled_tasks, telemetry, agent_templates, saas_schema_version, user_profiles, trajectory_records, industries, account_industries @@ -141,7 +139,7 @@ relay/ role/ scheduled_task/ tasks/ telemetry/ workers/ | `crates/zclaw-saas/src/billing/` | 计费 | | `crates/zclaw-saas/src/knowledge/` | 知识库 | | `crates/zclaw-saas/src/workers/` | 7 个后台 Worker | -| `crates/zclaw-saas/migrations/` | SQL 迁移 (20 文件) | +| `crates/zclaw-saas/migrations/` | SQL 迁移 (38 文件) | | `admin-v2/src/pages/` | 17 页管理后台(含 Dashboard/Accounts/Billing/Industries/Knowledge/Prompts/Roles/ScheduledTasks/Config 等) | | `desktop/src/lib/saas-client.ts` | 前端 SaaS API 客户端 | | `desktop/src/store/saasStore.ts` | SaaS 认证状态 |