Claude Platform Docs
  • Messaggi
  • Agenti gestiti
  • Amministrazione

Search...
⌘K
Primi passi
PanoramicaGuida rapidaPrototipazione nella Console
Definire l'agente
Configurazione dell'agenteStrumentiConnettore MCPCriteri di autorizzazioneSkill dell'agente
Configurare l'ambiente dell'agente
Configurazione dell'ambiente cloudRiferimento sandbox cloud
Delegare il lavoro all'agente
Avviare una sessioneOperazioni di sessioneFlusso di eventi della sessioneIscriversi ai webhookDefinire i risultatiAutenticazione con vault
Gestire il contesto dell'agente
Accesso a GitHubAllegare e scaricare file
Orchestrazione avanzata
Sessioni multi-agenteDistribuzioni pianificate
Riferimento
Riferimento agenti gestiti
Lavorare con i file
API FilesSupporto PDF
Skill
PanoramicaBest practiceSkill per le aziende
MCP
Server MCP remoti
Claude su piattaforme cloud
Claude Platform su AWS

Log in
Sessioni multi-agente
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Agenti gestiti/Orchestrazione avanzata

Sessioni multi-agente

Coordina più agenti all'interno di una singola sessione.

L'orchestrazione multi-agente consente a un agente di coordinarsi con altri per completare lavori complessi. Gli agenti possono agire in parallelo con il proprio contesto isolato, il che aiuta a migliorare la qualità dell'output e può anche ridurre il tempo di completamento.



Tutte le richieste all'API Managed Agents richiedono l'header beta managed-agents-2026-04-01. L'SDK imposta automaticamente l'header beta.

Come funziona

Tutti gli agenti condividono la stessa sandbox, lo stesso filesystem e le stesse credenziali del vault, ma ogni agente viene eseguito nel proprio session thread (thread di sessione), un flusso di eventi con contesto isolato e una propria cronologia di conversazione. Il coordinatore riporta l'attività nel thread primario (che corrisponde al flusso di eventi a livello di sessione); thread aggiuntivi vengono generati a runtime quando il coordinatore delega il lavoro.

I thread sono persistenti: il coordinatore può inviare un follow-up a un agente che ha chiamato in precedenza, e quell'agente conserva tutto ciò che proviene dai suoi turni precedenti.

Ogni agente utilizza la propria configurazione: modello, prompt di sistema, strumenti, server MCP e skill. Gli override della configurazione dell'agente a livello di sessione sono l'eccezione; si applicano al coordinatore e alle sue copie self. Strumenti, server MCP e contesto non sono condivisi.

Cosa delegare

Il coordinamento multi-agente è più adatto per attività complesse che richiedono lavoro su una varietà di superfici, o in cui più attività ben delimitate contribuiscono a un obiettivo generale.

Pattern che funzionano bene:

  • Parallelizzazione: Distribuisci simultaneamente sottoattività indipendenti (ricerca su più fonti, analisi di file separati) e fai sintetizzare i risultati al coordinatore.
  • Specializzazione: Indirizza verso agenti con prompt di sistema e strumenti focalizzati su un dominio, come un agente di sicurezza o un agente di documentazione, invece di caricare un singolo agente con ogni capacità.
  • Escalation: Consulta un agente o un modello più capace per un sottoinsieme di sottoattività complesse.

Configura il coordinatore

Quando definisci il tuo agente, imposta multiagent per dichiarare l'elenco di agenti a cui il coordinatore può delegare:

ant beta:agents create <<YAML
name: Engineering Lead
model: claude-opus-4-8
system: You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.
tools:
  - type: agent_toolset_20260401
multiagent:
  type: coordinator
  agents:
    - type: agent
      id: $REVIEWER_AGENT_ID
    - type: agent
      id: $TEST_WRITER_AGENT_ID
YAML

multiagent.agents può accettare uno qualsiasi dei seguenti valori:

  • {"type": "agent", "id": agent.id} fa riferimento a un agent creato in precedenza tramite ID. Se non viene specificata alcuna version, il riferimento viene fissato all'ultima versione di quell'agente al momento della creazione del coordinatore.
  • {"type": "agent", "id": agent.id, "version": agent.version} fissa una versione specifica dell'agente.
  • {"type": "self"} consente al coordinatore di generare copie di se stesso. Se la sessione è stata creata con override della configurazione dell'agente, tali override si applicano anche a queste copie; le voci dell'elenco referenziate tramite ID non sono interessate.

La configurazione del coordinatore, incluso il suo elenco multiagent.agents, viene salvata come snapshot quando il coordinatore viene creato o aggiornato. Gli agenti referenziati rimangono fissati alle versioni risolte in quel momento e non acquisiscono automaticamente aggiornamenti successivi alle loro definizioni. Per delegare a una versione più recente di un agente referenziato, aggiorna il coordinatore in modo che il suo elenco faccia riferimento a quella versione.

Il coordinatore può delegare solo a un livello di agenti; una profondità > 1 viene ignorata. È possibile elencare un massimo di 20 agenti univoci in multiagent.agents, ma il coordinatore può chiamare più copie di ciascun agente.

Crea la sessione

Crea una sessione che fa riferimento al coordinatore. Il coordinatore delega agli agenti nel suo elenco secondo necessità.

