【GCP ADK徹底解説シリーズ①】SequentialAgentで築く安定性の高いマルチエージェント構成の構築

2025年9月25日掲載

キービジュアル

皆さん、こんにちは。ソリューションアーキテクトの長岡です。

今回は、2025年春に発表されたGoogle Cloud Agent Development Kit (ADK) を使い、安定したマルチエージェント構成を構築する方法について解説します。

目次

1. はじめに:AIエージェント開発の“よくある落とし穴”

生成AIの登場により、自律的にタスクをこなす「AIエージェント」の開発が活発化していますね。皆様も日々オリジナルのエージェントをさまざまなツール上で開発されていることでしょう。このような状況の中、多くの開発者が「何でもできる万能エージェント」を一つ作ろうとして、思わぬ壁にぶつかっているのではないでしょうか。

例えば、一つのエージェントに「大阪出張の計画から予約まで全部お願い」と頼んだとします。最初は上手く動いても、予約サイトの仕様が変わった途端にエラーで停止したり、複数の処理が絡み合う中で「どこで間違えたのか」の特定が困難になったりします。

これは、一つのエージェントにあまりに多くの責任を負わせる、いわば「一枚岩(モノリシック)なエージェント」を作ってしまうことに起因します。

Google Cloud ADKが提案するのは、このアプローチを根本から見直すことです。つまり、万能なスーパースター選手を育てるのではなく、明確な役割を持つ『専門家エージェント』を複数連携させることで、変化に強く、管理しやすいシステムを構築します。

本稿ではその第一歩として、専門家たちを「Agent A→Agent B→Agent C」という決まった順序で動かすADKの組み込みのクラスである、`SequentialAgent`の基本的な使い方を解説します。どのようにして、ワークフロー全体の安定性を高められるかを一緒に見ていきましょう。

2. Google Cloud Agent Development Kit (ADK) とは?

そもそもADKをよく知らないという方もいるでしょう。Google Cloud Agent Development Kit (ADK) は、Google CloudのVertex AIGeminiモデルとシームレスに連携し、AIエージェントや、複数のエージェントが協調して動作する「マルチエージェントシステム」の開発を簡素化するために設計された注目のオープンソースフレームワークです。

主な特徴は以下の通りで、AIエージェント開発のための強力なツールと、Google Cloudの堅牢な基盤を組み合わせることで、エンタープライズレベルの要求に応えるアプリケーション開発を迅速にできる点が魅力だと言えます。

  • マルチエージェント設計:

    → 専門分野を持つ複数のエージェントを階層的に組み合わせ、複雑なタスクを解決するシステムの構築が可能

  • 柔軟なモデル対応:

    → Googleの gemini-2.5-pro をはじめ、様々な大規模言語モデル(LLM)をサポート。LiteLLMを利用すればオープンソースモデルの利用も可能。VertexAIのModel Gardenも利用可能。

  • 豊富な開発ツール:

    → 開発からデバッグ、評価までを効率化するコマンドラインツール(CLI)やWeb UI(ADK Web)を提供。(筆者の感覚だと、CLIが比較的安定しているためおすすめしたい)

  • セッション・記憶管理:

    → 対話の文脈管理や、対話を跨いだ長期的な記憶の管理機能が利用可能

3. SequentialAgentの「決定論的オーケストレーション」

ADKの`SequentialAgent`は、「決定論的(Deterministic)」なパターンで動作するよう設計されています。これは、AIの能力を、人間が定義した厳密で予測可能なワークフローの中で「1つのパーツ」として活用する考え方です。全体の流れは人間が管理するため、マルチエージェント間の連携が安定し、予期せぬエラーやログのトレースなども容易になります。

SequentialAgentによる逐次処理の実装

`SequentialAgent`は、複数のタスクを「A→B→C」という定義済みの順序で実行します。ビジネスにおける「1. 申請→2. 承認→3. 通知」のように、実行順序が重要となるワークフローの構築に不可欠です。

3つのタスクが左から右に流れる図

実装例:出張申請の初期プロセス

ここでは、「出張目的の確認 → 交通手段の仮予約 → 旅程の要約作成」という、順番が重要な出張申請の初期プロセスを例に実装方法を示します。

ステップ1:各タスクを担当するエージェントを定義

