コンテンツにスキップ

Genkit vs ADK: Google AI フレームワーク選定ガイド

Genkit vs ADK

Google は AI 開発を支援するオープンソースのフレームワークとして GenkitAgent Development Kit(ADK) を提供しています。

どちらも Google の大規模言語モデル(Gemini)を活用できますが、想定するユースケースやアーキテクチャ、開発者向けの機能が異なります。

本記事では、Genkit と ADK の違いを明確にするため、ユースケース、統合先プラットフォーム、対応モデル、開発スタイル、提供状況といった観点から両者を比較します。

それぞれの特徴を理解し、どちらのフレームワークがプロジェクトに適しているか判断する手助けとなれば幸いです。

時間がない方向け:Genkit team が運営する subreddit r/GenkitFramework には、Genkit 開発元による使い分けの説明があります。

if you’re looking for the rich enterprise features of Agent Platform, and want to build multi-agent standalone systems, ADK is for you.

if you’re looking to add Gen AI or agentic features into your app, or want to build agents with lower level components especially using a variety of platforms and models, Genkit is the way to go.

これがおおよその結論。本記事は背景・歴史・最新動向・コード例まで踏み込んで補足します。


観点GenkitADK
主なユースケースアプリへの生成 AI 機能組み込み(チャット、要約、RAG など)複数エージェントが協調するマルチエージェントシステム構築
対応言語Node.js (GA)、Go (GA)、Python (Beta)、Dart (Preview)Python (GA)、Go (GA)、Java (GA)、TypeScript (GA)
設計思想開発者がフローを明示的に制御LLM がエージェント間の委譲を動的に決定
デプロイ先Cloud Run、GKE、Vercel など任意の環境任意の環境、Gemini Enterprise Agent Platform との統合が深い

どちらを選ぶべきかは、解決したい問題の複雑さとチームが得意な言語によって決まります。両者は統合されておらず、独立した OSS フレームワークとして並走しています。


Genkit は、アプリケーションへの AI 機能組み込みをシンプルにするためのフレームワークです。

元々は Firebase チームによって開発されましたが、Google の再編成を経て独立した製品となり、現在は Flutter、Dart、Go などと同じ開発者プラットフォームチームに所属しています。

プラグインやテンプレートを活用して多様な生成 AI モデルを統合し、迅速に AI 機能を構築できます。

Genkit - Open-source AI framework by Google
Open-source framework for building AI-powered apps with unified APIs for Google Gemini, GPT, Claude, and more.
🔗 genkit.dev

主な特徴:

  • 対応言語:
    • Node.js(2025 年 2 月 GA)
    • Go(2025 年 9 月 GA)
    • Python(2026 年 2 月から Beta)
    • Dart(Preview)
    • Java(コミュニティ実装 genkit-ai/genkit-java、1.0.0-SNAPSHOT で開発中)
  • ランタイム: Cloud Run、GKE、Vercel、オンプレなど任意の環境にデプロイ可能
  • モデルサポート: Gemini、OpenAI、Anthropic Claude、Ollama など(プラグイン経由)
  • 開発体験: ローカル Developer UI でプロンプトテスト、ステップごとのトレース、スキーマ検証
  • マルチエージェント: プロンプトをツールとして扱うパターンで Beta サポート
  • Middleware: Generate / Model / Tool の 3 レイヤで横断的な拡張(ガードレール、キャッシュ、リトライ、HITL 承認など)。2026 年 5 月正式発表、TypeScript / Go / Dart で利用可能(Python は予定)

また、Genkit Dart の開発も活発に進められており、Dart 向けフル Genkit SDK として進化しています。モデルプラグイン(genkit_google_genaigenkit_firebase_ai)、フロー・ツール定義、genkit_shelf によるサーバーサイド HTTP ホスティングを提供し、Node.js・Go SDK と同等の機能を備えています。サーバーサイド Dart と Flutter の両方から利用可能です。

ADK は、高度な AI エージェントシステムの開発に特化したツールキットです。複数のエージェント間の協調動作や外部ツール連携を含む、複雑なマルチエージェントシナリオに対応できる基盤を提供します。

Agent Development Kit
Build powerful multi-agent systems with Agent Development Kit.
🔗 google.github.io

