通过 openclaw agent --agent main --message MSG --json 向真实骰子发送消息。
安全措施:debug-config.json 中 dispatch 断点设为 true,任务类消息不会实际创建任务。
模型:claude-sonnet-4-6 (custom-llm-gateway)
核心验证目标:骰子的"信息隔离"设计——禁止读知识文件后,能否正确区分闲聊(自身知识可答)和任务(需要工具/文件)。
| ID | 消息 | 期望 | 实际 | 耗时 | 结果 |
|---|---|---|---|---|---|
| A1 | 你好呀,今天过得怎么样? | chat | chat | 13.2s | PASS *校正 |
| A2 | 什么是递归?用通俗的话解释一下 | chat | chat | 15.9s | PASS |
| A3 | Python的列表和元组有什么区别? | chat | chat | 14.4s | PASS |
| A4 | 给我讲个笑话 | chat | chat | 8.1s | PASS |
| A5 | TCP和UDP的区别是什么? | chat | chat | 15.2s | PASS |
| ID | 消息 | 期望 | 实际 | 耗时 | 结果 |
|---|---|---|---|---|---|
| B1 | 帮我查一下今天北京的天气 | task | task | 27.3s | PASS |
| B2 | 写一个自动化部署脚本放到tools目录下 | task | task | 12.6s | PASS |
| B3 | 把知识库里最新的3篇文章做摘要 | task | task | 14.6s | PASS |
| B4 | 帮我搜索最近一周AI领域的重大新闻 | task | task | 7.6s | PASS |
| B5 | 分析一下集群当前的任务完成率,生成报告 | task | task | 7.4s | PASS *边界 |
| ID | 消息 | 期望路由 | 期望数量 | 实际路由 | 实际数量 | 结果 |
|---|---|---|---|---|---|---|
| C1 | 帮我查北京天气,同时写一份今天的工作日报 | task | 2 | task | 2 ✓ | PASS |
| C2 | 学习这3篇文章并整理笔记 | task | 1 | task | 1 ✓ | PASS |
| C3 | 你好!顺便帮我查下上海今天的天气 | task | 1 | task | 1 ✓ | PASS |
| C4 | 帮我查天气、写个排序脚本、再搜一下最新的Rust教程 | task | 3 | task | 3 ✓ | PASS |
* 数量由人工从回复文本语义提取(dispatch 断点阻止了 new-task.py 执行,无法自动计数)
骰子在禁止读取知识文件(skills/、知识库/、DAILY-DIGEST、BACKLOG)的约束下,正确区分了所有 14 条消息的路由类型。闲聊用自身知识回答,需要工具/文件的请求判定为任务。这验证了"信息隔离"设计的核心假设:限制信息源 = 限制行为边界。
骰子不是"盲目派发",它展现了清晰的分析能力:
骰子正确执行了"独立任务"拆分规则:
脚本使用关键词匹配("派发""红中"等)判断路由,导致 A1 误判——骰子在闲聊中谈论自己做过的事,触发了关键词。未来应改进为:
--output-format stream-json 追踪工具调用链| 维度 | 上批测试(T-004~T-012) | 本批测试(路由判断) |
|---|---|---|
| 测试目标 | 执行管线(dispatch→plan→handoff) | 骰子的路由判断(chat vs task) |
| 消息类型 | 仅纯任务消息 | 闲聊 + 任务 + 混合 |
| 断点位置 | hong-zhong-handoff | dispatch |
| 验证的能力 | 红中→白板→断点 管线完整性 | 骰子信息隔离下的路由判断准确性 |
| 覆盖的风险 | cron 链路断裂、Agent 调用失败 | 骰子越权直答、混合消息错判 |
| 总结 | 两批测试互补,覆盖了"路由判断"到"执行管线"的完整链路 | |
骰子在"禁止读知识文件"的信息隔离约束下,展示了正确的路由判断能力:
核心洞察得到实证确认:信息隔离 > 规则措辞 — 与其写更多规则让 AI "不要做什么",不如直接切断它做某事的信息来源。