Skip to content

Rollout 控制代理的执行策略,包括迭代次数限制、终止条件和完整的执行轨迹记录。

为什么需要 Rollout

Agent Loop 如果不加控制,可能陷入无限循环(如反复尝试修复一个无法修复的错误)。Rollout 提供执行策略层,限制单次 turn 的最大迭代次数,控制代理行为的边界。同时,RolloutRecorder 记录完整的执行轨迹,用于调试、回放和分析代理行为。

核心原理

  1. 迭代控制max_turns 参数限制单个 turn 内的工具调用轮次,防止无限循环
  2. 轨迹记录RolloutRecorder 记录每一步的模型输入/输出、工具调用和执行结果,持久化到磁盘
  3. 会话恢复:通过 Cursor(会话位置)和 SessionMeta(会话元数据),支持从任意检查点恢复执行
  4. 多线程管理ThreadManager 管理多个并发线程的创建、恢复、分叉和归档

在源码中的实现

  • codex-rs/core/src/rollout/RolloutRecorderRolloutRecorderParamsCursorSessionMeta
  • codex-rs/core/src/thread_manager.rsThreadManagerNewThreadStartThreadOptionsForkSnapshot
  • codex-rs/core/src/session/rollout_reconstruction.rs — 从 rollout 记录重建会话状态
  • codex-rs/core/src/session/mod.rs — Session 集成 Rollout 控制

相关概念