Overview
Ahuman node pauses execution to collect a response from a human operator. It consumes no LLM tokens: it renders an optional prompt, blocks until a response arrives (or a timeout expires), and writes the collected text to the workflow context exactly like an agent’s output. Downstream nodes and when: edges then gate on that response.
Node fields
Timeout behaviour
HumanInputError is exported from the top-level package:
Supplying responses programmatically
By default the node reads a single line from stdin. When driving SirenSpec from Python — tests, web backends, chat bridges — pass ahuman_input_fn coroutine to execute or execute_streaming to supply responses without a terminal:
Gating downstream nodes
Because the response is written to the context, you can branch on it withwhen: edges:
"yes", the publish node is never activated.
When to use a human node
Use a human node when:- A draft, plan, or destructive action needs explicit sign-off before proceeding.
- A human must supply a value the workflow cannot derive (a decision, a correction, a missing fact).
- You want a reviewable checkpoint inside an otherwise automated pipeline.
- The decision can be expressed as a deterministic rule — use a
when:edge on an upstream agent’s output instead.
Cookbook recipe
- Content Approval — a human approval gate between draft and publish.