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 accepts the parameter but rejects every HITL field, since parallel branches cannot be individually paused.
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 doesn’t support any HITL fields. Passing unsupported fields 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 how long to wait for a user response. If the timeout expires,on_timeout determines what happens. The timeout only applies to Step pauses; other components ignore it.
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.