Genkit 是由Google Firebase团队开源的全栈AI应用开发框架。它提供了统一的API接口,让开发者能够轻松集成多种AI模型(Gemini、OpenAI、Anthropic等),并通过跨语言SDK支持TypeScript和Go。Genkit的核心设计理念是"AI去中心化"——开发者可以在本地开发和测试AI流程,然后无缝部署到Firebase Cloud Functions、Cloud Run或任何云平台。
对于想要深入了解TypeScript AI框架的开发者,也可以参考我们的 Mastra TypeScript框架教程 进行对比学习。
| 组件 | 说明 | 核心能力 |
|---|---|---|
| ai.defineFlow | 定义AI工作流管道 | 链式调用、流式输出、并行执行 |
| ai.definePrompt | 结构化提示词模板 | 模板复用、变量注入、输出验证 |
| ai.defineTool | 自定义工具/函数调用 | RAG检索、API调用、数据库查询 |
| ai.defineRetriever | 向量检索器 | 多数据源接入、语义搜索 |
| ai.defineIndexer | 文档索引器 | 自动分块、向量化、增量更新 |
| Dev UI | 本地开发调试界面 | 可视化测试、性能分析、模型对比 |
| Dotprompt | 提示词即代码 | Markdown格式提示词、版本管理 |
安装Genkit CLI和核心依赖:
# 安装 Genkit CLI
npm install -g genkit
# 创建新项目
mkdir my-ai-app && cd my-ai-app
npm init -y
# 安装核心包
npm install genkit @genkit-ai/googleai
# 安装开发工具
npm install -D genkit-cli
# 配置环境变量
export GEMINI_API_KEY="your-api-key"
# 启动开发服务器
npx genkit start
安装完成后,访问 http://localhost:4000 即可打开Dev UI进行可视化调试。
以下示例展示如何构建一个带RAG能力的AI客服代理:
// src/ai.ts
import { genkit, z } from "genkit";
import { googleAI } from "@genkit-ai/googleai";
const ai = genkit({ plugins: [googleAI()] });
// 定义工具:查询订单
const lookupOrder = ai.defineTool({
name: "lookupOrder",
description: "根据订单号查询订单状态",
inputSchema: z.object({ orderId: z.string() }),
outputSchema: z.object({
status: z.string(),
items: z.array(z.string()),
total: z.number(),
}),
run: async (input) => {
const order = await db.orders.findById(input.orderId);
return order;
},
});
// 定义客服代理
const supportAgent = ai.defineFlow({
name: "support-agent",
inputSchema: z.string(),
outputSchema: z.string(),
}, async (userMessage) => {
const { text } = await ai.generate({
model: googleAI("gemini-1.5-pro"),
prompt: `你是客服代理。用户问题:${userMessage}`,
tools: [lookupOrder],
config: { temperature: 0.3 },
});
return text;
});
// 流式输出
export const streamResponse = ai.defineFlow(
"stream-response",
async function* (input) {
const { stream } = ai.generateStream({
model: googleAI("gemini-1.5-flash"),
prompt: input,
});
for await (const chunk of stream) {
yield chunk.text;
}
}
);
| 特性 | Genkit | LangChain | Mastra |
|---|---|---|---|
| 开发团队 | Google/Firebase | 社区 | 独立团队 |
| 语言 | TS/Go | Python/JS | TypeScript |
| Dev UI | 内置可视化 | LangSmith(付费) | 基础 |
| 部署 | Firebase原生 | 通用 | 通用 |
| 提示词管理 | Dotprompt | 模板字符串 | 文件管理 |
| 流式输出 | 原生支持 | 支持 | 支持 |
Genkit 是由Google Firebase团队开源的全栈AI应用开发框架。它提供了统一的API接口,让开发者能够轻松集成多种AI模型(Gemini、OpenAI、Anthropic等),并通过跨语言SDK支持TypeScript和Go。Genkit的核心设计理念是"AI去中心化"——开发者可以在本地开发和测试AI