主な特徴:

  • 対応言語:
    • Python(2025 年 5 月 GA、約 10 ヶ月先行。v2.0 は Python 限定で Beta phase)
    • Go(2026 年 3 月 v1.0 stable)
    • Java(2026 年 3 月 v1.0 stable)
    • TypeScript(2026 年 4 月 v1.0 stable)
  • ランタイム: Cloud Run、GKE など任意のコンテナ環境にデプロイ可能。Gemini Enterprise Agent Platform(2026 年 4 月の Cloud Next 26 で Vertex AI からリブランド・拡張された後継プラットフォーム)の Agent Runtime(旧 Agent Engine)との統合が深い
  • モデルサポート: Agent Platform 経由の Gemini、LiteLLM アダプタで他モデルも対応
  • 開発体験: ローカル開発 UI(adk web)、CLI 評価ツール(adk eval
  • マルチエージェント: Agent、Tool、Sub-agent、ワークフローオーケストレーションのファーストクラスサポート
  • エンタープライズ連携: ApplicationIntegrationToolset で Salesforce、ServiceNow、JIRA、SAP など 100 以上のコネクタを提供。さらに Vertex AI Search Tool、UrlContextTool、SkillToolset、Spanner Admin Toolset、Apigee モデル連携などのビルトインツール群が追加

Renault Group、Box、Revionics などの企業が ADK を活用したシステムを構築しています。


両者は競合ではなく、レイヤーが違います。

Google の Genkit エンジニアは、Genkit の役割を次のようにまとめています:

Genkit は「低レイヤー」の AI API にフォーカスしています:モデル、ツール、プロンプト、MCP、そして o11y ツールやプレイグラウンドなどの開発者ツール。Genkit では LLM と直接やり取りでき、デフォルトではハードコードされたプロンプトがなく、o11y ツールでエージェントが何をしているかを正確に確認できます。

この視点から整理すると:

  • Genkit は低レイヤーの AI フレームワーク。モデル、ツール、プロンプト、MCP、o11y にフォーカス。単体でエージェントを構築することも、高レイヤーのフレームワークの基盤として使うこともできます。
  • ADK は高レイヤーのエージェントフレームワーク。セッション管理、メモリ、評価、Gemini Enterprise Agent Platform との統合など、バッテリー同梱の機能を備えています。

Genkit チームは Discord でも「ADK はエージェント構築専用で multi-agent システムの組み方に明確な方針を持つ。Genkit は GenAI 構築のための汎用ツールキットで、エージェントの具体的な作り方には強い意見を持たない」と整理しています。要するに Genkit は柔軟、ADK はマルチエージェント特化と棲み分けがされていて、要件に応じて選びます。

観点GenkitADK
主なユースケースアプリへの生成 AI 機能組み込み全般(チャットボット、要約、推薦、RAG など)複数エージェントが協調する複雑なエージェントシステム構築
言語Node.js (GA)、Go (GA)、Python (Beta)、Dart (Preview)Python (GA)、Go (GA)、Java (GA)、TypeScript (GA)
開発スタイルコードで定義したフロー、明示的な制御エージェント中心、LLM 駆動のオーケストレーション
マルチエージェントBeta(プロンプトをツール化するパターン)、Middleware で横断的拡張ファーストクラス(Sequential / Parallel / Loop、v2.0 Beta で graph-based Workflow)
デプロイCloud Run、GKE、Vercel など任意の環境任意の環境、Gemini Enterprise Agent Platform / Agent Runtime との相性が最も良い
モデル柔軟性Genkit プラグインで Gemini / OpenAI / Anthropic / Ollama などを切替Agent Platform 経由の Gemini が中心、LiteLLM で他ベンダーも対応
成熟度Node GA(2025-02)、Go GA(2025-09)、Python Beta(2026-02〜)、Dart PreviewPython GA(2025-05)、Go / Java / TS が 2026-03〜04 に v1.0 stable、Python v2.0 Beta

Genkit: フローオーケストレーション

Section titled “Genkit: フローオーケストレーション”

Genkit は、開発者が明示的にワークフロー(フロー)を定義するスタイルを取ります。

コード上で「LLM A でテキスト生成 → 結果を加工 → 関数 B を実行 → …」といった処理手順を記述します。Genkit は ai.generate() のような統一 API や、構造化データ出力、プラグイン関数呼び出し(Function Calling)といった機能を提供し、これらのステップを簡潔に実装しやすくなっています。

TypeScript の例:

import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/google-genai';
const ai = genkit({ plugins: [googleAI()] });
const { text } = await ai.generate({
model: googleAI.model('gemini-2.5-flash'),
prompt: 'Why is Genkit awesome?'
});

Go の例:

import (
"context"
"github.com/firebase/genkit/go/ai"
"github.com/firebase/genkit/go/plugins/googlegenai"
)
func main() {
ctx := context.Background()
g := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{}))
resp, _ := genkit.Generate(ctx, g,
ai.WithModel(googlegenai.GoogleAIModel("gemini-2.5-flash")),
ai.WithPrompt("Why is Genkit awesome?"),
)
fmt.Println(resp.Text())
}

