Stack degli obiettivi e backtracking
Inserisca i sotto-obiettivi in uno stack, li estragga al completamento e torni indietro nei vicoli ciechi: la pianificazione classica dell’IA
Stack degli obiettivi e backtracking è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Una pila di obiettivi
La pianificazione classica dell'IA utilizza una pila di obiettivi: inserisca i sotto-obiettivi quando li incontra e li rimuova quando sono completati. Gli agenti possono utilizzare la stessa struttura dati:
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()Backtracking
Quando un obiettivo fallisce:
- Lo contrassegni come fallito
- Torni al nodo padre
- Provi un approccio diverso (sotto-obiettivi diversi)
Backtracking Example
def attempt(goal):
for approach in [oauth, saml, custom_token]:
try:
return run_with(goal, approach)
except FailedException:
continue
raise NoApproachWorked(goal)Tracciare gli approcci già provati
Eviti di riprovare lo stesso approccio fallito. Tracci ciò che è stato provato per ogni obiettivo:
{
'goal_id': 'refactor-auth',
'tried': ['oauth', 'saml'],
'remaining_options': ['custom_token']
}L'LLM come selettore degli obiettivi
Utilizzi l'LLM per decidere che cosa inserire successivamente:
next_goal = llm.invoke(f'Current goal: {current()}. Done so far: {done_list}. What sub-goal next?').content
push(next_goal)Precondizioni ed effetti
Prenda spunto dalla pianificazione STRIPS: ogni azione ha precondizioni (ciò che deve essere vero) ed effetti (ciò che diventa vero):
action = {
'name': 'replace_login',
'preconditions': ['oauth_dep_installed'],
'effects': ['login_endpoint_replaced']
}Ciclo di pianificazione e azione
Approccio in due fasi:
- Pianificare — il pianificatore simbolico costruisce la pila di obiettivi
- Agire — l'agente esegue l'elemento in cima alla pila, aggiorna lo stato del mondo e pianifica nuovamente se necessario
Ibrido simbolico + LLM
Per le attività con precondizioni ben definite (operazioni sui file, distribuzioni), utilizzi un pianificatore simbolico. Per le parti meno definite, utilizzi l'LLM. Li combini per ottenere maggiore robustezza.
Vicoli ciechi
A volte l'agente raggiunge uno stato in cui nessuna azione è utile. Riconosca i vicoli ciechi e torni ulteriormente indietro:
if no_progress_in_n_steps(5):
pop_to_parent()
try_different_approach()Limitare la profondità del backtracking
Un backtracking senza limiti può entrare in un ciclo infinito. Imposti un limite alla profondità e al numero totale di iterazioni:
MAX_BACKTRACKS = 10
if backtrack_count >= MAX_BACKTRACKS:
escalate_to_human()Mostrare i backtracking agli utenti
Quando l'agente torna indietro, informi l'utente: "OAuth non ha funzionato, provo SAML." In questo modo mantiene la fiducia e consente all'utente di intervenire tempestivamente.
Attivazione del backtracking
Quando dovrebbe l'agente tornare indietro da un sotto-obiettivo?
Riepilogo
La pila di obiettivi tiene traccia di "dove si trova" l'agente. Inserisca i sotto-obiettivi, rimuova quelli completati e torni indietro dai vicoli ciechi. Combini la pianificazione simbolica con la valutazione dell'LLM.
Domande Frequenti
La lezione «Stack degli obiettivi e backtracking» è gratuita?
Sì — il testo completo di «Stack degli obiettivi e backtracking» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.
Cosa imparerò in «Stack degli obiettivi e backtracking»?
Inserisca i sotto-obiettivi in uno stack, li estragga al completamento e torni indietro nei vicoli ciechi: la pianificazione classica dell’IA Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Agents?
Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Stack degli obiettivi e backtracking»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Agents?
Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Decomposizione gerarchica delle attività
- Stack degli obiettivi e backtracking
- Modelli del mondo e lookahead
- Cicli di riflessione e autocritica