← 返回列表

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.

评论

暂无已展示的评论。

发表评论(匿名)