Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器github未标认证来源可访问许可证需确认审计通过

developing-genkit-go开发 genkit go

Agent Skill

developing-genkit-go 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

530,784

周安装

22,788

GitHub Stars

262

下载量

186,048
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:developing-genkit-go(开发 genkit go)
来源仓库:https://github.com/firebase/agent-skills
仓库路径:skills/developing-genkit-go
安装命令:
npx skills add https://github.com/firebase/agent-skills --skill developing-genkit-go
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/firebase/agent-skills --skill developing-genkit-go

简介

developing-genkit-go 提供 Genkit Go SDK 的统一接口封装,支持多模型提供商切换与结构化输出生成。

  • 核心组件包括 ai.Generate() 文本生成、ai.Stream() 流式响应及 tool.Call() 外部函数调用能力。
  • 插件系统目前仅开放 GoogleAI 适配器,其他厂商需等待官方集成后方可扩展使用。
  • Flow 定义必须注册到 genkit.Init() 实例才能被 CLI 工具识别,否则无法参与 eval 或部署流程。
  • 所有 prompt 模板建议使用 text/template 语法嵌入变量占位符,避免字符串拼接导致的转义混乱问题。

SKILL.md

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:

FeatureReferenceWhen to load
Initializationreferences/getting-started.mdSetting up genkit.Init, plugins, the *Genkit instance pattern
Generationreferences/generation.mdGenerate, GenerateText, GenerateData, streaming, output formats
Promptsreferences/prompts.mdDefinePrompt, DefineDataPrompt, .prompt files, schemas
Toolsreferences/tools.mdDefineTool, tool interrupts, RestartWith/RespondWith
Middlewarereferences/middleware.mdai.Middleware, ai.WithUse, Hooks (Generate/Model/Tool), built-ins (Retry, Fallback, ToolApproval, Filesystem, Skills)
Flows & HTTPreferences/flows-and-http.mdDefineFlow, DefineStreamingFlow, genkit.Handler, HTTP serving
Model Providersreferences/providers.mdGoogle 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.
  • Reach for built-in middleware before writing one. Retry, Fallback, ToolApproval, Filesystem, and Skills cover the common cross-cutting needs and compose with each other via ai.WithUse. See references/middleware.md. When you do write custom middleware, allocate per-call state in closures captured by New, and guard anything that WrapTool mutates because tools may run concurrently.
  • 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.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.84%
按下载量换算66,680

Claude

34%
按下载量换算63,256

Cursor

17.78%
按下载量换算33,079

Gemini CLI

10%
按下载量换算18,605

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills