Rust 内核 · 浏览器嵌入 · 三层安全

# sgClaw · AI Agent 自动化底座

业数融合一平台 · SuperRPA 智能增强层

项目架构宣讲 · 2026年3月

## 议程 / 今日宣讲内容

当前部分

### 第一部分 · 管理层概览

约 30 分钟

- ✦ 项目背景与业务痛点
- ✦ 什么是 Claw 技术
- ✦ 竞品分析与差异化
- ✦ 产品方案与业务场景
- ✦ 架构与安全保障
- ✦ 团队分工与排期

### 第二部分 · 技术深潜

约 30 分钟

- ◇ 框架选型依据
- ◇ 详细架构分解
- ◇ 安全机制详解
- ◇ 模块设计细节
- ◇ 数据流全链路
- ◇ Skill 体系设计
- ◇ 工程实现方案

## 团队分工 / 5 人团队，2250 行自研代码

🦀
P1a · 核心通信
Rust 工程师 · 赵义仑

Pipe 协议、浏览器工具、安全策略

~900 行 关键路径
🧩
P1b · 业务支持
Rust 工程师

Skill 加载、记忆管理、评估器、主循环

~600 行
🔷
P2 · 浏览器对接
C++ 浏览器工程师

进程宿主、管道监听、MAC 检查

~600 行
📦
P3 · 业务技能
业务 + AI 工程师

AI 辅助迁移 400+ 场景，提示词工程

10-15 个黄金样本 AI 生成 400+
🖥️
P4 · 前端与发布
前端 + DevOps

AI 助手面板、Skill 后台、测试、打包

UI ~150 行

📐 基于开源 ZeroClaw 框架，84% 代码复用，仅需自研约 2250 行代码——高效务实，不重复造轮子

## 里程碑计划 / 2 周完成交付

Day 1-2
环境搭建 · 管道通信打通

搭建开发环境，完成 sgClaw 引擎与浏览器之间的管道通信验证

Day 3-4
核心链路联调 · 第一个 AI 操作成功

完成 AI 引擎到浏览器的完整链路，实现第一个 AI 驱动的浏览器操作

Day 5 ★
W1 里程碑 — 全链路跑通

AI 指令 → sgClaw 引擎 → 浏览器操作，端到端链路全部打通并可演示

Day 6-7
安全策略 + Skill 系统接入

三层安全防御上线，Skill 经验复用系统集成，10 个内置业务技能对接

Day 8-9
场景验收 + 性能优化

六大业务场景逐一验收，性能调优确保流畅体验

Day 10 ★★
W2 里程碑 — 打包发布，内部演示

双平台安装包就绪，内部演示汇报，收集反馈

#### 📦 最终交付物

银河麒麟 V10 .deb 安装包 Windows 安装包 10 个内置业务 Skill 完整测试报告

"嵌入浏览器内核的 AI Agent"

5MB
运行内存
|
<10ms
冷启动速度
|
2 周
完成交付
|
零侵入
现有系统

#### 🤝 需要的支持

- ◆ 测试环境（银河麒麟 V10 终端）
- ◆ AI 大模型调用额度
- ◆ 业务场景需求方对接人

#### 🚀 下一步行动

- ◆ 本周启动正式开发
- ◆ 两周后内部演示汇报
- ◆ 持续迭代，场景扩展

感谢关注 · 技术细节请留步后半场

# 第二部分 · 技术深潜

框架选型 → 详细架构 → 安全详解 → 模块设计 → 数据流 → Skill体系 → 工程实现

01
框架选型
ZeroClaw 介绍与对比
02
技术决策
Rust + STDIO Pipe
03
详细架构
进程模型与内存预算
04
安全详解
三层纵深防御
05
模块设计
Rust 端 & C++ 端
06
数据流
ReAct 循环详解
07
Skill 体系
定义 · 签名 · 沙箱
08
工程实现
构建 · 测试 · 部署

## ZeroClaw 框架 / Rust 生态的 AI Agent 引擎

### What is ZeroClaw?

Rust 实现的 AI Agent 框架 · GitHub ★ 17K Stars

