AI
2025/12/26
小山 佳祐

【AIエージェント】ADK Web UIについて

AI

Google ADK Web UI をローカル環境で起動し、既存のエージェントと対話しながらデバッグ・評価する方法を解説。UI で確認できる情報やトレースの見方も紹介します。

はじめに

前回の記事では、Google ADK(Agent Development Kit)を用いて、将棋・オセロ・チェスのニュースを取得するエージェントを作成しました。


今回は、そのエージェントを ブラウザ上の Web UI から操作・観察できる「ADK Web UI」 にフォーカスします。




  • ターミナルからの対話だけだと、


    「中でどんなプロンプトが投げられているのか?」


    「どのツールがどう呼ばれているのか?」


    を把握しづらいところがあります。




ADK Web UI を使うと、これらを 視覚的に追いかけながらデバッグ・評価 できるようになります。


概要

ADK Web UI は、Google の Agent Development Kit(ADK)に統合されている開発者向け Web UI です。今回は実際にADK Web UIを使用し、使用感などを確認していきます。

使用方法

ここでは、前回作成したエージェント(


shogi_info_agent

)が正常に動く状態 を前提に、Web UI の起動~アクセスまでの手順を整理します。


1. 親ディレクトリに移動する


前回の記事と同様、プロジェクト構成は次のようになっているとします。




agent_dev
├─ .venv/
└─ shogi_info_agent/
├─ __init__.py
├─ agent.py
└─ .env

まずは PowerShell で プロジェクトのルートディレクトリ に移動します。



cd ./agent_dev


2. 仮想環境の有効化


次に、uv で作成した仮想環境を有効化します。




.\.venv\Scripts\Activate.ps1


プロンプトの先頭に (.venv) のような表示が出れば OK です。


この状態で実行するコマンドは、すべてこの仮想環境の Python / パッケージを利用 することになります。


3. Web UI の起動


仮想環境が有効化された状態で、次のコマンドを実行します。




adk web

しばらくすると、コンソール上にローカルサーバの URL が表示されます(例):



http://127.0.0.1:8000


4. ブラウザでアクセス


表示された URL(通常は http://127.0.0.1:8000)をブラウザに入力すると、


ADK Web UI のトップページにアクセスできます。





  • 右側:エージェントとのチャット画面

  • 左側:エージェントやツールの定義、トレース情報などの詳細ビュー


といった構成になっており、**ターミナルで adk run していたときの対話を、そのまま GUI で行えるイメージです。


質問と応答の確認


ここでいくつか質問をし、それに対する応答を確認しましょう。


1,将棋に関するニュースを教えてください



  • 右側のチャット欄に上記の質問を打ち込むと、

  • get_shogi_news が呼び出され、日本将棋連盟の RSS から取得した最新ニュースが表示されます。




2,チェスのニュースを2つ箇条書きで教えてください



  • 今度はチェス用のツール get_chess_news を用いて、

  • 「件数 2」「箇条書き」といった条件を踏まえたレスポンスが返ってきます。




 

確認できること

ADK Web UI が便利なのは、単なるチャット UI にとどまらず、エージェントの内部挙動をかなり細かく可視化できる点 にあります。ここでは、主に確認できる代表的なポイントをまとめます。


1. エージェントの定義と構成の可視化



  • どのエージェントが定義されているか

  • それぞれのエージェントがどのツールを持っているか

  • どのような説明(description)や instruction を持っているか


といった情報を、UI 上で一覧できます。


今回の例だと、



  • boardgame_info_agent

    • 使用モデル:openai/gpt-4o-mini

    • ツール:get_shogi_news, get_othello_news, get_chess_news




といった構成が視覚的に確認できます。


2. プロンプトのテストとデバッグ


Web UI のチャット欄からプロンプト(指示文)を試し打ちできるので、



  • 質問文を少し変えたときの挙動

  • 曖昧な問い合わせに対する応答

  • 箇条書き / 要約などのフォーマット指定


などを その場で試しながらチューニング できます。ターミナルでも同じことはできますが、


Web UI だと「過去のやり取り」「トレース情報」「ツール呼び出し」が一画面で見えるので、


“どこが悪さをしているのか” を掘りやすい のがメリットです。


3. ツール利用の監視(Trace ビュー)


左側のメニューから 「Trace」→特定のイベント(例:call_llm) をクリックすると、



  • どのエージェントが

  • どのツールを

  • どのような引数で呼び出したか


といった情報を以下のように時系列に追うことができます。


たとえば、将棋ニュースの質問では、






  1. boardgame_info_agent が LLM にプロンプトを投げる

  2. LLM が「get_shogi_news(limit=1) を呼ぶべき」と判断してツール呼び出しを生成

  3. ツールの実行結果(RSS から取得したニュース)が LLM に戻る

  4. それを日本語で整形して最終回答を返す


という一連の流れが、Trace 上にイベントとして記録されます。


4. Request / Response の中身の確認


Request 例




model: "openai/gpt-4o-mini"
config:
system_instruction: "あなたは日本語のアシスタントです。常に日本語で、簡潔かつ正確に回答してください。ユーザーの指示に応じて、必要なら下記ツールを呼び出して結果を要約して提示します。- get_shogi_news(limit: int=1) - get_othello_news(limit: int=3) - get_chess_news(limit: int=3) ツールから返る report を整えて、箇条書きで提示してください。 You are an agent. Your internal name is "boardgame_info_agent". The description about you is "将棋・オセロ・チェスの最新情報を取得して要約するエージェント"."
tools:
- name: "get_shogi_news"
description: "日本将棋連盟のRSS/Atomから最新ニュースを取得..."
- name: "get_othello_news"
description: "PR TIMES のサイトマップから最新の記事URLを取得..."
- name: "get_chess_news"
description: "チェス掲示板のRSSから最新トピックを取得..."
contents:
- role: "user"
parts:
- text: "将棋に関するニュースを教えてください"


Response 例(ツール呼び出し)



content:
parts:
- function_call:
id: "call_mVByHvjk7SXo98TgfYv6y2bQ"
name: "get_shogi_news"
args:
limit: 1
role: "model"
usage_metadata:
prompt_token_count: 363
candidates_token_count: 16
total_token_count: 379


ここまで見えると、



  • システムプロンプトがちゃんと渡っているか

  • ツールの宣言が意図した通りになっているか

  • LLM がどのツールをどの引数で呼ぼうとしているか


といった点を細かく調査できます。


プロンプト調整やツール設計のデバッグにはかなり有用 です。


終わりに

本記事では、



  • ADK Web UI がどういう位置付けのツールなのか

  • ローカル環境で adk web を起動して、既存のエージェントと対話する方法

  • Web UI 上で何が確認できるのか(Trace / Request / Response など)


をざっくり紹介しました。


ターミナルだけで開発していると、



  • 「とりあえず動いてはいるけど、中で何が起きているか分からない」

  • 「ツールの呼び出し方がおかしい気がするが、ログの追い方が面倒」


といった行き詰まりが起きがちですが、


ADK Web UI を使うと、エージェント開発の試行錯誤サイクルをかなり高速化 できます。


New call-to-action