Вышла первая стабильная версия
Genkit Dart - фреймворка для разработки ИИ-функционала и ИИ-агентов на
Dart. Теперь можно строить приложения с поддержкой разных моделей, инструментов и интеграций, не выходя из экосистемы
Dart и
Flutter.
Раньше фреймворк был в статусе
preview. Обратная связь от сообщества помогла доработать
API и расширить набор инструментов для задач на проде. Теперь релиз готов к использованию в реальных проектах.
Как установить:
Добавить
Genkit в проект можно одной командой:
dart pub add genkit
Также можно установить скиллы для ИИ-ассистентов, чтобы они знали актуальные
API и практики
Genkit Dart:
npx skills add genkit-ai/skills
Единый API для разных моделей:
Genkit поддерживает
Google Gemini,
Anthropic Claude,
OpenAI и модели, совместимые с
OpenAI, через один интерфейс. Провайдеры регистрируются как плагины и их можно менять без переписывания логики приложения.
final ai = Genkit(plugins: [googleAI(), anthropic()]);
final prompt = 'Suggest a weekend getaway from San Francisco.';
final fromGemini = await ai.generate(
model: googleAI.gemini('gemini-flash-latest'),
prompt: prompt,
);
final fromClaude = await ai.generate(
model: anthropic.model('claude-sonnet-5-5'),
prompt: prompt,
);
Типобезопасность через flows:
Genkit позволяет оборачивать ИИ-логику в
flows - строго типизированные функции, которые легко тестировать и разворачивать как HTTP-эндпоинты. Схемы данных описываются один раз на
Dart и используются и на сервере и в приложении.
@Schema()
abstract class $TripRequest {
String get destination;
int get days;
}
Это дает сквозную типобезопасность между бэкендом и
Flutter-приложением.
Где выполняется код:
ИИ-логика пишется на стандартном
Dart, поэтому ее можно запускать где угодно:
- Напрямую во Flutter: для быстрого прототипирования или сценариев, где пользователь использует свой ключ API.
- На Dart-сервере: для сложных flows и защиты приватных промптов. Flutter вызывает их через defineRemoteAction.
- Во Flutter с удаленными моделями: ИИ-логика остается в приложении, но запросы к модели идут через легкий Genkit-бэкенд, который защищает ключи API и проверяет авторизацию.
Инструменты и отладка:
Genkit включает локальный
Developer UI для тестирования
flows, экспериментов с промптами и пошаговой проверки трассировок выполнения.
genkit start -- dart run server/bin/server.dart
Агентские сценарии:
С момента preview
Genkit Dart расширился возможностями для многошаговых агентских рабочих процессов: прерывания с участием человека,
middleware для генерации, управление промптами, телеметрией на проде.
Инструменты позволяют моделям вызывать
Dart-функции для получения данных или выполнения действий. Когда действие требует подтверждения пользователя, инструмент может приостановить генерацию, вернув
.interrupt(...) вместо
.response(...). Это гарантирует, что модель не обойдет проверку.
Middleware подключается напрямую в цикл генерации, чтобы перехватывать вызовы модели, внедрять инструменты или изменять запросы и ответы. Можно подключать готовые возможности вроде автоматических повторов и правил подтверждения инструментов.
Управление промптами:
Dotprompt позволяет хранить шаблоны промптов, конфигурацию модели и схемы ввода-вывода вместе в файлах
.prompt.
Genkit автоматически загружает их из директории
prompts/ и они становятся вызываемыми функциями в
Dart.
Мониторинг:
Пакет
genkit_otel экспортирует трассировки, использование токенов и метрики задержки через
OpenTelemetry. Это интегрируется с существующим бэкендом наблюдаемости.
Планы на будущее:
Помимо стабильного ядра
1.0, развиваются
API для агентов с состоянием и генеративного
UI. Агенты с состоянием объединяют модель, инструменты, системные инструкции и состояние в одном вызове
defineAgent. Диалоги сохраняются между сессиями и перезапусками приложения.
Генеративный UI через
A2UI позволяет агентам передавать интерактивные поверхности вместо простого текста. Агент может отправлять компоненты вроде выбора даты, форм и карточек подтверждения, которые
Flutter-приложение отрисовывает как нативные виджеты.
Вывод:
Genkit Dart 1.0 - это стабильный инструмент для построения ИИ-функционала и агентов на
Dart. Единый
API для разных моделей, сквозная типобезопасность, поддержка агентских сценариев и телеметрии на проде.
Раньше для подобных задач приходилось уходить в другие языки или собирать все вручную. Теперь ИИ-логика остается в знакомой экосистеме
Dart и
Flutter. Это упрощает разработку, тестирование и поддержку.