Back

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

Первый взгляд на 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 в настоящее время находится в альфа-версии, и его API часто меняются. Команда выпустила несколько breaking архитектурных изменений с момента запуска. Он лучше всего подходит для прототипирования, экспериментов и оценки будущих инструментов, а не для production-нагрузок, требующих стабильных, хорошо документированных интерфейсов.

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

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

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

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. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay