Интеграция Google Agent Development Kit (ADK) для построения агентов

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
Интеграция Google Agent Development Kit (ADK) для построения агентов
Средний
от 1 недели до 3 месяцев
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    901
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1119
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    853

Интеграция Google ADK (Agent Development Kit)

Google Agent Development Kit (ADK) — фреймворк для построения мульти-агентных систем на базе моделей Google (Gemini). ADK предоставляет иерархическую модель агентов: оркестраторы (LlmAgent) координируют субагентов, которые могут быть LLM-агентами, последовательными/параллельными workflow или кастомными агентами. Встроенная интеграция с Vertex AI, Google Cloud и сервисами Search Grounding.

Базовая структура ADK

# pip install google-adk
from google.adk.agents import LlmAgent, SequentialAgent, ParallelAgent
from google.adk.tools import google_search, FunctionTool
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
import asyncio

# Инструмент через FunctionTool
def get_stock_price(ticker: str) -> dict:
    """Получить текущую цену акции.

    Args:
        ticker: Тикер акции (например, GOOGL, AAPL)

    Returns:
        dict с ценой, изменением и объёмом торгов
    """
    data = finance_api.get_quote(ticker)
    return {
        "ticker": ticker,
        "price": data["price"],
        "change_percent": data["change_percent"],
        "volume": data["volume"],
    }

stock_tool = FunctionTool(func=get_stock_price)

# Базовый LLM-агент
research_agent = LlmAgent(
    name="market_researcher",
    model="gemini-2.0-flash",
    instruction="""Ты — аналитик финансового рынка.
Исследуй рыночные данные и предоставляй структурированный анализ.
Всегда используй инструменты для получения актуальных данных.""",
    tools=[google_search, stock_tool],
    output_key="research_result",  # Ключ для передачи результата следующему агенту
)

# Запуск агента
session_service = InMemorySessionService()
runner = Runner(
    agent=research_agent,
    app_name="financial_analysis",
    session_service=session_service,
)

SequentialAgent: пайплайн обработки

from google.adk.agents import SequentialAgent, LlmAgent
from google.adk.tools import FunctionTool

# Последовательный пайплайн: research → analysis → report
research_step = LlmAgent(
    name="researcher",
    model="gemini-2.0-flash",
    instruction="Исследуй тему, собери факты и данные.",
    tools=[google_search, stock_tool],
    output_key="raw_research",
)

analysis_step = LlmAgent(
    name="analyst",
    model="gemini-2.0-flash",
    instruction="""Проанализируй исследовательские данные.
Входные данные доступны как: {raw_research}""",
    output_key="analysis",
)

report_step = LlmAgent(
    name="writer",
    model="gemini-2.0-flash",
    instruction="""Создай финальный отчёт на основе анализа.
Анализ: {analysis}""",
    output_key="final_report",
)

pipeline = SequentialAgent(
    name="analysis_pipeline",
    sub_agents=[research_step, analysis_step, report_step],
)

ParallelAgent: параллельное выполнение

from google.adk.agents import ParallelAgent

# Параллельные независимые задачи
financial_analyzer = LlmAgent(
    name="financial",
    model="gemini-2.0-flash",
    instruction="Анализируй финансовые показатели компании.",
    tools=[get_financial_data],
    output_key="financial_analysis",
)

market_analyzer = LlmAgent(
    name="market",
    model="gemini-2.0-flash",
    instruction="Анализируй рыночное положение и конкурентов.",
    tools=[google_search, get_market_data],
    output_key="market_analysis",
)

risk_analyzer = LlmAgent(
    name="risk",
    model="gemini-2.0-flash",
    instruction="Оцени риски и угрозы.",
    tools=[google_search, get_regulatory_data],
    output_key="risk_analysis",
)

# Параллельный анализ трёх направлений
parallel_analysis = ParallelAgent(
    name="due_diligence_parallel",
    sub_agents=[financial_analyzer, market_analyzer, risk_analyzer],
)

# Агрегатор результатов
synthesizer = LlmAgent(
    name="synthesizer",
    model="gemini-2.0-pro",
    instruction="""Синтезируй результаты параллельного анализа в единый отчёт.
Финансы: {financial_analysis}
Рынок: {market_analysis}
Риски: {risk_analysis}""",
    output_key="dd_report",
)

