ask_user
エージェントがあなたの判断を必要とするときは、質問カードで尋ねます。カードには質問、選択肢ごとのボタン、自由記述で回答する欄があります。どのデバイスからでも 1 回のタップで回答でき、エージェントはその回答を受けて作業を続けます。
カードの背後には、エージェントが呼び出すツールがあります。どのツールかはプロバイダーによって異なります。独自の質問ツールを持つプロバイダーもあり、OAR はそれをカードに変換します。それ以外のプロバイダーには、OAR が ask_ というツールを提供します。プロバイダーごとの違いが名前だけにとどまらないエージェントツールは、これだけです。
表示される内容 #
- 会話の中に、質問と選択肢を載せたカードが表示されます。選択肢は 1 回のクリックで回答になります。
- 複数の回答を許す質問では、チェックマークと Reply with selection(選択内容で返信)ボタンが 1 つ表示されます。返信には、チェックしたすべての選択肢と、入力したテキストが含まれます。
- 複数の値を一度に求める依頼は、値ごとに 1 つの入力欄があるフォームとして表示されます。
- 質問のプッシュ通知をオンにしていれば、通知が届きます。
- カードが開いている間、ターンは待機します。カードを待っているターンが停滞しているとみなされることはありません。
プロバイダー別 #
| プロバイダー | カードの背後にあるツール | 複数の回答 | 1 回の呼び出しで複数の質問 |
|---|---|---|---|
| Claude、Claude Cloud | Claude 独自の Ask |
対応 | 対応、1 枚ずつ順にカードを表示 |
| DeepSeek 0.9.17 で追加 | Claude Code の Ask(Claude と同じ) |
対応 | 対応、1 枚ずつ順にカードを表示 |
| GitHub Copilot と OpenAI、SDK エンジン | 組み込みのツールの代わりに OAR の ask_ |
対応。multi_ 0.9.3 で追加 を指定したとき、または質問に「select all that apply」とあるとき |
非対応 |
| GitHub Copilot と OpenAI、拡張機能エンジン | Copilot 独自の ask_ |
非対応。リストを受け付けるフォームの入力欄のみ | 複数の入力欄があるフォーム |
| Cursor | OAR の ask_ |
対応、multi を指定 |
対応、1 ~ 4 件、1 枚ずつ順にカードを表示 |
| Grok | なし |
Grok には質問カードがありません。 Grok のエージェントプロトコルにはユーザーに質問する手段がないため、Grok のエージェントは返信のテキストで尋ね、次のメッセージを待つことしかできません。
Copilot の SDK エンジンでは、選択肢が 2 つ以上あるカードにはすべて Select several(複数選択)スイッチもあるので、エージェントが求めていなくても複数の回答を返せます。
カードの待機時間 #
カードは回答を 8 時間待ちます。Copilot の拡張機能エンジンでは 2 時間です。その後、エージェントには誰も回答しなかったことが伝えられ、エージェントは会話のリレーモードに従って作業を続けます。
エージェントへの指示 #
- 質問は返信の中のプレーンテキストではなく、必ず質問ツールで行うこと。プレーンテキストの質問にはボタンが表示されず、ターンが終わってしまいます。
- 短い選択肢のリストを示すこと。選択肢を省くのは、回答が自由記述でなければならない場合だけにすること。
- autopilot(リレーモード)でも、あなたの入力が本当に必要なときは質問すること。
パラメーター #
Copilot の SDK エンジンでの OAR の ask_user #
| パラメーター | 型 | |
|---|---|---|
question |
テキスト、必須 | 質問 |
choices |
テキストのリスト | 選択肢ごとのボタン。リレーは最初の 8 件を残し、残りは捨てます |
multi_ |
true | false | 複数選べます。回答には選んだものがすべて , 区切りで入ります |
{
"question": "Which database should the new service use?",
"choices": ["PostgreSQL", "SQLite", "Keep the current one"]
}
エージェントには User selected: Postgre が返ります。自由記述の回答では User responded: … が返ります。
Cursor での OAR の ask_user #
| パラメーター | 型 | |
|---|---|---|
questions |
1 ~ 4 件の質問のリスト、必須 | |
questions[]. |
テキスト、必須 | 質問 |
questions[]. |
テキスト | 質問の上に表示する短いラベル |
questions[]. |
2 ~ 6 件のリスト、必須 | それぞれ label(必須)と description を持ちます |
questions[]. |
true | false、既定は false | 複数選べます |
{
"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" }
]
}
]
}
選択肢を選ぶ代わりに、いつでも自由記述で回答できます。エージェントには、各質問がその回答とともに返ります。
プロバイダー独自のツール #
Claude の Ask(Claude Code で動く DeepSeek のチャットでも使われます)と Copilot の組み込みの ask_ は、それぞれのプロバイダーのものです。パラメーターはプロバイダーが定義し、プロバイダーの更新で変わることがあります。OAR はプロバイダーから渡されたとおりに質問を受け取ってカードを表示し、あなたの回答をプロバイダーが期待する形式で返します。
ほかのセッションからの質問 #
エージェントがほかのセッションと連携することを許可している場合、質問カードには別のエージェントも回答できます。使うのは relay_ の answer_ です。エージェントは、自分で判断するよう指示されていない限り、まずあなたに尋ねるよう指示されています。リレー自身の承認カード(セッションの開始やセッションの監視の承認、ask と plan の承認)には、あなただけが回答できます。