只读沙箱与零静默回退:Sol Advisor多Agent协作背后的5道安全防线

发布时间:2026/10/2 22:51:47
只读沙箱与零静默回退:Sol Advisor多Agent协作背后的5道安全防线 只读沙箱与零静默回退Sol Advisor多Agent协作背后的5道安全防线【免费下载链接】sol-advisorCodex-native architect orchestration with Luna and Terra implementation lanes and mandatory fresh Sol review.项目地址: https://gitcode.com/gh_mirrors/so/sol-advisorSol Advisor 是一款 Codex 原生的多 Agent 协作编排工具Sol 主会话负责架构与规格Luna 实现常规任务Terra 处理高风险升级最后由全新的 Sol 评审把关。本文将拆解它如何用只读沙箱与零静默回退机制构建 5 道层层递进的安全防线让多 Agent 协作既高效又可信。 先认识三位角色Sol / Luna / Terra 分工表Sol Advisor 的协作模型非常简单主会话只做架构决策实现工作全部交给固定角色的原生自定义 Agent。每个角色的模型和推理强度都写死在 TOML 配置里阶段角色原生 Agent模型 / 推理强度职责规划Sol 主会话Sol / High需求、架构、五段式规格、验收常规实现sol_advisor_luna_implementerLuna / Max边界明确、完全规格化的例行工作显式升级sol_advisor_terra_implementerTerra / High判断密集、高风险或路由误分类的工作最终评审sol_advisor_sol_reviewerSol / High只读评审返回 ship / fix-first / rethink三个角色模板分别存放在 sol-advisor-luna-implementer.toml、sol-advisor-terra-implementer.toml 和 sol-advisor-sol-reviewer.toml。路由规则与评审契约详见 role-contracts.md 和 README.md。️ 防线一模型写死在角色文件里派生时无法偷换多 Agent 系统最常见的隐患是你以为派出了高级模型实际跑的是平替。Sol Advisor 的做法是角色钉死模型role-pinned model每个 TOML 同时固定model与model_reasoning_effort如 Luna 固定为gpt-5.6-lunamax派生 Agent 时必须省略逐次派生的 model / effort 字段——覆盖入口从设计上就不存在仓库自带的 verify.sh 会逐字段校验三个角色文件任何一个字段漂移都会直接 FAIL。这意味着运行时偷偷降级这条路被物理切断模型差异只能来自角色文件本身而角色文件本身又是可逐字节比对的静态资产。️ 防线二只读沙箱 观察到的隔离而不是请求的隔离最终评审者 sol-advisor-sol-reviewer.toml 声明了sandbox_mode read-only且指令明确规定不创建、不修改、不删除、不格式化任何文件只输出ship、fix-first或rethink三选一裁决。更值得注意的是一条诚实原则——Apply the observed isolation, not requested isolation执行观察到的隔离而非请求的隔离观察到沙箱确实是read-only→ 隔离由系统强制执行可继续宿主放宽了权限 → 只有在硬隔离非必需、提示词禁止编辑、且父会话捕获并比对了前后仓库状态的条件下才能继续并如实报告实际权限隔离不可观察、或发生任何写入 →立即停止评审不得宣称只读、不得掩盖改动。这条规则出现在 SKILL.md 的评审章节。它把只读从一句口号变成了可验证的运行时事实。️ 防线三零静默回退——证据缺失就停下绝不凑合零静默回退no silent fallback是贯穿全项目的红线具体体现在三处预检失败即停线每次派生前必须通过非变更式的完整性检查并确认三个精确角色名都被原生发现。若角色缺失规则是告诉用户去安装并开新任务严禁用内置角色或相似命名的 Agent 顶替。运行时证据不可推断本地检查器 inspect-agent-runtime.sh 只按精确线程 ID 匹配唯一的 rollout 文件输出白名单字段对无效、缺失、多匹配或互相矛盾的证据一律拒绝从不推断模型或 effort 的回退值。路由冲突即失败会话元数据缺少 agent_role、模型/推理强度/沙箱策略出现不一致时检查器直接报错退出而不是取一个看起来合理的值。用一句话概括宁可停下来让你知道出了问题也不会在暗处换一条路继续跑。️ 防线四Fresh 评审——每次修改都让旧裁决作废评审环节有两个防人情分的设计全新上下文评审者以fork_turns: none派生不携带实现过程的任何对话历史避免自己夸自己修复即作废只要评审后做了任何修改旧裁决立即失效必须重新派生一个新的 fresh 评审者且评审者永远不实现自己的修复——判卷人不改卷。这套评审生命周期规则完整记录在 SKILL.md 的 Require the final Sol review 小节中。️ 防线五fail-closed 安装器——拒绝时零部分变更install-agents.sh 负责把三个角色模板安装到本地 Codex Agent 目录它的行为设计堪称防御式编程样板先预检、后落盘全部目标文件先完成状态分类缺失 / 当前 / 旧版 / 冲突 / 不安全任何一项异常就整体退出不产生半截安装永不覆盖被修改过、符号链接、非常规文件的目标一律保持原样并报告冲突仅对字节级完全匹配的历史旧版做安全迁移用固定 SHA-256 指纹识别装完再验安装结束会逐字节复核三个文件与模板一致否则 FAIL--check模式零副作用只做校验不创建、不替换、不删除任何东西连目录都不会新建。verify.sh 还专门对以上每条做了反向测试如拒绝修改过的目标且不产生任何部分变更、符号链接目标被整体拒绝确保防线本身也被持续检验。 5 道防线速览表#防线一句话机制关键文件1模型角色钉死模型/推理强度固定在 TOML派生不可覆盖agents/2只读沙箱评审观察实际隔离状态不可观察即停止sol-reviewer.toml3零静默回退证据缺失/矛盾立即停线禁止顶替角色inspect-agent-runtime.sh4Fresh 评审全新上下文 修复后强制重新评审SKILL.md5fail-closed 安装预检先行、拒绝覆盖、装后字节级复核install-agents.sh写在最后Sol Advisor 的安全设计哲学可以总结为一句话把信任变成可验证的事实。模型钉死让路由可审计只读沙箱让评审无副作用零静默回退让故障显形而非潜伏fresh 评审让结论独立fail-closed 安装器让部署过程零意外。对于想尝试 Codex 多 Agent 协作的读者它的角色契约与验证脚本值得直接借鉴——完整使用说明见 README.md 的 Install from GitHub 章节。【免费下载链接】sol-advisorCodex-native architect orchestration with Luna and Terra implementation lanes and mandatory fresh Sol review.项目地址: https://gitcode.com/gh_mirrors/so/sol-advisor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考