<НА ГЛАВНУЮ

Создание Итеративного AI Агентa с LangGraph и Gemini: Полное Руководство по Коду

Руководство по созданию итеративного AI агента с LangGraph и Gemini, демонстрирующее модульный подход к анализу, исследованию, ответу и проверке запросов.

Обзор AI Workflow Агента

В этом руководстве показано, как создать интеллектуального многошагового AI агента с использованием LangGraph и Gemini 1.5 Flash. Агент рассматривает AI-логическое рассуждение как состояние с сохранением, через которое запросы проходят через отдельные узлы: маршрутизация, анализ, исследование, генерация ответа и валидация. Каждый узел выполняет независимую функцию, что позволяет агенту быть аналитически осознанным, а не просто реактивным.

Необходимые библиотеки и настройка

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

!pip install langgraph langchain-google-genai python-dotenv

Эти библиотеки обеспечивают инструменты для оркестрации AI рабочих процессов (langgraph), интеграции с моделями Gemini (langchain-google-genai) и безопасного управления переменными окружения (python-dotenv).

Определение общего состояния

Определяем dataclass AgentState, который отслеживает запрос, контекст, анализ, ответ, следующее действие и количество итераций:

@dataclass
class AgentState:
    """Общее состояние, разделяемое между узлами графа"""
    query: str = ""
    context: str = ""
    analysis: str = ""
    response: str = ""
    next_action: str = ""
    iteration: int = 0
    max_iterations: int = 3

Это состояние сохраняется между узлами, позволяя выполнять итеративное рассуждение и принятие решений.

Создание класса GraphAIAgent

Класс GraphAIAgent инкапсулирует логику рабочего процесса:

  • Инициализирует модели Gemini для генерации ответов и анализа
  • Строит LangGraph StateGraph с узлами: маршрутизатор, анализатор, исследователь, отвечающий и валидатор
  • Настраивает связи для управления потоком и итерациями

Основные функции узлов:

  • _router_node: категоризация и маршрутизация запросов
  • _analyzer_node: решение о необходимости дополнительного исследования или прямого ответа
  • _researcher_node: проведение дополнительного исследования
  • _responder_node: генерация окончательного ответа
  • _validator_node: проверка качества и полноты ответа, управление итерациями

Пример использования

Функция main() демонстрирует запуск агента на различных типах запросов:

def main():
    agent = GraphAIAgent("Use Your API Key Here")
   
    test_queries = [
        "Объясните квантовые вычисления и их применения",
        "Каковы лучшие практики для развертывания моделей машинного обучения?",
        "Создайте рассказ о роботе, который учится рисовать"
    ]
   
    print(" Graph AI Agent с LangGraph и Gemini")
    print("=" * 50)
   
    for i, query in enumerate(test_queries, 1):
        print(f"\n Запрос {i}: {query}")
        print("-" * 30)
       
        try:
            response = agent.run(query)
            print(f" Ответ: {response}")
        except Exception as e:
            print(f" Ошибка: {str(e)}")
       
        print("\n" + "="*50)
 
 
if __name__ == "__main__":
    main()

Этот пример демонстрирует способность агента обрабатывать технические, стратегические и творческие задачи, проходя через итеративные этапы рабочего процесса.

Итог

Сочетание структурированного управления состоянием LangGraph с возможностями разговорного AI Gemini создает модульного и расширяемого AI агента. Такой агент может автономно обрабатывать сложные запросы через циклы исследования, анализа и валидации, имитируя человеческие модели рассуждения.

🇬🇧

Switch Language

Read this article in English

Switch to English