ask_user を使用すると、エージェントは人間に1〜3個の構造化された質問を行い、
回答を待つことができます。これは、リクエスト、コード、または妥当なデフォルトから
エージェントが導き出せる情報や定型的な確認ではなく、真にユーザーが決定すべき事項のためのものです。
このツールはメインセッションでのみ使用できます。サブエージェントやその他の非プライマリ
実行では使用できません。
質問に回答する
サポートされている任意の会話画面から回答できます。- Web Control UI では、質問パネルがコンポーザーのすぐ上にドッキングされます。 複数の質問があるプロンプトでは、パネルに一度に1つの質問が表示され、短い ステッパー形式で順番に進みます。回答が確定するとパネルが閉じ、チャットには コンパクトな回答概要だけが残ります。
- Telegram、Discord、Slack では、選択肢が1つだけ選べる単一質問のプロンプトに ネイティブボタンが表示されます。
- プレーンテキストの返信は、どのチャンネルでも使用できます。番号、選択肢のラベル、 または自由記述の回答を返信してください。
Other オプションを追加してはいけません。
プラットフォームの動作
サポートされているすべての会話画面で回答できます。Web Control UI では、 展開中にコンポーザーを置き換えるドッキング型ステッパーが使用されます。折りたたむと、 細い質問バーの下に完全なコンポーザーが復元されます。iOS、macOS、Android では インラインカードが表示されます。複数の質問は、タッチ操作に適した意図的な表現として 積み重ねて表示されます。すべてのプラットフォームで、質問と回答の概要は時間経過によって 削除されることなく、アクティブなチャットのタイムラインに保持されます。また、Skip はどこでも使用できます。 複数質問や複数選択のプロンプトなど、ネイティブボタンを使用できないプロンプトは、 チャンネル上で読みやすいテキスト表示にフォールバックします。Control UI では 完全な構造化ステッパーが維持されます。タイムアウトと未回答
デフォルトのタイムアウトは900秒です。timeoutSeconds は
30〜3600秒の範囲に制限されます。
回答が届く前に質問が期限切れになるかキャンセルされた場合、ツールは
status: "no_answer" を返します。その後、エージェントは最善の判断で続行します。
エージェントの実行が中止されると、保留中の Gateway の質問もキャンセルされます。
ツールスキーマ
multiSelect: true を使用すると、ユーザーは複数の選択肢を選べます。すべての質問について、
回答値は配列として返されます。
回答済みの結果例:
モデル向けガイダンス
モデル向けの契約では、エージェントに次のように指示します。- 真にユーザーが決定すべき事項によって作業が進められない場合にのみ質問する。
- 質問は1つを優先し、最大でも3つまでにする。
- 推奨する選択肢を先頭に置き、そのラベルの末尾に
(Recommended)を付ける。 - 自由記述は自動的に追加されるため、作成する選択肢に
Otherを含めない。 no_answerの後は最善の判断で続行する。
ask_user を使用すべきではありません。