Создание мультиагентской исследовательской группы ИИ с помощью LangGraph и Gemini для автоматизированного составления отчётов

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

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

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

Сначала мы устанавливаем необходимые библиотеки, включая LangGraph и интеграцию LangChain с Google Gemini. Затем мы импортируем основные модули и настраиваем нашу среду, безопасно вводя ключ API Google с помощью модуля getpass. Это гарантирует, что мы можем аутентифицировать наш Gemini LLM, не раскрывая ключ в коде.

Определение классов для поддержания структурированного состояния и ответов

Мы определяем два класса TypedDict для поддержания структурированного состояния и ответов, общих для всех агентов в LangGraph. AgentState отслеживает сообщения, статус рабочего процесса, тему и собранные результаты, а AgentResponse стандартизирует вывод каждого агента.

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

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

Создание агента-аналитика данных

Далее мы определяем агента-аналитика данных, который углубляется в результаты исследований, полученные предыдущим агентом. Этот агент выявляет ключевые закономерности, тенденции и метрики, предлагая действенные инсайты, основанные на доказательствах.

Создание агента-писателя отчётов

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

Создание агента-руководителя

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

Создание графа исследовательской группы

Мы создаём граф исследовательской группы, который состоит из узлов для каждого агента, подключённых логическими переходами. Затем мы компилируем этот граф с памятью, используя MemorySaver для сохранения истории разговоров. Наконец, функция runresearchteam() инициализирует процесс с темой и поэтапно отслеживает выполнение, позволяя нам отслеживать вклад каждого агента в режиме реального времени.

Запуск исследовательской группы

Запускаем граф исследовательской группы и отслеживаем производительность с помощью функции monitorresearchperformance(). Эта функция отслеживает время выполнения, объём сообщений и размер отчёта, помогая нам оценить эффективность системы.

Демонстрация быстрого запуска

Мы завершаем систему, добавив мощные утилиты для визуализации графиков, мониторинга производительности и демонстрации быстрого запуска. Функция visualizegraph() предоставляет структурный обзор соединений агентов, идеальный для отладки или презентации. Функция monitorresearch_performance() отслеживает время выполнения, объём сообщений и размер отчёта, помогая нам оценить эффективность системы.

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

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

* В системе используются агенты, выполняющие определённые роли: исследователь, аналитик, писатель и руководитель. Они отвечают за отдельные этапы исследовательского процесса: сбор данных, анализ информации, составление отчёта и координацию рабочего процесса.

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

* Для создания мультиагентской исследовательской группы используются LangGraph и API Google Gemini. Также применяются библиотеки и инструменты для установки необходимых модулей, настройки среды, аутентификации и работы с моделями LLM.

3. Какие классы определены для поддержания структурированного состояния и ответов в системе?

* Для поддержания структурированного состояния и ответов определены два класса TypedDict: AgentState и AgentResponse. AgentState отслеживает сообщения, статус рабочего процесса, тему и собранные результаты, а AgentResponse стандартизирует вывод каждого агента.

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

* Для мониторинга производительности системы используются функции monitorresearchperformance() и visualizegraph(). monitorresearchperformance() отслеживает время выполнения, объём сообщений и размер отчёта, а visualizegraph() предоставляет структурный обзор соединений агентов.

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

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

Источник

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