Руководство по созданию масштабируемой мультиагентной системы с помощью Google ADK

В этом руководстве мы рассмотрим расширенные возможности набора для разработки агентов (Agent Development Kit, ADK) от Google, создав мультиагентную систему с специализированными ролями и инструментами. Мы покажем, как создавать агентов, предназначенных для выполнения таких задач, как веб-исследования, математические вычисления, анализ данных и создание контента.

Установка и импорт библиотек

Для начала установим пакет google-adk и импортируем необходимые библиотеки для создания нашей агентской системы. Чтобы аутентифицировать наш доступ, мы получим ключ API Google либо из окружения, либо с помощью модуля getpass. Это обеспечит бесперебойное взаимодействие наших агентов с инструментами и сервисами Google.

“`python
import os
import asyncio
import json
from typing import List, Dict, Any
from dataclasses import dataclass
from google.adk.agents import Agent, LlmAgent
from google.adk.tools import google_search
“`

Создание специализированных агентов

Мы создадим мультиагентную систему со специализированными ролями:

  • Исследователь: специалист по веб-исследованиям и сбору информации.

  • Калькулятор: эксперт по математическим вычислениям и анализу.

  • Аналитик: специалист по анализу данных и статистическим исследованиям.

  • Писатель: эксперт по созданию контента и написанию документов.

“`python
@dataclass
class TaskResult:
“””Data structure for task results”””
agent_name: str
task: str
result: str
metadata: Dict[str, Any] = None

class AdvancedADKTutorial:
“””Main tutorial class demonstrating ADK capabilities”””

def init(self):
self.model = “gemini-1.5-flash”
self.agents = {}
self.results = []

def createspecializedagents(self):
“””Create a multi-agent system with specialized roles”””

self.agents[‘researcher’] = Agent(
name=”researcher”,
model=self.model,
instruction=”””You are a research specialist. Use Google Search to find
accurate, up-to-date information. Provide concise, factual summaries with sources.
Always cite your sources and focus on the most recent and reliable information.”””,
description=”Specialist in web research and information gathering”,
tools=[google_search]
)

# … (далее создание других агентов)
“`

Демонстрация возможностей агентов

Мы продемонстрируем возможности каждого агента, выполнив асинхронные методы для запуска агентов с соответствующими входными данными.

“`python
async def demonstratesingleagent_research(self):
“””Demonstrate single agent research capabilities”””
print(“\n=== Single Agent Research Demo ===”)

query = “What are the latest developments in quantum computing breakthroughs in 2024?”
print(f”Research Query: {query}”)

try:
responsetext = await self.runagentwithinput(
agent=self.agents[‘researcher’],
user_input=query
)
summary = responsetext[:300] + “…” if len(responsetext) > 300 else response_text

task_result = TaskResult(
agent_name=”researcher”,
task=”Quantum Computing Research”,
result=summary
)
self.results.append(task_result)

print(f”✓ Research Complete: {summary}”)
return response_text

except Exception as e:
error_msg = f”Research failed: {str(e)}”
print(f” {error_msg}”)
return error_msg
“`

Отображение сводки результатов

В конце мы отобразим сводку результатов выполнения каждого агента.

“`python
def displaycomprehensivesummary(self):
“””Display comprehensive tutorial summary and results”””
print(“\n” + “=”*70)
print(” ADVANCED ADK TUTORIAL – COMPREHENSIVE SUMMARY”)
print(“=”*70)

print(f”\n EXECUTION STATISTICS:”)
print(f” • Total agents created: {len(self.agents)}”)
print(f” • Total tasks completed: {len(self.results)}”)
print(f” • Model used: {self.model} (Free Tier)”)
print(f” • Runner type: Direct Agent Execution”)

# … (далее отображение сводки)
“`

Мы успешно создали и развернули полностью функциональную мультиагентную систему с помощью Google ADK. Наши агенты справились с разнообразными задачами, от проведения исследований в реальном времени и решения сложных финансовых уравнений до анализа тенденций данных и создания исполнительных сводок.

Мы также подчеркнули, как фреймворк ADK поддерживает обработку ошибок, расширяемость и бесшовную интеграцию с инструментами. Благодаря этому практическому опыту мы обрели уверенность в использовании ADK для разработки надёжных агентских решений для реальных задач.

1. Какие специализированные роли агентов можно создать с помощью Google ADK?

В статье описывается создание мультиагентной системы с четырьмя специализированными ролями: Исследователь (специалист по веб-исследованиям и сбору информации), Калькулятор (эксперт по математическим вычислениям и анализу), Аналитик (специалист по анализу данных и статистическим исследованиям) и Писатель (эксперт по созданию контента и написанию документов).

2. Какие инструменты и библиотеки необходимо импортировать для создания мультиагентной системы с помощью Google ADK?

Для создания мультиагентной системы с помощью Google ADK необходимо импортировать следующие библиотеки и инструменты: `os`, `asyncio`, `json`, `typing`, `dataclasses`, `google.adk.agents`, `google.adk.tools`, а также `google_search`.

3. Какие возможности демонстрирует каждый агент в мультиагентной системе, созданной с помощью Google ADK?

В мультиагентной системе, созданной с помощью Google ADK, каждый агент демонстрирует свои уникальные возможности:
* Исследователь выполняет веб-исследования и собирает информацию.
* Калькулятор занимается математическими вычислениями и анализом.
* Аналитик проводит анализ данных и статистические исследования.
* Писатель создаёт контент и пишет документы.

4. Какие методы используются для запуска агентов с соответствующими входными данными в мультиагентной системе с помощью Google ADK?

Для запуска агентов с соответствующими входными данными в мультиагентной системе с помощью Google ADK используются асинхронные методы. В статье приводится пример метода `demonstratesingleagent_research`, который запускает агента-исследователя с запросом о последних разработках в области квантовых вычислений в 2024 году.

5. Какие статистические данные отображаются при демонстрации сводки результатов выполнения каждого агента в мультиагентной системе с помощью Google ADK?

При демонстрации сводки результатов выполнения каждого агента в мультиагентной системе с помощью Google ADK отображаются следующие статистические данные:
* Общее количество созданных агентов.
* Общее количество выполненных задач.
* Модель, используемая для агентов.
* Тип запуска агентов.

Источник