Рассуждение и планирование
В процессе создания автономных ИИ-агентов, если большая языковая модель (LLM) — это мозг агента, а использование инструментов — его руки и ноги, тоРассуждения и планирование— это основной движок, который превращает его из простой машины для вопросов и ответов в автономного решателя задач.
Сложные задачи из реального мира часто невозможно выполнить за одну генерацию. ИИ нуждается в способности декомпозировать цели, выполнять логические рассуждения, исследовать пути, самокорректироваться и оркестрировать инструменты.
Ниже представлены наиболее популярные на сегодняшний день в отрасли фреймворки для рассуждения и планирования.
Цепочка рассуждений (CoT)
Способность к пошаговому рассуждению
Традиционные LLM часто интуитивно генерируют ответы за один шаг.
Основная идея Chain of Thought (CoT):Заставить модель явно выводить промежуточные шаги рассуждения (Let's think step by step). Этот подход может значительно активировать потенциал модели в сложной математике, логических рассуждениях и вопросах-ответах на основе здравого смысла.
CoT не только даёт модели больше времени на вычисления (количество токенов отражает вычислительные усилия), но и позволяет последующей генерации опираться на правильную логику из предыдущих шагов.
Пример: проектирование few-shot CoT-промпта
prompt = """
Задача: У Роджера есть 5 теннисных мячей. Он покупает ещё 2 банки теннисных мячей. В каждой банке по 3 теннисных мяча. Сколько всего теннисных мячей у него?
Решение: Изначально у Роджера 5 теннисных мячей. 2 банки теннисных мячей, по 3 в каждой, дают 2 * 3 = 6 теннисных мячей. 5 + 6 = 11. Ответ — 11.
Задача: В столовой 23 яблока. Если 20 используют на обед и купят ещё 6, сколько яблок там теперь?
Решение: Изначально в столовой было 23 яблока. После использования 20 остаётся 23 - 20 = 3. После покупки ещё 6 теперь 3 + 6 = 9. Ответ — 9.
Задача: {user_question}
Решение: """
Фреймворк ReAct (рассуждение + действие)
Цикл рассуждения + действия
Если CoT — это просто сборка телеги за закрытыми дверями внутри модели, тоReAct(Reason + Act)— это позволить модели открыть глаза и увидеть мир. Он переплетает внутреннее логическое рассуждение (Thought) с внешним взаимодействием с инструментами (Action), образуя динамическую замкнутую систему обратной связи.
В парадигме ReAct Агент следует циклуThought -> Action -> Observationдо достижения окончательного вывода.
Ограничения:ReAct отлично работает в краткосрочных задачах с четкими шагами. Однако, поскольку вся история мыслей и действий упаковывается в одно и то же контекстное окно, когда цепочка задач слишком длинная, очень легко попасть в бесконечный цикл или забыть исходную цель из-за перегрузки контекста.
Plan-and-Execute (режим выполнения с предварительным планированием)
Чтобы решить слабость ReAct в долгосрочных задачах, Plan-and-Execute разделяет мышление и действие, принимая стратегию, похожую на то, как люди справляются с крупными проектами:Сначала составьте расписание, затем выполняйте задачи одну за другой.。
Система обычно делится на две независимые роли:
- Planner: Отвечает за получение общей цели и генерацию подробного пошагового списка подзадач.
- Executor: Отвечает за выполнение этих подзадач по порядку. Исполнитель обычно представляет собой небольшого ReAct-агента, который каждый раз сосредоточен только на выполнении текущей небольшой цели.
Tree of Thoughts (ToT) и древовидное многопутевое исследование
Древовидное многопутевое исследование
Будь то CoT или Plan-and-Execute, по сути этолинейноеисследование путей. Однако при написании кода, решении математических задач или творческом письме люди часто представляют несколько вариантов, оценивают их, выбирают лучший и даже возвращаются назад при обнаружении ошибок.
ToT (Tree of Thoughts)Он моделирует процесс рассуждения как дерево: узлы — это текущие состояния мыслей. В каждой точке ветвления модель генерирует несколько кандидатных мыслей, затем использует внутренний Evaluator для оценки этих узлов (например, выполнимо, потенциально рискованно, невыполнимо). В сочетании сBFS (Breadth-First Search)илиDFS (Depth-First Search)алгоритмом, он решает, продолжать ли глубже или вернуться назад и повторить попытку.
Планирование задач и MCTS (Monte Carlo Tree Search)
Декомпозиция сложных задач и поиск
Когда речь идёт о стратегических играх или чрезвычайно сложных задачах рассуждения (таких как передовая математическая проверка и сложный рефакторинг кодовой базы), простой ToT всё ещё недостаточно эффективен. Индустрия начала объединять LLM с традиционными алгоритмами поиска из обучения с подкреплениемMCTS(Monte Carlo Tree Search)Объединение их (аналогично основной логике AlphaGo).
- LLM как Policy Network: предоставляет эвристические предложения действий для следующего шага, сокращая бессмысленное расширение ветвей.
- LLM/среда выполнения кода как Value Network: посредством симулированного выполнения (Rollout) она предсказывает итоговую вероятность победы или успеха последовательности действий.
- Преимущества: в огромном пространстве решений он может найти путь планирования с наибольшим потенциалом глобальной оптимальности.
Reflexion: саморефлексия и исправление ошибок
Когда люди выполняют задачи, если у них не получается с первой попытки, они обобщают извлечённые уроки и избегают ошибок в следующей попытке.
ReflexionЭтот фреймворк даёт Агенту аналогичные возможности.
В замкнутом цикле Reflexion, когда вывод агента оценивается как сбой (например, тесты не проходят, возникают ошибки API), запускаетсяReviewer-механизм。
LLM просят написать разговорное размышление (Reflection) на основе истории действий и обратной связи о сбоях, например:"Я только что использовал неправильный формат параметров API. В следующий раз мне следует свериться с документацией, прежде чем передавать JSON."Это размышление будет сохранено в эпизодической памяти как контекстные подсказки для следующей попытки, что значительно повысит способность агента к самовосстановлению.
Пример: дизайн промпта рефлексии в Reflexion
Вы — ИИ-ассистент, пытающийся написать Python-краулер.
Это код, который вы только что выполнили: {previous_code}
Это сообщение об ошибке, возвращённое средой выполнения: {error_traceback}
Пожалуйста, глубоко поразмышляйте:
1. Какова первопричина ошибки?
2. Какова ваша конкретная стратегия изменения для следующей попытки?
Пожалуйста, зафиксируйте размышление, чтобы направлять последующие действия.
"""
Стратегии декомпозиции задач и инженерные практики
В реальной промышленной разработке AI-агентов опора исключительно на LLM "zero-shot" для сложного планирования нестабильна. Распространённые гибридные стратегии вмешательства включают:
| Стратегия вмешательства | Основной подход | Применимые сценарии |
|---|---|---|
| Шаблонизация подзадач (SOP) | Вместо того чтобы позволять LLM свободно планировать, используются предопределённые стандартные операционные процедуры (SOP), чтобы LLM работала в рамках фиксированного конечного автомата. | Системы обслуживания клиентов, стандартизированные конвейеры очистки данных. |
| HITL (человек в цикле) | После того как Planner формирует список задач, выполнение прерывается и требуется, чтобы человек-пользователь подтвердил, изменил или одобрил его, после чего задача передаётся Executor для выполнения. | Операции с высоким риском: например, удаление записей из базы данных, массовая отправка электронных писем и крупные денежные переводы. |
| Планирование под управлением RLHF | Использовать обучение с подкреплением и обратную связь по предпочтениям человека для тонкой настройки способности больших моделей к планированию, чтобы они были более склонны генерировать безопасные и эффективные комбинации шагов. | Этап обучения базовой большой языковой модели (например, обучение модели OpenAI o1). |
Сводное сравнение фреймворков
| Паттерн | Основной механизм | Преимущества | Недостатки |
|---|---|---|---|
| CoT | Пошаговое линейное рассуждение | Минимальная реализация, значительно повышает точность базовых рассуждений | Не может вызывать внешние инструменты, легко заходит в тупик |
| ReAct | Цикл чередования размышления и действия | Динамически адаптируется к среде, может корректироваться в реальном времени на основе наблюдений | Контекст легко разрастается по мере накопления шагов, и исходная цель теряется из виду |
| Планирование и выполнение | Сначала разложить на подзадачи, затем выполнять изолированно | Чрезвычайно подходит для сложных долгосрочных задач, понятный контекст | Недостаточно гибкий при внезапных изменениях (когда сам план неверен) |
| ToT / MCTS | Поиск по дереву, оценка и возврат с возвратом | Может решать самые сложные комплексные логические задачи | Вычислительные затраты чрезвычайно высоки, а потребление токенов растёт экспоненциально. |
| Reflexion | Создаёт рефлексивную память на основе обратной связи о неудачах. | Обладает способностью к самокоррекции и непрерывному развитию. | Полагается на явные сигналы обратной связи (например, ошибки компилятора кода) |