РАЗРАБОТКА

Google добавила в Genkit Agents API с detached turns и HITL

Google выпустила в preview Genkit Agents API для TypeScript и Go: единый chat() упрощает tool loop, стриминг, память и long-running задачи.

✍️ Редакция iTech News | 15.07.2026 | ⏱ 5 мин | Источник: InfoQ
🔧

Google выпустила Genkit Agents API в статусе preview для TypeScript и Go, и это не очередная обвязка вокруг LLM с новым названием. Фреймворк прячет историю сообщений, tool loop, стриминг и сохранение состояния за одним интерфейсом chat(), а для команд, которые уже устали собирать агентные пайплайны из пяти несовместимых кусков, это вполне практичная новость.

О релизе Genkit Agents API сообщает InfoQ. Речь идет о новом API в открытом фреймворке Genkit, который Google продвигает как основу для full-stack AI-приложений. Ключевая идея простая: один и тот же агент должен одинаково работать как локально в процессе, так и за HTTP-эндпоинтом, без замены примитивов по мере роста проекта. В preview уже доступны версии для TypeScript и Go, а поддержка Python и Dart заявлена как следующая очередь.

На практике Google пытается закрыть довольно болезненную зону. Во многих агентных стеках разработчик сначала получает «быстрый чат-бот», а потом внезапно оказывается в мире отдельных абстракций для памяти, стриминга, долгих задач, подтверждения действий пользователем и оркестрации нескольких агентов. В Genkit это хотят упаковать в единый слой: тот же объект агента должен уметь отдать одноразовый ответ, вести многошаговый диалог со стримингом, приостанавливать выполнение на ожидании одобрения от человека и продолжать фоновую задачу после отключения клиента.

Одна из самых заметных возможностей в этом релизе — detached turns. Клиент может запустить задачу, отключиться и позже вернуться за результатом, пока агент продолжает работу на сервере и пишет прогресс в снапшоты. Для продуктовых команд это важный сдвиг из разряда «можно показать демо» в разряд «можно строить реальный сценарий»: длительные исследования, сложные tool-heavy workflow и многошаговое планирование больше не требуют постоянно держать открытым соединение, городить отдельную очередь задач или тянуть WebSocket только ради того, чтобы процесс не потерялся. Для внутренних AI-инструментов, где агент генерирует отчет, кодовый патч или длинный документ, это особенно полезно.

Вторая функция, на которую Google явно делает ставку, — interruptible tools, то есть инструменты с паузой на подтверждение человека. Если инструмент помечен как прерываемый, агент может остановиться прямо посреди выполнения, вернуть клиенту ожидаемое действие и продолжить только после одобрения или отказа. В примере InfoQ для Go показан инструмент запуска shell-команды: если команда потенциально опасна и может менять файлы, рантайм сначала требует подтверждение. Отдельно Google подчеркивает защиту от подделки: при возобновлении выполнения система сверяет payload с историей сессии, чтобы инструмент нельзя было «дожать» фальшивым вводом. Для корпоративной разработки это не мелочь. Как только агентам дают право дергать shell, API, базы или админские операции, история про human-in-the-loop быстро превращается из красивой презентации в базовую гигиену.

Еще один важный архитектурный момент — разделение данных на два типа, которые многие фреймворки смешивают. В Genkit есть custom state, то есть прикладные структурированные данные, влияющие на следующий ход агента: статус workflow, список задач, выбранные сущности. И есть artifacts — отдельные результаты, которые пользователь может смотреть, скачивать или версионировать независимо: отчет, маршрут, патч к коду. Инструменты могут обновлять и то и другое через активную сессию, а изменения стримятся клиенту по мере появления. Для команд, которые хотят не просто «болтать с моделью», а строить вокруг агента нормальный продуктовый интерфейс, это разумное разделение.

С сохранением состояния Google предлагает два режима. Если настроен session store, агент становится server-managed: сообщения, custom state и artifacts сохраняются в виде снапшотов, а клиент позже переподключается по session ID. Из коробки Genkit поддерживает Firestore для production-сценариев с несколькими инстансами, in-memory store для разработки и файловое хранилище для локального тестирования, плюс оставляет расширяемый интерфейс под собственные реализации. Если store не задан, работает client-managed вариант: сервер возвращает полное состояние, а клиент присылает его обратно на каждом ходе. AI-инженер Ebenezer Don, которого цитирует InfoQ, обратил внимание на компромисс здесь: надежный контекст остается главным вызовом для агентной памяти, а client-managed подход удобен для эфемерных сессий и сценариев с жесткими требованиями по data residency, где сервер вообще не должен хранить пользовательские данные. Цена вопроса предсказуемая — сетевой payload растет вместе с диалогом.

В более широком контексте релиз хорошо укладывается в текущую гонку агентных фреймворков. На рынке уже есть LangChain, CrewAI, Semantic Kernel, Autogen, Mastra и Pydantic AI, и все они в той или иной степени решают похожую задачу: как собрать агента, память, инструменты и orchestration так, чтобы это не рассыпалось после первого прототипа. Google здесь играет сразу на двух этажах. С одной стороны, есть Genkit для self-hosted приложений, где инфраструктуру держит сама команда. С другой — Managed Agents в Gemini API, где Google берет на себя background execution, удаленные MCP-серверы и sandboxed code execution. Разделение довольно показательное: компания не делает ставку на один универсальный путь, а параллельно строит стек и для тех, кто хочет контроль, и для тех, кто хочет сервис «под ключ».

У Genkit при этом есть понятный козырь и понятное ограничение. Козырь — full-stack подход: серверная логика агента, типизированные клиентские SDK для web и mobile, встроенный протокол стриминга, а также развертывание в Firebase, Cloud Run или любой среде с Node.js либо Go. Плюс модельная нейтральность через плагины: официально поддерживаются Google AI с Gemini, Vertex AI, Anthropic, OpenAI и Ollama. Есть и адаптер для Vercel AI SDK, чтобы встраивать агентов Genkit в Next.js-приложения. Ограничение тоже без сюрпризов: экосистема у Genkit пока меньше, чем у того же LangChain, а статус preview означает, что API еще может меняться. Впрочем, middleware-система, вышедшая в мае, уже находится в GA для TypeScript, Go и Dart. Она добавляет delegation tool для субагентов, ретраи с exponential backoff, fallback между провайдерами, approval gates и систему skills с загрузкой SKILL.md в системный промпт. То есть Google продает не только очередной чат-интерфейс, а попытку собрать вокруг агента внятный рантайм.

Для русскоязычных команд вывод довольно приземленный: Genkit Agents API интересен не потому, что это «ответ Google всем сразу», а потому, что он закрывает несколько неприятных инженерных задач единым интерфейсом и делает это сразу для TypeScript и Go. Главный вопрос теперь не в том, можно ли собрать на Genkit еще одного агента с красивым демо, а в том, насколько быстро preview превратится в стабильный слой для production-нагрузки и сможет ли Google нарастить вокруг него экосистему быстрее, чем рынок окончательно привыкнет жить на других фреймворках. Подробности можно сверить в материале InfoQ.

Поделиться: Telegram X LinkedIn