用途:在 Go 中使用 Genkit 构建 AI 功能、智能体、Flows 与工具,统一对接多家模型提供商。
主要能力:初始化 genkit.Init 与插件;调用 Generate、GenerateText、GenerateData,支持流式输出与输出格式;通过 DefinePrompt、DefineDataPrompt 和 .prompt 文件定义提示词;通过 DefineTool 定义工具并处理中断与 RestartWith/RespondWith;使用 ai.Middleware、ai.WithUse 与内置 Retry、Fallback、ToolApproval、Filesystem、Skills 等中间件;通过 DefineFlow、DefineStreamingFlow 与 genkit.Handler 定义和部署 HTTP 服务。
用法要点:显式传递 genkit.Init 返回的 *Genkit 实例,不要做全局变量;把 AI 逻辑放进 Flows 以获得追踪和测试能力;为输出类型加 jsonschema:"description=..." 标签;为工具写清晰描述;复杂提示词优先用 .prompt 文件;优先使用内置中间件。
CLI:先检查 genkit --version;安装命令为 curl -sL cli.genkit.dev | bash;可用 genkit start -- go run . 启动开发者界面,genkit flow:run myFlow '{"data": "input"}' 运行流程,genkit docs:search "streaming" go 等查询文档。
适用场景:需要在本 Go 项目中加入生成、结构化输出、工具调用、流式响应与可观测流程的 AI 功能。
限制:模型 ID 会频繁变化,应查阅对应提供商文档,不要硬编码;示例中的模型名与具体定价、性能等资料暂未提供。