v2.5.15

April 9, 2026

Pause workflow steps after execution for human review with output review

Workflows can now pause after a step completes and wait for a human to inspect the output before it flows to the next step. Configured via HumanReview(requires_output_review=True) on a Step, Router, or Loop, the run pauses with the full step output available in req.step_output. Reviewers can approve, reject with optional feedback to trigger a retry, or edit the output directly — giving teams a structured, auditable post-execution review gate at any point in a pipeline without custom orchestration code.

Details:

  • requires_output_review accepts a bool or a callable predicate that receives the StepOutput at runtime — enabling conditional review (e.g., only pause for outputs over 200 characters, or outputs containing sensitive keywords)
  • Four reviewer actions: confirm() to approve as-is, reject() to reject, reject(feedback="...") to pass correction instructions back to the agent on retry, and edit("new output") to accept with inline modifications
  • on_reject controls rejection behavior: skip, cancel, retry, or else_branch; when on_reject=OnReject.retry, the step re-executes with feedback injected into the agent's next message
  • max_retries (default 3) caps the number of retry attempts before the step is treated as a final rejection
  • Supported on Step, Router, and Loop (via requires_iteration_review on HumanReview for per-iteration review in loops)
  • Flat parameter requires_output_review=True on Step is still supported for backward compatibility

See the Output Review docs for more.