Стек целей и возврат назад
Помещайте подцели в стек, извлекайте их после выполнения и возвращайтесь назад при возникновении тупиков — классическое планирование искусственного интеллекта.
«Стек целей и возврат назад» — бесплатный урок AI Agents на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Стек целей
Классическое планирование в ИИ использует стек целей: добавляйте подцели через push по мере их появления и удаляйте их через pop после завершения. Агенты могут использовать ту же структуру данных:
goal_stack = []
def push(goal):
goal_stack.append(goal)
def pop():
return goal_stack.pop() if goal_stack else None
def current():
return goal_stack[-1] if goal_stack else None
# --- demo ---
push('write the report')
push('collect the data')
print(f'Current goal: {current()}')
print(f'Popped: {pop()}')
print(f'Current goal after pop: {current()}')
Example: Refactoring Workflow
push('Refactor auth')
while current():
g = current()
if g == 'Refactor auth':
if not done('add_oauth_dep'):
push('Add OAuth dependency')
elif not done('replace_login'):
push('Replace login endpoint')
else:
pop() # done
elif g == 'Add OAuth dependency':
# ...actually do the work...
mark_done('add_oauth_dep')
pop()Возврат назад
Если цель не выполнена:
- Пометьте её как невыполненную
- Выполните pop до родительской цели
- Попробуйте другой подход (другие подцели)
Backtracking Example
def attempt(goal):
for approach in [oauth, saml, custom_token]:
try:
return run_with(goal, approach)
except FailedException:
continue
raise NoApproachWorked(goal)Отслеживайте испробованные подходы
Не повторяйте тот же неудачный подход. Отслеживайте испробованные варианты для каждой цели:
{
'goal_id': 'refactor-auth',
'tried': ['oauth', 'saml'],
'remaining_options': ['custom_token']
}LLM выбирает цель
Используйте LLM, чтобы решить, что добавить через push следующим:
next_goal = llm.invoke(f'Current goal: {current()}. Done so far: {done_list}. What sub-goal next?').content
push(next_goal)Предварительные условия и эффекты
Заимствуйте идеи из планирования STRIPS: у каждого действия есть предварительные условия (что должно быть истинным) и эффекты (что станет истинным):
action = {
'name': 'replace_login',
'preconditions': ['oauth_dep_installed'],
'effects': ['login_endpoint_replaced']
}Цикл планирования и действий
Двухэтапный подход:
- Планирование — символьный планировщик строит стек целей
- Действие — агент выполняет верхнюю цель стека, обновляет состояние мира и при необходимости перепланирует
Гибридный подход: символы и LLM
Для задач с четкими предварительными условиями (операции с файлами, развертывания) используйте символьный планировщик. Для нечетко определенных частей используйте LLM. Такое сочетание повышает надежность.
Тупики
Иногда агент достигает состояния, в котором никакое действие не помогает. Распознавайте тупики и возвращайтесь еще дальше:
if no_progress_in_n_steps(5):
pop_to_parent()
try_different_approach()Ограничивайте глубину возврата
Неограниченный возврат может привести к бесконечному циклу. Ограничьте глубину и общее число итераций:
MAX_BACKTRACKS = 10
if backtrack_count >= MAX_BACKTRACKS:
escalate_to_human()Показывайте возвраты пользователям
Когда агент возвращается назад, сообщайте пользователю: «OAuth не сработал, пробуем SAML». Это поддерживает доверие и позволяет пользователю рано вмешаться.
Условие возврата назад
Когда агенту следует вернуться назад из подцели?
Повторение
Стек целей показывает агенту, «где я нахожусь». Добавляйте подцели через push, удаляйте выполненные через pop и возвращайтесь назад при тупиках. Сочетайте символьное планирование с решениями LLM.
Часто задаваемые вопросы
Урок «Стек целей и возврат назад» бесплатный?
Да — полный текст урока «Стек целей и возврат назад» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Стек целей и возврат назад»?
Помещайте подцели в стек, извлекайте их после выполнения и возвращайтесь назад при возникновении тупиков — классическое планирование искусственного интеллекта. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Стек целей и возврат назад»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Иерархическая декомпозиция задач
- Стек целей и возврат назад
- Модели мира и прогнозирование на несколько шагов
- Циклы рефлексии и самокритики