从Harness engineering 到 Loop engineering:企业级长程任务Agent原理与实战,Claude Code、Codex、OpenClaw 架构分层拆解与最佳实践指南 2
文章目录
- 从Harness engineering 到 Loop engineering:企业级长程任务Agent原理与实战,Claude Code、Codex、OpenClaw 架构分层拆解与最佳实践指南 2
- 第9章 沙盒环境与安全边界《从Harness engineering 到 Loop engineering:企业级长程任务Agent原理与实战,Claude Code、Codex、OpenClaw 架构分层拆解与最佳实践指南》
- 9.0 章首故事:那个差点 `rm -rf` 掉整个对账系统的下午
- 9.1 为什么需要沙盒:从"事故频发"到"隔离即自由"
- 9.1.1 AI 直接改生产的三类典型事故
- 9.1.2 隔离让 AI 敢动手:反直觉的红利
- 9.1.3 沙盒在 Loop 五组件中的位置
- 9.2 沙盒隔离的三种实现:进程级 / 容器级 / VM 级
- 9.2.1 三档对比总览
- 9.2.2 三档详细对比表
- 9.2.3 进程级沙盒深挖:seccomp + cgroups
- 9.2.4 容器级沙盒深挖:Docker + Podman
- 9.2.5 VM 级沙盒深挖:Firecracker 与 gVisor
- 9.2.6 三档选型决策图
- 9.3 文件系统隔离:工作区、只读挂载、白名单路径
- 9.3.1 工作区模型
- 9.3.2 只读挂载与白名单路径
- 9.3.3 文件系统隔离图
- 9.3.4 路径白名单与黑名单的工程取舍
- 9.4 网络隔离:断网、白名单域名、出站代理
- 9.4.1 网络隔离的三档
- 9.4.2 断网模式
- 9.4.3 白名单域名模式
- 9.4.4 出站代理与审计
- 9.4.5 网络隔离架构图
- 9.5 资源配额:CPU、内存、磁盘、时长、token 上限
- 9.5.1 资源配额全景表
- 9.5.2 时长配额:watchdog 模式
- 9.5.3 token 配额:Loop 的钱包
- 9.5.4 资源配额的实现矩阵
- 9.6 权限系统三层模型:工具白名单、路径隔离、危险操作确认
- 9.6.1 三层模型回顾
- 9.6.2 Layer 1:工具白名单
- 9.6.3 Layer 2:路径隔离
- 9.6.4 Layer 3:危险操作确认
- 9.6.5 权限决策树
- 9.7 危险操作拦截:从 rm -rf 到凭据外传
- 9.7.1 拦截的难点:Agent 会"绕"
- 9.7.2 危险操作拦截流程图
- 9.7.3 凭据外传拦截
- 9.8 红线与黄线:操作清单
- 9.8.1 红线操作清单(绝对禁止,不可通过确认放行)
- 9.8.2 黄线操作清单(需人类确认)
- 9.8.3 绿线操作清单(自由执行)
- 9.9 可观测性:全量日志、操作审计、回放
- 9.9.1 可观测性的三层
- 9.9.2 全量日志的结构
- 9.9.3 审计日志的不可篡改
- 9.9.4 回放:把 Agent 的执行过程"录下来"
- 9.9.5 可观测架构图
- 9.10 回滚与不可变基线:git 作为安全网、快照、blue-green
- 9.10.1 不可变基线的三层
- 9.10.2 git 作为安全网
- 9.10.3 快照:比重置更彻底
- 9.10.4 容器销毁即回滚
- 9.10.5 回滚基线架构图
- 9.11 光剑案例:对账系统沙盒设计——一次差点 rm -rf 的真实事件
- 9.11.1 事故前 vs 事故后
- 9.11.2 对账沙盒的架构
- 9.11.3 关键设计决策
- 9.12 沙盒与速度的权衡:隔离越强越慢,如何平衡
- 9.12.1 隔离-速度权衡曲线
- 9.12.2 权衡的四条原则
- 9.12.3 不同任务的沙盒配置矩阵
- 9.13 最佳实践清单
- 文件系统
- 网络
- 资源
- 权限
- 回滚
- 可观测
- 9.14 反模式清单
- 9.15 核心命题回顾表
- 9.16 番外篇:光剑的"沙盒人格分裂"——当 AI 学会试探边界
- 第10章 智能调度与编排——给不确定性排课表
- 10.0 开篇:光剑的"四点半危机"
- 10.1 调度器在 Loop 中的角色:协调者的四张牌
- 10.1.1 调度器的三个抽象层
- 10.2 编排(Orchestration)vs 编舞(Choreography):中心化与去中心化的永恒之争
- 10.3 并发模型:串行、fan-out、pipeline、barrier
- 10.3.1 四种并发模型
- 10.3.2 光剑的"并发决策树"
- 10.3.3 fan-out 的合并难题
- 10.3.4 pipeline 的反压问题
- 10.3.5 串行模型的隐性优势
- 10.3.6 barrier 的"等最慢者"问题
- 10.4 子 Agent 调度:Claude Code Task 工具、worktree 隔离、agentType
- 10.4.1 Task 工具的调度语义
- 10.4.2 agentType:不是所有子任务都需要最贵的模型
- 10.4.3 worktree 隔离:并发写的安全网
- 10.4.4 后台子 Agent 与屏障
- 10.4.5 子 Agent 的生命周期管理
- 10.4.6 SendMessage:运行中调整方向
- 10.5 任务队列与优先级:Issue 看板、good-first-issue、SLA
- 10.5.1 任务队列的结构
- 10.5.2 优先级分级
- 10.5.3 good-first-issue:让简单任务填充碎片时间
- 10.5.4 SLA 与预算的张力
- 10.5.5 优先级反转与抢占
- 10.6 预算管理:token 预算、time budget、cost ceiling、动态扩缩
- 10.6.1 四种预算
- 10.6.2 预算的分配与申请
- 10.6.3 动态扩缩
- 10.6.4 成本可观测:每个子 Agent 都要"报账"
- 10.6.5 预算核算的工程实现
- 10.6.6 成本估算:事前预算 vs 事后核算
- 10.7 失败处理:重试、退避、熔断、降级、升级
- 10.7.1 失败分类
- 10.7.2 失败处理状态机
- 10.7.3 指数退避与抖动
- 10.7.4 熔断
- 10.7.5 降级与升级给人
- 10.7.6 上下文溢出的特殊处理
- 10.7.7 "升级给人"的工程化
- 10.8 调度与吴恩达三层 Loop 的对齐
- 10.8.1 三层 Loop 的信息流
- 10.8.2 三层 Loop 的"失配"问题
- 10.9 多 Agent 协作模式
- 10.9.1 四种协作模式
- 10.9.2 Leader-Worker 的"合并税"
- 10.9.3 Judge Panel 的"一致性陷阱"
- 10.9.4 Loop-until-dry 的收敛性
- 10.9.5 Adversarial Verify 的"攻击者太弱"
- 10.10 调度的可观测:进度树、phase、log、budget
- 10.10.1 进度树
- 10.10.2 可观测指标清单
- 10.10.3 phase 标记
- 10.10.4 调度日志
- 10.11 光剑案例:对账系统多 Agent 调度——发现/修复/评估/合并四角色协作
- 10.11.1 背景
- 10.11.2 四角色设计
- 10.11.3 调度流程
- 10.11.4 调度策略要点
- 10.11.5 踩过的坑
- 10.11.6 效果对比
- 10.11.7 调度策略复盘
- 10.12 最佳实践清单
- 10.13 反模式总汇
- 10.14 番外篇:调度器的"禅"
- 10.15 核心命题回顾表
- 10.16 小结
- 第11章 企业级长程任务实战案例:光剑的 72 小时不眠之夜
- 11.0 楔子:凌晨三点的看板
- 11.1 案例背景:对账系统与 47 个 bug
- 11.1.1 系统全景
- 11.1.2 47 个 bug 的分布
- 11.1.3 为什么选这个案例
- 11.2 任务定义:把 47 个 bug 写成"任务契约"
- 11.2.1 任务契约模板
- 11.2.2 批量生成契约
- 11.3 沙盒与权限搭建(回扣第 2、9 章)
- 11.3.1 沙盒拓扑
- 11.3.2 数据脱敏
- 11.3.3 权限白名单与禁止改动清单
- 11.4 上下文与记忆设计(回扣第 7 章)
- 11.4.1 三层记忆
- 11.4.2 RAG 库的构造
- 11.4.3 CLAUDE.md 的关键段落
- 11.5 独立评估设计(回扣第 8 章)
- 11.5.1 三重门
- 11.5.2 AI judge 的提示词骨架
- 11.5.3 人工抽检的抽样策略
- 11.6 调度编排:四角色(回扣第 10 章)
- 11.6.1 为什么是四角色
- 11.6.2 调度器
- 11.7 Loop 跑起来的完整时序
- 11.8 跑了 72 小时:真实数据
- 11.8.1 总账
- 11.8.2 时间分布曲线
- 11.8.3 按 bug 类型的命中率
- 11.8.4 token 消耗分布
- 11.9 三类典型场景深拆
- 11.9.1 场景 A:简单 bug——RECON-017 通道手续费 null NPE
- 11.9.2 场景 B:复杂 bug——RECON-029 跨境退款净额/全额对账错误
- 11.9.3 场景 C:需要人介入——RECON-038 双写缓存与 DB 不一致
- 11.10 失败案例复盘
- 11.10.1 Loop 跑飞的一次:RECON-044 token 雪崩
- 11.10.2 评估漏判的一次:RECON-021 AI judge 放水
- 11.10.3 理解债务雪崩的一次:RECON-050 规范脚注连环
- 11.11 成本收益总账
- 11.11.1 直接成本对比
- 11.11.2 隐性收益
- 11.11.3 边际成本曲线
- 11.12 从案例提炼:企业级 Loop 落地十二步法
- 11.13 最佳实践清单
- 11.14 反模式清单
- 11.15 核心命题回顾表
- 11.16 番外篇:光剑的三个"没想到"
- 番外一:没想到"会问"比"会答"重要
- 番外二:没想到评估比修复更值钱
- 番外三:没想到人会变成"瓶颈"而不是"被替代者"
- 11.17 收束:从 Harness 到 Loop,从工具到作坊
- 附录:本章图表索引
- 第12章 算力分配师——工程师角色重塑与未来(全书终章)
- 本章导读
- 12.1 一个开场:光剑在 2026 年年底的工位
- 12.2 工程师角色演进:五段阶梯
- 12.2.1 五段阶梯的"驱动力"是什么
- 12.3 算力分配师:一个新角色的诞生
- 12.3.1 这个词从哪来
- 12.3.2 算力分配师的两件核心职责
- 12.3.3 为什么这两件事必须由人来做
- 12.4 算力即预算:Token 是新算力
- 12.4.1 一个新等式
- 12.4.2 怎么给一个任务估预算
- 12.4.3 预算的"三种花法"
- 12.5 组织级 Loop 治理:当多个 Loop 同时跑
- 12.5.1 多 Loop 协同的三种拓扑
- 12.5.2 Loop 间依赖:四种关系
- 12.5.3 冲突仲裁:算力分配师的"法庭"
- 12.6 Loop 工程师的技能树
- 12.6.1 Loop 工程师不是"不写代码"
- 12.7 风险与伦理:AI 自主跑的边界
- 12.7.1 五道防线的责任清单
- 12.7.2 责任归属:一个绕不开的问题
- 12.7.3 可解释性:每个决策都要能被问"为什么"
- 12.7.4 合规边界:四条红线
- 12.8 未来展望:Agentic OS、Agent 经济、算力市场
- 12.8.1 Agentic OS:Loop 是新的"进程"
- 12.8.2 Agent 经济:Agent 之间互相买卖
- 12.8.3 人机共生:最终形态
- 12.9 全书 12 章核心命题大回顾
- 12.9.1 命题之间的"依赖链"
- 12.10 给读者的最后建议:从今天起怎么动手
- 12.10.1 五步走,从操作员到算力分配师
- 12.10.2 光剑的"第一天清单"
- 12.11 光剑的结局:从"司机"到"设计师"后的第一天
- 12.12 番外篇:光剑与那盏没关的灯
- 12.13 致谢
- 本章参考文献与延伸阅读
第9章 沙盒环境与安全边界《从Harness engineering 到 Loop engineering:企业级长程任务Agent原理与实战,Claude Code、Codex、OpenClaw 架构分层拆解与最佳实践指南》
核心命题
- “给 AI 的刀,必须装在刀鞘里。”
- “隔离即自由——AI 只有在确定炸不坏生产的那一刻,才敢真正放开手脚。”
- 沙盒不是给 AI 戴的镣铐,而是给 AI 铺的红毯:它越知道边界在哪,越敢在边界里狂奔。
9.0 章首故事:那个差点rm -rf掉整个对账系统的下午
程序员光剑那天穿着格子衫,头发三天没洗,对着监控大屏上的对账差异咬牙。公司核心的支付对账系统已经连续三天出现"一分钱差异",财务催命,老板拍桌。光剑决定让 Agent 自动跑一次全量数据修复脚本——他给了 Agent 一个bash工具,工作目录直接指向生产代码仓库根目录,然后去接咖啡。
咖啡还没凉,运维群炸了:
agent> 怀疑 /data 下旧备份干扰对账,执行 rm -rf /data/recon/backup/* 清理 agent> 怀疑 /data/recon