2026年1月13日

【Google Cloud】Vertex AI Agent Engine × LangGraphで構築するAIエージェントの実装ガイド


Content
近年、LLM(大規模モデル)の進化により、単なるチャットボットを超えた「AIエージェント」が注目を集めています。自律的に計画を立て、外部ツールを実行し、複雑なタスクを完遂するエージェントは、ビジネス自動化の鍵となります。

しかし、エージェントを本番運用するには、スケーリング、状態管理、セキュリティといったインフラ面の課題がつきまといます。本記事では、Google Cloudのフルマネージドランタイムである Vertex AI Agent Engine(旧Reasoning Engine) と、オーケストレーションフレームワーク LangGraph を組み合わせ、実用的なエージェントをデプロイする手順を解説します。

Vertex AI Agent Engine とは

Vertex AI Agent Engineは、AIエージェントを構築・デプロイ・管理するためのサーバーレスなプラットフォームです。

  • インフラ管理不要: サーバーレスで動作し、トラフィックに応じて自動スケーリング。
  • フレームワーク非依存: LangChain, LangGraph, LlamaIndex 等で書かれたコードをそのままデプロイ可能。
  • エンタープライズ機能: IAMによるアクセス制御、Cloud Logging/Monitoring との統合、長期記憶を管理する仕組みが提供されています

特に LangGraph と組み合わせることで、複雑なループ処理や人間が介在するフロー(Human-in-the-loop)を、Google Cloudの堅牢な基盤上で安全に動かすことが可能になります。

前提条件

本記事では、以下の環境・設定を前提としています。

  • 開発環境: Windows / VS Code (拡張機能: Python, Jupyter)
  • 言語: Python(デプロイ可能な言語は現在 Python のみです)
  • Google Cloud プロジェクト: 作成済みであること
  • データベース: チャット履歴の長期記憶用に Cloud SQL (PostgreSQL) を使用

環境準備

3.1 APIの有効化


gcloud services enable \
aiplatform.googleapis.com \
storage.googleapis.com \
sqladmin.googleapis.com \
logging.googleapis.com \
monitoring.googleapis.com \
cloudtrace.googleapis.com

3.2 仮想環境の構築とSDKインストール


# プロジェクトフォルダ作成し、移動
mkdir your-project
cd your-project
venv\Scripts\activate

#インストール
pip install google-cloud-aiplatform[agent_engines,langchain]>=1.112.0

3.3 初期化


# 認証情報の初期化
gcloud auth application-default login
# Vertex AI Agent Engine の SDK のインポートと初期化
import vertexai
from vertexai import agent_engines

client = vertexai.Client( # For service interactions via client.agent_engines
project="PROJECT_ID", #自身の環境に置き換えてください
location="LOCATION", #自身の環境に置き換えてください
)

3.4 Cloud Storageバケット作成

前提に記述した通り、本手順では「エージェントオブジェクト」からデプロイするため、Cloud Storageバケットを作成する必要があります。以下の手順は参照してください。
https://docs.cloud.google.com/agent-builder/agent-engine/set-up?hl=ja#storage

 

エージェント開発

4.1 Gemini(モデル)と、外部API(為替レート取得)を呼び出すツールを定義する


# 使用するモデル バージョンを定義
model = "gemini-2.5-flash"

# ツールの定義
def get_exchange_rate(
currency_from: str = "USD",
currency_to: str = "EUR",
currency_date: str = "latest",
):
"""指定された日付における2つの通貨間の為替レートを取得します。

為替レートデータの取得には Frankfurter API (https://api.frankfurter.app/)
を使用します。

Args:
currency_from: 基準通貨 (3文字の通貨コード)。
デフォルトは "USD" (米ドル)。
currency_to: 対象通貨 (3文字の通貨コード)。
デフォルトは "EUR" (ユーロ)。
currency_date: 為替レートを取得する日付。
最新のレート情報を取得する場合はデフォルトの "latest"。
過去のレートについては YYYY-MM-DD 形式で指定可能。

Returns:
dict: 為替レート情報を含む辞書。
例: {"amount": 1.0, "base": "USD", "date": "2023-11-24",
"rates": {"EUR": 0.95534}}
"""
import requests
response = requests.get(
f"https://api.frankfurter.app/{currency_date}",
params={"from": currency_from, "to": currency_to},
)
return response.json()

