# Claude Agent SDKの便利で実践的な使い方
✅ 危険な操作の前にユーザー承認を求め、6 種類の応答パターンで柔軟に制御できます。
承認とユーザー入力の処理は、`canUseTool` コールバックで危険操作を検知してユーザーに確認を求め、`AskUserQuestion` で要件収集を行う機能です。
📌 タイトル:承認とユーザー入力を処理する
🔗 URL:
🧩 概要
`canUseTool` で各ツール呼び出しをインターセプトし、承認/拒否/代替案提案など 6 パターンの応答が可能です。`AskUserQuestion` ツールでは、Claude がユーザーに複数選択肢の質問を投げて要件を収集できます。
🛠 使い方
`canUseTool` コールバックを定義し、ツール名・引数に基づいて `PermissionResultAllow` / `PermissionResultDeny` を返します。
🏗 実践的な使い方
・ファイル削除や Bash 実行を検知して y/n を問う対話的承認 UI を構築します。「全 Bash コマンドを `/tmp/sandbox` にスコープ」のように変更を加えて承認することも可能です。
・「承認して記憶」パターンで `updated_permissions` を使い、`.claude/settings.local.json` に永続化します。
・`AskUserQuestion` で「モバイルアプリのテックスタック」について選択肢を提示し、`plan` モードと組み合わせて変更前に要件収集する対話ワークフローを実現します。
💡 ユースケース
🛡 危険操作の対話的承認 UI
📋 複数選択肢による要件収集
🔐 承認ルールの永続化による学習
⚠️ 注意点
サブエージェントでは AskUserQuestion は使用できません。質問は 1〜4 個、選択肢は 2〜4 個の制限があります。Python では `can_use_tool` にストリーミングモードとダミー PreToolUse フックが必要です。
#
ClaudeAgentSDK# #
AI#