TanStack AI

用类型安全的统一接口构建跨模型流式聊天、工具调用与多模态应用。

源仓库
TanStack/ai
Star 数
★ 3.2k
最近更新
4 天前
License
MIT
主语言
TypeScript

30 秒速览

运行形态
代码库 / SDK开发框架
可在哪里用
通用 · 跨平台OpenAI API · Claude APICodex · Claude Code(部分支持)
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
TypeScriptpnpm选定的提供商和框架包Shell / 命令行网络访问
典型场景
React、Vue、Svelte、Solid 或 Preact 团队需要在现有应用中加入带类型化消息和工具调用的流式聊天。
不适合
  • 需要开箱即用托管聊天产品的团队,这里要自己搭前端、服务端和部署
  • 只想用一个厂商模型、不愿维护适配器与框架包组合的团队

这个 Agent 能做什么,适合哪些场景?

TanStack AI 是一个由可组合活动和提供商适配器构成的 TypeScript SDK,用于开发流式聊天、工具调用智能体、结构化输出、实时语音和媒体生成应用。核心包 @tanstack/ai 提供 chat()、toolDefinition() 和流式响应工具,OpenAI、Anthropic、Gemini、Ollama、Grok、Groq、ElevenLabs、BytePlus、fal.ai 与 OpenRouter 等能力通过独立适配器接入。客户端层包括无框架绑定的 @tanstack/ai-client,以及面向 React、Solid、Vue、Svelte 和 Preact 的原生包。它可以处理文本、图片、音频、视频和文档,并支持 JSON Schema、Zod、ArkType 与 Valibot 驱动的结构化结果。代码作为应用依赖运行在开发者自己的前端或服务器边界内;具体模型服务、凭据、托管方式和费用由所选适配器决定。它适合希望保留提供商切换能力、同时接受自行集成和部署 TypeScript 应用的团队。

应用把消息传给 chat(),并通过 openaiText() 等活动适配器选择模型;返回流可由 toServerSentEventsResponse() 转成服务器发送事件响应。toolDefinition() 使用输入和输出 schema 定义共享契约,再通过 .server() 或客户端实现执行工具。设置 outputSchema 后,聊天调用生成经过 JSON Schema、Zod、ArkType、Valibot 或普通 JSON Schema 约束的对象。生成客户端以统一模式调用图片、音频、视频、语音、转录和摘要能力;实时适配器负责语音会话与令牌签发。Code Mode 允许模型在隔离沙箱中编写并执行 TypeScript,以循环、分支或并行调用组织工具。开发工具、类型化事件、使用量和错误观测以及 OpenTelemetry 链路可用于检查消息、工具调用和流数据。

  1. React、Vue、Svelte、Solid 或 Preact 团队需要在现有应用中加入带类型化消息和工具调用的流式聊天。
  2. 后端 TypeScript 团队希望用同一套 toolDefinition() 契约实现服务端或客户端工具。
  3. 需要在 OpenAI、Anthropic、Gemini、Ollama 或其他已列适配器之间切换模型提供商的产品团队。
  4. 需要让模型返回符合 Zod、ArkType、Valibot 或 JSON Schema 的业务对象,而非自由文本的开发者。
  5. 构建图片、视频、语音、转录、音频或摘要工作流,并希望采用统一生成客户端模式的多媒体应用。
  6. 需要实时语音会话、Code Mode 工具编排或 OpenTelemetry 可观测性的高级 AI 应用团队。

如何安装或部署这个 Agent?

安装核心包和 OpenAI 适配器:

pnpm add @tanstack/ai @tanstack/ai-openai

React 流式聊天还需要客户端与 React 包:

pnpm add @tanstack/ai @tanstack/ai-client @tanstack/ai-react @tanstack/ai-openai

若希望通过一个 API 入口访问多个模型,可安装 OpenRouter 适配器:

pnpm add @tanstack/ai @tanstack/ai-openrouter

来源未规定 Node.js 版本,也未给出提供商凭据的环境变量名称或配置步骤;运行前需按所选适配器补齐相应服务访问配置。

如何使用这个 Agent?

在支持标准 Request、Response 和服务器发送事件的 TypeScript 服务端路由中创建聊天流:

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

export async function POST(request: Request) {
  const body = await request.json()

  const stream = chat({
    adapter: openaiText('gpt-5.2'),
    messages: body.messages,
  })

  return toServerSentEventsResponse(stream)
}

调用方应向该 POST 端点发送包含 messages 的 JSON 请求。示例使用 OpenAI 适配器和 gpt-5.2;来源没有展示凭据配置、错误处理或部署命令。

如需结构化对象,可设置 outputSchema:

import { chat } from '@tanstack/ai'
import { openaiText } from '@tanstack/ai-openai'
import { z } from 'zod'

const Person = z.object({
  name: z.string(),
  age: z.number(),
})

const person = await chat({
  adapter: openaiText('gpt-5.2'),
  messages: [{ role: 'user', content: 'Ada Lovelace, 36' }],
  outputSchema: Person,
})

这个 Agent 有哪些优点和局限?

