Files
zclaw_openfang/docs/test-results/T1-hands/REPORT.md
iven 5877e794fa
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
test: add T1 Hands audit report and baseline results
Phase 1 baseline + T1 Hands functional audit:
- Desktop vitest: 174/185 passed (chatStore refactoring)
- Admin vitest: 36/71 passed (API mock issues)
- Cargo check: 0 errors
- T1 Hands: 18/23 TCs executed, health 58→68 (+10)
- Key findings: M3-01/M3-06 fixed, M3-02/M3-04 unfixed
- New P1: LLM API concurrent DATABASE_ERROR
2026-04-05 18:19:32 +08:00

7.6 KiB
Raw Blame History

T1 Hands 自主能力 测试报告

执行日期: 2026-04-05 | 测试工具: tauri-mcp execute_js | V12 基线: 58/100

摘要

  • 执行用例数: 18/235 个需 UI 交互或长时间等待,未执行)
  • 通过: 11
  • 未修复(已知问题确认): 5 ⚠️
  • 已修复V12 问题): 2
  • 未验证: 5
  • 新发现缺陷: 3

缺陷统计

级别 数量 说明
P0 0 -
P1 2 LLM API 并发 DATABASE_ERROR; Browser Hand 不实际执行
P2 3 无输入长度限制; toolCount/metricCount 硬编码; max_concurrent 未实现
P3 1 timeout_secs 未实现

V12 已知问题验证

