v3.7.11 安全架构说明 最后更新: 2026-05-24
Auto-Coding 是一个本地运行的子代理编排系统。所有子 agent 通过 OpenClaw Gateway 的 sessions_spawn 机制创建,在 isolated 上下文中执行。不向外部第三方服务发送代码或项目数据。
- 实现:
auto_coding_workflow.py中 spawn 使用--session isolated模式 - 效果: 子 agent 不继承父 session 的完整上下文,降低信息泄露面
- 超时控制: 所有子 agent 有
runTimeoutSeconds限制,防止无限挂起
- 实现:
model_auto_router.py— 三层决策路由(阶段→分类→上下文阈值) - 约束: 仅使用
volcengine-planprovider 的模型,跨 provider 调用全部拒绝 - 分工: Pro 模型做推理/审查,Flash 模型做代码生成/测试
- 实现:
scorecard_engine.py中的_safe_bool_eval()— 使用ast.parse白名单节点 - 策略: 不支持
eval()/exec(),仅允许布尔比较表达式(Eq/NotEq/Lt/Gt/And/Or/Not)
- 子 agent 执行: cron 监控 agent 白名单为
exec,message,在 isolated session 中运行 - subprocess 调用: 仅用于调用
openclawCLI(cron add/rm、infer model run),输入均来自本地可控变量 - 风险边界: 不会将用户原始输入直接拼入 shell 命令
- 实现:
feishu_notifier.py - 数据: 仅发送任务状态摘要(完成/失败/超时)和审批请求
- 凭证: 飞书 Token 通过
os.environ读取,不硬编码
- 范围: 仅限
self.project_dir指定的项目目录 - 权限: 子 agent 继承父进程文件权限,不扩大
| 依赖 | 用途 | 风险 |
|---|---|---|
subprocess |
调用 openclaw CLI | 中 — 仅调用已知 CLI 命令,输入可控 |
asyncio |
异步编排 | 低 — Python 标准库 |
json, re, os, pathlib |
工具 | 低 — Python 标准库 |
httpx (optional) |
HTTP 客户端 | 低 — 仅用于 GitHub API |
ast |
安全表达式求值 | 低 — 白名单节点 |
yaml |
配置文件解析 | 低 — 仅读取 configs/ 下的固定文件 |
本 skill 不依赖任何第三方数据外传服务。仅与 OpenClaw Gateway(本地)交互。
| 变量 | 文件 | 用途 | 示例 |
|---|---|---|---|
AUTO_CODING_FEISHU_TO |
auto_coding_workflow.py:493 |
接收飞书通知的用户 ID | ou_xxx |
AUTO_CODING_MODELS |
model_selector.py:82 |
手动指定模型列表 | "model1:tag1;model2:tag2" |
AUTO_CODING_MODEL_{ROLE} |
auto_coding_workflow.py:1196 |
按角色指定模型 | AUTO_CODING_MODEL_COORDINATOR=doubao-pro |
AUTO_CODING_FALLBACK_MODELS |
auto_coding_workflow.py:1029 |
降级模型列表 | 逗号分隔的模型名 |
- 所有环境变量均为可选配置
- 默认从 gateway config 自动加载模型
- 模型 Provider 约束在
model_auto_router.py中(仅 volcengine-plan)
如遇到安全问题:
-
停止所有子 agent
openclaw gateway stop
-
清理任务目录
rm -rf /tmp/auto-coding-* -
检查日志
tail -n 200 ~/.openclaw/logs/gateway.log -
更新到最新版本
clawhub update auto-coding-correctversion
skills/discipline-meta.skill.md中的override关键字是人工审批流程的设计文档描述,不是 prompt injection 指令。Agent 仅在用户确认后方可跳过规则,且记录到 audit logskills/decomposition.skill.md、skills/verification.skill.md中不含实际密码/凭证示例(已替换为通用术语)
版本: v3.7.11 — 安全说明与代码实现一一对应