Мой блог
Google расширяет возможности управляемых агентов в Gemini API

Разработчики получили масштабное обновление возможностей для создания автономных систем: теперь управляемые агенты в Gemini API поддерживают фоновое выполнение задач, прямую интеграцию с удаленными серверами MCP, пользовательский вызов функций и обновление учетных данных между сеансами. Эти нововведения напрямую отвечают запросам сообщества и реальным потребностям разработчиков, позволяя создавать надежные готовые к продакшену решения. С помощью Interactions API в Gemini достаточно обратиться к единственной конечной точке, после чего модель берет на себя логику рассуждений, выполнение кода, установку пакетов, управление файлами и сбор данных в изолированной облачной среде. Для ИИ-агентов кодинга предусмотрена специальная команда установки навыка Interactions API: npx skills add google-gemini/gemini-skills --skill gemini-interactions-api. Примеры в материале приводятся для JavaScript SDK пакета @google/genai, тогда как для Python или cURL можно воспользоваться официальной документацией агента Antigravity, предварительно установив пакет через npm install @google/genai.
Создание автономных агентов с расширенными возможностями
Современные сценарии использования требуют гибких подходов к архитектуре, особенно когда речь заходит о длительных процессах и внешних интеграциях.
Выполнение фоновых задач в течение длительного времени
Поддержание постоянного HTTP-соединения для выполнения продолжительных операций крайне ненадежно и чревато обрывами связи. Чтобы избежать этого, достаточно передать параметр background: true, запустив взаимодействие в асинхронном режиме на стороне сервера. Интерфейс API мгновенно возвращает идентификатор, который клиентские приложения могут использовать для опроса статуса, получения прогресса через стриминг или повторного подключения, пока агент завершает работу удаленно. Более подробную информацию можно найти в специальном руководстве по фоновому выполнению.
В качестве практического примера рассмотрим фрагмент кода на JavaScript:
import { GoogleGenAI } from "@google/genai";const client = new GoogleGenAI({});// 1. Запуск долгосрочного анализа в фоновом режимеconst interaction = await client.interactions.create({ agent: "antigravity-preview-05-2026", input: "Clone https://github.com/googleapis/js-genai, find all TODO comments in the source code, and categorize them by module and priority in a markdown report.", environment: "remote", background: true,});console.log(`Background task started. Interaction ID: ${interaction.id}`);// 2. Асинхронный опрос без блокировки открытого HTTP-сокетаlet result = interaction;while (result.status === "in_progress") { await new Promise((resolve) => setTimeout(resolve, 5000)); result = await client.interactions.get(interaction.id);}if (result.status === "completed") { console.log("Task Completed:\n", result.output_text);} else { console.error(`Task ended with status: ${result.status}`);}
Интеграция с удаленными серверами MCP
Вместо написания промежуточного прокси-посредника для доступа к закрытым базам данных или внутренним интерфейсам теперь можно подключать управляемые агенты напрямую к удаленным серверам Model Context Protocol (MCP). Допускается комбинирование удаленных инструментов со стандартными возможностями песочницы. Передача инструмента mcp_server в момент создания взаимодействия наряду с Google Search или выполнением кода позволяет агенту беспрепятственно обмениваться данными с вашими эндпоинтами прямо из защищенного окружения. При расширении функционала сторонними инструментами и API рекомендуется следовать лучшим практикам безопасности.
Пример интеграции удаленного сервера:
import { GoogleGenAI } from "@google/genai";const client = new GoogleGenAI({});const interaction = await client.interactions.create({ agent: "antigravity-preview-05-2026", input: "Check our internal observability server for recent latency spikes in the auth service and correlate them with git commits.", environment: "remote", tools: [ { type: "google_search" }, { type: "code_execution" }, { type: "mcp_server", name: "internal_telemetry", url: "https://mcp.internal.example.com/mcp" }, ],});console.log(interaction.output_text);
Пользовательские функции и инструменты песочницы
Архитектура позволяет добавлять пользовательские функции наряду со встроенными средствами локального выполнения. Механизм опирается на сопоставление шагов: встроенные инструменты выполняются на сервере автоматически, тогда как кастомные функции переводят сеанс в состояние requires_action, делегируя выполнение локальной бизнес-логики клиентскому приложению. Для демонстрации этого подхода используется инициализация клиента через const client = new GoogleGenAI({});, закладывающая основу для дальнейшего сопоставления шагов взаимодействия.
Определение пользовательской функции домена выглядит следующим образом: const getWeatherTool = { type: "function", name: "get_weather", description: "Gets the current weather for a given location.", parameters: { type: "object", properties: { location: { type: "string", description: "The city and country, e.g. San Francisco, USA" } }, required: ["location"] } };. После этого агент вызывается с одновременным использованием встроенного выполнения кода и пользовательских функций через метод client.interactions.create, где в параметрах передаются агент antigravity-preview-05-2026, соответствующий вводный запрос о проверке погоды в Токио с конвертацией температуры в Фаренгейты через скрипт Python и сохранением результата в файл weather.txt, удаленная среда, а также массив инструментов, включающий выполнение кода и созданный инструмент погоды.
Для корректной обработки выполнения пользовательских функций проверяется статус взаимодействия. Инструменты файловой системы и песочницы выполняются автоматически, формируя соответствующие шаги с результатом функции. Разработчик может отфильтровать ожидающие доменные вызовы, требующие выполнения на стороне клиента. Цикл обрабатывает оставшиеся вызовы, выводя информацию в консоль для выполнения локального запроса к API или базе данных с последующей отправкой результата функции обратно на втором этапе.
Обновление сетевых учетных данных
Маркеры доступа и недолговечные ключи API со временем истекают. Обновить учетные данные или выполнить ротацию ключей можно, передав существующий идентификатор среды environment_id вместе с новой конфигурацией сети во время следующего взаимодействия. Новые правила вступают в силу немедленно. При этом песочница сохраняет состояние файловой системы, установленные пакеты и клонированные репозитории в неизменном виде.
Работу с токенами иллюстрирует пример кода на TypeScript. На первом этапе взаимодействия используется первоначальный токен для перечисления файлов в бакете Google Cloud Storage с помощью GCS JSON API. Позже в той же среде можно обновить токен, передав идентификатор среды из первого запроса и новый заголовок авторизации с обновленным токеном для загрузки конкретного файла отчета, после чего результат выводится в текстовом виде.
Начало работы с управляемыми агентами
Описанные обновления превращают управляемые агенты в асинхронные рабочие процессы, которые функционируют внутри реальных сред разработки, не блокируя при этом основное приложение. Чтобы детально изучить пользовательские определения агентов, конфигурации окружения, сетевые правила и расширенные шаблоны потоковой передачи данных, рекомендуется обратиться к обзору API взаимодействий Gemini и руководству по быстрому старту.
Источник: blog.google

