12k
All articles

Первый взгляд на TanStack AI

TanStack AI предлагает vendor-neutral, типобезопасный SDK для подключения React и других фреймворков к OpenAI, Anthropic и Gemini через модульные адаптеры.

OpenReplay Team
OpenReplay Team
Первый взгляд на TanStack AI

Создание AI-функционала во фронтенд-приложениях часто означает выбор между типобезопасностью и гибкостью. Либо вы привязываетесь к SDK конкретного провайдера и теряете портативность, либо пишете собственные абстракции, жертвуя гарантиями TypeScript на этапе компиляции. TanStack AI предлагает другой подход: vendor-neutral AI SDK, который приоритизирует типобезопасность, не привязывая вас к конкретному фреймворку или провайдеру.

Эта статья знакомит с основными концепциями TanStack AI и объясняет, почему фронтенд-разработчикам стоит обратить внимание на этот инструментарий на ранней стадии развития.

Ключевые выводы

  • TanStack AI — это framework-agnostic, vendor-neutral AI-инструментарий с сильной поддержкой TypeScript, находящийся в альфа-версии.
  • Его архитектура на основе адаптеров обеспечивает вывод типов для каждой модели, streaming-first дизайн и модульные импорты, которые сохраняют размер бандла небольшим.
  • Изоморфные инструменты позволяют определить tool один раз и запускать его на сервере или клиенте с полной типобезопасностью в обеих средах.
  • Хотя TanStack AI не готов к production, он решает реальные проблемы привязки к провайдеру и типобезопасности, которые остаются нерешёнными в существующих AI SDK.

Что такое TanStack AI?

TanStack AI — это framework-agnostic AI-инструментарий от команды, стоящей за TanStack Query и TanStack Table. Он предоставляет унифицированный интерфейс для работы с несколькими AI-провайдерами — OpenAI, Anthropic, Gemini, Ollama и другими — сохраняя при этом сильную поддержку TypeScript на всех уровнях.

Библиотека в настоящее время находится в альфа-версии. API быстро меняются, и команда уже выпустила несколько архитектурных переработок с момента первого релиза. Это не готовая к production инфраструктура. Это развивающийся паттерн, который стоит понимать.

Основные идеи типобезопасного AI SDK

Типобезопасность на основе схем

TanStack AI рассматривает типобезопасность как первоклассную задачу. Когда вы указываете модель в адаптере, TypeScript сразу знает, какие опции доступны:

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

chat({
  adapter: openaiText('gpt-4'),
  temperature: 0.6,
})

Модель находится внутри вызова адаптера, что означает мгновенную работу автодополнения. Вы получаете типизацию для каждой модели с опциями, специфичными для провайдера, без ручных аннотаций типов.

Определения инструментов и функций используют Zod-схемы (или JSON Schema), обеспечивая валидацию входных и выходных данных как на этапе компиляции, так и во время выполнения.

Архитектура с приоритетом стриминга

Стриминг является центральным элементом дизайна TanStack AI. Вместо того чтобы рассматривать его как второстепенную функцию, SDK строится вокруг него. Это важно для чат-интерфейсов, транскрипции в реальном времени и любых приложений, где пользователи ожидают немедленной обратной связи.

Модульная архитектура адаптеров

Последние релизы разделили монолитные адаптеры провайдеров на импорты, специфичные для модальности:

import { openaiText, openaiImage, openaiVideo } from '@tanstack/ai-openai'

Этот подход сохраняет размер бандла небольшим. Импортируйте только то, что вам нужно. Архитектура также упрощает добавление новых модальностей командой — генерация изображений, транскрипция, text-to-speech — без одновременного обновления каждого провайдера.

TanStack AI React и поддержка фреймворков

Хотя TanStack AI работает с vanilla JavaScript и Solid, TanStack AI React предоставляет хуки и паттерны, знакомые React-разработчикам. Библиотека следует той же framework-agnostic философии, что и TanStack Query: основная логика остаётся отдельной от привязок к фреймворку.

