← На главную

Grafana открыла ai-sdk: замена TypeScript-бэкенда на Go без адаптеров

30.07.2026 11:55 · hackernews

Grafana выпустила ai-sdk — открытый Go-пакет, который даёт единый API для вызовов языковых моделей, стриминга, инструментов, структурированного вывода и многошаговых агентов. SDK повторяет дизайн Vercel AI SDK и сохраняет совместимость на уровне проводов с его TypeScript-хуками на фронтенде. Бэкенд на Go может напрямую отдавать Server-Sent Events в хуки вроде useChat, useCompletion и useObject — можно взять готовый React-клиент от Vercel и заменить TypeScript-бэкенд на Go без каких-либо адаптеров.

В ядре лежат два основных метода: StreamText стримит ответ по мере генерации, GenerateText дожидается полного результата. Оба поддерживают повторы при ошибках и автоматический многошаговый вызов инструментов. Инструменты описываются как обычные функции Go, а для критичных действий модель можно заставить запрашивать подтверждение. Из коробки идёт поддержка структурированного вывода — SDK генерирует объекты, массивы и варианты, прошедшие валидацию по схеме.

Провайдеров несколько: напрямую Anthropic, Amazon Bedrock, OpenAI, любой OpenAI-совместимый API, а также внутренний хостируемый эндпоинт Grafana. Добавить нового провайдера можно отдельным модулем — например, github.com/grafana/ai-sdk/providers/anthropic.

Для продакшена предусмотрены таймауты, fallback-стратегии, логирование, метрики Prometheus и встроенная поддержка Agent Observability. SDK уже доступен под Apache License 2.0, и его репозиторий принимает контрибьюторов: в CONTRIBUTING.md описаны требования к паритету с Vercel AI SDK и spec-ориентированная разработка через OpenSpec.

Быстрый старт выглядит так: создаётся новый Go-модуль, добавляются github.com/grafana/ai-sdk и нужный провайдер, например Anthropic. В примере ниже код вызывает модель claude-sonnet-5 с одним сообщением «Explain goroutines in one sentence.» и печатает ответ. Потребуется API-ключ Anthropic, который передаётся через переменную окружения ANTHROPIC_API_KEY. Готовый пример есть в документации по установке, а инструкция по стримингу на React-клиент — в разделе «Build a full-stack chat».

Читать оригинал →