5.5 KiB
5.5 KiB
L4 — 工程实现与部署拓扑层
文档版本: 2.0
适用项目: sgClaw(ZeroClaw 重构版)
编制日期: 2026-03-26
读者: 开发者、测试工程师、联调工程师
1. 当前仓库结构
本仓库已经收敛为以 Rust Runtime 为主、文档为辅的产品内核仓库。
不再把外部浏览器仓库和旧验证页当作本仓库的主实现面。
claw/
├── Cargo.toml
├── resources/
│ └── rules.json
├── src/
│ ├── main.rs
│ ├── lib.rs
│ ├── agent/
│ ├── compat/
│ ├── config/
│ ├── llm/
│ ├── pipe/
│ └── security/
├── tests/
├── third_party/
│ └── zeroclaw/
├── docs/
│ ├── L0-...md
│ ├── L1-...md
│ ├── L2-...md
│ ├── L3-...md
│ ├── L4-...md
│ ├── 浏览器对接标准.md
│ ├── plans/
│ └── archive/
└── frontend/
├── README.md
└── archive/
工程上应把 third_party/zeroclaw 理解为“已 vendored 的兼容依赖”,而不是单独维护的兄弟项目。
2. 关键实现文件
2.1 入口与装配
职责:
- 初始化二进制入口。
- 建立标准输入输出 transport。
- 完成握手。
- 将消息循环交给
agent。
2.2 协议与浏览器工具
职责:
- 定义 wire message。
- 维护
seq和 HMAC。 - 提供命令发送与响应等待能力。
2.3 执行路径
职责:
- 决定 fallback 或 compat 执行。
- 把统一工具契约映射到浏览器协议。
- 在 ZeroClaw turn 事件与宿主日志之间做桥接。
2.4 安全与配置
职责:
- 维护运行时安全边界。
- 从环境变量读取 provider 配置。
3. 构建与运行
3.1 本地构建
当前仓库以 Cargo 为主:
cargo build
发布构建:
cargo build --release
如果需要做协议或兼容层改动,优先先跑测试,再谈部署。
3.2 运行前提
sgClaw 不是独立交互式 CLI 产品,正常运行前提是:
- 有浏览器宿主进程作为父进程。
- 宿主通过 STDIO 与 sgClaw 通信。
- 宿主实现
init/submit_task/response协议。
直接在终端里执行二进制,只能用于开发级调试,不代表真实产品启动方式。
3.3 模型配置
启用 ZeroClaw compat runtime 的关键环境变量:
DEEPSEEK_API_KEY=...
DEEPSEEK_BASE_URL=...
DEEPSEEK_MODEL=...
若这些变量不存在或不完整,系统会退回 planner fallback。
4. 测试拓扑
当前测试覆盖重点是“协议与兼容性”,而不是 UI 演示。
主要测试类别包括:
pipe_protocol_test.rspipe_handshake_test.rsbrowser_tool_test.rsruntime_task_flow_test.rsagent_runtime_test.rscompat_runtime_test.rscompat_browser_tool_test.rscompat_config_test.rscompat_memory_test.rscompat_cron_test.rs
建议执行:
cargo test
这组测试表达了一个重要工程事实:当前系统的稳定核心是协议、runtime 选择和 compat 适配,而不是旧版前端验证页。
5. 部署边界
5.1 本仓库负责什么
- 提供 sgClaw Rust 二进制。
- 提供规则文件。
- 提供协议文档和测试基线。
5.2 外部宿主负责什么
- 拉起并托管 sgClaw 进程。
- 提供页面执行能力。
- 实现命令落地、响应回传和宿主侧校验。
5.3 不在本仓库内交付的内容
- Chromium 工程源码与 BUILD 配置。
- Side Panel 成品前端。
- 生产部署脚本、安装包、发布流水线。
L4 的工程边界必须按仓库现实写清楚,否则会把“外部依赖”误写成“本仓库已交付”。
6. 部署建议拓扑
一个最小可工作的部署拓扑如下:
Browser Host Process
├─ launches sgclaw binary
├─ writes init / submit_task to stdin
├─ reads command / log / task_complete from stdout
└─ executes page actions in host environment
sgclaw binary
├─ loads resources/rules.json
├─ verifies action/domain
├─ optionally calls provider API
└─ waits for browser response
这就是当前版本真正需要被实现和联调的部署模型。
7. 工程结论
L4 层面的核心结论只有两点:
- 本仓库已经从“带演示页的杂糅目录”收敛为“Rust Runtime + 协议文档 + 测试”的内核仓库。
- ZeroClaw 重构后的工程重点,是保证 compat runtime、fallback runtime、浏览器协议三者在同一 contract 上工作。