Серія питань для співбесіди з 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.
评论
暂无已展示的评论。
发表评论(匿名)