0Pricing
AI Prompt Engineering · Lezione

Orchestratore e worker

Coordinamento gerarchico.

Orchestratore e worker è una lezione AI Prompt Engineering 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 Prompt Engineering, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Prompt Engineering include 4 lezioni in totale.

Pattern dell'orchestratore

Nel pattern orchestratore-worker, un singolo agente orchestratore è responsabile del piano e dell'obiettivo; gli agenti worker eseguono sottoattività circoscritte e riferiscono i risultati. L'orchestratore scompone, assegna, integra e decide quando l'attività è completata.

  • Orchestratore: pianificazione, instradamento, sintesi e controllo del flusso.
  • Worker: esecuzione mirata secondo un contratto rigoroso.

Questa gerarchia concentra il giudizio in un unico punto e il lavoro parallelizzabile in molti.

Separazione tra pianificazione ed esecuzione

La disciplina fondamentale consiste nel tenere separate pianificazione ed esecuzione. L'orchestratore ragiona sulla strategia con un contesto ridotto e di alto livello; i worker operano con un contesto dettagliato ma circoscritto. Mescolare i due aspetti ricrea il generalista sovraccarico.

L'orchestratore dovrebbe raramente accedere direttamente all'output grezzo degli strumenti: ragiona sui riepiloghi dei worker.

plan = orchestrator.decompose(goal)        # high-level
results = [worker.run(sub) for sub in plan] # detailed, scoped
final = orchestrator.integrate(results)     # over summaries

La qualità della scomposizione determina tutto

Il sistema è valido solo quanto la scomposizione dell'orchestratore. Le sottoattività devono essere sufficientemente indipendenti da poter essere parallelizzate, abbastanza circoscritte da poter essere passate in consegna senza problemi e complete nel loro insieme. Faccia emettere all'orchestratore un piano esplicito che possa ispezionare prima dell'avvio di qualsiasi worker.

  • Sottoattività indipendenti -> esecuzione parallela.
  • Copertura completa -> nessuna lacuna nella risposta finale.
plan = {
  'subtasks': [
    {'id': 1, 'goal': '...', 'inputs': [...], 'depends_on': []},
    {'id': 2, 'goal': '...', 'inputs': [...], 'depends_on': [1]}
  ]
}

Assegnazioni con contratti rigorosi

A ogni assegnazione, fornisca al worker esattamente il suo obiettivo, i suoi input e lo schema di output previsto, niente di più. Un worker che conosce solo la propria parte non può essere distratto dall'obiettivo generale e restituisce una struttura prevedibile che l'orchestratore può integrare.

Il messaggio di assegnazione è un contratto: risultato da consegnare chiaro, formato chiaro e criteri di completamento chiari.

dispatch = {
  'goal': 'Summarize doc 7 risks',
  'context': doc7,
  'output_schema': {'risks': [{'text': str, 'severity': str}]},
  'done_when': 'all risk clauses covered'
}

Isolamento del contesto tra worker

Per impostazione predefinita, i worker non dovrebbero vedere il contesto completo degli altri worker. L'isolamento impedisce che errori o allucinazioni di un worker contaminino un altro e mantiene ridotto e memorizzabile nella cache il prompt di ciascun worker. L'orchestratore è l'unico componente con una visione globale.

Condivida tra worker solo riepiloghi verificati dall'orchestratore, mai comunicazioni dirette non filtrate.

Sottoattività parallele e sequenziali

Le sottoattività indipendenti vengono eseguite in parallelo per ridurre la latenza; quelle dipendenti devono rispettare l'ordine. Il piano dell'orchestratore codifica un grafo delle dipendenze e il runtime pianifica di conseguenza: espanda i nodi indipendenti, poi ricongiunga i risultati.

  • Fan-out: assegni simultaneamente tutte le sottoattività pronte.
  • Join: attenda le dipendenze prima di assegnare le attività dipendenti.
def schedule(plan):
    ready = [t for t in plan if not t['depends_on']]
    run_parallel(ready)
    # then unlock tasks whose deps are now done

Integrazione e risoluzione dei conflitti

L'integrazione non consiste nel concatenare i risultati. L'orchestratore deve conciliare gli output dei worker quando si sovrappongono, si contraddicono o hanno bassa confidenza, ottenendo un unico risultato coerente, decidendo di quali fidarsi e rendendo visibili i conflitti irrisolti.

