Genkit の Code Execution 機能を使って生成 AI に Python コードを実行させてみた
はじめに
Genkit の version 0.5.8 で Google AI の Code Execution 機能が追加されました。これにより生成 AI に Python コードを実行させることが可能になりました。
Genkit プロジェクトの初期化
Genkit プロジェクトの初期化を行います。
% npm create genkitx
? Select template › - Use arrow-keys. Return to submit.
❯ Minimal - This is a Minimal template
MCP
? Enter your project name › hello-genkit
✅ Project "hello-genkit" has been successfully generated
% cd hello-genkit
% export GEMINI_API_KEY=<your-api-key>
src/index.ts のファイルを確認します。このコードが Genkit による生成 AI リクエストの実態となるコードで 20 行程度で書くことができます。
import { genkit, z } from 'genkit'
import { googleAI, gemini20Flash } from '@genkit-ai/googleai'
import { startFlowServer } from '@genkit-ai/express'
import { logger } from 'genkit/logging'
logger.setLogLevel('debug')
const ai = genkit({
plugins: [googleAI()],
model: gemini20Flash,
})
const mainFlow = ai.defineFlow({
name: 'mainFlow',
inputSchema: z.string(),
}, async (input) => {
const { text } = await ai.generate(input)
return text
})
startFlowServer({ flows: [mainFlow] })
Code Execution の有効化
genkit 関数の引数で生成 AI モデルを指定している箇所で .withConfig({ codeExecution: true }) を足すだけで有効化できます。
- model: gemini15Flash,
+ model: gemini15Flash.withConfig({ codeExecution: true }),
挙動の確認
以下を実行して Developer Tool を起動します。
% npm start
Flow メニューから実装した Flow を選択します。
まず、以下のプロンプトをリクエストしてみます。
「10万回コインを投げて、表が出た回数の割合をシミュレートしてください。」

View Trace を選択すると実際にコードが実行されたことがわかります。

次に、より直接的なリクエストをしてみます。
「Python で以下のコードを実行してください: print('Hello World') 」

先ほどと同様、View Trace を選択すると実際にコードが実行されたことがわかります。

最後に、コードとは関係のない一般的なリクエストをしてみます。


すると、コードの実行がされていないことがわかります。これは、Code Execution が tools の 1 つの選択肢として指定されているためです。生成 AI は必要な場合にしか Code Execution を実行しません。
まとめ
1 行追加するだけで簡単に Code Execution を試すことができました。これによって Genkit でできることの幅が広がったのではないかと思います。も是非試してみてください。
参考資料
- Code Execution: https://ai.google.dev/gemini-api/docs/code-execution?lang=node
- Release notes: https://github.com/firebase/genkit/releases/tag/0.5.8
Discussion