Claude Managed Agents fornisce un insieme di strumenti integrati che Claude può usare autonomamente all'interno di una sessione. Controlli quali strumenti sono disponibili specificandoli nella configurazione dell'agente.
Claude Managed Agents supporta anche strumenti personalizzati definiti dall'utente. La tua applicazione esegue questi strumenti separatamente e restituisce i risultati a Claude, che li usa per proseguire l'attività. Per fornire all'agente strumenti da un server MCP, usa invece il connettore MCP.
Il toolset dell'agente include i seguenti strumenti. Tutti sono abilitati per impostazione predefinita quando includi il toolset nella configurazione dell'agente. Ogni voce nell'array configs è identificata dal suo name, usando i valori nella colonna Nome, e accetta un campo type opzionale con lo stesso valore. Le voci web_search e web_fetch accettano impostazioni aggiuntive; consulta Limitare i domini di web search e web fetch.
| Strumento | Nome | Descrizione |
|---|---|---|
| Bash | bash | Esegue comandi bash in una sessione shell |
| Read | read | Legge un file dal filesystem della sandbox |
| Write | write | Scrive un file nel filesystem della sandbox |
| Edit | edit | Esegue la sostituzione di stringhe in un file |
| Glob | glob | Corrispondenza rapida di pattern di file usando pattern glob |
| Grep | grep | Ricerca di testo usando pattern regex |
| Web fetch | web_fetch | Recupera contenuti da un URL |
| Web search | web_search | Cerca informazioni sul web |
Quando l'output di uno strumento supera i 100.000 caratteri (circa 25.000 token), viene automaticamente scritto in un file nella sandbox. Il modello riceve un'anteprima troncata con il percorso del file e può leggere il contenuto completo da lì.
Abilita il toolset completo con agent_toolset_20260401 quando crei un agente. Usa l'array configs per disabilitare strumenti specifici o sovrascriverne le impostazioni. Ogni voce di configurazione può anche impostare una permission_policy che controlla se le chiamate dello strumento vengono approvate automaticamente o richiedono conferma. Consulta Criteri di autorizzazione per i tipi di criteri disponibili.
Le voci di configurazione per web_search e web_fetch accettano anche filtri di dominio e altre impostazioni web; consulta Limitare i domini di web search e web fetch.
ant beta:agents create <<'YAML'
name: Coding Assistant
model: claude-opus-5
tools:
- type: agent_toolset_20260401
configs:
- name: web_fetch
enabled: false
YAMLPer disabilitare uno strumento, imposta enabled: false nella sua voce di configurazione nell'oggetto toolset dell'array tools del tuo agente:
{
"type": "agent_toolset_20260401",
"configs": [
{ "name": "web_fetch", "enabled": false },
{ "name": "web_search", "enabled": false }
]
}L'oggetto default_config imposta la base per ogni strumento dell'insieme, e le voci configs per singolo strumento la sovrascrivono. Per partire con tutto disattivato e abilitare solo ciò che ti serve, imposta default_config.enabled su false:
{
"type": "agent_toolset_20260401",
"default_config": { "enabled": false },
"configs": [
{ "name": "bash", "enabled": true },
{ "name": "read", "enabled": true },
{ "name": "write", "enabled": true }
]
}Per controllare quali siti gli strumenti web dell'agente possono raggiungere, imposta allowed_domains (lo strumento può raggiungere solo questi host) o blocked_domains (lo strumento non può mai raggiungere questi host) sulle voci web_search e web_fetch dell'array configs del toolset. Ogni strumento ha la propria lista, quindi web_search e web_fetch possono avere restrizioni diverse. Un dominio elencato copre quell'host e tutti i suoi sottodomini. In fase di esecuzione, una chiamata web_fetch per un URL che le sue liste non consentono restituisce all'agente un risultato di errore (is_error: true sull'evento agent.tool_result, con un contenuto che indica il codice di errore url_not_allowed), e web_search omette i risultati che le sue liste non consentono.
Il seguente toolset limita web_search a due siti e ne localizza i risultati, e blocca un host per web_fetch limitando al contempo la quantità di contenuto recuperato che entra nel contesto:
{
"type": "agent_toolset_20260401",
"configs": [
{
"type": "web_search",
"name": "web_search",
"allowed_domains": ["docs.example.com", "arxiv.org"],
"user_location": {
"type": "approximate",
"country": "US",
"timezone": "America/Los_Angeles"
}
},
{
"type": "web_fetch",
"name": "web_fetch",
"blocked_domains": ["ads.example.com"],
"max_content_tokens": 50000
}
]
}La seguente richiesta crea un agente con questo toolset e stampa l'array configs dalla risposta:
ant beta:agents create --transform tools.0.configs <<'YAML'
name: Research Agent
model: claude-opus-5
tools:
- type: agent_toolset_20260401
configs:
- type: web_search
name: web_search
allowed_domains: [docs.example.com, arxiv.org]
user_location:
type: approximate
country: US
timezone: America/Los_Angeles
- type: web_fetch
name: web_fetch
blocked_domains: [ads.example.com]
max_content_tokens: 50000
YAMLNella Claude Console, imposta i domini consentiti o bloccati dalle righe web_search e web_fetch della scheda Built-in tools nel modulo dell'agente; imposta max_content_tokens e user_location nella vista Raw della configurazione dell'agente.
Oltre a enabled e permission_policy, le voci degli strumenti web accettano le seguenti impostazioni:
| Impostazione | Si applica a | Descrizione |
|---|---|---|
allowed_domains | web_search, web_fetch | Gli unici host che lo strumento può raggiungere. Non può essere combinato con blocked_domains sulla stessa voce. |
blocked_domains | web_search, web_fetch | Host che lo strumento non può raggiungere. |
max_content_tokens | web_fetch | Limita la quantità di contenuto della pagina recuperata inclusa nel contesto. Deve essere un intero positivo. Consulta i limiti di contenuto. |
user_location | web_search | Localizza i risultati di ricerca. Un oggetto con gli stessi campi del parametro user_location della Messages API. |
allowed_domains oppure blocked_domains su una voce, non entrambi. Una voce che imposta entrambi viene rifiutata.null.web_search descritto più avanti in questa lista. Usa example.com, non https://example.com, example.com:443 o *.example.com. Gli hostname vengono confrontati senza distinzione tra maiuscole e minuscole, e un singolo / finale viene ignorato.example.com copre docs.example.com, ma docs.example.com non copre example.com né api.example.com. Un www. iniziale è un sottodominio come qualsiasi altro, quindi www.example.com non copre example.com; elenca il dominio nudo per coprire entrambi.127.1. Elenca invece il nome di dominio del sito.com, co.uk o gov.uk viene rifiutato, così come un nome a etichetta singola come intranet. Elenca un dominio completo come example.co.uk.localhost e gli host che terminano in .localhost, .local, .internal, .localdomain o .invalid vengono rifiutati.xn-- (Punycode) per i nomi di dominio internazionalizzati; un dominio che contiene caratteri non ASCII viene rifiutato.web_fetch non può includere un percorso: usa example.com, non example.com/*. Un dominio web_search può avere un suffisso di percorso come example.com/blog, in cui il percorso non può contenere spazi, ?, # o nessuno dei caratteri $ , | ^ !. Preferisci hostname semplici anche per web_search, perché il provider di ricerca confronta i suffissi di percorso come pattern di URL anziché come regole rigorose sugli host.www.example.com e example.com contano come domini diversi; consulta la regola di corrispondenza precedente per sapere cosa copre ciascuno.Le violazioni di formato e di limite vengono rifiutate con un errore 400 invalid_request_error quando crei un agente o aggiorni un agente, e quando crei o aggiorni una sessione che fornisce tools. Ad esempio, il messaggio per una voce che imposta entrambe le liste include Only one of allowed_domains or blocked_domains may be set., e il messaggio per una lista vuota include allowed_domains: Empty list of domains is ambiguous. Provide at least one domain or null. Il messaggio per un dominio che viola una regola di formato indica la sua lista e la posizione a base zero, ad esempio allowed_domains.0: IP addresses are not supported; provide a plain hostname like "example.com".
Le stesse richieste rifiutano anche tre impostazioni che dipendono dai provider di ricerca e di recupero: un dominio in allowed_domains a cui il crawler di Anthropic non è autorizzato ad accedere, un user_location.country che il provider di ricerca non supporta (il messaggio termina con user_location.country: not a country the search provider supports), e un user_location.timezone che non è un nome IANA valido. La sessione controlla nuovamente la configurazione quando inizializza lo strumento per la prima volta; se un'impostazione accettata in precedenza non è più valida a quel punto, la sessione emette un evento session.error e torna a idle senza riprovare. Correggi l'impostazione aggiornando gli strumenti della sessione, aggiorna anche l'agente in modo che le nuove sessioni partano con la configurazione corretta, quindi invia un nuovo user.message per continuare.
In una sessione multiagente, ogni lista di domini che si applica a un thread viene applicata contemporaneamente: un agente nel roster del coordinatore è vincolato dai propri allowed_domains e blocked_domains, da quelli di qualsiasi agente che lo ha chiamato e dalle liste correnti del coordinatore.
blocked_domains mantiene gli allowed_domains del coordinatore e blocca quegli host al loro interno, e un agente del roster che imposta i propri allowed_domains può raggiungere solo gli host coperti sia dalla sua lista sia da quella del coordinatore.url_not_allowed che indica che nessun dominio è consentito, e la descrizione dello strumento lo comunica al modello. Mantieni l'allowlist di ogni agente del roster all'interno di quella del coordinatore per evitarlo.max_content_tokens e user_location non vengono combinati: un thread usa il valore della propria configurazione dello strumento se impostato, altrimenti quello dell'agente che lo ha chiamato, altrimenti quello della configurazione corrente del coordinatore.{"type": "self"} non ha impostazioni web proprie e segue le impostazioni correnti del coordinatore.web_search e web_fetch, indipendentemente da queste impostazioni.Queste impostazioni usano lo stesso vocabolario allowed_domains e blocked_domains del filtraggio dei domini sugli strumenti server della Messages API, con le seguenti differenze su Managed Agents:
web_fetch non possono includere un percorso.max_uses, citations e cache_control non sono disponibili sul toolset.Oltre agli strumenti integrati, puoi definire strumenti personalizzati. Gli strumenti personalizzati sono analoghi agli strumenti client definiti dall'utente nella Messages API.
Ogni strumento personalizzato definisce un contratto: tu specifichi quali operazioni sono disponibili e cosa restituiscono, e Claude determina quando e come chiamarle. Il modello non esegue mai nulla da solo. Emette una richiesta strutturata, il tuo codice esegue l'operazione e il risultato rientra nella conversazione. Consulta Flusso di eventi della sessione per sapere come ricevere le chiamate agli strumenti personalizzati e restituire i risultati durante una sessione.
Se le tue sessioni vengono eseguite in una sandbox self-hosted, il worker dell'ambiente può servire strumenti personalizzati dalla tua sandbox, inclusi strumenti che incapsulano un server MCP all'interno della tua rete.
ant beta:agents create < agent.yamlname: Weather Agent
model: claude-opus-5
tools:
- type: agent_toolset_20260401
- type: custom
name: get_weather
description: Get current weather for a location
input_schema:
type: object
properties:
location:
type: string
description: City name
required:
- locationUna volta definiti gli strumenti personalizzati sull'agente, l'agente li invoca durante una sessione.
create_pr, review_pr, merge_pr), raggruppale in un unico strumento con un parametro action. Strumenti meno numerosi e più capaci riducono l'ambiguità nella selezione e rendono la tua superficie di strumenti più facile da navigare per Claude.db_query o storage_read). Questo rende la selezione degli strumenti non ambigua man mano che la tua libreria cresce.Connetti server MCP ai tuoi agenti per accedere a strumenti e fonti di dati esterni.
Controlla quando vengono eseguiti gli strumenti dell'agente e MCP.
Invia eventi, ricevi risposte in streaming e interrompi o reindirizza la tua sessione durante l'esecuzione.
Was this page helpful?