TanStack/ai

🤖 Type-safe, provider-agnostic TypeScript AI SDK for streaming chat, tool calling, agents, and multimodal apps across OpenAI, Anthropic, Gemini, React, Vue, Svelte, and Solid.

TanStack AI – 生成 AI アプリを構築するための型安全でプロバイダーに依存しない SDK

概要 – ストリーミングチャット、ツール呼び出しエージェント、構造化出力フロー、マルチモーダル生成(画像、音声、動画、ドキュメント)、リアルタイム音声、コード実行エージェントを記述できる TypeScript パッケージのコレクションです。コア SDK はプロバイダーに依存しません。OpenAI、Anthropic、Gemini、Ollama などのアダプターと、React、Vue、Solid、Svelte、Preact、またはヘッドレスクライアント用のフレームワークバインディングを追加できます。


コアコンセプト

概念 提供されるもの
構成可能なアクティビティ チャット、生成、リアルタイム、ツールなどは、必要なときにのみインポートする個別の「アクティビティ」であり、バンドルを小さく保ちます。
プロバイダーに依存しないアダプター 単一の adapter オブジェクトで、OpenAI、Anthropic、Grok、Ollama、Cloudflare Workers AI などを切り替えます。
型安全なコントラクト ツール、構造化出力、さらにはモデルごとのペイロードは、Zod/Valibot/ArkType または生の JSON Schema で定義されるため、TypeScript は入力と結果の正確な形状を認識します。
フレームワークネイティブフック React、Vue、Solid、Svelte、Preact 向けの useChat、useRealtimeChat、生成フック、UI コンポーネント。
エージェントスキル統合 パッケージは、コーディングアシスタント(Claude、Cursor、Copilot…)が自動的にインストールできる SKILL.md を公開でき、SDK を AI 支援開発のファーストクラスのスキルに変えます。

クイックスタート

# コア SDK + OpenAI アダプター
pnpm add @tanstack/ai @tanstack/ai-openai

# React UI の場合(フック + UI コンポーネント)
pnpm add @tanstack/ai-react @tanstack/ai-client

サーバーサイドのストリーミングチャットの例

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

export async function POST(req: Request) {
  const { messages } = await req.json()
  const stream = chat({
    adapter: openaiText('gpt-5.2'),
    messages,
  })
  return toServerSentEventsResponse(stream)   // ブラウザ用の SSE
}

同じ chat 呼び出しは、ブラウザ、ワーカー、またはテストスクリプト内で機能します。


主な機能

1. ストリーミングチャットとツール呼び出し

  • 型付きメッセージオブジェクト(role、content)。
  • サーバーまたはクライアントで同じ型コントラクトで実行できるツール定義(toolDefinition)の組み込みサポート。
  • 動的ツールロードのための自動ツール承認フローと遅延検出。

2. 構造化出力

const Person = z.object({ name: z.string(), age: z.number() })
const result = await chat({
  adapter: openaiText('gpt-5.2'),
  messages: [{ role: 'user', content: 'エイダ・ラブレスの短い経歴を教えてください' }],
  outputSchema: Person,
})
// result は { name: string; age: number } として型付けされます

任意のスキーマライブラリまたは生の JSON Schema で動作します。

3. マルチモーダル生成

  • openaiImage、falVideo、geminiSpeech などのワンライナーアダプターを使用すると、同じ generationClient パターンで画像、動画、音声、文字起こし、要約などをリクエストできます。

4. リアルタイム音声チャット

アダプターは、トークンを生成し、オーディオチャンクをストリーミングするリアルタイムセッションを公開し、低遅延の音声アシスタントを可能にします。

5. コードモード

モデルは、サンドボックス化された VM 内で実行される TypeScript を記述でき、ループ、分岐、並列ツール呼び出しを可能にします。複雑なオーケストレーションやデータ処理エージェントに役立ちます。

6. 可観測性と開発ツール

  • メッセージ、ツール呼び出し、使用状況、エラー用のイベントストリーム。
  • ベンダー中立のトレース用の OpenTelemetry エクスポーター。
  • ライブストリームを検査するためのオプションの UI 開発ツールパッケージ。

エコシステムと拡張性

部分 目的
@tanstack/ai-client ヘッドレスクライアント – フレームワークバインディングなしのコアロジック。
@tanstack/ai‑react、‑solid、‑vue、‑svelte、‑preact 対応する UI ライブラリ用のフック/コンポーザブル。
@tanstack/ai‑react/ui(および類似) チャットウィンドウ用の既製のヘッドレス UI コンポーネント(カスタム UI を優先して非推奨)。
プロバイダーアダプター(‑openai、‑anthropic、‑gemini、‑ollama、‑groq、…) 汎用 SDK 呼び出しを各ベンダーの HTTP API に変換します。
@tanstack/ai‑openrouter 300 以上のモデルにルーティングする単一の API キー。リクエストごとのコスト追跡機能付き。
@tanstack/ai‑cloudflare Cloudflare Workers 上で実行され、AI Gateway、埋め込みなどを公開します。

各アクティビティとアダプターはツリーシェイク可能であるため、実際に使用するコードのみを出荷できます。


誰がこれを使用する可能性がありますか?

  • フルスタック開発者 – チャットボット、AI 拡張 UI、または型安全性が必要な内部ツールを構築する人。
  • プロダクトチーム – コードを書き直さずにプロバイダー(OpenAI ↔ Anthropic ↔ ローカル Ollama)を切り替えたいチーム。
  • LLM オペレーションエンジニア – 統一された可観測性レイヤーと OpenTelemetry サポートを探している人。
  • ツール構築プラットフォーム – 型付きツールコントラクトをダウンストリームエージェントに公開するプラットフォーム。
  • 教育または趣味のプロジェクト – 独自の HTTP ラッパーを作成する代わりに、既製の十分に文書化された SDK を希望するプロジェクト。

ドキュメントとコミュニティ

  • 完全なドキュメント – https://tanstack.com/ai(概要、クイックスタート、Vercel AI SDK との比較、高度なトピック)。
  • GitHub ディスカッション、Discord、およびコントリビューター向けのスポンサープログラム。
  • エージェントスキル – コーディングアシスタントが SDK をスキルとして自動的にインストールできるようにする独自の機能で、TanStack AI を開発者向けのファーストクラスのアシスタントにします。

要約

TanStack AI は、チャット、ツール呼び出しエージェント、マルチモーダル生成、リアルタイム音声、サンドボックス化されたコード実行など、あらゆる種類の生成 AI アプリケーションを構築するための型安全でモジュール式の TypeScript SDKです。アダプターを介して多くのプロバイダーを抽象化し、フレームワーク固有のフックを提供し、開発者の使いやすさ(スキーマ、可観測性、ツリーシェイキング)を重視しています。強力な TypeScript 保証を維持しながらプロバイダーに依存しないことを望むチームに最適です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト