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 应用开发有三个普遍痛点:

  1. 模型切换成本高:今天用 Gemini,明天换 Claude,代码要重写。Genkit 统一接口,换 provider 只需改插件配置。
  2. Agentic 工作流调试困难:多步骤工具调用、循环决策、状态管理,用 print 调试几乎不可能。Genkit 提供本地 trace 可视化,每一步都有记录。
  3. 生产部署与监控缺失:多数框架只管"跑起来",不管"跑得好不好"。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(预览)

坑与注意

  1. Python SDK 仍为 Beta:部分高级功能(如某些 plugin)在 Python 中尚不可用,生产项目建议用 JS 或 Go。

  2. Dart SDK 是 Preview:功能不完整,不建议在生产 Dart/Flutter 项目中使用。

  3. 认证方式差异:Google Gemini 用 API Key,Vertex AI 用不同的认证机制(服务账号),配置不同 plugin 时注意认证方式。

  4. genkit start 启动慢:首次启动会下载模型或初始化环境,约需 30~60 秒,请耐心等待。

  5. Flow 的状态管理:Genkit Flow 支持有状态循环,但要注意 defineFlow 的 handler 默认每次调用是独立的,复杂状态需要自己在代码里管理。

  6. Firebase 绑定:官方推荐部署到 Firebase Cloud Functions(无服务器、冷启动快),但也可以独立部署到 Cloud Run 或任何 Node.js/Go 环境——不强制绑定 Firebase。

  7. Genkit 1.0 之前版本 API 不兼容:如果看到旧文档,注意 ai.generategenkit.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