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 保証を維持しながらプロバイダーに依存しないことを望むチームに最適です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト