TanStack AI:类型安全、厂商中立的 AI 应用 SDK

TanStack AI 是 TanStack 团队的新 SDK:一套类型安全、厂商中立的 API 同时接 OpenAI/Anthropic/Gemini/Llama,前端框架无关。本文讲清设计理念与上手实战。

最佳实践
模型能力比较与评估插画

直接回答:TanStack AI 是 TanStack 家族(Query/Router 同门)的开源 AI SDK:用适配器模式统一 OpenAI、Anthropic、Gemini、Llama 等模型厂商,端到端 TypeScript 类型安全,前端框架无关(React/Solid/原生 JS)。 接口仍应按安装版本核对,本文按当前官方快速开始说明。

四个核心设计原则

1. 厂商中立(适配器系统)

应用逻辑写一次,公共调用可复用,但切换提供商仍需验证工具、模态与参数兼容。按成本、性能、特性自由选模型,拒绝供应商锁定。

2. 类型安全一等公民

模型名、厂商特有参数、工具 schema 全部有类型与 IDE 自动补全——可在编译期发现部分错误,但网络、输出语义与权限仍需运行时检查。

3. 框架无关

核心逻辑不绑定单一 UI 框架;客户端支持列表与包名应按当前发行版核对。

4. 野心不止 JS

类型化服务端与客户端可解耦;其他语言集成需要核对协议和当前实际实现,不能将路线图当成已可用功能。

上手:流式聊天端点

下面是服务端路由片段,需先安装对应包并在服务端设置 OPENAI_API_KEY。模型名要选择当前账户支持且适配器接受的值,示例不代表推荐旧型号。

import { chat, chatParamsFromRequest, toServerSentEventsResponse } from '@tanstack/ai';
import { openaiText } from '@tanstack/ai-openai';

export async function POST(request: Request) {
  const { messages, threadId, runId } = await chatParamsFromRequest(request);
  const stream = chat({
    adapter: openaiText('gpt-4o'),
    messages, threadId, runId,
  });
  return toServerSentEventsResponse(stream);
}

这是局部接口示意,未在本轮运行。生产环境还要加认证、消息大小限制、取消、超时、限流和错误处理;密钥不能传到浏览器。

工具调用(Function Calling)

当前工具定义应使用官方支持的工具定义及服务端/客户端绑定方式,不存在通用的 ai.tool/ai.chat 写法。先从对应版本的工具指南定义输入、输出 schema,再实现处理函数。

TypeScript 类型不能替代对模型输入的运行时校验。天气查询等工具应验证参数;有副作用的工具要做身份校验、权限与幂等处理。

适合谁

  • TypeScript 技术栈、对类型安全有洁癖的团队
  • 需要多模型路由或想保留切换自由的应用
  • 已经是 TanStack 生态用户(Query/Router/Table)的项目

常见问题(FAQ)

Q:能直接用于生产吗?
A:先固定版本并回归测试,评估支持状态与破坏性变更。

Q:Vercel AI SDK 只适合 React 吗?
A:不是,二者都有框架无关的部分;应比较实际适配器和所需能力,不虚构类型深度排名。

Q:换适配器就完全兼容吗?
A:不是,厂商独有工具、模态和计费需单独验证。

参考资料

资料核对日期:2026 年 9 月 29 日。本文基于公开文档整理,代码片段和评估方案未作独立运行或性能验证;厂商测试结果已注明来源。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台