docs: redefine sgclaw as hardened zeroclaw runtime

This commit is contained in:
zyl
2026-03-28 02:27:24 +08:00
parent b87968632a
commit 5ed81e5f0c
9 changed files with 783 additions and 101 deletions

View File

@@ -5,24 +5,25 @@
- 目标:给出可执行的工程改造路径与落地记录
## 1. 结论(先说结论)
项目存在至少两条主要提示词构造链路:
项目当前存在至少两条主要提示词构造链路,但长期主线只能保留一条 authoritative chain
1) **轻量运行时链路**`src/agent/runtime.rs`
1) **轻量运行时链路**`src/agent/runtime.rs`,过渡态
- 仅有非常基础的固定 system 提示。
- 适用于非完整流程的本地/最小执行场景。
- 不应继续被扩展成主线产品提示词体系。
2) **ZeroClaw 主链路**`third_party/zeroclaw/*`
- 这条链路是“系统提示”主体,分为:
- `Agent` 内部结构化构建器(`SystemPromptBuilder`
- `channels` 侧统一字符串拼装
- `skills / personality / identity / bootstrap 文件 / 工具说明` 等多个注入源
- 这也是你要关注的主要安全面。
- 这也是你要关注的主要安全面,也是未来应保留的唯一主线
---
## 2. 提示词分布结构(按文件/模块)
### 2.1 固定系统提示(轻量链路)
### 2.1 固定系统提示(轻量链路,待收口
- `src/agent/runtime.rs`
- `execute_task_with_provider``ChatMessage { role: "system" ... }`
- 当前内容:`You are sgClaw. Use browser_action to complete the browser task.`
@@ -108,6 +109,10 @@
## 4. 安全改造建议(按优先级)
### P0建议立即做
0) 收口双主链路
- `sgclaw` 不应长期同时维护一条轻量自定义 prompt 链和一条 zeroclaw 主链。
- 目标是:保留 zeroclaw 主链sgClaw 仅增加安全摘要、浏览器上下文和受控工具面说明。
1) 接入 `PromptGuard`
- 目前已有 `third_party/zeroclaw/src/security/prompt_guard.rs`
- 在以下入口加扫描并截断/告警:
@@ -148,7 +153,8 @@
## 5. 本次已确认的“关键风险”
- `PromptGuard` 尚未在主入口统一挂载(存在检测能力,但未形成强制拦截链)。
- workspace/skills 内容可直接进入 prompt注入面较宽。
- 两套系统提示构建链路(agent builder 与 channel builder存在口径差异需要统一
- 两套系统提示构建链路(轻量链路与 zeroclaw 主链)同时存在,容易造成安全策略漂移
- `sgclaw` 如果继续把浏览器专用提示补丁放在主链外侧,会重新制造第三条 prompt source。
---
@@ -161,4 +167,3 @@
- 复现提示词覆盖攻击
- 系统提示重复/续接场景seed/reseed
- compact/full 两种技能注入对比