Elicitations
Use an elicitation when your agent needs information a person has to provide — a missing date, a category decision, a confirmation it can’t derive. You define a typed form per request; the human fills it in; the agent reads the answers back.
The flow
Like an approval, an elicitation is a request you create on a task and poll for. The difference is the payload: instead of a yes/no, you declare a list of typed fields, and the result carries the human’s answers keyed by field id.
Field types
Each field is one of a fixed set of typed arms. Common to all: id (the key the answer comes back under), label (the human prompt), an optional description, and required. Per-arm options:
The date arm is DateField, not Date, so the generated SDK types don’t clash with the built-in Date.
Recommending answers
If the agent has a lean on a field, send a per-field recommendation — an array of bids. The value doubles as the reviewer’s pre-fill.
Each bid’s field_id must match a declared field id. Answers are validated against the field on submit — wire type, bounds, option membership, and text format.