Function Calling を使えば、LLM が必要に応じて定義された関数を呼び出す半自律的なエージェントのような振る舞いも実現できますが、基本的には開発者がフロー全体を制御します。

ADK: エージェント中心のオーケストレーション

Section titled “ADK: エージェント中心のオーケストレーション”

ADK はエージェント指向のアーキテクチャを採用しています。

開発者はエージェント(Agent クラス)を定義し、それぞれに役割(指示プロンプト)と利用可能なツールやサブエージェントを設定します。

ADK ではサブエージェントの連携に複数のパターンがあります:

  • sub_agents パターン: LLM が自動的に transfer_to_agent を生成してサブエージェントに制御を移譲
  • AgentTool パターン: サブエージェントをツールとしてラップし、ルートエージェントから呼び出す

以下は AgentTool パターンの例です。サブエージェントが独自のツールを持ち、ルートエージェントから「ツール」として呼び出されます。

from google.adk.agents import Agent
from google.adk.tools import AgentTool, ToolContext
# --- Sub-agent 1: Goal Setting ---
def get_user_goal(tool_context: ToolContext) -> dict:
"""Retrieves the user's current health goal from session state."""
goal = tool_context.state.get("health_goal")
if goal is None:
return {"status": "not_set", "message": "No goal set yet."}
return {"status": "success", "health_goal": goal}
def set_user_goal(tool_context: ToolContext, goal_type: str, description: str) -> dict:
"""Sets the user's health goal in session state."""
tool_context.state["health_goal"] = {"goal_type": goal_type, "description": description}
return {"status": "success", "message": f"Goal set: {goal_type}"}
goal_setting_agent = Agent(
name="goal_setting_agent",
description="Handles health goal setting and retrieval.",
instruction="You help users set and check their health goals.",
tools=[get_user_goal, set_user_goal],
)
# --- Sub-agent 2: Meal Advisor ---
meal_advisor_agent = Agent(
model="gemini-2.5-flash",
name="meal_advisor_agent",
description="Provides meal recommendations based on user goals.",
instruction="You suggest meals considering the user's health goals and calorie targets.",
)
# --- Root Agent ---
root_agent = Agent(
model="gemini-2.5-flash",
name="health_advisor",
description="Main health advisor agent",
instruction="""You are a health advisor assistant.
## Your Role
- Understand user requests and delegate to appropriate sub-agents
- Use goal_setting_agent for goal-related queries
- Use meal_advisor_agent for meal recommendations
## Direct Response Cases
- Greetings: respond directly
- General health questions: respond directly
""",
tools=[
AgentTool(agent=goal_setting_agent),
AgentTool(agent=meal_advisor_agent),
],
)

ルートエージェントは LLM の判断に基づいて、適切なサブエージェントに処理を委譲します。各サブエージェントは独自のツールと指示を持ち、専門的なタスクを処理します。

また、ワークフロー制御用のエージェントも用意されています:

  • SequentialAgent: エージェントを順番に実行
  • ParallelAgent: エージェントを並行実行
  • LoopAgent: 条件を満たすまで繰り返し

ADK 2.0(Beta): graph ベースの Workflow ランタイム

Section titled “ADK 2.0(Beta): graph ベースの Workflow ランタイム”

