5.5 KiB
L3 — 数据流与 Skill 体系层
文档版本: 2.0
适用项目: sgClaw(ZeroClaw 重构版)
编制日期: 2026-03-26
读者: 高级开发者、联调工程师、后续扩展设计人员
1. 端到端数据流
当前主链路的数据流如下:
Browser Host
└─ submit_task
↓
sgClaw Transport / Handshake
└─ handle_browser_message
↓
Execution Path Select
├─ planner fallback
└─ zeroclaw compat runtime
↓
browser_action
↓
AgentMessage::Command
↓
Browser executes action
↓
BrowserMessage::Response
↓
log_entry / task_complete
这条链路里没有独立 Skill 执行器,也没有独立任务编排数据库。
因此 L3 的重点不再是“描述一个理想化智能体平台”,而是说明当前仓库里真实存在的数据流状态机。
2. 任务生命周期
2.1 启动阶段
- 浏览器宿主拉起 sgClaw 进程。
- 宿主发送
init。 - sgClaw 返回
init_ack。 StdioTransport进入阻塞接收循环。
此阶段的目标是建立会话、版本和 HMAC 基线。
2.2 任务接收阶段
宿主发送:
{ "type": "submit_task", "instruction": "..." }
Rust 侧在 src/agent/mod.rs 中接收后,不直接执行页面命令,而是先决定走哪条执行路径。
2.3 执行路径选择
路径 A:planner fallback
条件:没有可用的 DEEPSEEK_* 环境配置。
行为:使用仓库内置 planner 直接产生若干步骤,并逐个调用 BrowserPipeTool。
特点:
- 依赖更少。
- 逻辑可预测。
- 适合协议联调和最小功能验证。
路径 B:ZeroClaw compat runtime
条件:存在有效模型配置。
行为:构建 ZeroClaw Agent,注册 browser_action 工具,消费 TurnEvent,再通过 BrowserPipeTool 下发动作。
特点:
- 可以承载更自然的 agent 行为。
- 为后续记忆、可观测性与 provider 扩展保留接口。
- 当前仍严格受单工具和四动作约束。
3. 单步动作数据流
无论走哪条路径,真正触达浏览器时的数据流是一致的:
-
生成动作
说明:动作最终都被规约成Action + params + expected_domain。 -
本地策略校验
说明:BrowserPipeTool在发送前执行 MAC Policy 校验。 -
组装命令
说明:生成AgentMessage::Command,写入seq与security.hmac。 -
浏览器执行
说明:宿主按其自身执行器把命令转换为页面动作。 -
接收回包
说明:Rust 侧等待同seq的BrowserMessage::Response。 -
形成观察结果
说明:根据success、data、aom_snapshot和timing形成下一步输入或最终结果。
这意味着“智能体行为”和“浏览器动作执行”之间的接口已经被压缩到非常薄的一层,这是 ZeroClaw 重构最有价值的结构变化。
4. 日志与结果流
当前会对宿主输出两类业务级反馈:
4.1 log_entry
用途:
- 向上层 UI 或调试台报告过程信息。
- 对齐 ZeroClaw 的
TurnEvent与 fallback 步骤日志。
典型内容:
- 当前准备执行的动作。
- compat runtime 中转译出的事件摘要。
- 执行中的信息性提示。
4.2 task_complete
用途:
- 明确任务是否成功。
- 返回最终摘要文案。
这是上层产品最稳定的完成态信号,不应依赖 stderr 日志或内部推理文本。
5. Skill 体系的当前定义
“L3 是灵魂”的前提,不是把 Skill 写得越来越玄,而是把 Skill 在当前阶段的真实语义说清楚。
5.1 当前不存在独立 Skill 引擎
当前仓库中没有独立的:
- Skill 脚本目录加载流程
- Skill 注册表
- Skill 沙箱执行器
- Skill 版本与签名校验主链路
因此不能再把 Skill 描述为已落地子系统。
5.2 当前可以保留的 Skill 语义
在 ZeroClaw 重构版里,Skill 更准确的含义是:
- 面向未来的“可复用任务模式”抽象。
- 可能由提示词、模板、预设工具组合或 planner 规则来承载。
- 最终仍要落到统一的
browser_action契约。
换句话说,当前 Skill 不是一个运行时目录,而是一种产品与执行层之间的抽象语言。
5.3 Skill 演进约束
后续如果重新引入 Skill 子系统,必须满足:
- Skill 的输出仍服从
browser_action或其后继正式工具契约。 - Skill 不能绕过
rules.json的安全边界。 - Skill 文档不能先于代码宣称“已具备自治学习能力”。
6. 配置与记忆的当前状态
6.1 配置
当前真正参与执行的关键配置来自 src/config/settings.rs:
DEEPSEEK_API_KEYDEEPSEEK_BASE_URLDEEPSEEK_MODEL
这些配置决定是否启用 compat runtime,以及模型请求如何路由。
6.2 记忆
ZeroClaw compat 路径中已经接入 memory adapter,但在产品能力层面仍应描述为:
- 已为记忆能力预留接入位。
- 当前主要价值在于兼容运行时需要,而非对外主卖点。
- 还不能把它描述成稳定的长期知识库产品能力。
7. L3 结论
L3 的核心不是“把所有未来能力都放进一个宏大数据流图”,而是说明当前系统如何把自然语言任务压缩成可验证、可回包、可受控的浏览器动作。
重构后的灵魂有三点:
- 任务入口统一。
- 动作契约统一。
- 执行路径可替换,但协议和安全边界不变。