NEW

AskUserQuestionとは|Claudeが選択肢で質問する仕組みと使い方

AskUserQuestion(アスクユーザークエスチョン)とは、Claude Codeに組み込まれたツールで、Claudeが作業中に自分では決められない分岐に突き当たったとき、選択肢形式の質問をユーザーに提示して判断を仰ぐ仕組みです。 曖昧な指示のまま推測で突き進んで手戻りを生むのではなく、要件が固まっていない箇所を「聞く」ことで、意図とズレたまま実装が進むのを防ぎます。

このページでは、公式仕様(Claude Code / Agent SDK)で確認できる範囲に絞って、AskUserQuestionの役割・発動条件・表示のしくみ・実務での使いどころをまとめます。


AskUserQuestionが解決する問題

AIコーディングで最も無駄が生まれるのは、曖昧な指示をAIが勝手に解釈して、間違った方向に走り切ってしまうパターンです。「認証を追加して」と頼んだら、想定と違うライブラリで実装が完了していた、というような手戻りです。

AskUserQuestionは、この「暴走」を止めるための仕組みです。Claudeは判断に迷ったとき、黙って仮定を置くのではなく、選択肢を提示してユーザーに決定権を返します。


いつ発動するのか(発動条件)

AskUserQuestionは、いつでも質問するわけではありません。 公式の指針では、次の条件をすべて満たすときにのみ使うことになっています。

  • 依頼内容から答えが読み取れない
  • コードを見ても決められない
  • 妥当なデフォルト(慣例的な選び方)が存在しない
  • かつ、それがユーザーが決めるべき判断である

逆に、次のような場面では使いません

使わない場面 理由
慣例的なデフォルトがある選択 Claudeが妥当な既定を選んで進める
コードを読めば分かる事実の確認 自分で調べれば済む
「この方針で進めていい?」の確認 判断が本当にユーザー依存のときだけ聞く

つまり、確認の乱発でユーザーの手を止めないよう、本当にユーザーにしか決められないことだけを聞くように設計されています。


表示のしくみ

AskUserQuestionは、単なる自由記述の問いかけではなく、構造化された選択式UIとして表示されます。仕様上のポイントは次のとおりです。

  • 1回で1〜4問まとめて質問できる
  • 各質問は2〜4個の選択肢を持つ
  • 各選択肢には「ラベル(短い見出し)」と「説明(選ぶと何が起きるか)」が付く
  • 質問には短いヘッダー(チップ表示、最大12文字程度)が付く

「その他」で自由入力できる

すべての質問には、自動で 「その他(Other)」 が用意されます。提示された選択肢がどれもしっくりこない場合、ユーザーは自由入力で独自の回答を返せます。選択肢に縛られない設計です。

複数選択とおすすめ表示

  • 複数選択(multiSelect):排他でない選択肢(有効化したい機能を複数選ぶ等)では、複数回答を許可できる
  • 推奨オプション:Claudeが特定の選択肢を勧めたいときは、それを先頭に置き、ラベルに「(推奨)」を付けて提示する

プランモードとの相性が良い

AskUserQuestionが特に活きるのがプランモードです。プランモードでは、Claudeが実装に入る前にコードベースを調べ、計画を提案します。この「実装前」の段階で要件のヒアリングを行うことで、方針が固まってから手を動かせます。

  • 探索 → 不明点をAskUserQuestionで確認 → 計画を提示 → 承認 → 実装

要件を固めてから作業に入りたいインタラクティブな進め方に、プランモードとAskUserQuestionの組み合わせは向いています。


Agent SDKでの扱い

自分でエージェントを組む場合、AskUserQuestionは Agent SDK から扱えます。要点は次のとおりです。

  • AskUserQuestionは既定で利用可能
  • SDK側では canUseTool コールバックに AskUserQuestion として通知が届き、選択肢をユーザーに表示して選択結果を返す
  • tools 配列でツールを制限する場合(例:Read / Glob / Grep だけの読み取り専用エージェント)は、AskUserQuestionを配列に明示的に含めないと使えなくなる点に注意

読み取り専用エージェントでも「ユーザーに聞く」機能を残したいなら、ツール制限リストにAskUserQuestionを入れ忘れないようにします。


実務での使いどころ

このサイトを運用しているようなローカルCMS環境でも、AskUserQuestionは効きます。たとえば「SEO記事を書いて」のような依頼では、対象キーワード・想定読者・トーンなど、決めないと書き出せない要素があります。こうした要素を推測で埋めずに選択肢で確認すれば、書き直しの往復を減らせます。

要は、指示が曖昧なほど価値が出るツールです。プロンプトを完璧に書ききれないときの安全弁として機能します。


Google検索・AI検索の両方を意識するなら

AskUserQuestionは執筆フローそのものにも関わります。記事制作でこのツールに要件(キーワード・対象エンジン)を答えておくと、Google検索向けの構造化(見出し・FAQ)と、ChatGPTやPerplexityなどAI検索(GEO)向けの「引用されやすい一文」の両立を、方針のブレなく進めやすくなります。曖昧なまま書き始めて後から直すより、最初に分岐を潰しておくほうが速いという考え方です。


まとめ

  • AskUserQuestionは、Claudeが自分では決められないユーザー判断を選択式で聞くツール
  • 発動は本当に必要なときだけ。デフォルトで済む選択やコードで分かる確認には使わない
  • 1〜4問/各2〜4択、「その他」で自由入力、複数選択・推奨表示に対応
  • プランモードで要件ヒアリングに活躍
  • Agent SDKでは既定で有効。ツール制限時は明示的に含める必要がある

曖昧な指示による手戻りを減らす仕組みとして、AIに「聞かせる」ことを前提にした使い方を覚えておくと運用が安定します。


参考資料

よくある質問

AskUserQuestionツールとは何ですか?
Claude Codeに組み込まれたツールで、Claudeがタスクを進める中で自分では判断できない分岐に突き当たったとき、選択肢形式の質問をユーザーに提示して指示を仰ぐ仕組みです。既定で有効になっています。
AskUserQuestionはいつ発動しますか?
依頼内容・コード・妥当なデフォルトのいずれからも決められない、かつユーザーが決めるべき分岐に限って発動します。慣例的なデフォルトがある選択や、コードを読めば分かる事実の確認には使いません。
提示された選択肢以外を選べますか?
選べます。すべての質問には自動で「その他(Other)」が用意されており、自由入力で独自の回答を返せます。
お問い合わせはこちら

下記フォームより直接ご相談・お問い合わせいただけます。
内容を確認のうえ、担当より折り返しご連絡いたします。

10文字以上4000文字以内でご記入ください。

プライバシーポリシーを読む