2026 年 4 月、ADK は v2.0 Beta フェーズに入りました。v2.0 の中心は graph-based Workflow ランタイムで、タスクのルーティング、fan-out / fan-in、ループ、リトライ、HITL(human-in-the-loop)承認、nested workflow を graph として明示的に記述できます。Task API を組み合わせると、エージェント間の委譲を input / output contract で型付けでき、Sequential / Parallel / Loop よりも複雑な分岐を扱いやすくなります。

ただし v2.0 は Python 限定で、執筆時点では Beta phase。v1.x は production 継続で、v2.0 と v1.x は同じプロセス内で混在可能(互換性は維持されている)。本番ワークロードを今すぐ v2.0 に寄せる必要はなく、Sequential / Parallel / Loop で書ける範囲なら v1.x のままで問題ありません。複雑な graph オーケストレーションが必要になったときに、選択肢として v2.0 を検討する位置づけになります。

ADK 2.0 (Beta)
Graph-based Workflow runtime and Task API for ADK Python.
🔗 adk.dev

シナリオ/条件推奨理由
シンプルな AI 機能を迅速にアプリに組み込みたいGenkitチャットボット、要約、RAG など。開発スピード重視の場合
複数の専門エージェントが協調する複雑な AI システムADK複数データソース/ツール利用、役割分担が必要な場合
開発チームが TypeScript / JavaScript 中心GenkitNode.js に対応、Web フロントエンド開発の経験を活かせる
開発チームが Python 中心ADK機械学習やデータ処理の経験を活かせる。Python が GA
開発チームが Go 中心どちらも可Genkit Go は GA、ADK Go も利用可能
Google Cloud データ/企業システムと連携したいADKBigQuery、Salesforce、ServiceNow など豊富なコネクタ
将来的に様々な AI ユースケースに対応したいGenkitプラグインによる拡張性が高く、柔軟に対応できる

ADK が Python、TypeScript、Go、Java をサポートし、Genkit が Node.js、Go、Python、Dart をサポートする今、言語の好みだけで決まることは少なくなりました。

ただし、成熟度には差があります:

言語GenkitADK
TypeScript/Node.jsGAv1.0 stable(2026-04)
GoGAv1.0 stable(2026-03)
PythonBeta(2026-02〜)v1.x GA + v2.0 Beta
DartPreview非サポート
Javaコミュニティ実装(1.0.0-SNAPSHOT)v1.0 stable(2026-03)

チームが Python を書いていて本番環境での安定性を最優先するなら、ADK(v1.x が 2025-05 から GA で実績がある)が自然な選択です。複雑な graph オーケストレーションを試したい場合は v2.0 Beta も視野に入ります。Go で安定した AI ツールキットが欲しいなら、Genkit Go と ADK Go のどちらも v1.x stable で、ユースケース(アプリに AI / agentic 機能を埋める vs スタンドアロン multi-agent システムを組む)で決まります。Dart や Flutter でシステムを構築しているチームなら、Genkit Dart(Preview)が現実的な唯一の選択肢。Java は ADK の v1.0 stable が手堅く、Genkit Java も 1.0.0-SNAPSHOT で動いているので、Java で Genkit パターンを試したいなら覗いてみるのもありです。


両者とも、AI 開発ツール(Gemini CLI、Claude Code、Codex 等)と組み合わせて自然言語からエージェント開発を進められる流れを整えてきています。

Genkit: Gemini CLI 向けに Genkit Extension が提供されています。MCP ツール経由でフロー実行・ドキュメント参照・トレース分析ができ、Genkit のパターンに沿ったコード生成も支援されます。導入手順は公式リポジトリを参照してください。

ADK: Agents CLI(Apache-2.0 ライセンスの OSS)が、ADK と組み合わせて使うスキャフォールディング / 評価 / デプロイ / observability の CLI として用意されています。scaffoldeval rundeploypublish gemini-enterprise などのサブコマンドと、AI コーディングツールに読み込ませる 7 つの skill バンドルを提供します。インストール方法やセットアップは公式ドキュメントを参照してください。

どちらも、エージェント開発のワークフローを「ツールに任せる」方向に進めるアプローチで、構築するシステムの方向性(Genkit / ADK のどちらか)が決まった後で開発体験をさらに加速させたいときの選択肢になります。


