Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Creando agentes con ADK

2025年09月12日に「Dev.to」が公開したITニュース「Creando agentes con ADK」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

GoogleはPython製の開発キットADKを公開した。これは、大規模言語モデルを活用し、推論・計画・行動できる「AIエージェント」を簡単に開発できる。Web検索や外部ツールと連携して複雑なタスクも自動処理でき、AI開発の初心者でも手軽にAIエージェント作りを始められる。

出典: Creando agentes con ADK | Dev.to公開日:

ITニュース解説

AIエージェントとは、単に与えられた質問に答えるだけでなく、複雑な状況を自ら考え、計画を立て、具体的な行動を起こして課題を解決する、非常に高度な人工知能プログラムのことだ。例えば、人間が「今日の天気は?」と尋ねたら、多くのAIは蓄積された情報から答えを出すが、AIエージェントは「今日の天気予報を調べて、もし雨なら傘を持っていく計画を立てて、さらに最適な通勤ルートを検索して教えてくれる」といった、より能動的で複雑な一連の作業を実行できる。

この「思考」の核となるのが、大規模言語モデル(LLM)と呼ばれる技術だ。GoogleのGeminiなどのLLMは、膨大なテキストデータから学習しており、人間のような自然な言葉を理解し、生成する能力を持つ。AIエージェントはこのLLMを「脳」として活用し、与えられたタスクを解釈し、どうすれば目標を達成できるかを推論する。

AIエージェントが単なるプログラムと異なる点は、その「手足」となる外部ツールを利用できることにある。エージェントは、LLMだけでは得られない最新情報や特定のデータが必要な場合、インターネットで情報を検索したり、他のアプリケーションのAPI(Application Programming Interface、プログラム同士が連携するための窓口のようなもの)を呼び出したりして、必要な情報を自ら収集する。そして、収集した情報と自身の推論能力に基づき、状況に応じて最適な意思決定を行い、行動を実行する。

さらに複雑なタスクでは、一つのAIエージェントだけでは対応しきれない場合がある。その際には、「親エージェント」が中心となり、専門分野を持つ複数の「サブエージェント」を指揮・調整するチーム体制を組むことが可能だ。例えば、YouTube動画の企画を考えるタスクでは、親エージェントが全体を統括し、脚本作成担当エージェント、視覚要素担当エージェント、最終的なフォーマット担当エージェントといったサブエージェントが協力し、それぞれの専門性を活かして作業を進める。

このような高度なAIエージェントをゼロから構築することは、システムエンジニアを目指す初心者にとっては非常に困難に思えるかもしれない。しかし、Googleが開発した「Agent Development Kit(ADK)」は、その障壁を大きく下げるための強力なツールだ。ADKは、AIエージェントの作成、テスト、デプロイ、管理を簡素化するためのオープンソースで無料のフレームワークである。フレームワークとは、アプリケーション開発の土台となる骨組みや共通機能を提供するもので、開発者はゼロからすべてを作る必要なく、効率的に開発を進められる。

ADKの最大の特徴は「コードファースト」という考え方だ。これは、エージェントの動作をPythonというプログラミング言語で直接記述することを意味する。Pythonは、そのシンプルさと豊富なライブラリから、多くのシステムエンジニアにとってなじみ深い言語であり、AI開発でも広く利用されている。Pythonを使ってコードを記述することで、エージェントの振る舞いや意思決定のロジックを開発者が細部まで完全に制御できる。

ADKは非常に柔軟性も高い。エージェントの「脳」となるLLMを選択する際、Googleが提供するGeminiモデルだけでなく、他のGoogle製LLMや、将来的に登場する可能性のあるサードパーティ製のLLMも自由に組み込める設計になっている。エージェントが完成したら、そのエージェントを動かす場所も自由に選べる。Google Cloud Platformのようなクラウド環境だけでなく、企業独自のサーバー(オンプレミス環境)にデプロイすることも可能だ。また、ADKは「相互運用性」を重視して設計されており、他のAI開発フレームワークや既存のツールともスムーズに連携できる。これにより、既存のシステムにAIエージェントの機能を容易に追加できる。

ADKで作成できるエージェントは、その用途に応じて主に三つのタイプに分類される。一つ目は「LLMエージェント」で、LLMの推論能力を最大限に活用し、様々な状況に適応して動的に意思決定を行う汎用性の高いエージェントだ。二つ目は「ワークフローエージェント」で、あらかじめ定められた手順やシーケンスに従ってタスクを自動的に実行するタイプのエージェントである。これは、特定の作業を正確に繰り返したい場合に特に有効だ。三つ目は「カスタムエージェント」で、開発者がより詳細な制御や独自のロジックを組み込みたい場合に選択する。

AIエージェントがどのように動作するかを理解するためには、ADKを構成する主要な要素を知ることが重要だ。

まず「エージェント」自体が基本的な構成要素である。その中でも、大規模言語モデル(LLM)の推論能力に依存して意思決定を行うのが「LLMAgent」だ。これはエージェントの「頭脳」にあたる。一方、「Workflow Agents(ワークフローエージェント)」は、事前に決められた一連のタスクをステップバイステップで実行するために用いられる。例えば、「LoopAgent」は、特定の処理を指定回数繰り返したり、特定の条件が満たされるまで反復したりするのに適したワークフローエージェントの一つである。

次に重要なのが「ツール(Tools)」だ。これらはエージェントの「手足」であり、エージェントが物理的な行動や外部サービスとの連携を行うための手段を提供する。例えば、Web検索ツールを使ってインターネット上の情報を取得したり、計算ツールを使って数値を処理したりするなど、エージェントの能力を外部に拡張する役割を果たす。

