← 返回列表

AI серия вопросов для собеседования 6: Три основные методологии AI Agent: ReAct, Plan-and-Solve и Reflection

Три основные методологии AI Agent: ReAct, Plan-and-Solve и Reflection

AI Agent — это интеллектуальный агент, способный самостоятельно воспринимать окружающую среду, принимать решения и выполнять действия. Существуют три основные методологии: ReAct, Plan-and-Solve и Reflection. Ниже они описаны с блок-схемами и примерами кода.

1. ReAct (Reasoning + Acting)

Основная идея: Чередование рассуждения (Reasoning) и действия (Acting). На каждом шаге агент сначала обдумывает текущее состояние и следующий план (рассуждение), затем выполняет действие (например, вызов инструмента, поиск информации) и продолжает рассуждение на основе результата.

Блок-схема:

[Начальное состояние] → [Рассуждение: обдумать следующий шаг] → [Действие: выполнить действие] → [Наблюдение результата] → [Рассуждение: обновить план] → ... → [Окончательный ответ]

Пример кода (псевдокод):

def react_agent(question):
    context = []
    while not solved:
        # Рассуждение: генерация шага мысли
        thought = llm.generate_thought(question, context)
        # Действие: выбор действия на основе мысли
        action = llm.choose_action(thought)
        # Выполнение действия, получение наблюдения
        observation = execute_action(action)
        # Добавление мысли, действия и наблюдения в контекст
        context.append((thought, action, observation))
    return final_answer

Пример:
- Пользователь спрашивает: «Какая сегодня погода в Пекине?»
- Агент рассуждает: «Мне нужно вызвать API погоды, нужны название города и дата.»
- Действие: вызов API погоды (параметры: Пекин, сегодня)
- Наблюдение: возвращает «Ясно, 25°C»
- Рассуждение: «Информация получена, можно ответить.»
- Вывод: «В Пекине сегодня ясно, 25°C.»

2. Plan-and-Solve

Основная идея: Сначала составить полный план (Plan), затем поэтапно выполнять (Solve). На этапе планирования сложная задача разбивается на подшаги, на этапе выполнения они выполняются по порядку, возможно, с корректировкой плана на основе промежуточных результатов.

Блок-схема:

[Задача] → [Составление плана: разбивка на подшаги] → [Выполнение шага 1] → [Выполнение шага 2] → ... → [Выполнение шага N] → [Окончательный ответ]

Пример кода:

def plan_and_solve(task):
    # Этап планирования
    plan = llm.generate_plan(task)  # Например: ["Поиск материалов", "Сбор информации", "Написание отчета"]
    context = {}
    for step in plan:
        # Выполнение каждого шага
        result = execute_step(step, context)
        context[step] = result
    # Синтез результатов
    final = llm.synthesize(context)
    return final

Пример:
- Задача: «Написать блог об AI Agent»
- План:
1. Поиск определения AI Agent и последних достижений
2. Чтение и систематизация ключевых моментов
3. Составление плана блога
4. Заполнение содержания
5. Редактирование и публикация
- Выполнение: последовательное выполнение каждого шага, в итоге — блог.

3. Reflection

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

Блок-схема:

[Действие] → [Наблюдение результата] → [Рефлексия: оценка успеха] → [Если неудача: корректировка стратегии] → [Повторное действие] → ... → [Успех]

Пример кода:

def reflection_agent(task):
    max_attempts = 3
    for attempt in range(max_attempts):
        action = llm.generate_action(task)
        result = execute(action)
        # Рефлексия
        reflection = llm.reflect(task, action, result)
        if reflection['success']:
            return result
        else:
            # Корректировка описания задачи или стратегии на основе рефлексии
            task = reflection['improved_task']
    return None

Пример:
- Задача: «Вычислить 1234 * 5678»
- Действие: прямой расчет, получен результат 7006652
- Рефлексия: проверка процесса вычисления, обнаружена ошибка переноса
- Корректировка: повторный расчет, получен правильный результат 7006652 (на самом деле правильный)
- Если снова ошибка, продолжать рефлексию до правильного результата.

Сводное сравнение

Методология Особенности Сценарии применения
ReAct Чередование рассуждения и действия, динамическая корректировка Задачи, требующие взаимодействия в реальном времени (например, вопросы-ответы, поиск)
Plan-and-Solve Сначала план, затем выполнение, структурированное разбиение Сложные многошаговые задачи (например, написание текстов, анализ данных)
Reflection Саморефлексия и коррекция, итеративная оптимизация Задачи, требующие высокой точности (например, математические вычисления, генерация кода)

На практике эти методологии часто комбинируют, например, добавляют механизм рефлексии в ReAct или выполняют рефлексию после каждого шага в Plan-and-Solve.

评论

暂无已展示的评论。

发表评论(匿名)