优点
  • 提供 OpenAI、Anthropic、Gemini、Ollama、OpenRouter、Grok、Groq、ElevenLabs、BytePlus 和 fal.ai 等官方适配器,降低单一提供商绑定。
  • toolDefinition() 让服务端和客户端实现共享输入、输出类型契约。
  • 一个 SDK 覆盖流式聊天、结构化输出、实时语音、图片、音频、视频、语音、转录和摘要。
  • 提供 React、Solid、Vue、Svelte、Preact 及无框架客户端,并可按活动进行 tree-shaking。
  • 包含类型化观测事件、开发工具与 OpenTelemetry 支持,可检查流、工具调用、错误和使用量。
局限
  • 需要自行选择、安装并配置提供商与框架包;来源没有给出完整的凭据配置流程。
  • 不同适配器覆盖的能力并不一致,例如部分仅面向聊天,另一些才支持图片、视频或实时语音。
  • 采用方需维护 TypeScript 应用、服务端端点和部署环境;它不是开箱即用的托管聊天产品。
  • Code Mode 会执行模型生成的 TypeScript,虽然描述为隔离沙箱,但来源未提供具体安全策略、权限边界或部署要求。
  • 来源未规定受支持的 Node.js 版本,也未展示重试、速率限制或生产故障恢复配置。

这个 Agent 与同类方案有什么区别?

项目提供一份“TanStack AI vs Vercel AI SDK”文档,用于比较架构、功能覆盖和取舍;所给材料没有列出具体比较结论,因此无法据此断言哪一方在性能、成本或功能上更优。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
TanStack AI 当前 76 · 存在缺口 代码库 / SDK免费 + 模型费 ★ 3.2k 4 天前 TypeScript OpenAI API · Claude API
Mirascope 55 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 1.5k 1 天前 Python Claude API
Rig 70 · 存在缺口 代码库 / SDK免费 + 模型费 ★ 8.9k 今天 Rust OpenAI API
Adaline Gateway 69 · 存在缺口 代码库 / SDK免费 + 模型费 ★ 607 2 个月前 TypeScript OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
为什么不是更高等级:信任与安全维度为 16/29,未达「表现良好」所需的 18/29,按「风险不做平均」下调评级。
76/ 100 五分制 3.8 / 5
本评测基于 2026年8月16日 的源码;此后该项目发布了 20 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 16/29
可靠稳定 12/14
适用触发 15/18
规范维护 14/18
有效结果 12/13
证据核验 7/8
查看各维度的扣分理由
信任安全16 / 29 · 2.8/5

工作流使用只读 contents 权限、关闭持久化凭据并以提交散列固定第三方 Actions;Code Mode 声称使用隔离沙箱,ACP 测试也展示了沙箱边界。扣分在于 SDK 可调用外部模型、工具、本地进程及媒体服务,而所给文件未完整说明运行时最小权限、网络范围或默认工具授权;工具审批只有文档链接。提供商和可观测性路径较清楚,但没有 API 密钥、日志脱敏、提示内容保留或敏感数据处理政策。ACP 对不可恢复的 attach 会拒绝,并提示重复执行和双重追加风险,但框架整体没有通用回滚机制。仓库、包名、MIT 著作权人和社区渠道可追溯,不过维护主体及发布身份未被企业注册表验证,因此不作负面推断,也不视为充分组织身份保证。

可靠稳定12 / 14 · 4.3/5

README、包脚本、工作流和 ACP 测试对流式事件、会话恢复、协议协商、runId 与耐久性限制的描述高度一致,故自洽性满分。多提供商及 Ollama 本地选项降低单一依赖风险,但实际功能仍依赖 npm 包、模型供应商、运行时和外部服务,且来源未展示离线降级全貌。失败消息证据很强:配置错误、协议版本错误及不支持 attach 均有明确且可操作的说明,并区分可重试与非瞬态条件。

适用触发15 / 18 · 4.2/5

材料明确覆盖 React、Vue、Svelte、Solid、Preact、无头客户端、纯服务端、实时、多媒体及多提供商场景,受众和环境适配充分。能力边界部分明确,例如 ACP 尚不写 journal、Bun 驱动需要特定运行时,但这些限制主要出现在测试注释而非顶层说明。工具 schema、客户端/服务端实现和审批流程表明触发接口较精确,但审批文档正文和实际策略未提供,因此不能满分。

规范维护14 / 18 · 3.9/5

README 的开始路径、能力分类、提供商表、框架表和高级文档导航结构清晰。安装命令实用,但缺少密钥配置、运行时版本及生产部署的完整就地说明。包命名一致且采用 changesets/release 流程,不过大量活动和适配器显示接口仍可能演进,所给材料没有兼容性承诺。示例覆盖聊天、工具和结构化输出,但没有随附 FAQ;已知限制有测试级证据,却没有集中限制章节。MIT 文本完整,故许可满分。维护渠道、贡献入口和自动维护脚本存在,但未明确列出责任人、响应承诺或安全更新路径。

有效结果12 / 13 · 4.6/5

