D

developing-genkit-go

by @firebasev
4.7(4)

Go言語AI SDKで、生成、構造化出力、ストリーミング、ツール呼び出し、フローオーケストレーションのための統一されたインターフェースを提供します。

ai-engineeringllm-integrationgoautomationai-agentsGitHub
インストール方法
npx skills add firebase/agent-skills --skill developing-genkit-go
compare_arrows

Before / After 効果比較

1
使用前

異なるAIプロバイダーのAPIを手動で呼び出し、様々な形式の応答とエラーを処理し、ストリーミングとツール呼び出しに適応させるため、開発サイクルが長い。

使用後

統一されたSDKインターフェースを使用し、マルチモデルの互換性を自動的に処理し、ストリーミングとツール呼び出しのサポートを内蔵することで、開発効率が大幅に向上します。

SKILL.md

developing-genkit-go

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.

Weekly Installs6.2KRepositoryfirebase/agent-skillsGitHub Stars218First Seen6 days agoSecurity AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled ongemini-cli6.2Kantigravity6.1Kcursor6.1Kopencode6.1Kcodex6.1Kgithub-copilot6.1K

ユーザーレビュー (0)

レビューを書く

効果
使いやすさ
ドキュメント
互換性

レビューなし

統計データ

インストール数44.5K
評価4.7 / 5.0
バージョン
更新日2026年5月23日
比較事例1 件

ユーザー評価

4.7(4)
5
75%
4
25%
3
0%
2
0%
1
0%

この Skill を評価

0.0

対応プラットフォーム

🔧Claude Code

タイムライン

作成2026年4月14日
最終更新2026年5月23日