SessionConversation renders both inline, and the same turn continues once someone answers. See Approvals and human input for the full model.
Require approval for tools
SetrequireApproval on a per-session MCP server: true for every tool, or a list of tool names:
requires_action and the conversation shows the call with Approve and Reject. A rejection goes back to the agent as the tool’s result so it can adapt. Approvals are human-only: an agent can never approve a tool call.
Let the agent ask questions
Agents have a built-in tool for questions that need an answer before the turn can continue: free text, single select, or multi select, up to 20 per request. Answers are delivered to the agent as the tool’s output. To turn it off, set the workspace settingagentHumanInputEnabled: false.
Answering without the React UI
Custom React UIs can use
projectPendingApprovals and useHumanInputRequests from @opengeni/react/session.
If a user sends an ordinary message while a session waits, the pending approval or question is cancelled and the message is delivered as a Steer. “Actually, do this instead” is one action.
To notify people who are not watching, subscribe a workspace webhook to session.requiresAction and session.humanInput.requested.