# ADK 2.0の便利だけど知られていない機能
🌍 AIエージェントが重要なアクションを実行する前に、人間の確認を挟めたら安心だと思いませんか?
ADK 2.0のアクション確認機能は、ツール実行前にユーザーの承認を求めるフローを簡単に組み込める仕組みです。Boolean方式とAdvanced方式の2つのアプローチがあり、用途に応じて使い分けられます。
📌 タイトル:アクション確認 (Action Confirmations)
🔗 URL:
🧩 概要
アクション確認機能は、エージェントがツールを呼び出す際に実行を一時停止し、ユーザーの承認を得てから処理を続行する仕組みです。Boolean方式では `require_confirmation=True` を設定するか、動的に確認要否を判定する関数を渡せます。Advanced方式では `tool_context.request_confirmation` を使い、ヒントやペイロードを含む詳細な確認リクエストを送信できます。フローは「リクエストステージ(一時停止)→ レスポンスステージ(続行)」の2段階で構成されます。
🛠 使い方
Boolean方式は最もシンプルで、ツール定義時に `require_confirmation=True` を指定するだけです。
```python
from adk import FunctionTool
def delete_record(record_id: str) -> str:
# 削除処理
return f"Deleted {record_id}"
tool = FunctionTool(
func=delete_record,
require_confirmation=True # 常に確認を求める
)
```
Advanced方式では、ツール関数内で `tool_context.request_confirmation` を呼び出し、確認メッセージやペイロードをカスタマイズできます。リモート確認の場合は `/run_sse` エンドポイント経由で `FunctionResponse` を返すことで、外部システムからの承認も可能です。
🏗 本番システムへの組み込み方
・データ削除や課金処理など不可逆な操作には必ず確認フローを設定する
・動的確認関数を使って、金額や影響範囲に応じて確認の要否を切り替える
・リモート確認を活用して、Slackやメール経由での承認ワークフローを構築する
・確認待ちのタイムアウト処理を適切に設計し、放置されたリクエストを処理する
💡 ユースケース
🗑 データベースレコードの削除前に内容を表示して確認を求める
💳 一定額以上の決済処理で承認フローを挟む
📧 大量メール送信前に送信先リストと内容を確認させる
🔧 本番環境の設定変更前に変更内容のレビューを求める
⚠️ 注意点
アクション確認機能は `DatabaseSessionService` および `VertexAiSessionService` ではサポートされていません。これらのセッションサービスを使用する場合は、別の方法で確認フローを実装する必要があります。また、確認フロー中はエージェントの実行が一時停止するため、長時間の確認待ちが発生する場合のセッション管理に注意してください。
✨ アクション確認を適切に組み込むことで、エージェントの自律性を保ちながら人間の監督を確保できます。特に本番環境では、安全弁として積極的に活用しましょう。
#
ADK# #
AIAgent#