ask_user
When an agent needs a decision from you, it asks with a question card: the question, a button per choice, and room for a free-text answer. You answer with one tap, from any device, and the agent continues with your answer.
Behind the card is a tool the agent calls. Which tool depends on the
provider: some bring their own question tool, which OAR turns into a card;
for the others OAR supplies one called ask_. This is the one agent tool
where the providers differ in more than the name.
What you see #
- A card in the conversation with the question and its choices. A choice answers with one click.
- A question that allows several answers shows checkmarks and one Reply with selection button. The reply lists every ticked choice, plus anything you typed.
- A request for several values at once shows as a form with one field each.
- A push notification, if you have switched them on for questions.
- The turn waits while the card is open. A turn that waits on a card is never treated as stuck.
By provider #
| Provider | The tool behind the card | Several answers | Several questions in one call |
|---|---|---|---|
| Claude, Claude Cloud | Claude's own Ask |
yes | yes, one card after another |
| DeepSeek Added in 0.9.17 | Claude Code's Ask, as on Claude |
yes | yes, one card after another |
| GitHub Copilot and OpenAI, SDK engine | OAR's ask_, in place of the built-in one |
yes, with multi_ Added in 0.9.3, or when the question says "select all that apply" |
no |
| GitHub Copilot and OpenAI, extension engine | Copilot's own ask_ |
no; only a form field that takes a list | forms with several fields |
| Cursor | OAR's ask_ |
yes, with multi |
yes, 1 to 4, one card after another |
| Grok | none |
Grok has no question cards. Its agent protocol has no way to ask the user, so a Grok agent can only ask in its reply text and wait for your next message.
On Copilot's SDK engine, every card with two or more choices also has a Select several switch, so you can give more than one answer even when the agent did not ask for that.
How long a card waits #
A card waits 8 hours for an answer; on Copilot's extension engine, 2 hours. After that the agent is told that nobody answered and continues according to the conversation's relay mode.
What agents are told #
- To ask through the question tool, never as plain text in a reply. A question in plain text shows no buttons and ends the turn.
- To give a short list of choices, and to leave them out only when the answer has to be free text.
- To ask even in autopilot (relay mode) when your input is truly needed.
Parameters #
OAR's ask_user on Copilot's SDK engine #
| Parameter | Type | |
|---|---|---|
question |
text, required | the question |
choices |
list of texts | a button per choice; the relay keeps the first 8 and drops the rest |
multi_ |
true | false | you may pick several; the answer lists every pick, separated by , |
{
"question": "Which database should the new service use?",
"choices": ["PostgreSQL", "SQLite", "Keep the current one"]
}
The agent gets back User selected: Postgre, or User responded: … for a
free-text answer.
OAR's ask_user on Cursor #
| Parameter | Type | |
|---|---|---|
questions |
list of 1 to 4 questions, required | |
questions[]. |
text, required | the question |
questions[]. |
text | a short label above the question |
questions[]. |
list of 2 to 6, required | each with a label (required) and a description |
questions[]. |
true | false, default false | you may pick several |
{
"questions": [
{
"header": "Database",
"question": "Which database should the new service use?",
"options": [
{ "label": "PostgreSQL", "description": "What the other services use" },
{ "label": "SQLite", "description": "No server to run" }
]
}
]
}
You can always answer in free text instead of picking an option. The agent gets each question back with its answer.
The providers' own tools #
Claude's Ask (also used by DeepSeek chats, which run Claude
Code) and Copilot's built-in ask_ belong to those providers; their parameters are theirs to define and can change with a
provider update. OAR takes the question as the provider hands it over, shows
the card, and returns your answer in the form the provider expects.
Questions from other sessions #
A question card can also be answered by another agent, when you let agents
work with other sessions: relay_'s
answer_.
Agents are told to ask you first unless you told them to decide. A relay's own
approval cards (for starting sessions, for watching them, and the ask and plan
approvals) can only be answered by you.