Создание Итеративного 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