Core: trait-driven architecture

⚙
Tool
工具抽象
`fn execute()`
◆
Provider
模型适配
`fn chat()`
☃
Memory
记忆接口
`fn search()`

Built-in: ReAct Loop MCP Client (rmcp) Streaming Output Multi-Provider

### Architecture & sgClaw 接入点

ZeroClaw Core
ReAct · Streaming · Config
trait impl
Tool trait
Provider trait
Memory trait
sgClaw plugs in
BrowserPipeTool
Custom Tool impl
Claude / GPT
Provider impl
CompositeMemory
Memory impl
💡 "我们不是从零开始, 而是站在 ZeroClaw 的肩膀上"

## 框架选型 / ZeroClaw vs 其他 Rust Agent 框架

维度 | ZeroClaw | Rig | Moltis | OpenFang
--- | --- | --- | --- | ---
Stars | 17K | 4.2K | 1.8K | 0.9K
Runtime Memory | ~5MB | ~12MB | ~20MB | ~15MB
Embeddability | Library | Library | Framework | Framework
Browser Replaceable | ✓ Tool trait | ✗ | ✗ | Partial
ReAct Loop | ✓ Built-in | ✓ | ✗ | ✓
MCP | ✓ rmcp | ✗ | ✗ | WIP
Key Advantage | Trait 可插拔 + 最小体积 | RAG 生态 | 多 Agent | 代码生成

### 复用分析

ZeroClaw 提供 84%
ReAct loop · Tool framework · Streaming output
MCP client (rmcp) · Provider abstraction · Memory interface
sgClaw 自研 16%
BrowserPipeTool · Pipe Protocol · MAC Policy
SkillLoader · Critic / CircuitBreaker

代码行数: 5000 行 → 1500 行 (-70%)

## 技术决策 / 为什么 Rust + STDIO Pipe

### Why Rust

Memory Safety 无 GC → 运行时 ~5MB

Cross-compile

银河麒麟 V10: `x86_64-unknown-linux-musl`
Windows: `x86_64-pc-windows-msvc`

Binary 8.8MB (Linux) / 9.0MB (Windows)
static linking, zero deps

Cold Start <10ms

vs | 内存 | 启动
--- | --- | ---
Node.js | 1/40 | 1/100
Python | 10x ↑ | 无运行时依赖

### Why STDIO Pipe

Method | Linux | Windows | Security | Latency
--- | --- | --- | --- | ---
STDIO Pipe | ✓ fd inherit | ✓ HANDLE | Highest process-private | ~0.1ms
Unix Socket | ✓ | ✗ | High | ~0.2ms
Named Pipe | ✗ | ✓ | High | ~0.2ms
TCP localhost | ✓ | ✓ | LOW any process | ~0.5ms

⚡ STDIO Pipe = Chromium `base::LaunchProcess` 原生支持 + 最高安全 + 最低延迟

## 详细架构 / 完整进程模型与模块关系

superrpa-chromium.sh (wrapper)
watchdog → node local_service
Existing, unchanged
chrome (main process)
SgClawProcessHost NEW Singleton
STDIO Pipe →
sgclaw (Rust binary)
AgentRuntime · LlmProvider · BrowserPipeTool
SkillLoader · MAC Policy · Critic · Memory · MCP
PipeListener NEW ~150 lines
MAC Whitelist Check NEW ~100 lines
→ CommandRouter EXISTING 40+ actions, ZERO modification
CdpBridgeManager
Existing
ZombiePageManager
Existing
SessionManager
Existing
RpaGlobalStorage
Existing

### 8GB Memory Budget

Component | Memory
--- | ---
OS + Desktop (Kylin V10) | ~2.0 GB
Browser (main) | ~0.2 GB
Foreground Tabs | ~0.3-0.9 GB
Side Panel | ~0.05 GB
Zombie Pool (max 5) | ~0.15-0.25 GB
local_service | ~0.1 GB
sgClaw | ~0.005 GB (5MB!)
Total | ~3.0-3.6 GB
Headroom | >50%

## 安全详解 / 三层纵深防御

