jpskill.com
🛠️ 開発・MCP コミュニティ

developing-genkit-go

Develop AI-powered applications using Genkit in Go. Use when the user asks to build AI features, agents, flows, or tools in Go using Genkit, or when working with Genkit Go code involving generation, prompts, streaming, tool calling, or model providers.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o developing-genkit-go.zip https://jpskill.com/download/19099.zip && unzip -o developing-genkit-go.zip && rm developing-genkit-go.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/19099.zip -OutFile "$d\developing-genkit-go.zip"; Expand-Archive "$d\developing-genkit-go.zip" -DestinationPath $d -Force; ri "$d\developing-genkit-go.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して developing-genkit-go.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → developing-genkit-go フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
7

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Genkit Go

Genkit Go は、Go 用の AI SDK です。モデルプロバイダー間で統一されたインターフェースで、生成、構造化出力、ストリーミング、ツール呼び出し、プロンプト、フローを提供します。

Hello World

package main

import (
    "context"
    "fmt"
    "log"
    "net/http"

    "github.com/genkit-ai/genkit/go/ai"
    "github.com/genkit-ai/genkit/go/genkit"
    "github.com/genkit-ai/genkit/go/plugins/googlegenai"
    "github.com/genkit-ai/genkit/go/plugins/server"
)

func main() {
    ctx := context.Background()
    g := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{}))

    genkit.DefineFlow(g, "jokeFlow", func(ctx context.Context, topic string) (string, error) {
        return genkit.GenerateText(ctx, g,
            ai.WithModelName("googleai/gemini-flash-latest"),
            ai.WithPrompt("Tell me a joke about %s", topic),
        )
    })

    mux := http.NewServeMux()
    for _, f := range genkit.ListFlows(g) {
        mux.HandleFunc("POST /"+f.Name(), genkit.Handler(f))
    }
    log.Fatal(server.Start(ctx, "127.0.0.1:8080", mux))
}

主要機能

必要なものに応じて、適切なリファレンスを読み込んでください。

機能 リファレンス 読み込むタイミング
初期化 references/getting-started.md genkit.Init、プラグイン、*Genkit インスタンスパターンの設定
生成 references/generation.md GenerateGenerateTextGenerateData、ストリーミング、出力形式
プロンプト references/prompts.md DefinePromptDefineDataPrompt.prompt ファイル、スキーマ
ツール references/tools.md DefineTool、ツール割り込み、RestartWith/RespondWith
フローと HTTP references/flows-and-http.md DefineFlowDefineStreamingFlowgenkit.Handler、HTTP サービング
モデルプロバイダー references/providers.md Google AI、Vertex AI、Anthropic、OpenAI 互換、Ollama の設定

Genkit CLI

インストールされているか確認します: genkit --version

インストール:

curl -sL cli.genkit.dev | bash

主要コマンド:

# Developer UI (トレーシング、フローテスト) を http://localhost:4000 で起動してアプリを開始します
genkit start -- go run .
genkit start -o -- go run .   # ブラウザも開きます

# CLI から直接フローを実行します
genkit flow:run myFlow '{"data": "input"}'
genkit flow:run myFlow '{"data": "input"}' --stream   # ストリーミングあり
genkit flow:run myFlow '{"data": "input"}' --wait      # 完了を待ちます

# Genkit のドキュメントを検索します
genkit docs:search "streaming" go
genkit docs:list go
genkit docs:read go/flows.md

CLI と Developer UI の詳細については、references/getting-started.md を参照してください。

主要なガイダンス

  • g を明示的に渡してください。 genkit.Init が返す *Genkit インスタンスは中央レジストリです。グローバルとして保存するのではなく、すべての Genkit 関数に渡してください。これは SDK 全体を通してのコアパターンです。
  • AI ロジックをフローでラップしてください。 フローは、トレーシング、可観測性、genkit.Handler を介した HTTP デプロイ、Developer UI と CLI からのテスト機能を提供します。保持する価値のある生成呼び出しはすべてフロー内に配置すべきです。
  • 出力型に jsonschema:"description=..." 構造体タグを使用してください。 モデルはこれらの説明を使用して、各フィールドに何が含まれるべきかを理解します。これらがないと、構造化出力の品質が大幅に低下します。
  • 適切なツール記述を記述してください。 モデルは、ツールを呼び出すかどうかをその記述文字列に基づいて決定します。曖昧な記述は、ツールの呼び出しの失敗や誤った呼び出しにつながります。
  • 複雑なプロンプトには .prompt ファイルを使用してください。 これらはプロンプトの内容を Go コードから分離し、Handlebars テンプレートをサポートし、再コンパイルなしで反復処理できます。コードで定義されたプロンプトは、単純な単一行のケースに適しています。
  • 最新のモデル ID を調べてください。 モデル名は頻繁に変更されます。ハードコードされた名前に頼るのではなく、現在のモデル ID についてはプロバイダーのドキュメントを確認してください。references/providers.md を参照してください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Genkit Go