session = client.beta.sessions.create(
    agent=coordinator.id,
    environment_id=environment.id,
)

Connetti gli agenti ai server MCP

I server MCP hanno ambito di agente (ogni definizione di agente dichiara i propri server e strumenti), mentre le credenziali del vault hanno ambito di sessione (i vault_ids passati alla creazione della sessione si applicano a ogni thread). Due implicazioni per la tua integrazione:

  • Per autenticare i server MCP, includi una credenziale del vault per ogni server MCP utilizzato da tutti gli agenti.
  • Per limitare l'accesso di un agente, dichiara solo i server di cui ha bisogno nella sua definizione di agente.

Gli override della configurazione dell'agente alla creazione della sessione possono sostituire i server MCP del coordinatore e quelli delle sue copie self.

research_agent = client.beta.agents.create(
    name="researcher",
    model="claude-haiku-4-5",
    mcp_servers=[
        {"type": "url", "name": "github", "url": "https://api.githubcopilot.com/mcp/"},
    ],
    tools=[{"type": "mcp_toolset", "mcp_server_name": "github"}],
)

coordinator = client.beta.agents.create(
    name="coordinator",
    model="claude-opus-4-8",
    tools=[{"type": "agent_toolset_20260401"}],
    multiagent={
        "type": "coordinator",
        "agents": [{"type": "agent", "id": research_agent.id}],
    },
)

session = client.beta.sessions.create(
    agent=coordinator.id,
    environment_id=environment.id,
    vault_ids=[vault.id],
)
print(session.id)

In questo esempio, solo il ricercatore dichiara il server MCP di GitHub, quindi il coordinatore non vi ha accesso. I vault_ids della sessione forniscono la credenziale GitHub al thread del ricercatore.



Se le chiamate MCP di un agente non riescono ad autenticarsi dopo aver dichiarato il server, verifica che il mcp_server_url della credenziale corrisponda esattamente al mcp_servers[].url dell'agente, inclusi lo schema e la barra finale.

Thread

Il flusso di eventi a livello di sessione (/v1/sessions/:id/events/stream) è considerato il thread primario e contiene una vista condensata di tutta l'attività su tutti i thread. Non vedi l'attività completa dei subagenti, ma vedi l'inizio e la fine del loro lavoro, e gli eventi bloccanti come le richieste di autorizzazione degli strumenti.

I session thread (thread di sessione) sono dove puoi approfondire l'attività di un agente specifico.

Lo status della sessione è un'aggregazione di tutta l'attività degli agenti; se almeno un thread è running, allora anche lo stato complessivo della sessione è running.



È supportato un massimo di 25 thread concorrenti. Il coordinatore può chiamare più copie di un singolo agente nell'elenco, creando più thread associati a un unico agent.

Eventi del thread primario

Questi eventi mostrano l'attività multi-agente sul thread primario su /v1/sessions/:id/events/stream.

TipoDescrizione
session.thread_createdÈ stato creato un thread. Include session_thread_id e agent_name.
session.thread_status_runningUn thread ha avviato l'attività.
session.thread_status_idleL'agente associato al thread è in attesa di input. Include uno stop_reason che indica perché l'agente si è fermato.
session.thread_status_terminatedUn thread è stato archiviato o ha riscontrato un errore terminale.
agent.thread_message_receivedUn agente ha consegnato il suo risultato al coordinatore. Include from_session_thread_id, from_agent_name e content.
agent.thread_message_sentIl coordinatore ha inviato un follow-up a un altro agente. Include to_session_thread_id, to_agent_name e content.

Eventi del thread di sessione

Gli eventi critici vengono inoltrati al thread primario. Tuttavia, potresti comunque voler esaminare il ragionamento e le chiamate agli strumenti di un agente specifico. Per farlo, esegui lo streaming o elenca gli eventi dal thread di sessione associato.

Autorizzazioni degli strumenti e strumenti personalizzati

Se un subagente ha bisogno di qualcosa dal tuo client, come l'autorizzazione per eseguire uno strumento always_ask, o il risultato di uno strumento personalizzato, l'evento viene pubblicato anche sul thread primario con session_thread_id che identifica il thread di sessione di origine.

{
  "type": "session.thread_status_idle",
  "id": "sevt_01ABC...",
  "session_thread_id": "sth_01DEF...",
  "agent_name": "code-reviewer",
  "stop_reason": {
    "type": "requires_action",
    "event_ids": ["toolu_01XYZ..."]
  }
}

Invia user.tool_confirmation (con tool_use_id) o user.custom_tool_result (con custom_tool_use_id); il server instrada automaticamente la risposta al thread corretto.

L'esempio seguente estende il gestore di conferma degli strumenti per instradare le risposte. Lo stesso pattern si applica a user.custom_tool_result.

for event_id in stop.event_ids:
    client.beta.sessions.events.send(
        session.id,
        events=[
            {
                "type": "user.tool_confirmation",
                "tool_use_id": event_id,
                "result": "allow",
            }
        ],
    )

Was this page helpful?

  • Come funziona
  • Cosa delegare
  • Configura il coordinatore
  • Crea la sessione
  • Connetti gli agenti ai server MCP
  • Thread
  • Eventi del thread primario
  • Eventi del thread di sessione
  • Autorizzazioni degli strumenti e strumenti personalizzati