V12 ID 描述 V12 严重度 验证结果 备注
M3-01 run_id 丢失 P1 已修复 hand_execute 返回值含 runId 字段(如 8267f7a0-...
M3-02 Browser Hand 只返回指令不执行 P1 ⚠️ 未修复 返回 status: "pending_execution" 但未实际操作浏览器
M3-03 browserHandStore 绕过审批 P1 行为正确 supervised 模式正确进入审批流程autonomous 直接执行
M3-04 max_concurrent 未实现 P2 ⚠️ 未修复 5 个并发 quiz 全部被接受(max_concurrent: 0
M3-05 timeout_secs 未实现 P2 ⚠️ 未修复 timeout_secs: 0,无超时保护
M3-06 hand_execute 返回值类型不匹配 P2 已修复 返回 { success, output, error, durationMs, runId } 完整结构
M3-07 hand-execution-complete 事件未监听 P1 未验证 需 UI 交互观察
M3-08 审批条目永不过期 P2 未验证 需长时间等待
M3-09 重复审批路径 P2 两条路径存在 hand_approveapproval_respond 参数名不同但功能重叠
M3-10 tool_count/metric_count 硬编码为 0 P2 ⚠️ 未修复 所有 Hand 的 toolCount: 0, metricCount: 0
M3-11 Hand 列举正常 - 通过 9 个 Hand 全部返回
M3-12 hand_trigger 自主级别映射 P1 ⚠️ 部分修复 supervised 正确要求审批,但 autonomous 下 Browser 返回 pending_execution
M3-13 Clip Hand 路径单引号 P2 未验证 需 FFmpeg 环境

测试用例详细结果

TC-1-01 | Hand 列举(正常)

结果: PASS

hand_list 返回 9 个已启用 Hand

Hand name enabled needsApproval requirementsMet dependencies
clip 视频剪辑 true false ffmpeg
twitter Twitter 自动化 true true twitter_api_key
researcher 研究员 true false network
browser 浏览器 true true webdriver
slideshow 幻灯片 true false -
quiz 测验 true false -
whiteboard 白板 true false -
collector 数据采集器 true false network
speech 语音合成 true false -

TC-1-02 | Quiz Hand 直接触发(正常)

结果: PASS

  • 输入: { action: "generate", topic: "Rust 基础测试" }
  • 输出: 成功生成 5 道选择题,含 runId: "58d296cc-1be3-4632-8325-f15b4a7708dc"
  • 耗时: ~24 秒

TC-1-03 | M3-01 run_id 丢失验证

结果: PASS已修复

hand_execute 返回值结构:

{
  "success": true/false,
  "output": { ... },
  "error": null,
  "durationMs": 24499,
  "runId": "58d296cc-..."
}

runId 字段已稳定存在于所有返回值中。

⚠️ TC-1-05 | M3-02 Browser Hand 断裂

结果: FAIL未修复

  • 输入: { action: "navigate", url: "https://example.com" }
  • 输出: { action: "navigate", status: "pending_execution", url: "https://example.com" }
  • 问题: 返回结构化指令但未实际执行浏览器操作

TC-1-06 | 审批流程(正常)

结果: PASS

  1. supervised 模式: browser/twitter 正确进入 pending_approval 状态
  2. approval_list: 正确返回 2 条 pending 审批
  3. approval_respond(approved: true): 审批通过后 Hand 开始执行
  4. approval_respond(approved: false): 拒绝成功

⚠️ TC-1-08 | M3-04 max_concurrent 未实现

结果: FAIL未修复

  • 同时触发 5 个 quiz Hand
  • 5/5 全部被接受执行1 个成功4 个因 LLM API 500 失败)
  • hand_get 返回 max_concurrent: 0 表示无限制

TC-1-12 | 不存在 Hand 触发(异常)

结果: PASS

  • 输入: id: "nonexistent-hand"
  • 输出: "Hand not found: nonexistent-hand"
  • 错误信息明确

TC-1-15 | Hand 执行状态查询(正常)

结果: PASS

hand_run_list 返回 13 条历史记录,包含完整字段:

  • id, hand_name, status, params, result, error
  • created_at, started_at, completed_at, duration_ms
  • trigger_source: "manual"

TC-1-16 | M3-06 返回值类型验证

结果: PASS已修复

返回值结构 { success, output, error, durationMs, runId } 完整。

⚠️ TC-1-17 | M3-10 toolCount/metricCount 硬编码

结果: FAIL未修复

所有 9 个 Hand 的 toolCount: 0, metricCount: 0

TC-1-18 | TOML 配置加载验证

结果: PASS

hand_get 返回完整配置:

{
  "dependencies": [],
  "description": "生成和管理测验题目...",
  "enabled": true,
  "id": "quiz",
  "input_schema": { "properties": { "action": ..., "quiz_id": ..., "topic": ... } },
  "max_concurrent": 0,
  "name": "测验",
  "needs_approval": false,
  "tags": ["assessment", "education"],
  "timeout_secs": 0
}

TC-1-19 | Hand 错误处理(异常)

结果: PASS

  • input: null"invalid type: null, expected internally tagged enum ResearcherAction"
  • 错误信息明确,非 panic

⚠️ TC-1-20 | M3-12 自主级别映射

结果: PARTIAL

  • supervised: 正确要求审批("监督模式下所有 Hand 执行需要用户审批"
  • autonomous: ⚠️ Browser 返回 pending_execution 而非实际执行
  • Quiz 在 autonomous 下正常执行

⚠️ TC-1-23 | 超长输入触发

结果: FAIL无输入验证

  • 100K 字符 topic 被 quiz 接受并尝试执行
  • 最终因 LLM API 问题失败,但未在输入层拒绝

新发现问题

TC-ID 描述 场景类型 优先级 状态 备注
TC-1-D01 LLM API 并发时 500 DATABASE_ERROR 边界 P1 新发现 5 个并发 quiz 请求4 个返回 {"error":"DATABASE_ERROR"},仅第 1 个成功。SaaS 后端数据库连接池可能不足
TC-1-D02 Browser Hand autonomous 返回 pending_execution 正常 P1 已知(M3-02) 即使 autonomous 模式也不实际执行浏览器操作
TC-1-D03 Quiz 无输入长度限制 边界 P2 新发现 100K 字符 topic 被接受,应设上限

健康度评估

维度 V12 基线 本次评估 变化
功能完整性 58 68 +10
代码质量 - - N/A
测试覆盖 - - N/A
文档完备 - - N/A
集成连通性 - - N/A
综合 58/100 68/100 +10

提升原因:

  • M3-01 run_id 丢失已修复
  • M3-06 返回值类型已修复
  • 审批流程基本闭环approval_list/respond 工作正常)
  • hand_run_list 历史记录功能完整
  • 错误处理改善null input / 不存在 Hand 都返回明确错误)

残留风险:

  • Browser Hand 不实际执行P1
  • max_concurrent/timeout_secs 未实现P2
  • LLM API 并发问题P1SaaS 后端)
  • toolCount/metricCount 硬编码P2