L3 C++ 浏览器内核层
MAC 域白名单 Action 白名单 凭证隔离 速率限制 10/s
L2 Rust 中枢层
JSON Schema 校验 禁止 eval 类 Human-in-the-loop seq + HMAC 熔断器
L1 管道传输层
进程私有 fd 握手版本校验 递增 sequence_id 消息 ≤1MB

### Threat Model

Threat | Layer | Strategy
--- | --- | ---
Pipe 劫持
HTTP/TCP 劫持 | L1 | STDIO Pipe 无端口，规避网络劫持
L1 | 进程私有 fd
Prompt 注入 | L2 | JSON Schema + Action 白名单
Skill 投毒 | L2+L3 | Ed25519 签名 + 沙箱
凭证泄露 | L3 | credential_store 不暴露
重放攻击 | L2 | seq 递增 + HMAC
重试风暴 | L2 | 熔断器 (阈值 10)

✓ Allowed navigate, click, fill, getText, getAOM, screenshot

✗ Forbidden eval, deleteCookies, clearStorage, modifyHeaders

⚠ NeedConfirm download, upload, formSubmit, printPage

## 模块设计 · Rust 端 / 9 模块 · 依赖 DAG 无环

### Module Map

main.rs
入口 / pipe / tokio
AgentRuntime
ReAct 循环
BrowserPipeTool
Tool trait impl
Pipe Protocol
JSON Line 编解码
MAC Policy
域名 + Action 白名单
SkillLoader
JS 发现 + Ed25519 验签
CompositeMemory
Ring Buffer + SQLite
LlmProvider
Claude / OpenAI / Ollama
McpClientManager
rmcp

### Key Interfaces

// ZeroClaw 定义的核心 trait trait Tool { fn execute(input: &str) -> Result<String>; } trait Provider { fn chat(msgs: Vec<Message>) -> Result<Message>; } trait Memory { fn search(query: &str) -> Vec<Entry>; } // sgClaw 自定义实现 struct BrowserPipeTool { pipe: PipeWriter, mac: MacPolicy, } impl Tool for BrowserPipeTool { fn execute(input: &str) -> Result<String> { // MAC check → serialize → pipe write → await response } }

依赖原则:

· `Config` 是叶节点 → 所有模块依赖它

· `AgentRuntime` 是根 → 协调所有模块

· No circular deps

## 模块设计 · C++ 端 / 3 新增模块 · ~500 行 · 已有代码零修改

### 3 New Modules

SgClawProcessHost
~200-300 lines · Singleton
`Start() / Stop() / OnCrash()`
ProcessState enum: `Idle → Starting → Running → Stopping → Stopped → Crashed`
PipeListener
~150 lines · Async fd read loop
JSON Line parsing · 1MB limit
dispatch to `CommandRouter`
MacWhitelistCheck
~100 lines · domain/action whitelist
from `rules.json`
MacResult: `Allow | NeedConfirm | Deny`

### ProcessState State Machine

Idle
Start()
Starting
handshake OK
Running
Stop()
Stopping
exited
Stopped
unexpected exit
Crashed
auto-restart
Starting
✓ CommandRouter 零修改 — sgClaw 只是一个新的命令来源

## 数据流 & ReAct 循环 / 从自然语言到浏览器操作

### 端到端数据流

1
用户
自然语言指令
→
2
Vue
FunctionsUI
→
3
C++
MAC → Pipe
→
4
Rust
ReAct Engine
→
5
大模型
AI推理
→
6
回传
结果

### ReAct 循环

思考
大模型推理
选择动作+参数
→
执行
调用浏览器工具
执行操作
→
观察
读取页面
AOM/截图
→
评估
质量检查
成功?失败?
↺ loop

### Token 预算分配

System Prompt
~2,000 tokens
Long-term Memory
~1,000 tokens
Short-term Memory
50 条 / 8,000 tokens
Generation Budget
~4,096 tokens

## Skill 体系 / 定义 · 签名 · 沙箱 · 迁移

### Skill Definition

