Директор по связям с разработчиками
Когда мы говорим об агентах, это не обязательно означает, что мы говорим о Python. В современной экосистеме агент может работать как высоконагруженный микросервис на Go в Cloud Run или существовать внутри вкладки браузера, вызывая встроенную в Chrome модель. Тем не менее, многие агентские фреймворки ориентированы исключительно на стек Python. Это вынуждает команды либо разворачивать сервис на Python только для агентских задач, либо создавать логику оркестрации агентов с нуля на своем языке.
Google Agent Development Kit (ADK) устраняет этот компромисс, обеспечивая поддержку Python, Go, TypeScript, Java и Kotlin. Каждая версия ADK создана с нуля для своей среды выполнения и системы типов, при этом сохраняя единую архитектуру с возможностью взаимодействия через открытые протоколы.
Общая основа
Выбор языка не ограничивает вашу архитектуру: все пять поддерживают одни и те же открытые протоколы. ADK включает клиент Model Context Protocol для каждого языка, поэтому любой пользовательский инструмент, представленный как MCP-сервер, может быть немедленно вызван из любого из них.
Для мультиагентных систем ADK поддерживает протокол Agent2Agent (A2A), позволяющий агенту взаимодействовать с удаленным агентом по HTTP. Благодаря A2A агенты, написанные на разных языках или фреймворках, могут взаимодействовать друг с другом.
Начало работы с агентами
Чтобы начать, выполните однократную команду настройки для проверки аутентификации в Google Cloud, установите CLI, а затем настройте первоклассные навыки ADK в таких агентах для кодинга, как Antigravity, Claude Code или Codex:
Репозитории ADK для Python и ADK для Kotlin также содержат навыки построения агентов в своих исходных кодах, а ресурс adk.dev/llms.txt предоставляет любому агенту для кодинга API-документацию по требованию на всех пяти языках.
Навыки агентов для кодинга создают каркас вашего проекта, в то время как MCP и A2A соединяют все пять сред выполнения языков.
Практический обзор каждого ADK
Самый простой способ почувствовать разницу между пятью языками — определить один и тот же инструмент погоды в каждом из них и посмотреть, как его дизайн соответствует среде выполнения.
Python
В ADK для Python вам не нужны декораторы или классы-построители схем. Вы передаете обычную функцию Python в параметр tools, и ADK при запуске анализирует ее сигнатуру, подсказки типов и docstring, чтобы автоматически создать объявление инструмента и Pydantic схему параметров:
lang-py
Помимо быстрого прототипирования, Python является эталонной реализацией ADK, предоставляющей самый широкий набор интеграций с Google Cloud (BigQuery, Spanner, Bigtable) и адаптеров моделей (Gemini, Anthropic, OpenAI, LiteLLM). В сочетании с командами adk eval или agents-cli eval, инструменты оценки ADK проверяют траектории агентов на эталонных наборах данных в рамках непрерывной интеграции (CI), чтобы протестировать всю систему целиком, даже если ваш рабочий сервис запущен на другом языке.
В то время как Python лидирует в экспериментах и оценке, ADK для Go идеально подходит для промышленной серверной разработки.
Функция инструмента на Go принимает agent.Context конфигурацию и строго типизированную структуру ввода. Функция functiontool.New использует дженерики Go для вывода схем ввода и вывода из тегов вашей структуры:
Поскольку функция functiontool.New является обобщенной относительно сигнатуры вашего обработчика, компилятор Go проверяет соответствие вашей функции ожидаемому контракту еще до запуска бинарного файла.
Go также стал первым языком после Python, получившим ADK 2.0 Graph Workflow runtime. Когда вам нужен детерминированный поток управления наряду с рассуждениями LLM, функция workflow.New связывает агентов и обычные функции Go в направленный граф с условной маршрутизацией и параллельными шагами:
Go особенно выделяется при работе в Cloud Run и GKE. Скомпилированный агент на Go упаковывается в базовый образ Google distroless static размером около 2 МБ, без виртуальной машины языка или тяжелого дерева зависимостей. Статический бинарный файл Go привязывается к порту сразу после запуска контейнера, минуя импорт модулей динамических языков и распаковку JAR или прогрев JIT в JVM-сервисах.
После запуска модель конкурентности Go естественным образом подходит для агентских нагрузок. Каждая горутина запускается с 2 KB stack и минимальными накладными расходами на планирование, поэтому один экземпляр может мультиплексировать тысячи одновременных потоковых запросов и вызовов инструментов. ADK для Go также включает built-in A2A server handlers и трассировку OpenTelemetry «из коробки».
TypeScript
TypeScript удаляет аннотации типов при компиляции в JavaScript, поэтому рефлексия во время выполнения невозможна. Вместо этого ADK для TypeScript работает в паре с Zod. Вы передаете схему z.object(...) в функцию FunctionTool, и TypeScript статически выводит типы параметров вашего обратного вызова execute из этого единственного объявления:
Ваша проверка входных данных во время выполнения, JSON-схема, отправляемая модели, и автодополнение в IDE внутри обратного вызова execute — все это исходит из одного источника истины.
TypeScript также работает на движке ADK 2.0 Graph Workflow и поставляется в виде автономного браузерного бандла. Помимо сервисов Node.js, вы можете запустить агент ADK прямо во вкладке браузера, используя WebMCP для инструментов уровня страницы и встроенный в Chrome Prompt API.
Java
ADK для Java отлично подходит для команд, стандартизировавших использование Maven, Gradle и Spring Boot. Вы добавляете аннотации @Schema к параметрам методов и собираете агентов, используя текучий API LlmAgent.builder():
Во время выполнения runner транслирует события агента реактивно через RxJava. Для локального тестирования и существующих JVM-приложений ADK для Java поставляется с плагином Maven Dev UI, а также с мостами для Spring AI и LangChain4j.
Kotlin
ADK для Kotlin делает упор на безопасность во время сборки. Его плагин компилятора Kotlin Symbol Processing (KSP) считывает аннотации @Tool и @Param во время сборки и внедряет схему инструмента непосредственно в байт-код:
Если сигнатура инструмента использует неподдерживаемый тип или объявляет значение по умолчанию для параметра, который не может быть null, ваша сборка Gradle немедленно завершится ошибкой, вместо того чтобы сломаться в продакшене. Поскольку функция .generatedTools() использует нулевую рефлексию во время выполнения, она устойчива к Android R8 shrinking.
Такой дизайн без рефлексии позволяет запускать весь цикл агента локально на Android. Он предлагает поддержку JVM-серверов, включая мост Spring AI и экспериментальные рабочие процессы ADK 2.0. На устройстве ADK для Kotlin интегрируется с LiteRT-LM для вызова инструментов и ML Kit (Gemini Nano) для генерации текста. Он также работает с Room и AppSearch для локального состояния, а также с Android AppFunctions для действий на уровне ОС, и все это без необходимости подключения к сети.
Выбор без компромиссов
Наличие пяти родных языков в ADK означает, что вам не нужно выбирать одну среду выполнения для всей организации. Поскольку каждая версия ADK поддерживает MCP и A2A, каждый компонент вашей системы может использовать тот язык, который подходит ему лучше всего.
Какие языки вы использовали для создания агентов с помощью ADK от Google? Дайте знать, на каком стеке вы работаете, в X, LinkedIn или Bluesky.
- Разработчики и практики