Fornisca all'orchestratore un passaggio esplicito di riconciliazione con regole precise: preferire i risultati con maggiore confidenza, segnalare le contraddizioni e richiedere una nuova esecuzione quando la copertura è incompleta.

merged = orchestrator.reconcile(
  results,
  rules='prefer higher confidence; flag contradictions; re-dispatch on gaps'
)

L'orchestratore come controllore

L'orchestratore è anche responsabile del controllo del flusso: decide quando fermarsi, quando ritentare un worker che ha fallito, quando ripianificare e quando fare escalation. È quindi il punto in cui applicare i budget — numero massimo di iterazioni, spesa massima e profondità massima — evitando cicli senza fine.

In assenza di un orchestratore di controllo, i sistemi multi-agente entrano in una spirale.

if iterations > MAX_ITERS or spend > BUDGET:
    return orchestrator.best_effort_answer()

Decomposizione ricorsiva

Un worker può essere a sua volta un orchestratore per un sottoproblema, formando una gerarchia. Questo permette di gestire attività complesse, ma aggiunge latenza e profondità alla propagazione degli errori. Limiti la profondità della ricorsione e richieda a ogni livello di restituire un riepilogo chiaro, così i livelli superiori non vengono sommersi dai dettagli di quelli inferiori.

Contenimento degli errori

Progetti il sistema in modo che il fallimento di un singolo worker produca un degrado controllato. L'orchestratore dovrebbe rilevare output malformati o vuoti del worker, ritentare con un contratto chiarito e ricorrere a un fallback invece di bloccarsi. I worker falliscono in isolamento; l'orchestratore assorbe l'errore e lo aggira.

  • Convalidi ogni risultato del worker rispetto al relativo schema.
  • Ritento seguito da fallback; non propaghi mai un errore grezzo ai livelli superiori.
def collect(worker, dispatch):
    out = worker.run(dispatch)
    if not valid(out, dispatch['output_schema']):
        out = worker.run(clarify(dispatch))
    return out or fallback(dispatch)

Schema di orchestrazione

Il modello prevede che l'orchestratore scomponga il lavoro in un piano ispezionabile basato su un grafo delle dipendenze, assegni contratti rigorosi a worker isolati, esegua in parallelo le sottoattività indipendenti, convalidi e riconcili i risultati applicando regole esplicite per i conflitti, imponga budget e condizioni di arresto e contenga i fallimenti dei worker con un meccanismo di ritento seguito da fallback. Il giudizio resta centralizzato; il lavoro resta distribuito.

Verifica rapida

Sta progettando un sistema orchestratore-worker per un'attività di ricerca con diversi sottoargomenti indipendenti.

Riepilogo: orchestratore e worker

Concentri pianificazione, instradamento, integrazione e controllo in un unico orchestratore; assegni l'esecuzione focalizzata a worker isolati, regolati da contratti rigorosi. Scomponga l'attività in un grafo delle dipendenze ispezionabile, parallelizzi i sottoinsiemi indipendenti, riconcili i risultati con regole esplicite per i conflitti, imponga budget e condizioni di arresto e contenga i guasti dei worker con validate-retry-fallback. L'orchestratore ragiona sui riepiloghi, mai sugli scambi incrociati grezzi, mantenendo la gerarchia coerente e controllabile.

Domande Frequenti

La lezione «Orchestratore e worker» è gratuita?

Sì — il testo completo di «Orchestratore e worker» è 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 Prompt Engineering, passa a CoddyKit PRO. Il corso AI Prompt Engineering include 4 lezioni in totale.

Cosa imparerò in «Orchestratore e worker»?

Coordinamento gerarchico. Eserciti AI Prompt Engineering 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 Prompt Engineering?

Non è richiesta alcuna esperienza precedente. AI Prompt Engineering 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 «Orchestratore e worker»?

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 Prompt Engineering?

Sì. Ogni lezione AI Prompt Engineering 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

  1. Ruoli e specializzazione
  2. Orchestratore e worker
  3. Comunicazione tra agenti
  4. Agenti che discutono e votano
← Torna a AI Prompt Engineering