← 返回列表

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 со рефлексија по секој чекор.

评论

暂无已展示的评论。

发表评论(匿名)