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.
评论
暂无已展示的评论。
发表评论(匿名)