C
ChaoBro

Google ADK Goオープンソース:Goコードでエージェントロジックを定義、プロンプト不要

Google ADK Goオープンソース:Goコードでエージェントロジックを定義、プロンプト不要

Googleのエージェントフレームワークは、もはやPythonだけの話ではなくなりました。

google/adk-go が今日のGitHub Trendingに登場。7.8Kスター、407コミット、18時間前にVertexAI MemoryBankのサポートがマージされました。これはPython ADKの単純な移植ではありません——設計思想が根本的に異なります。

コードファースト:エージェントロジックはコード、プロンプトではない

Python版ADKの核心は「宣言的設定でエージェントフローを構築する」こと。Go版は逆のアプローチです。エージェントロジック、ツール呼び出し、オーケストレーションをGoコードで直接定義します。

Python版でエージェントを書くにはYAML設定、プロンプトテンプレート、ツールのマウントが必要な場合があります。Go版ではコードに直接書きます。

agent := adk.NewAgent("researcher", adk.WithModel("gemini-2.0-flash"))
agent.AddTool(searchTool)
agent.Run(ctx, "最新のAI資金調達ニュースを探す")

YAML設定ファイルなし。プロンプトテンプレートエンジニアリングなし。ただのGoコードです。

Go開発者には自然なアプローチです。Python開発者にとっては抽象化の層が一つ足りないように感じるかもしれません。しかし抽象化自体にもデバッグコストがかかります——エージェントの挙動がおかしいとき、コードにブレークポイントを仕掛ける方がYAMLを探すよりも直接的です。

言語の切り替えだけではない

単にPythonをGoに移植しただけなら、この記事を書く価値はありません。Go版にはPython版にない設計がいくつかあります。

A2A-Go/v2ネイティブサポート。Googleが推進するAgent-to-AgentプロトコルがGo版に直接統合されています。2つのエージェントが互いに呼び出し、コンテキストを渡すことができ、MCPを経由する必要がありません。

VertexAI MemoryBank。18時間前にマージされたPR #801で、エージェントに永続化メモリが追加されました。

モデル非依存だがGemini最適化。Python版と同様、Go版も理論的には任意のLLMをサポートします。

Python版とどちらを選ぶ?

2つのルート、2つの開発者プロファイル。

Python ADKが適する:データサイエンティスト、MLエンジニア、Pythonでの迅速なプロトタイピングに慣れたチーム。

Go ADKが適する:バックエンドエンジニア、インフラチーム、パフォーマンスと型安全性を重視するシーン。

Googleはどちらが「正統」かとは明言していません。両方が積極的にメンテナンスされており、独立したissueとPRフローがあります。

本番環境で使えるか?

正直に言うと、Go版はまだ若いです。9つのタグ、4つのブランチ、89のオープンissue、123のPR。活発ですが、成熟度はPython版に劣ります。

Googleはエージェントインフラへの投資を加速させています。Python版ADKは5月下旬にオープンソース化され、Go版はすでに407コミットに達しています。次はおそらくTypeScript版でしょう。

主要ソース