Genkit Go is an AI SDK for Go that provides generation, structured output, streaming, tool calling, prompts, and flows with a unified interface across model providers.

Hello World

package main

import (
    "context"
    "fmt"
    "log"
    "net/http"

    "github.com/genkit-ai/genkit/go/ai"
    "github.com/genkit-ai/genkit/go/genkit"
    "github.com/genkit-ai/genkit/go/plugins/googlegenai"
    "github.com/genkit-ai/genkit/go/plugins/server"
)

func main() {
    ctx := context.Background()
    g := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{}))

    genkit.DefineFlow(g, "jokeFlow", func(ctx context.Context, topic string) (string, error) {
        return genkit.GenerateText(ctx, g,
            ai.WithModelName("googleai/gemini-flash-latest"),
            ai.WithPrompt("Tell me a joke about %s", topic),
        )
    })

    mux := http.NewServeMux()
    for _, f := range genkit.ListFlows(g) {
        mux.HandleFunc("POST /"+f.Name(), genkit.Handler(f))
    }
    log.Fatal(server.Start(ctx, "127.0.0.1:8080", mux))
}

Core Features

Load the appropriate reference based on what you need:

Feature Reference When to load
Initialization references/getting-started.md Setting up genkit.Init, plugins, the *Genkit instance pattern
Generation references/generation.md Generate, GenerateText, GenerateData, streaming, output formats
Prompts references/prompts.md DefinePrompt, DefineDataPrompt, .prompt files, schemas
Tools references/tools.md DefineTool, tool interrupts, RestartWith/RespondWith
Flows & HTTP references/flows-and-http.md DefineFlow, DefineStreamingFlow, genkit.Handler, HTTP serving
Model Providers references/providers.md Google AI, Vertex AI, Anthropic, OpenAI-compatible, Ollama setup

Genkit CLI

Check if installed: genkit --version

Installation:

curl -sL cli.genkit.dev | bash

Key commands:

# Start app with Developer UI (tracing, flow testing) at http://localhost:4000
genkit start -- go run .
genkit start -o -- go run .   # also opens browser

# Run a flow directly from the CLI
genkit flow:run myFlow '{"data": "input"}'
genkit flow:run myFlow '{"data": "input"}' --stream   # with streaming
genkit flow:run myFlow '{"data": "input"}' --wait      # wait for completion

# Look up Genkit documentation
genkit docs:search "streaming" go
genkit docs:list go
genkit docs:read go/flows.md

See references/getting-started.md for full CLI and Developer UI details.

Key Guidance

  • Pass g explicitly. The *Genkit instance returned by genkit.Init is the central registry. Pass it to all Genkit functions rather than storing it as a global. This is a core pattern throughout the SDK.
  • Wrap AI logic in flows. Flows give you tracing, observability, HTTP deployment via genkit.Handler, and the ability to test from the Developer UI and CLI. Any generation call worth keeping should live in a flow.
  • Use jsonschema:"description=..." struct tags on output types. The model uses these descriptions to understand what each field should contain. Without them, structured output quality drops significantly.
  • Write good tool descriptions. The model decides which tools to call based on their description string. Vague descriptions lead to missed or incorrect tool calls.
  • Use .prompt files for complex prompts. They separate prompt content from Go code, support Handlebars templating, and can be iterated on without recompilation. Code-defined prompts are better for simple, single-line cases.
  • Look up the latest model IDs. Model names change frequently. Check provider documentation for current model IDs rather than relying on hardcoded names. See references/providers.md.

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。