エージェント間で情報をやり取りするための仕組みも必要だ。「状態(State)」と「output_key」は、エージェント同士がどのようにデータを受け渡し、コミュニケーションを取るかを定義する。これにより、複数のエージェントが連携して作業を進める際に、スムーズな情報共有が可能になる。

「ランナー(Runner)」は、エージェント全体のプロセスを起動し、その実行を監視する「エンジン」のような役割を担う。エージェントが正しく動作しているかを確認し、必要に応じて制御する。

そして「サービス(Services)」は、エージェントが活動する上で必要となる様々な裏方の管理を行う。具体的には、エージェントが一時的に情報を記憶するための「メモリ管理」、ユーザーとの対話履歴を保持する「セッション管理」、そしてエージェントが生成するファイルなどを扱う「ファイル管理」などが含まれる。

AIエージェントが互いに連携し、将来にわたって保守しやすいようにするためには、共通の「プロトコル(規約)」に従うことが不可欠だ。記事で触れられている「Model Context Protocol(MCP)」や「Agent to Agent Protocol(A2A)」は、エージェント間のデータのやり取りや動作の整合性を保つための標準的なルールであり、これに従うことでエージェントシステムの信頼性と拡張性が高まる。

実際にAIエージェントを構築するプロセスは、思っているよりもずっと簡単だ。ここでは、YouTube Shortsの動画アイデアを生成するエージェントを例に、その基本的な手順を紹介する。この例は、ADKが提供するサンプルプロジェクトから着想を得ている。

このYouTube Shortsエージェントの構成は、親・サブエージェントの概念に基づいている。まず、全体を統括する「親エージェント」として「LoopAgent」を使用する。このLoopAgentは、一連のタスクが確実に実行されるように調整する役割を担う。そして、具体的な作業を行う複数の「サブエージェント」が存在する。一つは、動画の「スクリプト」を作成するエージェントで、このエージェントはさらにWeb検索ツールを利用して、より豊かで魅力的なコンテンツを作成するための情報を収集する。次に、スクリプトに合わせてどのような「視覚要素」(動画の画像や映像)が必要かを記述するエージェント。最後に、これらの情報を集約し、見やすい「Markdown形式」で出力するフォーマット担当のエージェントだ。

このようなエージェントを動かすための最初のステップは、ADKのインストールである。Pythonのパッケージ管理ツール「pip」を使って、コマンドラインで「pip install google-adk」と入力するだけで、必要なライブラリがコンピューターに導入される。

次に、GoogleのGeminiなどのLLMを利用するためには、APIキーと呼ばれる認証情報の設定が必要となる。これは、エージェントがLLMサービスにアクセスするための「鍵」のようなもので、正しく設定されていなければエージェントはLLMを利用できない。

そして、Pythonで書かれたエージェントの基本的なコード構造を理解する。例えば、YouTube Shortsエージェントのコードの一部は、以下のように記述される。

youtube_shorts_agent = LlmAgent( name="youtube_shorts_agent", model="gemini-2.0-flash-001", instruction=load_instruction_from_file("shorts_agent_instruction.txt"), description="You are an agent that can write scripts, visuals and format youtube short videos. You have subagents that can do this", sub_agents=[scriptwriter_agent, visualizer_agent, formatter_agent],)

このコードでは、LlmAgentというクラスを使って、youtube_shorts_agentという名前の新しいエージェントを定義している。modelで利用するLLMを指定し、instructionでエージェントに与える指示内容を読み込んでいる。descriptionはエージェントの役割を説明し、sub_agentsには、この親エージェントが協調して動かすサブエージェント(scriptwriter_agentvisualizer_agentformatter_agent)をリストで指定している。このように、Pythonのコードを使って、エージェントの振る舞いや構成を明示的に記述していく。

エージェントを開発したら、その動作を確認するための方法が二つある。一つは、コマンドラインインターフェース(CLI)で「adk run youtube-shorts-assistant」と実行する方法だ。これは、エージェントを素早くテストし、結果をターミナルに直接表示する。もう一つは、「adk web」コマンドを使ってWebインターフェースを起動する方法だ。このWebインターフェースは、エージェントが実行中にどのようなステップを踏み、どのような思考プロセスを経て、どのような結果を出力しているかを「イベント」としてリアルタイムで視覚的に確認できる非常に便利なツールである。もしエージェントが期待通りに動かない場合でも、このWebインターフェースを使えば、どの段階で問題が発生したのかを詳細に分析し、「デバッグ」することが容易になる。adk webを実行すると、ターミナルにWebインターフェースへのアクセスURLが表示されるので、それをブラウザで開けばよい。

GoogleのAgent Development Kit (ADK)は、Pythonを使ってAIエージェントを開発するための、非常に強力で柔軟性の高いツールだ。その設計思想は、開発者がエージェントの動作を完全に制御しつつ、開発プロセスをシンプルにする点にある。ADKを活用することで、システムエンジニアを目指す初心者でも、推論、計画、行動が可能な高度なAIエージェントを比較的容易に構築できる。この技術に興味を持ったなら、ぜひADKのサンプルリポジトリや公式ドキュメント、そして主要なリポジトリを参照し、実際に手を動かして様々なエージェントの構築に挑戦してみることを強く推奨する。AIエージェントの世界は、まだ始まったばかりであり、多くの可能性が秘められている。

関連コンテンツ

関連IT用語