genkit-ai/genkit · 上手攻略
- 仓库:genkit-ai/genkit
- 链接:https://github.com/genkit-ai/genkit
- 分类:AI · 应用开发框架
- 作者:Tom
- 更新:2026-08-19
这是什么
Genkit 是 Google Firebase 团队开源的全栈 AI 应用开发框架,支持 JavaScript/TypeScript(生产就绪)、Go(生产就绪)、Python(Beta)、Dart(Preview)四种语言,可对接 Google Gemini、OpenAI、Anthropic、Ollama 等主流模型厂商。
核心理念:一套 API 走天下——不管你用哪家模型,Genkit 提供统一的生成接口、工具调用(Tool Calling)、RAG 工作流、AI Flow 编排能力,并在本地提供专用的 CLI + 开发者 UI 用于调试和迭代。
当前稳定版:Genkit JS/Go 1.0(2025年2月 JS 发布 1.0,2025年9月 Go 发布 1.0),Python 处于 Beta 阶段。
解决什么问题
AI 应用开发有三个普遍痛点:
- 模型切换成本高:今天用 Gemini,明天换 Claude,代码要重写。Genkit 统一接口,换 provider 只需改插件配置。
- Agentic 工作流调试困难:多步骤工具调用、循环决策、状态管理,用 print 调试几乎不可能。Genkit 提供本地 trace 可视化,每一步都有记录。
- 生产部署与监控缺失:多数框架只管"跑起来",不管"跑得好不好"。Genkit 集成 Firebase/Cloud 监控面板,看得到延迟、错误率、模型调用量。
典型应用:AI 聊天机器人、自动化工作流、RAG 问答系统、多模态内容生成(文生图/图生文)、推荐系统。
快速安装
前置要求 - Node.js 18+(JavaScript/TypeScript) - Go 1.21+(Go SDK) - Python 3.10+(Python SDK) - 对应模型的 API Key(Gemini / OpenAI / Anthropic 等)
JavaScript/TypeScript(推荐)
# 1. 创建项目
mkdir my-genkit-app && cd my-genkit-app
npm init -y
# 2. 安装 Genkit 核心 + Google AI 插件
npm install genkit @genkit-ai/google-genai
# 3. 安装 Genkit CLI(全局)
npm install -g genkit-cli
# 4. 配置 API Key(Mac/Linux)
export GOOGLE_GENAI_API_KEY="your-api-key-here"
# 或(Windows PowerShell)
# $env:GOOGLE_GENAI_API_KEY="your-api-key-here"
# 5. 初始化项目
genkit init
# 6. 启动本地开发者 UI
genkit start
# 浏览器打开 http://localhost:4000(开发者 UI)
Go
# 1. 安装
go install github.com/firebase/genkit/go/genkit@latest
# 2. 初始化
genkit init
# 3. 运行
go run genkit.go
Python(Beta)
pip install genkit genkit-python
python -m genkit start
核心用法
最简示例(JavaScript/TypeScript)
import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/google-genai';
// 初始化(加载插件)
const ai = genkit({ plugins: [googleAI()] });
// 调用生成
async function main() {
const { text } = await ai.generate({
model: googleAI.model('gemini-flash-latest'),
prompt: 'What is the meaning of life?',
});
console.log(text);
}
main();
工具调用(Tool Calling)
import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/google-genai';
import { defineTool } from 'genkit/tool';
const ai = genkit({
plugins: [googleAI()],
tools: {
// 定义一个工具:查询天气
getWeather: defineTool({
name: 'getWeather',
description: 'Get weather for a city',
input: { type: 'object', properties: { city: { type: 'string' } } },
output: { type: 'string' },
handler: async ({ city }) => {
// 实际应用中这里调天气 API
return `The weather in ${city} is sunny, 22°C.`;
},
}),
},
});
// 带工具调用的生成
const response = await ai.generate({
model: googleAI.model('gemini-flash-latest'),
prompt: 'What is the weather in Tokyo?',
});
console.log(response.text);
AI Flow(多步骤工作流)
import { genkit, z } from 'genkit';
import { googleAI } from '@genkit-ai/google-genai';
const ai = genkit({ plugins: [googleAI()] });
// 定义一个 Flow:先翻译再总结
const translateAndSummarize = ai.defineFlow(
{
name: 'translateAndSummarize',
inputSchema: z.object({ text: z.string(), targetLang: z.string() }),
outputSchema: z.object({ translation: z.string(), summary: z.string() }),
},
async ({ text, targetLang }) => {
// Step 1: 翻译
const { text: translation } = await ai.generate({
model: googleAI.model('gemini-flash-latest'),
prompt: `Translate to ${targetLang}: ${text}`,
});
// Step 2: 摘要
const { text: summary } = await ai.generate({
model: googleAI.model('gemini-flash-latest'),
prompt: `Summarize in 3 sentences: ${translation}`,
});
return { translation, summary };
}
);
// 调用 Flow
const result = await translateAndSummarize({ text: '...', targetLang: 'Chinese' });
RAG(检索增强生成)
import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/google-genai';
import { simpleVectorize } from 'genkit/vectorizer';
const ai = genkit({
plugins: [googleAI()],
});
// 索引文档
await ai.index({
indexer: googleAI.model('embedding-001'),
documents: [
{ content: 'Genkit is built by Google Firebase.', metadata: { source: 'docs' } },
{ content: 'It supports JavaScript, Go, Python and Dart.', metadata: { source: 'docs' } },
],
vectorize: simpleVectorize(),
});
// 查询
const response = await ai.retrieveAndGenerate({
model: googleAI.model('gemini-flash-latest'),
query: 'What languages does Genkit support?',
});
开发者工具
Genkit 的核心差异化在于本地工具链:
genkit start(本地 UI)
浏览器访问 localhost:4000,提供三个核心功能:
- Run:在 Playground 中测试 prompts 和 flows
- Inspect:回放历史执行的完整 trace,可看到每一步的工具调用、模型输入输出
- Evaluate:批量跑测试集,查看指标
genkit CLI 常用命令
genkit start -- # 启动本地开发者 UI
genkit eval -- # 对 flows 跑评估
genkit flow:run <flow-name> # 直接运行单个 flow
genkit deploy # 部署到 Firebase Cloud Functions / Cloud Run
生产监控
部署后可在 Firebase Console 看: - 请求量 / 延迟 P50/P95/P99 - 错误率 - 模型调用 token 消耗
典型适用场景
| 场景 | 适合程度 | 说明 |
|---|---|---|
| 全栈 AI 应用(Next.js/React) | ⭐⭐⭐⭐⭐ | 官方有专门客户端 SDK |
| Go 后端 AI 服务 | ⭐⭐⭐⭐⭐ | Go 1.0 已发布,生产就绪 |
| 多模型切换实验 | ⭐⭐⭐⭐⭐ | 插件机制,5分钟换 provider |
| RAG 知识库问答 | ⭐⭐⭐⭐ | 内置 index/retrieve API |
| AI Flow 多步工作流 | ⭐⭐⭐⭐ | 支持循环、条件分支 |
| Python 数据科学 pipeline | ⭐⭐⭐ | Python SDK Beta,部分功能不稳定 |
| 移动端(iOS/Android) | ⭐⭐⭐ | 官方有 Dart SDK(预览) |
坑与注意
-
Python SDK 仍为 Beta:部分高级功能(如某些 plugin)在 Python 中尚不可用,生产项目建议用 JS 或 Go。
-
Dart SDK 是 Preview:功能不完整,不建议在生产 Dart/Flutter 项目中使用。
-
认证方式差异:Google Gemini 用 API Key,Vertex AI 用不同的认证机制(服务账号),配置不同 plugin 时注意认证方式。
-
genkit start 启动慢:首次启动会下载模型或初始化环境,约需 30~60 秒,请耐心等待。
-
Flow 的状态管理:Genkit Flow 支持有状态循环,但要注意
defineFlow的 handler 默认每次调用是独立的,复杂状态需要自己在代码里管理。 -
Firebase 绑定:官方推荐部署到 Firebase Cloud Functions(无服务器、冷启动快),但也可以独立部署到 Cloud Run 或任何 Node.js/Go 环境——不强制绑定 Firebase。
-
Genkit 1.0 之前版本 API 不兼容:如果看到旧文档,注意
ai.generate和genkit.Init的接口在 1.0 有变化,建议从官方文档确认版本。
与同类对比
| 特性 | Genkit | LangChain | LlamaIndex | Dify |
|---|---|---|---|---|
| 语言覆盖 | JS/TS + Go + Python | Python/JS | Python | 无代码 GUI |
| 生产就绪度 | ⭐⭐⭐⭐(JS/Go) | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| 工具链/调试 UI | ✅ 内置本地 UI | ❌ 第三方 | ❌ | ✅ 内置 |
| 多模型统一接口 | ✅ | ✅ | ✅ | ✅ |
| RAG 内置 | ✅ | ✅ | ✅✅ | ✅ |
| Firebase 集成 | ✅ 原生 | ❌ | ❌ | ❌ |
| 企业监控面板 | ✅ Firebase Console | 需自行集成 | 需自行集成 | ✅ |
| 学习曲线 | 中等 | 较陡 | 中等 | 低(无代码) |
Genkit 的优势在于Google 背书的生产就绪 + 开箱即用的调试 UI + Firebase 无缝集成;短板是 Python 支持不如 LangChain 成熟,且没有类似 Dify 的无代码 UI。
一句话推荐结论
Genkit 是 Google 官方出品的生产级 AI 应用框架,如果你用 JavaScript/TypeScript 或 Go 构建 AI 应用,特别是计划部署到 Firebase/Google Cloud,它能提供最顺滑的开发体验——统一的多模型接口、本地 trace 调试、生产监控一站式解决。
来源
- GitHub 仓库(含 README、快速开始文档):https://github.com/genkit-ai/genkit
- 官方文档:https://genkit.dev
- Firebase Genkit 1.0 公告(2025-02-12):https://firebase.blog/posts/2025/02/announcing-genkit
- Genkit Go 1.0 公告(2025-09-10):https://developers.googleblog.com/announcing-genkit-go-10-and-enhanced-ai-assisted-development
- vLLM Recipes(含 Genkit + vLLM 集成示例):https://recipes.vllm.ai/IndexTeam/IndexTTS-2.5(同仓库生态)
- Genkit 示例应用:https://examples.genkit.dev
- Genkit Discord 社区:https://discord.gg/qXt5zzQKpc