流式事件、类型化工具、结构化输出、多模态和框架绑定直接产出可供应用消费的结果,输出可用性证据充分。统一的 provider/activity 抽象、运行时切换、Code Mode 和可观测性相较基础模型 SDK 提供明显增量价值。树摇、按需包和 OpenRouter 成本跟踪有助于控制成本,但未给出性能、费用、延迟或运维负担的量化数据,因此成本效益不满分。

证据核验7 / 8 · 4.4/5

核心能力可追溯到具体 README 示例、package 脚本、固定版本工作流及针对 ACP 行为的细粒度测试;多类文件相互印证配置验证、协议协商、沙箱执行、事件输出和耐久性限制,因此追溯性与交叉佐证充分。扣分在于部分广泛能力、隔离安全性和奖项属于概述或外链声明,当前材料未提供对应实现或独立证据;测试源码只能证明测试意图,不能证明本次修订实际执行通过。

风险与缓解建议
  • ACP 兼容适配器目前不写 journal;在耐久 attach 场景会拒绝操作,新耐久运行也明确不可在之后恢复。
  • Code Mode 和本地进程适配器可执行生成代码或命令;部署者应自行限制文件系统、网络、凭据和工具权限,并设置明确审批边界。
  • 所给材料没有说明 API 密钥保护、提示与媒体数据保留、日志脱敏或供应商数据政策,处理敏感数据前需单独审查。
  • 本评估仅基于所给静态文件;未执行测试,也未验证外链文档、奖项、发布物或依赖漏洞状态。
证据充分度:低 评估于 2026年8月16日 审查版本 0fb826321c9b 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. 发布说明摘录
    Minor Changes - [#1715](https://github.com/TanStack/ai/pull/1715) [fac0555](https://github.com/TanStack/ai/commit/fac055559de98eb0fa23a0bc725808033ba3c2fc) - New hooks for hosts that run chat() for a long session. - @tanstack/ai exports runAgentStream (runs a defineAgent agent outside a parent chat turn), createSubagentId, createSubagentSink, CapabilityRegistry, and the SubagentsBag and SubagentSink types. Pass the sink to keep interrupt objects and token usage. The finished event has interruptIds only. …
    在 GitHub 查看 ↗
  2. 发布说明摘录
    Patch Changes - Updated dependencies \[[1bfcee3](https://github.com/TanStack/ai/commit/1bfcee35bb3cf0ff3aac005440c842e66c3d687d), [412b0fe](https://github.com/TanStack/ai/commit/412b0fea4f4bb569998c3d253d174efd7b501e3c), [a0150c2](https://github.com/TanStack/ai/commit/a0150c26b9e2b6050663450171e36a9dfa80915b), [b881627](https://github.com/TanStack/ai/commit/b881627d51076dcc1af031ac951046e2fb7d84c4), [fac0555](https://github.com/TanStack/ai/commit/fac055559de98eb0fa23a0bc725808033ba3c2fc), [6774e80](https://github.com/TanStack/ai/commit/6774e803da3205101613ab2857c9ed4fbf97568 …
    在 GitHub 查看 ↗
  3. 发布说明摘录
    Patch Changes - Updated dependencies \[[1bfcee3](https://github.com/TanStack/ai/commit/1bfcee35bb3cf0ff3aac005440c842e66c3d687d), [412b0fe](https://github.com/TanStack/ai/commit/412b0fea4f4bb569998c3d253d174efd7b501e3c), [a0150c2](https://github.com/TanStack/ai/commit/a0150c26b9e2b6050663450171e36a9dfa80915b), [b881627](https://github.com/TanStack/ai/commit/b881627d51076dcc1af031ac951046e2fb7d84c4), [fac0555](https://github.com/TanStack/ai/commit/fac055559de98eb0fa23a0bc725808033ba3c2fc), [6774e80](https://github.com/TanStack/ai/commit/6774e803da3205101613ab2857c9ed4fbf97568 …
    在 GitHub 查看 ↗

常见问题

是否必须使用 OpenAI?
不需要。项目提供 Anthropic、Gemini、Ollama、OpenRouter、Grok、Groq、ElevenLabs、BytePlus 和 fal.ai 等适配器,并支持运行时切换适配器。
它是否包含托管服务或模型费用?
材料将其描述为 SDK,而非托管服务。模型访问、部署与费用取决于所选提供商;只有 OpenRouter 条目明确提到按请求成本跟踪。
浏览器能否直接执行工具?
toolDefinition() 支持从同一契约附加服务端或客户端实现。具体权限和敏感操作应放在哪一侧,材料没有规定。
能否在没有前端框架的服务器上使用?
可以。项目提供 Server Only 快速入门,并说明可从服务器端点、脚本或后端服务调用;@tanstack/ai-client 也提供无框架客户端。
是否支持 Codex 和 Claude Code?
Agent Skills 文档明确提到可将 TanStack AI skills 安装到 Codex、Claude Code 等编码智能体,但所给材料没有说明这些集成覆盖全部 SDK 功能,因此只能视为部分兼容。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents