Sub-Agent 是从现有 Agent 运行中派生的后台 Agent,运行在独立 Session 中,完成后将结果推送回发起者的频道。
核心价值
- 并行执行:研究/长任务/慢工具不阻塞主 Agent
- 默认隔离:独立 Session + 可选沙箱
- 可嵌套:支持 orchestrator 模式(主 Agent → 编排 Agent → 工作 Agent)
- 成本可控:Sub-Agent 可使用更便宜的模型
斜杠命令
/subagents list
/subagents kill <id|#|all>
/subagents log <id|#> [limit] [tools]
/subagents info <id|#>
/subagents send <id|#> <message>
/subagents steer <id|#> <message>
/subagents spawn <agentId> <task> [--model <model>] [--thinking <level>]
sessions_spawn 工具参数
| 参数 | 说明 |
|---|---|
task | 任务描述(必填) |
label | 可选标签 |
agentId | 指定在哪个 Agent 下运行 |
model | 覆盖 Sub-Agent 模型 |
thinking | 覆盖思维级别 |
runTimeoutSeconds | 超时秒数(0 = 不超时) |
thread | true 时绑定到频道线程 |
mode | run(一次性)或 session(持久) |
cleanup | delete 或 keep |
sandbox | inherit 或 require |
嵌套 Sub-Agent:orchestrator 模式
默认 maxSpawnDepth: 1(Sub-Agent 不能再派生子 Agent)。设为 2 启用编排模式:
json
{
"agents": {
"defaults": {
"subagents": {
"maxSpawnDepth": 2,
"maxChildrenPerAgent": 5,
"maxConcurrent": 8,
"runTimeoutSeconds": 900
}
}
}
}深度层级
| 深度 | Session Key | 角色 | 能否派生? |
|---|---|---|---|
| 0 | agent:<id>:main | 主 Agent | 始终可以 |
| 1 | agent:<id>:subagent:<uuid> | 编排 Agent | 仅 maxSpawnDepth >= 2 |
| 2 | agent:<id>:subagent:<uuid>:subagent:<uuid> | 工作 Agent | 不能 |
结果冒泡链
- 深度 2 工作完成 → 通知深度 1 编排 Agent
- 深度 1 综合结果完成 → 通知主 Agent
- 主 Agent 接收并交付给用户
线程绑定 Session(Discord)
json
{
"channels": {
"discord": {
"threadBindings": {
"enabled": true,
"idleHours": 1,
"maxAgeHours": 24,
"spawnSubagentSessions": true
}
}
}
}线程绑定流程:
- 用
sessions_spawn(thread: true)派生 - OpenClaw 创建或绑定线程到该 Session
- 该线程的后续消息路由到绑定的 Session
/unfocus手动解绑
线程控制命令:
/focus <subagent-label|session-key>
/unfocus
/agents
/session idle <duration|off>
/session max-age <duration|off>
自动归档
json
{
"agents": {
"defaults": {
"subagents": {
"archiveAfterMinutes": 60
}
}
}
}- Sub-Agent Session 在 60 分钟后自动归档
cleanup: "delete"在通知后立即归档- 归档保留转录文件(重命名为
*.deleted.<timestamp>)
安全控制
Allowlist:
json
{
"agents": {
"list": [{
"id": "main",
"subagents": {
"allowAgents": ["worker-1", "worker-2"]
}
}]
}
}allowAgents: ["*"]:允许派生任何 Agent- 沙箱继承保护:沙箱化 Session 不能派生非沙箱子 Agent
工具权限(按深度)
- 深度 1(编排 Agent):可使用
sessions_spawn、sessions_send、sessions_list - 深度 2(工作 Agent):默认不获得 Session 工具
- 两个深度都默认不获得频道投递工具(需通过
message工具显式发送)
成本优化建议
json
{
"agents": {
"defaults": {
"subagents": {
"model": "anthropic/claude-haiku-4-5",
"thinking": "off"
}
}
}
}主 Agent 保持高质量模型,Sub-Agent 使用便宜模型。
与 ACP Harness 的区别
| Sub-Agent | ACP Harness | |
|---|---|---|
| 适用场景 | 内部后台任务 | Codex/Claude Code/Gemini CLI |
| 调用方式 | sessions_spawn(内置) | sessions_spawn runtime="acp" |
| 工具访问 | 继承 OpenClaw 工具 | 目标 CLI 的工具集 |
原文:Sub-Agents - OpenClaw | 来源:OpenClaw 官方文档