Текущие клиентские библиотеки включают:

  • Vanilla JavaScript
  • Preact
  • React
  • Solid

Планируется поддержка дополнительных фреймворков.

Изоморфные инструменты: выполнение на сервере и клиенте

Одна из отличительных особенностей — система изоморфных инструментов. Вы определяете инструмент один раз с помощью toolDefinition(), затем предоставляете реализации для конкретной среды с методами .server() или .client(). Это обеспечивает типобезопасность во всём приложении, позволяя инструментам выполняться в соответствующем контексте.

Этот паттерн особенно полезен, когда некоторые операции требуют серверных API-ключей, в то время как другие могут полностью выполняться в браузере.

Сравнение с существующими паттернами AI SDK

TanStack AI позиционирует себя как vendor-neutral альтернативу Vercel AI SDK. Ключевые различия включают:

  • Framework agnostic: работает с любым JavaScript-фреймворком, не только с Next.js
  • Без сервисного слоя: прямое подключение к провайдерам без посредников
  • Модульные бандлы: импортируйте только необходимые модальности
  • Открытый протокол: чистый open source без зависимостей от платформы

Компромисс — в зрелости. SDK от Vercel имеет больше production-опыта и документации. TanStack AI развивается быстро, что означает большую гибкость, но меньшую стабильность.

Что в дорожной карте

Команда обозначила несколько предстоящих функций:

  • Поддержка Standard Schema (устранение требования Zod)
  • Паттерны middleware
  • Headless UI-компоненты для AI-интерфейсов
  • Дополнительные адаптеры провайдеров (AWS Bedrock, OpenRouter)
  • Devtools и отчётность по использованию

Заключение

TanStack AI не готов для production-приложений, которым нужны стабильные API. Но если вы исследуете паттерны AI SDK, создаёте прототипы или оцениваете варианты для будущих проектов, стоит поэкспериментировать с ним.

Сочетание сильной поддержки TypeScript, гибкости фреймворка и модульной архитектуры решает реальные проблемы в текущем AI-инструментарии. По мере созревания библиотеки эти основы могут сделать её привлекательным выбором для команд, которые хотят контролировать свой AI-стек без ущерба для developer experience.

Начните с официальной документации и ожидайте изменений.

FAQ

Могу ли я использовать TanStack AI в production сегодня?

TanStack AI в настоящее время находится в альфа-версии, и его API часто меняются. Команда выпустила несколько breaking архитектурных изменений с момента запуска. Он лучше всего подходит для прототипирования, экспериментов и оценки будущих инструментов, а не для production-нагрузок, требующих стабильных, хорошо документированных интерфейсов.

Чем TanStack AI отличается от Vercel AI SDK?

TanStack AI является framework agnostic и подключается напрямую к AI-провайдерам без сервисного слоя. Он предлагает модульные импорты для каждой модальности и не имеет зависимостей от платформы. Vercel AI SDK более зрелый с более широкой документацией, но более тесно связан с экосистемой Next.js.

Каких AI-провайдеров поддерживает TanStack AI?

TanStack AI в настоящее время поддерживает OpenAI, Anthropic, Gemini, Ollama и других через свою систему адаптеров. Дорожная карта включает дополнительных провайдеров, таких как AWS Bedrock и OpenRouter. Каждый адаптер провайдера модульный, поэтому вы импортируете только те модальности, которые фактически используете в своём приложении.

Нужен ли мне Zod для использования TanStack AI?

В настоящее время TanStack AI использует Zod-схемы для определения входных и выходных данных инструментов, обеспечивая валидацию как на этапе компиляции, так и во время выполнения. Однако команда включила поддержку Standard Schema в свою дорожную карту, что позволит использовать альтернативные библиотеки схем и устранит жёсткую зависимость от Zod в будущих релизах.

DevTools for the frontend

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers.

Star on GitHub12k

We use cookies to improve your experience. By using our site, you accept cookies.