# エージェントの構成
agent = agent_engines.LanggraphAgent(
model=model,
tools=[get_exchange_rate]
)

4.2 中間テスト


# テスト実行
response = agent.query(input={"messages": [
("user", "米ドルからスウェーデンの通貨への為替レートはいくらですか?"),
]})

※レスポンスは、次のようなディクショナリ形式になります


{"input": "米ドルからスウェーデンの通貨への為替レートはいくらですか?",
"output": "**1米ドル(USD)あたり約10.70~10.80スウェーデン・クローナ(SEK)**です。"}

4.3 データベース(長期記憶)の設定

LangGraph の「Checkpointer」機能を使用して、会話履歴を Cloud SQL に保存します。

4.3.1 ライブラリインストール


pip install --upgrade --quiet langchain-google-cloud-sql-pg[langgraph] langchain-google-vertexai langgraph

4.3.2 カーネルを再起動

ライブラリインストール後、カーネルを再起動します。

 

4.3.3 Cloud SQL for PostgreSQL インスタンスを構築する
以下の手順を参考し、Cloud SQL for PostgreSQL インスタンスを作成します。
https://docs.cloud.google.com/sql/docs/postgres/create-instance?hl=ja#create-2nd-gen
 

以下の手順を参照し、IAMユーザーを追加します。開発用途として、ご自身のGoogleアカウントのユーザーを追加してください。
https://docs.cloud.google.com/sql/docs/postgres/add-manage-iam-users?hl=ja#add-policy-binding
 

Cloud SQL Studioを利用し、作成したデータベースにご自身のIAM認証で接続します。
https://docs.cloud.google.com/sql/docs/mysql/manage-data-using-studio?hl=ja
 

追加したユーザーにスキーマの権限を付与します。


GRANT CREATE, USAGE ON SCHEMA public TO "Googleアカウント";

4.3.4 テーブル初期化


# Cloud SQL データベースへのコネクションプールを構成
from langchain_google_cloud_sql_pg import PostgresEngine
engine = PostgresEngine.from_instance(
project_id=PROJECT_ID,
region=LOCATION,
instance="YOUR_INSTANCE_NAME",
database="YOUR_DB_NAME"
)
# テーブルの初期化
engine.init_checkpoint_table(if_not_exists=True)

4.3.5 Checkpointer の組み込み


def checkpointer_builder(**kwargs):
from langchain_google_cloud_sql_pg import PostgresEngine, PostgresSaver
return PostgresSaver.create_sync(PostgresEngine.from_instance(**kwargs))

checkpointer_kwargs = {
"project_id": PROJECT_ID,
"region": LOCATION,
"instance": "YOUR_INSTANCE_NAME",
"database": "YOUR_DB_NAME",
}

agent = agent_engines.LanggraphAgent(
model=model,
tools=[get_exchange_rate],
checkpointer_kwargs=checkpointer_kwargs,
checkpointer_builder=checkpointer_builder,
)

4.3.6 長期記憶のテスト


# テスト実行(1ターン目)
import json
response = agent.query(
input={"messages": [
("user", "米ドルからスウェーデン通貨への為替レートはいくらですか?")
]},
config={"configurable": {"thread_id": "00000010"}},
)

print(json.dumps(response, indent=2, ensure_ascii=False))

# テスト実行(2ターン目)
response = agent.query(
input={"messages": [("user", "2025年12月22日はいくらですか")]},
config={"configurable": {"thread_id": "00000010"}},
)

print(json.dumps(response, indent=2, ensure_ascii=False))

※以下のように1ターン目の会話内容を記憶して、回答を生成していることを確認します


