生产环境我没有实战过多Agent执行方面的内容,最近看了一下OpenClaw的信息,收获还是挺多的。以前了解的都比较碎片化,但人家设计的已经比较系统了。
一、前置核心结论
隔离是协作的前提
所有 Agent 天然完全隔离,杜绝文件冲突、上下文污染、权限越界;正因 Agent 互相隔绝,才需要 Spawn/Registry/Control/Announce 四大模块搭建通信桥梁,实现安全可控的多智能体协同。
二、三层 Agent 隔离体系(协作安全底座)
2.1三层强制隔离边界
-
Workspace 工作空间隔离:每个 Agent 专属独立文件目录,Shell 工具强制路径校验,禁止跨目录访问敏感配置,限制子 Agent 的数据访问范围。
-
agentDir 私有目录隔离:独立存储运行状态、密钥凭证、缓存配置,多 Agent 并行运行时状态互不干扰,杜绝密钥泄露。
-
tools/model 能力配置隔离:遵循最小权限,不同 Agent 绑定专属模型、工具集;翻译子 Agent 仅开放读取 / 搜索能力,禁止 Shell 执行。
2.1配置隔离规则
依靠 resolveAgentConfig() 实现配置解析:
显式配置 > 父配置继承 > 系统默认配置;
子 Agent 可继承父模型配置、单独覆盖工具权限,兼顾复用与定制。
三、Subagent 四大核心模块(协作完整生命周期)
整体流转链路:Spawn 创建子 Agent → Registry 登记户籍 → Control 运行调控 → Announce 结果回传
生产环境我没有实战过多Agent执行方面的内容,最近看了一下OpenClaw的信息,收获还是挺多的。以前了解的都比较碎片化,但人家设计的已经比较系统了。
一、前置核心结论
隔离是协作的前提
所有 Agent 天然完全隔离,杜绝文件冲突、上下文污染、权限越界;正因 Agent 互相隔绝,才需要 Spawn/Registry/Control/Announce 四大模块搭建通信桥梁,实现安全可控的多智能体协同。
二、三层 Agent 隔离体系(协作安全底座)
2.1三层强制隔离边界
-
Workspace 工作空间隔离:每个 Agent 专属独立文件目录,Shell 工具强制路径校验,禁止跨目录访问敏感配置,限制子 Agent 的数据访问范围。
-
agentDir 私有目录隔离:独立存储运行状态、密钥凭证、缓存配置,多 Agent 并行运行时状态互不干扰,杜绝密钥泄露。
-
tools/model 能力配置隔离:遵循最小权限,不同 Agent 绑定专属模型、工具集;翻译子 Agent 仅开放读取 / 搜索能力,禁止 Shell 执行。
2.1配置隔离规则
依靠 resolveAgentConfig() 实现配置解析:
显式配置 > 父配置继承 > 系统默认配置;
子 Agent 可继承父模型配置、单独覆盖工具权限,兼顾复用与定制。
三、Subagent 四大核心模块(协作完整生命周期)
整体流转链路:Spawn 创建子 Agent → Registry 登记户籍 → Control 运行调控 → Announce 结果回传
3.1 Spawn 模块:Subagent 生成器(负责「诞生」)
核心职责:安全创建隔离子 Agent,管控创建权限,防止资源雪崩。
两种运行模式
-
Run 模式(任务型):子 Agent 执行单次任务,结束立刻销毁,适合代码分析、文档翻译。
-
Session 模式(会话型):子 Agent 长期存活,支持多轮交互,适合持续监控、多轮问答。
两类沙箱权限策略
-
Inherit:继承父 Agent 全部权限,父子任务联动场景使用。
-
Require:子 Agent 必须主动申请权限,严格最小权限,安全性更高。
9 步生成流程
参数校验 → 嵌套深度校验 → 子 Agent 数量校验 → 白名单校验 → 解析配置 → 搭建隔离沙箱 → 实例化工具 → Registry 注册 → 启动运行
三道安全防线
maxSpawnDepth(限制嵌套层级)、maxChildrenPerAgent(限制单父最大子 Agent 数量)、allowAgents类型白名单,避免递归创建耗尽算力。
3.2 Registry 模块:户籍生命周期中心(负责「登记管理」)
核心职责:统一记录所有子 Agent 状态、父子关系,自动清理孤儿 Agent。
- 三大生命周期接口:
-
注册新建子 Agent
-
标记任务完成、留存结果
-
释放内存、目录等物理资源
-
持久化机制:状态增量落盘,进程崩溃重启后可恢复 Agent 生命周期。
-
孤儿清扫机制:定时 Sweeper 扫描,父 Agent 宕机则判定子 Agent 为孤儿,自动终止并回收资源,避免僵尸进程。
3.3 Control 模块:运行调度中枢(负责「运行干预」)
父 Agent 运行时管控子 Agent 的五大能力:
-
list:查询子 Agent 状态、内存、耗时,支撑运维面板;
-
kill:级联终止,杀掉父 Agent 时递归销毁所有子孙 Agent;
-
steer:软干预,插入引导指令,不中断当前任务、修正后续行为;
-
send:仅用于 Session 模式,追加消息实现多轮对话;
-
resolveTarget:兼容 ID、命名、层级路径三种寻址方式,简化跨 Agent 调用。
3.4 Announce 模块:通信通知枢纽(负责「结果上报」)
核心职责:子 Agent 完成任务 / 报错后,异步将消息推送父 Agent,实现 Fork-Join 并行汇总。
3 种消息投递通道
-
Queue 异步队列:进度推送、状态上报,非阻塞;
-
Steer 引导投递:下发后续任务指令,驱动父 Agent 流转流程;
-
Direct 同步投递:阻塞等待确认,用于全部子任务完成后的汇总节点。
关键机制:后代休眠唤醒
父 Agent 派发子任务后休眠,全部子 Agent 执行完毕再由 Announce 唤醒父 Agent 汇总结果,省去轮询巡检,节省 CPU 资源。
四、四大模块完整流转关系
-
父 Agent 调用 Spawn 生成隔离 Subagent;
-
Spawn 完成安全校验后,将子 Agent 注册写入 Registry;
-
父 Agent 通过 Control 模块随时查看、管控正在运行的子 Agent;
-
子 Agent 执行结束,经由 Announce 模块把结果推送父 Agent;
-
Registry 识别已完成 / 孤儿 Agent,执行资源清理,生命周期闭环。
五、整体架构逻辑总结
-
底层依靠三层隔离保证各个 Agent 相互独立、安全隔离;
-
上层四大模块分工串联子 Agent 全生命周期,打通隔离边界实现有序协作;
-
隔离底座 + 模块化协作,既不会出现状态污染,又能完成复杂任务拆解并行执行。
3.1 Spawn 模块:Subagent 生成器(负责「诞生」)
核心职责:安全创建隔离子 Agent,管控创建权限,防止资源雪崩。
两种运行模式
-
Run 模式(任务型):子 Agent 执行单次任务,结束立刻销毁,适合代码分析、文档翻译。
-
Session 模式(会话型):子 Agent 长期存活,支持多轮交互,适合持续监控、多轮问答。
两类沙箱权限策略
-
Inherit:继承父 Agent 全部权限,父子任务联动场景使用。
-
Require:子 Agent 必须主动申请权限,严格最小权限,安全性更高。
9 步生成流程
参数校验 → 嵌套深度校验 → 子 Agent 数量校验 → 白名单校验 → 解析配置 → 搭建隔离沙箱 → 实例化工具 → Registry 注册 → 启动运行
三道安全防线
maxSpawnDepth(限制嵌套层级)、maxChildrenPerAgent(限制单父最大子 Agent 数量)、allowAgents类型白名单,避免递归创建耗尽算力。
3.2 Registry 模块:户籍生命周期中心(负责「登记管理」)
核心职责:统一记录所有子 Agent 状态、父子关系,自动清理孤儿 Agent。
- 三大生命周期接口:
-
注册新建子 Agent
-
标记任务完成、留存结果
-
释放内存、目录等物理资源
-
持久化机制:状态增量落盘,进程崩溃重启后可恢复 Agent 生命周期。
-
孤儿清扫机制:定时 Sweeper 扫描,父 Agent 宕机则判定子 Agent 为孤儿,自动终止并回收资源,避免僵尸进程。
3.3 Control 模块:运行调度中枢(负责「运行干预」)
父 Agent 运行时管控子 Agent 的五大能力:
-
list:查询子 Agent 状态、内存、耗时,支撑运维面板;
-
kill:级联终止,杀掉父 Agent 时递归销毁所有子孙 Agent;
-
steer:软干预,插入引导指令,不中断当前任务、修正后续行为;
-
send:仅用于 Session 模式,追加消息实现多轮对话;
-
resolveTarget:兼容 ID、命名、层级路径三种寻址方式,简化跨 Agent 调用。
3.4 Announce 模块:通信通知枢纽(负责「结果上报」)
核心职责:子 Agent 完成任务 / 报错后,异步将消息推送父 Agent,实现 Fork-Join 并行汇总。
3 种消息投递通道
-
Queue 异步队列:进度推送、状态上报,非阻塞;
-
Steer 引导投递:下发后续任务指令,驱动父 Agent 流转流程;
-
Direct 同步投递:阻塞等待确认,用于全部子任务完成后的汇总节点。
关键机制:后代休眠唤醒
父 Agent 派发子任务后休眠,全部子 Agent 执行完毕再由 Announce 唤醒父 Agent 汇总结果,省去轮询巡检,节省 CPU 资源。
四、四大模块完整流转关系
-
父 Agent 调用 Spawn 生成隔离 Subagent;
-
Spawn 完成安全校验后,将子 Agent 注册写入 Registry;
-
父 Agent 通过 Control 模块随时查看、管控正在运行的子 Agent;
-
子 Agent 执行结束,经由 Announce 模块把结果推送父 Agent;
-
Registry 识别已完成 / 孤儿 Agent,执行资源清理,生命周期闭环。
五、整体架构逻辑总结
-
底层依靠三层隔离保证各个 Agent 相互独立、安全隔离;
-
上层四大模块分工串联子 Agent 全生命周期,打通隔离边界实现有序协作;
-
隔离底座 + 模块化协作,既不会出现状态污染,又能完成复杂任务拆解并行执行。