agents
.
Panoramica
I subagenti possono essere definiti in due modi quando si utilizza l’SDK:- Programmaticamente - Utilizzando il parametro
agents
nelle opzioni diquery()
(raccomandato per le applicazioni SDK) - Basato su filesystem - Posizionando file markdown con frontmatter YAML in directory designate (
.claude/agents/
)
agents
, che fornisce un’esperienza di sviluppo più integrata per le applicazioni SDK.
Vantaggi dell’Utilizzo dei Subagenti
Gestione del Contesto
I subagenti mantengono un contesto separato dall’agente principale, prevenendo il sovraccarico di informazioni e mantenendo le interazioni focalizzate. Questo isolamento assicura che i compiti specializzati non inquinino il contesto della conversazione principale con dettagli irrilevanti. Esempio: Un subagenteresearch-assistant
può esplorare dozzine di file e pagine di documentazione senza ingombrare la conversazione principale con tutti i risultati di ricerca intermedi - restituendo solo i risultati rilevanti.
Parallelizzazione
Più subagenti possono funzionare contemporaneamente, accelerando drammaticamente i flussi di lavoro complessi. Esempio: Durante una revisione del codice, puoi eseguire i subagentistyle-checker
, security-scanner
e test-coverage
simultaneamente, riducendo il tempo di revisione da minuti a secondi.
Istruzioni e Conoscenze Specializzate
Ogni subagente può avere prompt di sistema personalizzati con competenze specifiche, migliori pratiche e vincoli. Esempio: Un subagentedatabase-migration
può avere conoscenze dettagliate sulle migliori pratiche SQL, strategie di rollback e controlli di integrità dei dati che sarebbero rumore inutile nelle istruzioni dell’agente principale.
Restrizioni degli Strumenti
I subagenti possono essere limitati a strumenti specifici, riducendo il rischio di azioni non intenzionali. Esempio: Un subagentedoc-reviewer
potrebbe avere accesso solo agli strumenti Read e Grep, assicurando che possa analizzare ma mai modificare accidentalmente i tuoi file di documentazione.
Creazione di Subagenti
Definizione Programmatica (Raccomandato)
Definisci i subagenti direttamente nel tuo codice utilizzando il parametroagents
:
Configurazione AgentDefinition
Campo | Tipo | Richiesto | Descrizione |
---|---|---|---|
description | string | Sì | Descrizione in linguaggio naturale di quando utilizzare questo agente |
prompt | string | Sì | Il prompt di sistema dell’agente che definisce il suo ruolo e comportamento |
tools | string[] | No | Array di nomi di strumenti consentiti. Se omesso, eredita tutti gli strumenti |
model | 'sonnet' | 'opus' | 'haiku' | 'inherit' | No | Override del modello per questo agente. Predefinito al modello principale se omesso |
Definizione Basata su Filesystem (Alternativa)
Puoi anche definire i subagenti come file markdown in directory specifiche:- Livello progetto:
.claude/agents/*.md
- Disponibile solo nel progetto corrente - Livello utente:
~/.claude/agents/*.md
- Disponibile in tutti i progetti
agents
) hanno precedenza sugli agenti basati su filesystem con lo stesso nome.
Come l’SDK Utilizza i Subagenti
Quando si utilizza il Claude Agent SDK, i subagenti possono essere definiti programmaticamente o caricati dal filesystem. Claude:- Carica gli agenti programmatici dal parametro
agents
nelle tue opzioni - Rileva automaticamente gli agenti del filesystem dalle directory
.claude/agents/
(se non sovrascritti) - Li invoca automaticamente basandosi sulla corrispondenza dei compiti e sulla
description
dell’agente - Utilizza i loro prompt specializzati e le restrizioni degli strumenti
- Mantiene contesti separati per ogni invocazione di subagente
agents
) hanno precedenza sugli agenti basati su filesystem con lo stesso nome.
Esempi di Subagenti
Per esempi completi di subagenti inclusi revisori di codice, esecutori di test, debugger e auditor di sicurezza, vedi la guida principale sui Subagenti. La guida include configurazioni dettagliate e migliori pratiche per creare subagenti efficaci.Pattern di Integrazione SDK
Invocazione Automatica
L’SDK invocherà automaticamente i subagenti appropriati basandosi sul contesto del compito. Assicurati che il campodescription
del tuo agente indichi chiaramente quando dovrebbe essere utilizzato:
Invocazione Esplicita
Gli utenti possono richiedere subagenti specifici nei loro prompt:Configurazione Dinamica degli Agenti
Puoi configurare dinamicamente gli agenti basandoti sulle esigenze della tua applicazione:Restrizioni degli Strumenti
I subagenti possono avere accesso limitato agli strumenti tramite il campotools
:
- Ometti il campo - L’agente eredita tutti gli strumenti disponibili (predefinito)
- Specifica strumenti - L’agente può utilizzare solo gli strumenti elencati
Combinazioni di Strumenti Comuni
Agenti di sola lettura (analisi, revisione):Documentazione Correlata
- Guida Principale sui Subagenti - Documentazione completa sui subagenti
- Guida alla Configurazione SDK - Panoramica degli approcci di configurazione
- Impostazioni - Riferimento del file di configurazione
- Comandi Slash - Creazione di comandi personalizzati