Files
zclaw_openfang/plans/abundant-frolicking-ember.md
iven aa6a9cbd84
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
feat: 新增技能编排引擎和工作流构建器组件
refactor: 统一Hands系统常量到单个源文件
refactor: 更新Hands中文名称和描述

fix: 修复技能市场在连接状态变化时重新加载
fix: 修复身份变更提案的错误处理逻辑

docs: 更新多个功能文档的验证状态和实现位置
docs: 更新Hands系统文档

test: 添加测试文件验证工作区路径
2026-03-25 08:27:25 +08:00

309 lines
8.2 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.

# ZCLAW 功能完善计划
## 背景
根据功能验证结果ZCLAW 项目存在以下需要完善的问题:
| 问题 | 严重程度 | 影响范围 |
|------|---------|---------|
| **Hands 后端缺失** | 高 | 10/11 Hands 不可用 |
| **Skills 动态扫描未实现** | 中 | 61 个技能无法被发现 |
| **自主授权模块分散** | 中 | 功能不完整 |
| **LLM 集成未激活** | 中 | 高级功能受限 |
| **向量嵌入未使用** | 低 | 语义搜索不可用 |
---
## 一、Hands 后端实现计划
### 1.1 实现优先级
| 优先级 | Hand | 复杂度 | 工作量 | 理由 |
|--------|------|--------|--------|------|
| **P1** | Slideshow | 低 | 2-3天 | 实现简单,教育场景价值高 |
| **P1** | Speech | 低 | 2-3天 | 实现简单,无障碍功能 |
| **P1** | Quiz | 中 | 3-4天 | 教育场景核心功能 |
| **P1** | Researcher | 中 | 3-5天 | 核心能力,用户需求高 |
| **P1** | Collector | 中 | 3-5天 | 与 Researcher 协同 |
| **P2** | Whiteboard | 中 | 4-6天 | 教育场景 |
| **P2** | Clip | 高 | 5-7天 | 依赖 FFmpeg |
| **P2** | Twitter | 中 | 3-5天 | 需要外部 API Key |
| **P3** | Lead | 高 | 7-10天 | 依赖多个付费 API |
| **P3** | Predictor | 高 | 7-14天 | ML 复杂度高 |
### 1.2 公共模块提取
```
desktop/src-tauri/src/hands/
├── mod.rs # 模块导出
├── common/
│ ├── http_client.rs # HTTP 客户端 (供 Researcher/Collector/Lead/Twitter)
│ ├── html_parser.rs # HTML 解析 (供 Researcher/Collector)
│ ├── scheduler.rs # 任务调度 (供支持 schedule 的 Hands)
│ └── approval.rs # 审批流程 (供 requires_approval 的 Hands)
├── slideshow/ # P1 - 幻灯片控制
├── speech/ # P1 - 语音合成
├── quiz/ # P1 - 测验系统
├── researcher/ # P1 - 深度研究
└── collector/ # P1 - 数据收集
```
### 1.3 参考实现
Browser Hand 已有完整实现,位于 `desktop/src-tauri/src/browser/`
- `client.rs` - 核心客户端 (494行)
- `session.rs` - 会话管理 (191行)
- `commands.rs` - Tauri 命令 (534行)
- `actions.rs` - 动作定义 (314行)
- `error.rs` - 错误类型 (90行)
---
## 二、Skills 动态扫描实现计划
### 2.1 当前问题
- 存在 73 个 SKILL.md 文件
- `skill-discovery.ts` 使用静态 `BUILT_IN_SKILLS` 数组(仅 12 个)
- Rust 后端 `SkillRegistry.discover_skills()` 已存在但未连接到 Tauri
### 2.2 实现方案
**方案:后端扫描 + Tauri 命令暴露**
```
Tauri 启动
kernel_init()
SkillRegistry::add_skill_dir("skills/")
discover_skills() + parse_skill_md()
kernel_list_skills 命令暴露
前端调用 Tauri 命令
```
### 2.3 实现任务
| 任务 | 文件 | 工作量 |
|------|------|--------|
| 增强 SKILL.md 解析器 | `crates/zclaw-skills/src/loader.rs` | 2-4小时 |
| 添加 skill_registry 到 Kernel | `crates/zclaw-kernel/src/kernel.rs` | 2-4小时 |
| 创建 kernel_list_skills 命令 | `desktop/src-tauri/src/kernel_commands.rs` | 1-2小时 |
| 更新前端调用 | `desktop/src/store/configStore.ts` | 2-3小时 |
| 添加索引缓存 | 新建文件 | 2-4小时 |
**总工作量**: 9-17 小时
---
## 三、智能层功能完善计划
### 3.1 自主授权管理器
**当前状态**: 功能分散在 `HeartbeatConfig.proactivity_level`
**实现任务**:
| 任务 | 工作量 |
|------|--------|
| 创建 `autonomy_manager.rs` 模块 | 3天 |
| 定义操作风险分级 | 1天 |
| 扩展审批流程 | 2天 |
**新建文件**: `desktop/src-tauri/src/intelligence/autonomy.rs`
```rust
pub enum AutonomyLevel {
Supervised, // 所有操作需确认
Assisted, // 低风险自动,中高风险需确认
Autonomous, // 低中风险自动,高风险需确认
}
pub enum RiskLevel {
Low, // memory_save, reflection_run
Medium, // hand_trigger, skill_install
High, // memory_delete, identity_update
}
```
### 3.2 LLM 集成激活
**当前状态**:
- `compactor.rs`: `use_llm: false`
- `reflection.rs`: `use_llm: true` 但未实际调用
**实现任务**:
| 任务 | 工作量 |
|------|--------|
| 定义 LLM 客户端接口 | 2天 |
| 实现 Compactor LLM 摘要 | 2天 |
| 实现 Reflection LLM 分析 | 3天 |
| 添加降级策略 | 1天 |
### 3.3 向量嵌入
**当前状态**: `PersistentMemory.embedding` 字段已定义但未使用
**实现任务**:
| 任务 | 工作量 |
|------|--------|
| 选择并集成 Embedding 模型 | 2天 |
| 实现语义搜索 | 2天 |
| 添加 FTS5 全文搜索 | 1天 |
| 实现混合搜索 | 2天 |
**推荐模型**: `paraphrase-multilingual-MiniLM-L12-v2` (支持中文, 118MB)
---
## 四、实施时间线
### Week 1-2: P0 基础设施
```
Week 1:
├── 统一自主授权管理器 (5天)
└── LLM 客户端接口 (2天)
Week 2:
├── Skills 动态扫描 (3天)
├── Compactor LLM 摘要 (2天)
└── Reflection LLM 分析 (开始)
```
### Week 3-4: P1 Hands 实现
```
Week 3:
├── Slideshow Hand (2-3天)
├── Speech Hand (2-3天)
└── Quiz Hand (开始)
Week 4:
├── Quiz Hand (完成)
├── Researcher Hand (3-5天)
└── Collector Hand (开始)
```
### Week 5-6: P1 智能层 + P2 Hands
```
Week 5:
├── Collector Hand (完成)
├── Embedding 模型集成 (2天)
└── 语义搜索实现 (2天)
Week 6:
├── Whiteboard Hand (4-6天)
├── Clip Hand (开始)
└── Twitter Hand (开始)
```
---
## 五、关键文件清单
### 需要修改的文件
| 文件 | 修改内容 |
|------|---------|
| `desktop/src-tauri/src/intelligence/mod.rs` | 添加 autonomy 模块 |
| `desktop/src-tauri/src/intelligence/compactor.rs` | 激活 LLM 摘要 |
| `desktop/src-tauri/src/intelligence/reflection.rs` | 实现 LLM 分析 |
| `desktop/src-tauri/src/memory/persistent.rs` | 添加向量搜索 |
| `desktop/src-tauri/src/kernel_commands.rs` | 添加 skill_list 命令 |
| `desktop/src-tauri/src/lib.rs` | 注册新命令 |
| `desktop/src/store/configStore.ts` | 更新技能加载逻辑 |
| `docs/features/05-hands-system/00-hands-overview.md` | 更新实现状态 |
### 需要新建的文件
| 文件 | 用途 |
|------|------|
| `desktop/src-tauri/src/intelligence/autonomy.rs` | 自主授权管理器 |
| `desktop/src-tauri/src/intelligence/llm_client.rs` | LLM 客户端接口 |
| `desktop/src-tauri/src/hands/mod.rs` | Hands 模块入口 |
| `desktop/src-tauri/src/hands/common/*.rs` | 公共模块 |
| `desktop/src-tauri/src/hands/slideshow/*.rs` | Slideshow Hand |
| `desktop/src-tauri/src/hands/speech/*.rs` | Speech Hand |
| `desktop/src-tauri/src/hands/quiz/*.rs` | Quiz Hand |
| `desktop/src-tauri/src/hands/researcher/*.rs` | Researcher Hand |
| `desktop/src-tauri/src/hands/collector/*.rs` | Collector Hand |
---
## 六、验证方法
### 单元测试
```bash
# Rust 测试
cd desktop/src-tauri
cargo test
# TypeScript 测试
cd desktop
pnpm vitest run
```
### 集成测试
```bash
# 启动应用
pnpm desktop
# 验证 Skills 动态扫描
# - 打开技能市场
# - 确认显示 73 个技能
# 验证 Hands
# - 触发 Slideshow Hand
# - 触发 Speech Hand
# - 触发 Quiz Hand
# 验证智能层
# - 测试 LLM 摘要功能
# - 测试语义搜索
# - 测试自主授权级别
```
### 手动验证清单
- [ ] Skills 市场显示全部 73 个技能
- [ ] Slideshow Hand 可控制幻灯片
- [ ] Speech Hand 可进行语音合成
- [ ] Quiz Hand 可生成测验
- [ ] Researcher Hand 可执行研究任务
- [ ] Collector Hand 可收集数据
- [ ] LLM 摘要生成正常
- [ ] 语义搜索返回相关结果
- [ ] 自主授权级别切换正常
---
## 七、风险评估
| 风险 | 影响 | 缓解措施 |
|------|------|----------|
| Embedding 模型体积大 | 下载存储成本 | 提供模型管理,支持用户选择 |
| LLM API 调用成本 | 频繁使用增加费用 | 配置阈值,提供降级策略 |
| 外部 API 依赖 | Twitter/Lead 需付费 | 标注为可选功能 |
| FFmpeg 依赖 | Clip Hand 需预装 | 检测依赖并提示用户 |
---
## 八、成功标准
| 指标 | 当前 | 目标 |
|------|------|------|
| 可用 Hands | 1/11 (9%) | 6/11 (55%) |
| 可发现 Skills | 12/73 (16%) | 73/73 (100%) |
| LLM 功能激活 | 0% | 100% |
| 语义搜索 | 不可用 | 可用 |
| 自主授权 | 分散 | 统一管理 |