# Полный пайплайн DD
dd_pipeline = SequentialAgent(
    name="due_diligence",
    sub_agents=[parallel_analysis, synthesizer],
)

Иерархический мульти-агент (Orchestrator)

from google.adk.agents import LlmAgent

# Оркестратор с субагентами
orchestrator = LlmAgent(
    name="coordinator",
    model="gemini-2.0-flash",
    instruction="""Ты — координатор задач.
Делегируй задачи специализированным агентам по их назначению.
Не выполняй задачи сам — всегда используй субагентов.""",
    # Субагенты становятся инструментами оркестратора
    sub_agents=[research_step, financial_analyzer, report_step],
)

# ADK автоматически создаёт transfer_to_{agent_name} инструменты
# Оркестратор вызывает их через function calling

Search Grounding с Vertex AI

from google.adk.tools import GroundingTool
from google.adk.tools.grounding import GoogleSearchRetrieval, VertexAISearchRetrieval

# Grounding через Google Search (актуальные данные)
search_grounding = GroundingTool(
    google_search_retrieval=GoogleSearchRetrieval()
)

# Grounding через Vertex AI Search (корпоративные документы)
enterprise_grounding = GroundingTool(
    vertex_ai_search_retrieval=VertexAISearchRetrieval(
        datastore="projects/my-project/locations/global/collections/default/dataStores/my-datastore"
    )
)

grounded_agent = LlmAgent(
    name="grounded_analyst",
    model="gemini-2.0-flash",
    instruction="Отвечай на вопросы, используя актуальные данные из корпоративной базы.",
    tools=[enterprise_grounding],
)

Деплой на Vertex AI Agent Builder

# ADK агенты нативно деплоятся на Vertex AI
from google.adk.cli import deploy_to_vertex

# Структура проекта
# my_agent/
#   __init__.py
#   agent.py  # содержит root_agent = LlmAgent(...)
#   tools.py

# agent.py
from google.adk.agents import LlmAgent
from .tools import get_data, process_data

root_agent = LlmAgent(
    name="production_agent",
    model="gemini-2.0-flash",
    instruction="...",
    tools=[get_data, process_data],
)

# Деплой: adk deploy --project my-gcp-project --region us-central1

Практический кейс: система мониторинга конкурентов

Компания: FMCG, отдел маркетинговой аналитики. Мониторинг 15 конкурентов требовал 3 аналитика full-time.

Архитектура ADK:

# Параллельный сбор данных по каждому конкуренту
competitor_agents = [
    LlmAgent(
        name=f"monitor_{company}",
        model="gemini-2.0-flash",
        instruction=f"Мониторь активность {company}: новости, ценовые изменения, запуски продуктов.",
        tools=[google_search, web_scraper, price_tracker],
        output_key=f"data_{company}",
    )
    for company in competitors
]

parallel_monitor = ParallelAgent(name="parallel_monitor", sub_agents=competitor_agents)

trend_analyzer = LlmAgent(
    name="trend_analyzer",
    model="gemini-2.0-pro",
    instruction="Анализируй собранные данные, выявляй паттерны и тренды.",
    output_key="trends",
)

report_generator = LlmAgent(
    name="reporter",
    model="gemini-2.0-flash",
    instruction="Создай еженедельный дайджест для CMO. Формат: executive summary + детали.",
    output_key="weekly_report",
)

monitoring_pipeline = SequentialAgent(
    name="competitive_intelligence",
    sub_agents=[parallel_monitor, trend_analyzer, report_generator],
)

Результаты:

  • Охват конкурентов: 15 → 32 компании
  • Время подготовки еженедельного отчёта: 3 дня → 40 минут
  • Скорость реакции на ценовые изменения конкурентов: 3 дня → 2 часа
  • Аналитики переориентировались на стратегические решения

Сроки

  • Базовый LlmAgent с инструментами: 2–3 дня
  • Sequential/Parallel пайплайны: 3–5 дней
  • Иерархический оркестратор: 1–2 недели
  • Деплой на Vertex AI: 3–5 дней
  • Production-ready с мониторингом: +1 неделя