0Pricing
AI Agents · Урок

Стек целей и возврат назад

Помещайте подцели в стек, извлекайте их после выполнения и возвращайтесь назад при возникновении тупиков — классическое планирование искусственного интеллекта.

«Стек целей и возврат назад» — бесплатный урок 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()

Возврат назад

Если цель не выполнена:

  1. Пометьте её как невыполненную
  2. Выполните pop до родительской цели
  3. Попробуйте другой подход (другие подцели)

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']
}

Цикл планирования и действий

Двухэтапный подход:

  1. Планирование — символьный планировщик строит стек целей
  2. Действие — агент выполняет верхнюю цель стека, обновляет состояние мира и при необходимости перепланирует

Гибридный подход: символы и 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 — локальная установка не требуется.

Все уроки этого курса

  1. Иерархическая декомпозиция задач
  2. Стек целей и возврат назад
  3. Модели мира и прогнозирование на несколько шагов
  4. Циклы рефлексии и самокритики
← Назад к AI Agents