本文へ移動
技術を、自社の仕事に。
判断と実行を助けるメディア

記事を検索

GoogleのADKは5言語に 既存システムの言語で作る前の確認

目次 · 6項目

業務システムはJavaやGoで動いているのに、AIエージェントだけはPythonで別に作り、別のサーバーで動かしている。エージェントの機能が増えるほど、その間をつなぐAPIや運用の手間も増えていきます。GoogleのAIエージェントの開発キット「Agent Development Kit(ADK)」は、この「エージェントはPythonで」という前提を外す方向に進んでいます。

Google Cloudのブログは2026年10月13日(米国時間)、ADKが5つの言語で使えることを、言語ごとのコードで解説しました。

Google’s Agent Development Kit (ADK) removes that trade-off with coverage for Python, Go, TypeScript, Java, and Kotlin.

この記事では、解説と各言語のリポジトリの文書を照らし合わせ、PythonとTypeScriptでは実際にツールの定義を作って出力を確かめました。既存のシステムと同じ言語でエージェントを作るか検討している開発チーム向けに、選ぶ前の確認点を整理します。

5言語で共通しているところ

解説によると、5つの言語のADKはそれぞれの言語に合わせて作られていますが、共通の仕組みを持っています。

  • MCP(Model Context Protocol)のクライアント:すべての言語に入っている。MCPサーバーとして公開したツールは、どの言語のエージェントからも呼べる
  • A2A(Agent2Agent)プロトコル:エージェント同士がHTTPでやり取りする仕組み。言語や枠組みが違うエージェントの間でもつながる

つまり、全社で1つの言語にそろえなくても、ツールはMCPサーバーに、エージェント同士はA2Aで、という形でつなげる前提になっています。MCPの基本はMCP完全ガイドで扱っています。

言語ごとの違い

解説に書かれている各言語の特徴を、業務システムとの組み合わせの観点でまとめます。

言語ツールの定義の作られ方解説が挙げる向き・特徴
Python関数の型ヒントとdocstringから自動で作る基準の実装。Google Cloudの連携・モデルの対応が最も広い。評価のコマンドでCIに組み込める
Go構造体のタグからジェネリクスで作る本番のバックエンド向け。約2MiBの土台のイメージで、起動が速い。Pythonの次にADK 2.0のグラフ型ワークフローに対応した
TypeScriptZodのスキーマから作るNode.jsのサービスに加え、ブラウザのタブの中でも動く。WebMCPとChromeの端末内のモデルを使える
Java引数の @Schema 注釈から作るMaven・Gradle・Spring Bootの環境向け。Spring AIとLangChain4jとの橋渡しがある
KotlinKSPでビルド時に作るビルド時に型の誤りを止める。Androidの端末内でエージェントを動かせる

GoogleのADKの5言語の関係を示した図。Python・Go・TypeScript・Java・Kotlinの各ADKは、どれもMCPのクライアントとA2Aプロトコルを持ち、言語が違ってもツールとエージェントを共有できる。2026年10月25日時点で、JavaとKotlinのリポジトリのREADMEにはプレビュー(Pre-GA)の条件の記載がある

選ぶ前に確かめておきたいのが、提供の段階です。2026年10月25日に各リポジトリのREADMEを確認したところ、JavaとKotlinのREADMEには「Preview」の節があり、Google Cloudの「Pre-GA Offerings Terms」の対象で、サポートが限られる場合があると書かれていました。Python・Go・TypeScriptのREADMEには、この節はありませんでした。KotlinのREADMEは、同時に「安定したリリースの周期に移った」とも書いており、段階の意味は文書によって読み方が分かれます。顧客の本番のシステムに入れる前に、使う言語のREADMEと契約の条件を確かめておくのが無難です。

ツールの定義を実際に作って確かめた

エージェントがツールを正しく呼べるかは、モデルに渡るツールの説明(名前・説明・引数)に左右されます。解説に載っている天気のツールの例を、PythonとTypeScriptでそのまま書き、ADKが作るツールの定義を出力しました。モデルの呼び出しはしていません。

検証の環境は、Linux、Python 3.11.17 と google-adk 2.13.0、Node.js 22.22.0 と @google/adk 2.3.0・zod 4.6.7 です(2026年10月25日にPyPIとnpmから取得)。定義を見るために、ツールの内部のメソッド(Pythonの _get_declaration()、TypeScriptの _getDeclaration())を使っています。

Python:docstringの「Args:」は引数の説明にならなかった

