Trusted — Risk Score 10/100
Last scan:8 hr ago Rescan
10 /100
baton
Baton — AI orchestrator for OpenClaw. Routes every request to subagents. Never does work itself.
Baton 是一个合法的 OpenClaw AI 代理编排器,声明权限与实际行为高度一致,无恶意行为发现。
Skill Namebaton
Duration69.7s
Enginepi
Safe to install
无需阻止,可安全使用。建议后续在 SKILL.md 中补充说明 HTTP 速率限制探测行为以提升透明度。

Findings 2 items

Severity Finding Location
Low
SKILL.md 文档未明确声明 HTTP 网络调用 Doc Mismatch
SKILL.md 声明的权限为 read:config, read:agents, exec:scripts, read:env,未提及网络操作。但 probe-limits.js 通过 fetch() 向 provider 速率限制 API 发起 HTTP GET 请求。此行为在 BOOT.md consent 流程('reads your openclaw.json provider config...and runs helper scripts')中已间接覆盖,且代码本身有 SECURITY NOTICE 注释。
metadata: {"permissions":["read:config","read:agents","exec:scripts","read:env"]}
→ 在 SKILL.md 的 ## References 段落后添加 ## Network Behavior 说明,表明辅助脚本会发起速率限制查询且 API key 已做输出脱敏处理。
SKILL.md:1
Low
install.sh 修改工作区引导文件未在 SKILL.md 说明 Doc Mismatch
install.sh 会修改 $WORKSPACE/BOOT.md 和 $WORKSPACE/AGENTS.md,属于文件写入行为(filesystem:WRITE),但 SKILL.md 仅声明 exec:scripts。虽然 exec:scripts 语义上覆盖辅助脚本执行,但文件修改的具体范围应更明确。
echo "$BOOT_CONTENT" > "$BOOT_MD"
→ 在 SKILL.md 安装说明中注明 install.sh 会向 BOOT.md 和 AGENTS.md 追加内容。
scripts/install.sh:30
ResourceDeclaredInferredStatusEvidence
Filesystem NONE WRITE ✓ Aligned scripts/install.sh:56-58 写 BOOT.md/AGENTS.md; scripts/task-manager.js:47-48 写 ba…
Network NONE READ ✓ Aligned scripts/probe-limits.js:67-73 fetch() 调用用于探测 provider 速率限制 API,BOOT.md consent 流…
Shell NONE NONE scripts/install.sh 使用 bash;scripts/probe-limits.js 使用 execSync 执行 openclaw CLI,均…
Environment READ READ ✓ Aligned scripts/probe-limits.js:49-51 resolveApiKey() 读取 API key 用于速率限制查询,有 sanitiseOutp…
Skill Invoke NONE NONE SKILL.md 仅通过 sessions_spawn 委托子代理,无直接 skill_invoke
Clipboard NONE NONE 无剪贴板操作
Browser NONE NONE 无浏览器操作
Database NONE NONE 无数据库操作

File Tree

13 files · 79.2 KB · 1963 lines
JavaScript 2f · 1103L Markdown 8f · 701L Shell 1f · 118L JSON 2f · 41L
├─ 📁 references
│ ├─ 📝 model-profiles.md Markdown 37L · 1.3 KB
│ ├─ 📝 onboarding-guide.md Markdown 111L · 3.4 KB
│ ├─ 📝 orchestration.md Markdown 266L · 9.1 KB
│ ├─ 📝 resilience.md Markdown 80L · 2.9 KB
│ ├─ 📝 task-schema.md Markdown 65L · 2.7 KB
│ └─ 📝 task-types.md Markdown 24L · 946 B
├─ 📁 scripts
│ ├─ 🔧 install.sh Shell 118L · 5.1 KB
│ ├─ 📜 probe-limits.js JavaScript 412L · 21.9 KB
│ ├─ 📋 provider-probes.json JSON 32L · 1.7 KB
│ └─ 📜 task-manager.js JavaScript 691L · 23.7 KB
├─ 📝 BOOT.md Markdown 26L · 1.5 KB
├─ 📋 package.json JSON 9L · 185 B
└─ 📝 SKILL.md Markdown 92L · 4.8 KB

Dependencies 1 items

PackageVersionSourceKnown VulnsNotes
无第三方 npm 依赖 N/A npm No package.json 仅声明 node>=18 engine,无实际依赖

Security Positives

✓ API key 脱敏机制完善:probe-limits.js:41-56 sanitiseOutput() 在输出前过滤 apiKey/api_key/key/secret/token/password/authorization/auth/credential 字段
✓ consent 流程设计良好:BOOT.md:6-10 要求用户在首次运行前明确同意 API key 读取行为
✓ SECURITY NOTICE 头部注释:probe-limits.js:1-14 明确声明 API key 仅用于速率限制查询、不记录不存储
✓ 配置文件哈希追踪:probe-limits.js --check-config-hash 可检测 openclaw.json 变更并触发重新 onboard
✓ 纯任务编排无执行:SKILL.md 硬性规则要求 baton 本身永不执行任务,仅委托子代理
✓ 代码结构清晰,逻辑内聚:task-manager.js 专注任务状态管理,probe-limits.js 专注模型注册与限流探测
✓ 无外部依赖风险:package.json 无第三方 npm 依赖(engines only)
✓ 无硬编码凭证、base64 管道、隐藏指令等高危指标