DX開発事業部 フルスタックセクションの田村です。
Google Cloud Next 2025 現地参加3日目のイベントレポートをお届けいたします。
セッション情報
セッションタイトル:Introducing Firebase Genkit: A new framework for AI development
概要:
AI搭載アプリケーションの開発を簡素化するオープンソースフレームワーク、Firebase Genkitの詳細なセッションにご参加ください。Node.jsとGo SDKを使用して、インテリジェントなチャットボット、マルチモーダルコンテンツジェネレータ、合理化されたオートメーションワークフロー、エージェント体験設計を構築する方法を発見してください。Genkitの統一されたインターフェイスが、GoogleのGeminiモデルやImagenモデル、セルフホスト型のOllamaオプション、Vertex AI Model Gardenのさまざまな人気モデルをどのようにシームレスに統合するかを実演します。
はじめに
Building production quality AI-powered features is challenging
セッションの冒頭で、「AI搭載機能をプロダクション品質で構築するのはチャレンジング」と話されていました。AI機能を本番運用レベルで使用していくためには、次のような課題があります。
- 新しい概念やツールのキャッチアップが大変
- プロンプト設計(Prompt Engineering)が難しい
- テストやデバッグには従来と違うアプローチが必要
- 可観測性・モニタリングがなければ安心安全な運用ができない
実際、これまでと全く新しい概念をシステムに取り込んでいくためライブラリやサービスの習熟度が重要となってきますし、プロンプトの作成はシステム構築とはまた異なった専門性が求められます。そのため安定したシステムを作り上げていくには上記に挙げられているような、いくつもの壁があると思っています。
Genkitとは?
GenkitはAIエージェント開発のための統合フレームワークです。
以下のようなUIでモデルやフロー、プロンプトの確認ができます。
Genkitでは以下の3要素から利用可能となっているようです。
- SDK(Node.js / Go / Python):モデルやベクトルストア、ツール、エージェントなどAIエージェント構築に必要な機能を利用可能
- プラグイン:プラットフォームやAIプロバイダーとの統合が可能なプラグインを提供
- Dev Tools:CLIと開発者向けのUIで検証やデバッグが可能
SDKは現在主流な言語に対応しており、順次リリースされてきています。
Node.jsはGA(正式版)、Goはベータ版、Pythonはアルファ版となっています。
AI周りだとPythonを使う事例も多いと思いますので正式リリースが待ち遠しいですね。
Genkitの特徴
Genkitはパッケージをインストールしてモデルを選択することでコードを書き始められます。
Genkitが提供する主要機能は以下があります。
機能 | 概要 | 特徴 |
---|---|---|
Unified Model API | 複数のAIモデルを共通インターフェースで利用可能 | マルチモーダル対応、モデル切替が1行 |
Structure and Type-Safety | 出力の構造化と型安全を保証 | zod / pydantic / Go struct によるバリデーション |
Function Calling | AIが関数やAPIを必要に応じて呼び出す | ツール定義、実行タイミングの自動判断 |
Vector Search & RAG | 独自データで生成結果を補強 | Pineconeなどと連携、簡単なAPI設計 |
Multi-step Flows | 複数の生成処理をまとめて管理 | トレース付きで可観測性あり |
Prompt Management | プロンプト・スキーマ・設定をYAMLで管理 | バージョン管理、非エンジニアでも扱いやすい |
Conversational Agents | 会話型エージェントを簡単に構築 | 履歴管理・ステート管理も自動で対応 |
共通のAPIでモデルにアクセスをしたり、言語ごとの型定義、ツールへのアクセスやフロー管理などが統合されているため、簡単に利用を開始することができます。
特に面白かったのはMulti-step Flows
とPrompt Management
の機能です。
Multi-step Flow
複数の生成ステップを1つのフローにまとめて定義することが可能です。
各ステップをまとめた親フローとして定義することで、マルチステップなワークフローにおいてもトレースを行えます。
const storyFlow = ai.defineFlow('storyFlow', async (subject) => { // 初期アイデアを生成 const { text: initialIdeas } = await ai.generate({ prompt: `Generate 10 kids bedtime story ideas about ${subject}.`, }); // ベストなアイデアを選定 const { text: bestIdea } = await ai.generate({ prompt: `Pick the best kids bedtime story idea from these: ${initialIdeas}`, }); // ストーリーを生成 const { text: story } = await ai.generate({ prompt: `Write a short kids bedtime story about this idea: ${bestIdea}`, }); return story; }); // "bears" をテーマにFlowを実行 const bearStory = await storyFlow('bears');
Prompt Management
プロンプトやスキーマ、モデルの設定を以下のような1つのYAMLファイルへ統合することが可能となっており、バージョン管理もできます。
--- model: vertexai/gemini-2.0-flash config: temperature: 0.9 input: schema: properties: location: { type: string } style: { type: string } name: { type: string } required: [location] default: location: a restaurant --- You are the most welcoming AI assistant and are currently working at {{location}}. Greet a guest{{#if name}} named {{name}}{{/if}}{{#if style}} in the style of {{style}}{{/if}}.
モデルやtemperatureの設定を含んだ構成で、入力スキーマの定義やデフォルト値の定義をできる点は便利そうです。また{{}}
や{{#if}}...{{/if}}
のテンプレート構文が使えるため、柔軟なプロンプト記述も可能です。
コードと分離させてプロンプト管理を行えるため、ローコードで実装する場合にも有効ではないでしょうか。
Genkitのプラグインオプション
あらゆるAIモデルやストレージ、インフラと連携できるように、豊富なプラグインと柔軟なデプロイオプションを提供しています。
Modelsプラグイン
分類 | 内容 |
---|---|
Gemini | Vertex AI または Google AI 経由でホストされるGeminiモデル群 |
Vertex Model Garden | Anthropic Cloud 3や Imagenモデルなど、Vertex経由の多様なモデルが利用可能 |
Self-hosted (Ollama) | Gemma 3やLLaMAなどをOllama経由でセルフホスト構成として実行可能 |
コミュニティプラグイン | OpenAI、Anthropic などOSSや外部プロバイダー向けの拡張機能 |
Geminiモデルはもちろんのこと、Cloud 3やImagenなどVertex AI経由のモデルを利用可能な点は良いですね。
Vector Storesプラグイン
分類 | 内容 |
---|---|
Google公式 | Cloud Firestore / Vertex Vector Search / pgvector |
サードパーティ製 | Pinecone / DataStax AstraDB / Neo4j / ChromaDB |
デプロイオプション(Deployment Options)
オプション | 内容 |
---|---|
Firebase | Firebase App Hosting または Cloud Functions for Firebase でサーバレス運用が可能 |
Google Cloud | Cloud Run や GKE を活用したフルマネージドなデプロイが可能 |
Any Container | Python / Node.js / Go をサポートする任意のコンテナ環境にデプロイ可能(オンプレ含む) |
Firebase上やGoogle Cloudのコンテナサービス、その他任意のコンテナにデプロイができるため、自社環境にも対応できるような柔軟な設計になっているというのは利用するメリットの1つかと思います。
試したい方向け
公式ドキュメントに利用開始が記載されているほか、GenkitのGitHubリポジトリが公開されています。
その他にもDiscordのコミュニティも存在しているようです。
個人的に刺さったポイント
AIエージェントの構築に必要な機能がほとんど網羅されていて、UIベースで確認できたりGoogle Cloudサービスとの親和性、いくつかのプラグイン提供など開発者主体で構築を進められるサービスになっていると思います。
特にマルチフローの設計や会話型エージェントの開発まで対応できるのは大きなメリットかと思います。
最後に
GenkitはただのSDKではなくAIエージェント開発における開発基盤になりうる存在だと思います。今後もPythonやGoのサポート強化、さらなるプラグイン追加など進化が続くと思いますので、今後AIエージェント開発で試していきたいと思いました。
個人的には今後導入を検討したくなる完成度だと感じました。