{
"messages": [

"kwargs": {
"content": "米ドルからスウェーデン通貨への為替レートはいくらですか?",

"kwargs": {
"content": "米ドルからスウェーデン・クローナへの為替レートは1 USDあたり9.1673 SEKです。(2025-12-24時点)",

"kwargs": {
"content": "2025年12月22日の米ドルからスウェーデン・クローナへの為替レートは1 USDあたり9.2431 SEKでした。",

}

※テーブルの中身はそれぞれ以下のようになってます

    • checkpoints

    • checkpoints_writes

5.エージェントデプロイ

5.1 サービスアカウントの準備

以下の手順を参照し、サービスアカウントを作成します。
https://docs.cloud.google.com/iam/docs/service-accounts-create
※Agent Engineの権限管理の方法は3つありますが、今回はカスタムサービスアカウントを利用します。それぞれの詳細は以下を参照してください
https://docs.cloud.google.com/agent-builder/agent-engine/set-up#identity-and-permissions
 

作成したサービスアカウントに以下のIAMロールを付与します。

  • Cloud SQL インスタンス ユーザー
  • Vertex AI Reasoning Engine サービス エージェント
  • ストレージ管理者

 

5.2 チェックポイントテーブルへの権限付与

Cloud SQL Studioを利用し、作成したデータベースにご自身のIAM認証で接続します。
https://docs.cloud.google.com/sql/docs/mysql/manage-data-using-studio?hl=ja

以下のクエリを実行し、サービスアカウントにチェックポイントテーブルへの権限を付与します。


GRANT ALL PRIVILEGES ON TABLE checkpoints TO "サービスアカウント";
GRANT ALL PRIVILEGES ON TABLE checkpoints_writes TO "サービスアカウント";

5.3 Agent Engineへデプロイ

作成したエージェントをAgent Engineへデプロイします。
※必須ではないオプションは省略しているため、詳細なオプションは以下をご確認ください
https://docs.cloud.google.com/agent-builder/agent-engine/deploy#configure-agent


remote_agent = client.agent_engines.create(
agent=agent,
config={
"service_account": "サービスアカウント",
"requirements": [
"google-cloud-aiplatform[agent_engines,langchain]",
"langchain-google-cloud-sql-pg"
],
"display_name": "表示名",
"description": "説明",
"env_vars": {
"INSTANCE": "データベースインスタンス名",
"DATABASE": "データベース名",
},
"agent_framework": "langgraph",
"staging_bucket": "gs://Cloud Storageバケット名",
},
)

デプロイ完了後、Google Cloudコンソール上に、表示されていることを確認します。

5.4 テスト

Agent Engineの動作をテストします。


remote_agent.query(
input={"messages": [("user", "米ドルから日本通貨への為替レートはいくらですか?")]},
config={"configurable": {"thread_id": "0000003"}},
)

print(json.dumps(response, indent=2, ensure_ascii=False))

5.5 クリーンアップ

コストを抑えるため、検証が終わったらリソースを削除します。
 

以下の手順を参照し、Cloud SQLインスタンス削除します。
https://docs.cloud.google.com/sql/docs/postgres/delete-instance?hl=ja

 
Agent Engineを削除します。


remote_agent.delete(force=True)

まとめ

Vertex AI Agent Engine を活用することで、複雑な LangGraph エージェントをインフラ管理の負担なく、スケーラブルな本番環境へデプロイできました。特に Cloud SQL との統合により、セッションを跨いだ記憶を持つエージェントが構築可能になります。

急速にアップデートが続く Google Cloud のエコシステムにおいて、プラットフォームとしての Vertex AI Agent Engine が今後どのように拡張され、私たちの開発を加速させてくれるのか、その進化にはこれからも目が離せませんね。

2026年1月13日 【Google Cloud】Vertex AI Agent Engine × LangGraphで構築するAIエージェントの実装ガイド

Category Google Cloud

ご意見・ご相談・料金のお見積もりなど、
お気軽にお問い合わせください。

お問い合わせはこちら