学習パスと組み合わせパターン

Section titled “学習パスと組み合わせパターン”

Genkit コミュニティでよく共有される推奨事項があります。それは Anthropic の「Building effective agents」のガイダンスに従うことです。

特に学び始めのうちは、Genkit のような低レイヤーのツールキットから始めて、モデル、ツール、プロンプト、o11y を深く理解し、その後アプリケーションの要件に基づいて ADK のような高レイヤーのフレームワークを採用するのが理にかなっています。

この基礎があれば、ADK でも他のフレームワークでも対応できます。

ユースケースで分ける、その上で組み合わせる

Section titled “ユースケースで分ける、その上で組み合わせる”

「補完的なレイヤー」と言うより、まずユースケースで分けるのが現在の公式の姿勢に近い。Genkit と ADK の使い分けについて、SNS ではこんな棲み分けがよく示されています:

Have an app (web, mobile, etc)? Want to add agentic features to it? Use Genkit!

Building complex, standalone, multi-agent systems? E.g. on GCPs Agent Platform? Use ADK.

  • Genkit を選ぶとき: 既存アプリ(Web / モバイル / API バックエンド)に AI / agentic 機能を足したいケース。チャット、要約、RAG、ツール呼び出しなど。スタートが早く、アプリ開発者にとって扱いやすい
  • ADK を選ぶとき: Agent Platform 上で複数エージェントが協調するスタンドアロンな複雑システム。コネクタ・ガバナンス・評価などエンタープライズ要件が前面に出るケース

「どっちも使いたい」場合は組み合わせも可能です。例えば Genkit で書いた API バックエンドから、別途デプロイした ADK エージェントを呼び出す構成。ただ最初から「組み合わせ前提」で設計する必要はなく、まずは自分のユースケースがどちら寄りかを見極めてから、必要に応じて橋渡しを考える順番で十分です。


Genkit と ADK は「どちらが良いか」ではなく、補完的なレイヤーとして捉えるのが実践的です。

レイヤーフレームワークフォーカス
低レイヤーGenkitモデル、ツール、プロンプト、MCP、o11y
高レイヤーADKセッション管理、メモリ、評価、マルチエージェントオーケストレーション

学び始めは Genkit で AI の基礎を理解し、要件が複雑になったら ADK を検討する。あるいは、Genkit を基盤として ADK を組み合わせる。この柔軟な選択肢があることが、Google の AI フレームワークエコシステムの強みです。


Genkit Documentation
Official documentation for Genkit.
🔗 genkit.dev
genkit
Open-source framework for building AI-powered apps in JavaScript, Go, and Python.
🔗 github.com
genkit-ai/genkit-dart
Dart 向け Genkit SDK — モデルプラグイン、フロー定義、サーバーサイドホスティング。
🔗 github.com
genkit-ai/genkit-java
Genkit の Java 実装。コミュニティ開発中(1.0.0-SNAPSHOT)、Java 21 以上が必要。
🔗 github.com
Mastering Genkit: Go Edition
Comprehensive guide for building production-ready AI applications with Go and Genkit.
🔗 mastering-genkit.github.io
Announcing Genkit Middleware
Genkit Middleware の正式発表記事。Generate / Model / Tool の 3 レイヤで横断的拡張を実現。
🔗 developers.googleblog.com
Mastering Genkit: Middleware の章
Middleware を使った横断的拡張パターンの解説。
🔗 mastering-genkit.github.io
Genkit Extension for Gemini CLI
Gemini CLI から Genkit のフロー実行・トレース分析・コード生成を呼び出せる拡張。
🔗 github.com
Agent Development Kit Documentation
Official documentation for ADK.
🔗 google.github.io
google/adk-python
An open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents.
🔗 github.com
google/adk-samples
Ready-to-use agents built on ADK for Python and Java.
🔗 github.com
ADK 2.0 (Beta)
Graph-based Workflow ランタイムと Task API。Python 限定の Beta。
🔗 adk.dev
Agents CLI
ADK エージェントの scaffolding / 評価 / デプロイ / observability を担う OSS CLI。
🔗 github.com
Gemini Enterprise Agent Platform
Vertex AI の進化版として Cloud Next 26 でリブランド。
🔗 cloud.google.com