ADKでは、エージェント間のデータ連携は共有ステート(Session State)を介して行われます。各エージェントは、自身の処理結果を`output_key`で指定したキー名で共有ステートに書き込み、後続のエージェントが`{キー名}`の形式でその値を参照します。

purpose_agent / transport_agent / summary_agent のイラスト図
from google.adk.agents import LlmAgent

# 役割1:「出張目的の明確化」担当
purpose_agent = LlmAgent(
    name="purpose_clarifier",
    instruction="あなたはアシスタントです。与えられた出張依頼から、主要な目的と訪問先を抽出してください。",
    model="gemini-2.5-flash",
    output_key="trip_purpose"
)

# 役割2:「交通手段の仮予約」担当
transport_agent = LlmAgent(
    name="transport_booker",
    instruction="あなたは旅行代理店です。抽出された目的「{trip_purpose}」に基づき、最適な交通手段(新幹線など)を仮予約し、予約情報を返してください。",
    model="gemini-2.5-flash",
    output_key="booking_info"
)

# 役割3:「旅程の要約」担当
summary_agent = LlmAgent(
    name="itinerary_summarizer",
    instruction="あなたは秘書です。出張目的「{trip_purpose}」と予約情報「{booking_info}」を基に、上司への申請用の簡潔な旅程を作成してください。",
    model="gemini-2.5-flash"
)

ステップ2:SequentialAgentでパイプラインを構築

sub_agentsの配列に、作成したシングルエージェントを渡します。この時、配列に格納した順番でエージェントがシーケンシャルに実行されます。(下記の例では、purpose_agent → transport_agent → summary_agent の順番で連続実行されます。)

from google.adk.agents import SequentialAgent

business_trip_planner = SequentialAgent(
    name="business_trip_planner",
    sub_agents=[
        purpose_agent,
        transport_agent,
        summary_agent
    ]
)

ステップ3:パイプラインの実行

次に、パイプラインを実行します。runner 変数には、マルチエージェントのbusiness_trip_planner と sessionを渡してシングルエージェント間の output_key を共有させます。

from google.adk.runtime import Runner
from google.adk.runtime.types import Content, Part
from google.adk.runtime.services import SessionService

runner = Runner(agent=business_trip_planner, session_service=SessionService())

initial_request = "来週、大阪のA社へ新製品のデモのため出張します。"
final_result = runner.run(
    user_id="user_nagaoka",
    new_message=Content(parts=[Part(text=initial_request)])
)

print(final_result.message.parts[0].text)
# 期待される出力例:
#
# 【出張旅程のご報告】
#
# 目的:大阪A社にて新製品デモ
# 交通:のぞみ225号 東京 12:10 -> 新大阪 14:40 (仮予約済)
#
# 上記内容で出張申請を進めます。

4. まとめ

本稿では、ADKの基本思想と SequentialAgent による信頼性の高いワークフローの構築方法を解説しました。

  • ADKは「決定論的」な設計で、プロセスの信頼性を保証をする

  • その中でも SequentialAgent は、定義された順序でタスクを実行し、ワークフローを標準化できる

  • これにより、AIエージェントであっても、ルールベースに近い予測可能でエラートレース等が容易な、不足の事態に強い安定したワークフローの自動化が実現できる

次回の【第2部】では、複数のタスクを同時実行し、並列処理マルチエージェントの処理の高速化と効率化を実現する ParallelAgent について解説します。お楽しみに!

Vertex AI DIYプランについて

Vertex AI Search を使って社内文書検索環境(RAG)を構築してみませんか?ソフトバンクのエンジニアが構築をサポートします。

Vertex AI DIY プランでは、以下の3つのことをご体験いただけます。詳細は、関連サービスにある「Vertex AI DIYプラン」をご確認ください。

SoftBank Vertex AI Search DIYプランのご紹介

Google Cloud 関連サービス

Vertex AI Search を使って社内文書を検索する生成AIを構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Google の生成AIの導入を考えている方はもちろん、どのようなものか確認したいという方でもご活用いただけます。

Looker は定義から集計、可視化の一連のデータ分析プロセスをカバーする BI ツールを超えるデータプラットフォームです。ソフトバンクは、顧客のニーズに合わせて柔軟なサポートを提供し、Looker を活用したデータドリブンな企業変革を支援しています。

Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。

MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。

おすすめの記事

条件に該当するページがございません