Stosy celów i wycofywanie
Odkładaj podcele na stos, zdejmuj je po ukończeniu i wycofuj się w ślepych zaułkach — klasyczne planowanie AI.
Stosy celów i wycofywanie to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Stos celów
Klasyczne planowanie AI wykorzystuje stos celów: podcele są umieszczane na stosie w miarę ich napotykania i zdejmowane po ukończeniu. Agenci mogą korzystać z tej samej struktury danych:
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()Cofanie
Gdy cel kończy się niepowodzeniem:
- Oznacz go jako nieudany
- Wróć do celu nadrzędnego
- Spróbuj innego podejścia (innych podcelów)
Backtracking Example
def attempt(goal):
for approach in [oauth, saml, custom_token]:
try:
return run_with(goal, approach)
except FailedException:
continue
raise NoApproachWorked(goal)Śledzenie wypróbowanych podejść
Należy unikać ponownego wypróbowywania tego samego nieudanego podejścia. Trzeba śledzić, co wypróbowano dla każdego celu:
{
'goal_id': 'refactor-auth',
'tried': ['oauth', 'saml'],
'remaining_options': ['custom_token']
}LLM jako wybierający cele
LLM może decydować, co należy umieścić na stosie jako następne:
next_goal = llm.invoke(f'Current goal: {current()}. Done so far: {done_list}. What sub-goal next?').content
push(next_goal)Warunki wstępne i efekty
Warto zapożyczyć ze STRIPS sposób planowania, w którym każde działanie ma warunki wstępne (to, co musi być prawdą) oraz efekty (to, co stanie się prawdą):
action = {
'name': 'replace_login',
'preconditions': ['oauth_dep_installed'],
'effects': ['login_endpoint_replaced']
}Pętla planowania i działania
Podejście dwuetapowe:
- Planowanie — planista symboliczny buduje stos celów
- Działanie — agent wykonuje cel ze szczytu stosu, aktualizuje stan świata i w razie potrzeby planuje ponownie
Hybryda symboliczna i LLM
W przypadku zadań z jasno określonymi warunkami wstępnymi (operacje na plikach, wdrożenia) należy użyć planisty symbolicznego. W nieprecyzyjnych obszarach należy użyć LLM. Połączenie obu podejść zwiększa niezawodność.
Ślepe zaułki
Czasami agent dociera do stanu, w którym żadne działanie nie pomaga. Należy rozpoznawać ślepe zaułki i cofać się jeszcze dalej:
if no_progress_in_n_steps(5):
pop_to_parent()
try_different_approach()Ograniczanie głębokości cofania
Nieograniczone cofanie może prowadzić do nieskończonej pętli. Należy ograniczyć głębokość i łączną liczbę iteracji:
MAX_BACKTRACKS = 10
if backtrack_count >= MAX_BACKTRACKS:
escalate_to_human()Informowanie użytkowników o cofaniu
Gdy agent się cofa, należy poinformować użytkownika: „OAuth nie zadziałał, próbuję SAML”. Utrzymuje to zaufanie i pozwala użytkownikowi wcześnie zareagować.
Wyzwalacz cofania
Kiedy agent powinien wycofać się z podcelu?
Podsumowanie
Stos celów śledzi „w którym miejscu znajduje się agent”. Należy umieszczać podcele na stosie, zdejmować ukończone i cofać się w ślepych zaułkach. Planowanie symboliczne warto łączyć z oceną LLM.
Często zadawane pytania
Czy lekcja „Stosy celów i wycofywanie” jest bezpłatna?
Tak — pełny tekst „Stosy celów i wycofywanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Stosy celów i wycofywanie”?
Odkładaj podcele na stos, zdejmuj je po ukończeniu i wycofuj się w ślepych zaułkach — klasyczne planowanie AI. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Stosy celów i wycofywanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Hierarchiczny podział zadań
- Stosy celów i wycofywanie
- Modele świata i przewidywanie skutków
- Pętle refleksji i samokrytyki