文档
CodeRabbit
Cloudflare
AG Grid
Netlify
Neon
WorkOS
Clerk
Convex
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
CodeRabbit
Cloudflare
AG Grid
Netlify
Neon
WorkOS
Clerk
Convex
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
类引用
函数引用
接口引用
类型别名引用
变量引用
入门

概述

TanStack AI 是一个轻量级、类型安全的 SDK,用于构建生产就绪的 AI 体验。其框架无关的核心提供了类型安全的工具/函数调用、流式响应以及一流的 React 和 Solid 集成,并提供多种 LLM 提供商的适配器——从而能够在任何堆栈上实现可预测、可组合和可测试的 AI 功能。

主要特性

  • 类型安全 - 完整的 TypeScript 支持,具有 Zod 模式推断
  • 流式传输 - 内置流式传输支持,用于实时响应
  • 同构工具 - 使用 toolDefinition() 定义一次,使用 .server().client() 实现
  • 框架无关 - 核心库可在任何地方工作
  • 多个提供商 - OpenAI、Anthropic、Gemini、Ollama 等
  • 审批流程 - 内置对工具审批流程的支持
  • 自动执行 - 服务器和客户端工具均自动执行

与框架无关

TanStack AI 的框架无关核心提供了在任何环境中创建 AI 体验的构建块,包括

  • Next.js - API 路由和 App Router
  • TanStack Start - React Start 或 Solid Start(推荐!)
  • Express - Node.js 服务器
  • React Router v7 - 加载器和操作

TanStack AI 允许您定义一个工具,并提供特定于环境的实现。使用 toolDefinition() 声明工具的输入/输出类型以及使用 .server() 的服务器行为(或使用 .client() 的客户端实现)。这些同构工具可以从 AI 运行时调用,而与框架无关。

typescript
import { chat } from '@tanstack/ai'
import { toolDefinition } from '@tanstack/ai'
import { openaiText } from '@tanstack/ai-openai'

// Define a tool
const getProductsDef = toolDefinition({
  name: 'getProducts',
  inputSchema: z.object({ query: z.string() }),
  outputSchema: z.array(z.object({ id: z.string(), name: z.string() })),
})

// Create server implementation
const getProducts = getProductsDef.server(async ({ query }) => {
  return await db.products.search(query)
})

// Use in AI chat
chat({
  adapter: openaiText('gpt-5.2'),
  messages: [{ role: 'user', content: 'Find products' }],
  tools: [getProducts]
})

核心包

TanStack AI 生态系统由多个包组成

@tanstack/ai

提供以下功能的 AI 核心库

  • 用于连接到 LLM 提供商的 AI 适配器接口
  • 聊天完成和流式传输
  • 同构工具/函数调用系统
  • 代理循环策略
  • 使用 toolDefinition() 进行类型安全的工具定义
  • 基于适配器和模型选择的类型安全模型选项
  • 基于模型功能的类型安全内容模态(文本、图像、音频、视频、文档)

@tanstack/ai-client

用于管理聊天状态的框架无关的无头客户端

  • 具有完全类型安全性的消息管理
  • 流式传输支持
  • 连接适配器(SSE、HTTP 流、自定义)
  • 自动工具执行(服务器和客户端)
  • 工具审批流程处理

@tanstack/ai-react

用于 TanStack AI 的 React 钩子

  • 用于聊天界面的 useChat 钩子
  • 自动状态管理
  • 工具审批流程支持
  • 使用 InferChatMessages 进行类型安全的的消息处理

@tanstack/ai-solid

用于 TanStack AI 的 Solid 钩子

  • 用于聊天界面的 useChat 钩子
  • 自动状态管理
  • 工具审批流程支持
  • 使用 InferChatMessages 进行类型安全的的消息处理

适配器

借助适配器,TanStack AI 可以连接到各种 LLM 提供商。可用的适配器包括

  • @tanstack/ai-openai - OpenAI(GPT-4、GPT-3.5 等)
  • @tanstack/ai-anthropic - Anthropic(Claude)
  • @tanstack/ai-gemini - Google Gemini
  • @tanstack/ai-ollama - Ollama(本地模型)

下一步