Создание фреймворка для мультиагентной системы на основе графов для автоматизации сложных задач

В этом руководстве мы покажем вам, как разработать продвинутую систему на основе графов с помощью Google Gemini API. Наша цель — создать интеллектуальных многошаговых агентов, которые выполняют задачи через чётко определённую структуру графа из взаимосвязанных узлов.

Каждый узел представляет собой конкретную функцию: от ввода данных, логической обработки, принятия решений до вывода результатов. Мы используем Python, NetworkX для моделирования графов и matplotlib для визуализации.

Установка необходимых библиотек

Для начала установим необходимые библиотеки: google-generativeai, networkx и matplotlib. После импорта основных модулей настроим Gemini API с помощью нашего API-ключа, чтобы включить мощные возможности генерации контента в нашей агентской системе.

“`python
!pip install -q google-generativeai networkx matplotlib

import google.generativeai as genai
import networkx as nx
import matplotlib.pyplot as plt
from typing import Dict, List, Any, Callable
import json
import asyncio
from dataclasses import dataclass
from enum import Enum

API_KEY = “use your API key here”
genai.configure(apikey=APIKEY)
“`

Определение типов узлов

Определим перечисление NodeType для классификации различных видов узлов агентов: input (ввод), process (обработка), decision (решение) и output (вывод). Затем, используя dataclass AgentNode, структурируем каждый узел с идентификатором, типом, запросом и списком зависимостей.

“`python
class NodeType(Enum):
INPUT = “input”
PROCESS = “process”
DECISION = “decision”
OUTPUT = “output”

@dataclass
class AgentNode:
id: str
type: NodeType
prompt: str
function: Callable = None
dependencies: List[str] = None
“`

Создание исследовательского агента

Создадим исследовательского агента, последовательно добавляя специализированные узлы в граф. Начиная с ввода темы, мы определим поток процессов, включающий планирование, обзор литературы и анализ. Агент затем принимает решение о качестве исследования и, наконец, генерирует комплексный отчёт о исследовании.

“`python
def createresearchagent():
agent = GraphAgent()
# Input node
agent.add_node(AgentNode(
id=”topic_input”,
type=NodeType.INPUT,
prompt=”Research topic input”
))
# …
return agent
“`

Создание агента для решения проблем

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

“`python
def createproblemsolver():
agent = GraphAgent()
agent.add_node(AgentNode(
id=”problem_input”,
type=NodeType.INPUT,
prompt=”Problem statement”
))
# …
return agent
“`

Запуск демонстрационных примеров

Запустим два мощных демонстрационных агента: один для исследования и другой для решения проблем. В каждом случае визуализируем структуру графа, инициализируем ввод и выполним агент по узлам в топологическом порядке.

“`python
def runresearchdemo():
“””Run the research agent demo”””
print(” Advanced Graph Agent Framework Demo”)
print(“=” * 50)
# …
return research_agent.results

def runproblemsolver_demo():
“””Run the problem solver demo”””
print(“\n” + “=” * 50)
problemsolver = createproblem_solver()
print(“\n Problem Solver Graph Structure:”)
problem_solver.visualize()
# …
return problem_solver.results

print(” Running Research Agent Demo:”)
researchresults = runresearch_demo()

print(“\n Running Problem Solver Demo:”)
problemresults = runproblemsolverdemo()

print(“\n All demos completed successfully!”)
“`

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

1. Какие библиотеки и инструменты используются для создания интеллектуальных многошаговых агентов на основе графов в данном руководстве?

В данном руководстве используются следующие библиотеки и инструменты: Google Gemini API, NetworkX для моделирования графов, Matplotlib для визуализации, а также Python для программирования.

2. Какие типы узлов определены для классификации различных видов узлов агентов в этом руководстве?

Для классификации различных видов узлов агентов определены следующие типы: input (ввод), process (обработка), decision (решение) и output (вывод).

3. Какие шаги включает в себя создание исследовательского агента в этом руководстве?

Создание исследовательского агента включает в себя следующие шаги:
* определение перечисления NodeType для классификации узлов;
* структурирование каждого узла с идентификатором, типом, запросом и списком зависимостей;
* последовательное добавление специализированных узлов в граф, начиная с ввода темы;
* определение потока процессов, включая планирование, обзор литературы и анализ;
* принятие решения о качестве исследования;
* генерация комплексного отчёта о исследовании.

4. Какие функции выполняет агент для решения проблем, созданный в этом руководстве?

Агент для решения проблем выполняет следующие функции:
* анализирует проблему;
* генерирует несколько подходов к решению;
* оценивает их на основе осуществимости и эффективности;
* создаёт структурированный план реализации.

5. Какие демонстрационные примеры запускаются в этом руководстве для демонстрации работы агентов?

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

Источник

Оставьте комментарий