解説の例のとおり、引数の説明をdocstringの Args: に書いた関数を渡すと、出力は次のようになりました(一部)。

{
  "description": "Retrieves the current weather report for a specified city.\n\nArgs:\n    city (str): The name of the city for which to retrieve the weather report.",
  "name": "get_weather",
  "parameters_json_schema": {
    "properties": { "city": { "title": "City", "type": "string" } },
    "required": ["city"]
  }
}

docstring全体がツールの説明に入り、引数 city には説明が付きませんでした。モデルはツールの説明文の中から引数の意味を読み取ることになります。ADKの公式文書(adk.devの「Function tools」)は「引数の説明はdocstringから取られる」と書いていますが、2.13.0のソースコードを読んだ範囲でも、引数の項目は関数の引数の型の情報から作られ、docstringの Args: を読み取る処理は見当たりませんでした。docstringの内容は、引数の項目ではなくツールの説明文としてモデルに渡る、と読むのが今回の出力に合います。引数に Annotated[str, Field(description="The name of the city.")] と書き直すと、city に "description": "The name of the city." が付くことも確かめました。引数が多いツールや、業務の用語を使う引数では、この書き方のほうが意図が伝わりやすいと考えます(編集部の判断)。

TypeScript:Zodの説明がそのまま入り、型の違う入力は止まった

TypeScriptでは、Zodの z.string().describe("The name of the city.") が、ツールの定義の city の説明にそのまま入りました。

さらに、ツールに city: 123(数値)を渡して実行すると、ツールの関数は呼ばれず、expected string, received number というZodの検証のエラーで止まりました。解説が書く「実行時の入力の検証と、モデルに送るスキーマが1つの定義から作られる」動きを確認できたことになります。

PythonとTypeScript以外の3言語(Go・Java・Kotlin)は、今回は動かしていません。

既存のシステムの言語で作るかの判断

ここからは編集部の提案です。

  • ツールの多くを既存のシステムの中に置きたい場合:同じ言語のADKを使うと、業務のロジックを呼ぶためだけのAPIを新たに作らずに済む。ただし、上記の提供の段階を確かめる
  • 評価(エージェントの出来の採点)を仕組みにしたい場合:解説は、評価の道具が最もそろっているのはPythonだとし、本番が別の言語でもPythonの評価で全体を試せるとしています。本番の言語と評価の言語を分ける構成も選択肢になる
  • 言語をまたぐ場合:ツールはMCPサーバーとして切り出し、エージェント同士はA2Aでつなぐ。どの言語のADKからも同じツールを使える

エージェントの基本的な考え方はAIエージェントとはで、Googleの法人向けのエージェント基盤から社内の画面をつなぐ例はGemini EnterpriseのMCP Appsで扱っています。

確認した範囲

2026年10月25日に、Google Cloudのブログ「One Agent Development Kit, five languages」(2026年10月13日)と、GitHubの google/adk-python・adk-go・adk-js・adk-java・adk-kotlin の各README(mainブランチ)を確認しました(資料調査)。あわせて、編集部の検証環境(Linux)で、PythonとTypeScriptのADKをインストールし、解説の例のツールの定義を出力しました(実機検証)。モデルを呼び出してのエージェントの実行、Go・Java・Kotlinでの動作、Google Cloudへのデプロイ、agents-cli コマンドは試していません。

公開前の2026年10月27日に、ブログ・各README・adk.dev(google.github.io/adk-docs から移転)の文書・PyPI・npm・Maven Central・Goのモジュールを確認し直しました。JavaとKotlinのREADMEのPreviewの節は残っており、検証に使ったgoogle-adk 2.13.0と@google/adk 2.3.0は、この日も各言語の最新版でした。

既存の業務システムにAIエージェントを組み込む設計や、言語・構成の選定は、開発・AI・自動化のご相談からお問い合わせください。

参考資料

この記事を共有XFacebook
鈴木 翔

技術の可能性に魅了され、学生時代からプログラミングとデジタルアートの分野に深い関心を持つ

この記事のテーマを、自社の次の一歩へ

自社での進め方を、具体的に。

つくりたい仕組み、既存システム、運用の条件を整理し、実現に向けた次の一歩を考えます。

  • 実現したい仕組み
  • 既存環境との接続
  • 運用の条件
開発・運用の構想を相談する

構想段階からご相談いただけます。この記事の情報を相談フォームに引き継ぎます。

最新記事をメールで受け取る