Інтеграція 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_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 аналітиків на повну ставку.

Архітектура 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 тиждень