/** * @skill erp-monthly-report * @version 1.0.0 * @domains erp.example.com * @params { month: string, format: enum } */ async function execute(params, browserAction) { await browserAction('navigate', { url: 'https://erp.example.com/report' }); await browserAction('fill', { selector: '#month', value: params.month }); await browserAction('click', { selector: '#export' }); }

### 10 Built-in Skills

OA 审批 ERP 报表 财务合规 人资社保 法务合同 营销数据 风控监测 数据同步 系统巡检 批量录入

### Sandbox Constraints

✓ `browserAction` `console` `JSON` `Promise` `setTimeout`

✗ `fetch` `require` `process` `fs` `eval`

### 3-Phase Migration Path

Phase 1 直接复用
agent-vue 现有 JS 通过 `BrowserAction API` 直接调用
零改造, 即插即用
Phase 2 技能化封装
提取为 Skill + 元数据 + Ed25519 签名
结构化 · 可复用 · 可验证
Phase 3 LLM 增强
Skill 注册为 Agent 工具, LLM 自动选择
用户说意图 → Agent 选 Skill → 执行
手写 JS
→
Signed Skill
→
LLM-driven

## 记忆与自进化 / 三层记忆 · 越用越快

### Memory Stack

L0 即时记忆 LLM Context Window
范围: 单次调用
容量: `max_tokens 4096`
特点: 最快, 无持久化
L1 短期记忆 Ring Buffer
实现: `VecDeque<Message>`
范围: 单次任务
容量: 50 条 / 8000 tokens
策略: FIFO + 压缩摘要
L2 长期记忆 SQLite + 向量
范围: 跨任务持久化
容量: <100MB
检索: 语义相似度 + 关键词
索引: embedding (384-dim)

### Self-Evolution Path

首次
8-15 步
LLM 从零推理, 探索式执行
⬇ 经验沉淀 → L2 长期记忆
再次
4-6 步
检索历史经验, 跳过探索
⬇ 高频提炼 → Skill 封装
Skill
1-2 步
直接执行, 接近零推理
87%
步骤减少
10x
执行加速

## 工程实现 / 仓库 · 构建 · 测试 · 部署

### Repo Structure

# Rust crate sgClaw/ src/ main.rs agent/ # AgentRuntime pipe/ # Protocol skill/ # SkillLoader llm/ # Providers memory/ # Composite security/ # MAC + HMAC config/ # Settings Cargo.toml # C++ (in SuperRPA) src/chrome/browser/ superrpa/sgclaw/ sgclaw_process_host.cc pipe_listener.cc mac_whitelist_check.cc // ~500 lines total

### Build Commands

# Rust (Linux musl) cargo build --release \ --target x86_64-unknown-linux-musl # Rust (Windows MSVC) cargo build --release \ --target x86_64-pc-windows-msvc # C++ (Chromium) autoninja -j 24 \ -C out/Default chrome

### Binary Size

Linux musl
8.8 MB
Windows MSVC
9.0 MB

### Test Pyramid

70%

Rust unit tests (mock LLM + mock pipe)

15%

C++ unit tests (ProcessHost/Listener/MAC)

10%

Pipe integration (real sgclaw process)

5%

E2E acceptance (mock LLM, full scenario)

### Deployment

银河麒麟 V10 SP1 .deb

Windows 10/11

Package: 447 → 456MB +2%

# 技术讨论 · Q&A

Known Risks & Pending Decisions

⚠ LLM Provider 选择
外网 Claude / GPT vs 内网本地模型 (Ollama + Qwen)?
延迟、成本、数据合规
⚠ Skill 签名密钥管理
硬编码 vs HSM?
安全等级与运维复杂度平衡
⚠ AOM 覆盖率
部分业务系统可能需要视觉兜底
截图 + SoM (Set-of-Marks)
⚠ 性能基线
需要实际环境 benchmarking
LLM latency · Pipe throughput · E2E time

各组接口人: 浏览器组 · AI 平台组 · 安全组 · 测试组

项目文档: `confluence/sgclaw` · 代码仓库: `gitlab/superrpa/sgclaw` · 看板: `jira/SGCLAW`

← → 翻页 · F11 全屏