← 返回列表

Серія питань для співбесіди з 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.

评论

暂无已展示的评论。

发表评论(匿名)