概述
当消息到达时 Session 正在运行,OpenClaw 可以将该消息注入当前运行时(而非启动新运行)。Steering 不中断正在执行的工具调用,而是在模型边界处批量投递。
核心要点
PI 运行时的 Steering 边界:
- 助手请求工具调用
- PI 执行当前助手消息的工具调用批次
- PI 发出 turn end 事件
- PI 排空所有待投递的 steering 消息
- PI 在下一次 LLM 调用前将这些消息作为用户消息追加
这保证了工具结果与请求它的助手消息配对,然后让下一次模型调用看到最新用户输入。
Codex app-server 的差异:
- 使用
turn/steer接口而非 PI 内部队列 steer模式:批量发送一个turn/steer请求queue模式:发送多个独立turn/steer请求
各模式对比:
| 模式 | 当前运行行为 | 后续 followup |
|---|---|---|
steer | 在下一个运行时边界批量注入(默认) | 仅在 steering 不可用时回退 |
queue | 旧版逐条注入 | 仅在 steering 不可用时回退 |
steer-backlog | 同 steer | 同时保留为 followup |
followup | 不 steer | 当前运行结束后执行 |
collect | 不 steer | 合并为一个 followup turn |
interrupt | 中止当前运行 | 无 |
Debounce 行为:
debounceMs适用于 followup 投递(collect、followup、steer-backlog、steer 回退)- PI 的 active steer 不使用 debounce(自然在模型边界批量处理)
- Codex harness 使用 debounce 作为安静窗口后发送批量
turn/steer
Scope:Steering 始终针对当前活跃的 Session 运行,不创建新 Session,不改变工具策略。
相关页面
- queue — 命令队列模式与配置
- agent-loop — Agent 执行循环
- streaming — 流式输出机制