HumanReview groups all HITL settings into a single object instead of passing them as separate parameters. Step, Loop, Router, Condition, and Steps accept human_review=HumanReview(...). Parallel rejects every requires_* field because parallel branches cannot be individually paused. Behavior fields set on Parallel have no effect.
human_review and flat parameters are provided, human_review takes priority.
All Fields
Supported Fields by Component
Not every field works on every component. Passing an unsupportedrequires_* flag raises a ValueError at construction time. The behavior fields (on_reject, on_error, max_retries, timeout, on_timeout) are not validated; they only take effect on the components marked below.
Condition and Steps only support
requires_confirmation. Parallel rejects any requires_* field. Passing an unsupported mode raises a clear error:
Validation Rules
requires_output_reviewandrequires_iteration_reviewcannot both beTruein the same config.- Each component validates at construction time. You get a clear error if a field is unsupported.
HITL Modes
Pre-execution: Confirmation
Pause before a step runs. The user approves or rejects.Pre-execution: User Input
Collect parameters from the user before execution.Post-execution: Output Review
Pause after a step completes so the user can review the output. Supported on Step and Router.Per-iteration: Iteration Review
Pause after each loop iteration for review. Supported on Loop only.Timeout
Set a timeout for a Step confirmation or output review. If the timeout expires,on_timeout determines what happens when continue_run() is called. Step user-input pauses and other components ignore timeout policies.
Serialization
HumanReview serializes to a single "human_review" key in the workflow state. Deserialization reads "human_review" first, then falls back to flat keys for backward compatibility with existing persisted data.
requires_output_review predicate serializes as True. Reapply the callable after reconstructing a workflow if review should remain conditional.