乐于分享
好东西不私藏

OpenClaw会话树型依赖-下篇(配置与API)

OpenClaw会话树型依赖-下篇(配置与API)

六、配置参数

配置参数定义在‘src/config/types.agent-defaults.ts’和‘src/config/zod-schema.agent-defaults.ts’两个文件中。详细参数如下表:
参数
默认值
范围
说明

maxSpawnDepth

1
1-5

最大嵌套深度(1=不允许嵌套)

maxChildrenPerAgent

5
1-20

每个父会话最大活跃子会话数

maxConcurrent

8

≥1

全局并发 subagent 上限

archiveAfterMinutes

60
≥1

子 agent 会话自动归档时间

runTimeoutSeconds

0
≥0

单次 run 超时(0=无超时)

announceTimeoutMs

90000
≥1

Announce 投递超时(90s)

model

子 agent 默认模型

thinking

子 agent 默认思考级别

内部超时常量的具体参数如下表:

常量
说明

Announce 普通超时

5 min

非 completion 消息的 announce 到期 

Announce 硬超时

30 min 

completion 消息流的最终到期

最大 announce 重试

3 次 

重试次数上限

生命周期错误宽限

15 s 

瞬态错误等待窗口

Steer 速率限制

2 s 

同一目标最小转向间隔

Sweeper 间隔

60 s 

定时归档扫描

七、Gateway API

定义在‘src/gateway/server-methods/sessions.ts’文件中,具体参数如下表:
端点
功能
树相关参数

sessions.list

列出会话

‘spawnedBy’(按父会话过滤)、‘agentId’、’label‘

sessions.resolve

解析会话 key

支持 partial match

sessions.patch

修改会话元数据

‘spawnDepth’、‘subagentRole’、’subagentControlScope‘、’spawnedBy‘

sessions.get

获取会话消息

‘key’、‘limit‘

sessions.delete

删除会话 

’emitLifecycleHooks‘

sessions.reset

重置会话

’reason‘

sessions.preview

批量预览

’keys[]‘

`spawnedBy`过滤逻辑为精确匹配,排除`unknown`和`global`系统会话。

八、Session Fork(会话分叉)

定义在 ‘src/auto-reply/reply/session-fork.ts‘,与 spawn 不同的另一种创建子会话方式:
- 调用 ‘SessionManager.createBranchedSession()‘从父 transcript 分叉- 新会话 header 包含 ‘parentSession’ 引用- 受 ‘parentForkMaxTokens‘(默认 100,000 tokens)限制,防止继承近满的上下文- 分叉后子会话的 ‘forkedFromParent’ 标记为 ‘true

九、关键设计模式总结

设计模式
实现方式
目的

树形层级

‘spawnedBy’+ ‘spawnDepth‘

明确的父子拓扑

角色区分

orchestrator / leaf 

控制 spawn 权限传播

BFS 遍历

’forEachDescendantRun()‘

查询任意子树

级联杀死

递归 DFS + visited Set

父死子亡

后代等待

’wakeOnDescendantSettle‘

确保所有后代完成后父才 announce

指数退避

 1s → 2s → 4s → 8s

announce 重试

宽限期

15s 错误缓冲

容忍 provider 瞬态错误

磁盘持久化

run 记录写磁盘 + 重启恢复

跨进程存活

权限隔离

owner 校验 + allowlist + sandbox

防越权操控