Claude Managed Agents proporciona un conjunto de herramientas integradas que Claude puede usar de forma autónoma dentro de una sesión. Tú controlas qué herramientas están disponibles especificándolas en la configuración del agente.
Claude Managed Agents también admite herramientas personalizadas definidas por el usuario. Tu aplicación ejecuta estas herramientas por separado y devuelve los resultados a Claude, que los usa para continuar con la tarea. Para darle al agente herramientas de un servidor MCP, usa el conector MCP en su lugar.
El conjunto de herramientas del agente incluye las siguientes herramientas. Todas están habilitadas de forma predeterminada cuando incluyes el conjunto de herramientas en la configuración de tu agente. Cada entrada en el arreglo configs se identifica por su name, usando los valores de la columna Nombre, y acepta un campo opcional type con el mismo valor. Las entradas web_search y web_fetch aceptan configuraciones adicionales; consulta Restringir dominios de búsqueda web y obtención web.
| Herramienta | Nombre | Descripción |
|---|---|---|
| Bash | bash | Ejecuta comandos bash en una sesión de shell |
| Read | read | Lee un archivo del sistema de archivos del sandbox |
| Write | write | Escribe un archivo en el sistema de archivos del sandbox |
| Edit | edit | Realiza reemplazo de cadenas en un archivo |
| Glob | glob | Coincidencia rápida de patrones de archivos usando patrones glob |
| Grep | grep | Búsqueda de texto usando patrones regex |
| Web fetch | web_fetch | Obtiene contenido de una URL |
| Web search | web_search | Busca información en la web |
Cuando la salida de una herramienta supera los 100 000 caracteres (aproximadamente 25 000 tokens), se escribe automáticamente en un archivo en el sandbox. El modelo recibe una vista previa truncada con la ruta del archivo y puede leer el contenido completo desde allí.
Habilita el conjunto completo de herramientas con agent_toolset_20260401 al crear un agente. Usa el arreglo configs para deshabilitar herramientas específicas o anular sus configuraciones. Cada entrada de configuración también puede establecer una permission_policy que controla si las llamadas de la herramienta se aprueban automáticamente o requieren confirmación. Consulta Políticas de permisos para conocer los tipos de políticas disponibles.
Las entradas de configuración para web_search y web_fetch también aceptan filtros de dominio y otras configuraciones web; consulta Restringir dominios de búsqueda web y obtención web.
ant beta:agents create <<'YAML'
name: Coding Assistant
model: claude-opus-5
tools:
- type: agent_toolset_20260401
configs:
- name: web_fetch
enabled: false
YAMLPara deshabilitar una herramienta, establece enabled: false en su entrada de configuración dentro del objeto del conjunto de herramientas del arreglo tools de tu agente:
{
"type": "agent_toolset_20260401",
"configs": [
{ "name": "web_fetch", "enabled": false },
{ "name": "web_search", "enabled": false }
]
}El objeto default_config establece la línea base para cada herramienta del conjunto, y las entradas individuales de configs la anulan. Para comenzar con todo desactivado y habilitar solo lo que necesitas, establece default_config.enabled en false:
{
"type": "agent_toolset_20260401",
"default_config": { "enabled": false },
"configs": [
{ "name": "bash", "enabled": true },
{ "name": "read", "enabled": true },
{ "name": "write", "enabled": true }
]
}Para controlar a qué sitios pueden acceder las herramientas web del agente, establece allowed_domains (la herramienta solo puede acceder a estos hosts) o blocked_domains (la herramienta nunca puede acceder a estos hosts) en las entradas web_search y web_fetch del arreglo configs del conjunto de herramientas. Cada herramienta tiene su propia lista, por lo que web_search y web_fetch pueden tener restricciones diferentes. Un dominio listado cubre ese host y todos sus subdominios. En tiempo de ejecución, una llamada a web_fetch para una URL que sus listas no permiten devuelve un resultado de error al agente (is_error: true en el evento agent.tool_result, con contenido que nombra el código de error url_not_allowed), y web_search omite los resultados que sus listas no permiten.
El siguiente conjunto de herramientas limita web_search a dos sitios y localiza sus resultados, y bloquea un host para web_fetch mientras limita cuánto contenido obtenido entra en el contexto:
{
"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 siguiente solicitud crea un agente con este conjunto de herramientas e imprime el arreglo configs de la respuesta:
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
YAMLEn Claude Console, establece los dominios permitidos o bloqueados desde las filas web_search y web_fetch de la tarjeta Built-in tools en el formulario del agente; establece max_content_tokens y user_location en la vista Raw de la configuración del agente.
Además de enabled y permission_policy, las entradas de herramientas web aceptan las siguientes configuraciones:
| Configuración | Aplica a | Descripción |
|---|---|---|
allowed_domains | web_search, web_fetch | Los únicos hosts a los que la herramienta puede acceder. No se puede combinar con blocked_domains en la misma entrada. |
blocked_domains | web_search, web_fetch | Hosts a los que la herramienta no puede acceder. |
max_content_tokens | web_fetch | Limita la cantidad de contenido de página obtenido que se incluye en el contexto. Debe ser un entero positivo. Consulta límites de contenido. |
user_location | web_search | Localiza los resultados de búsqueda. Un objeto con los mismos campos que el parámetro user_location de la API de Messages. |
allowed_domains o blocked_domains en una entrada, no ambos. Una entrada que establece ambos es rechazada.null.web_search descrito más adelante en esta lista. Usa example.com, no https://example.com, example.com:443 ni *.example.com. Los nombres de host se comparan sin distinguir mayúsculas de minúsculas, y se ignora una única / final.example.com cubre docs.example.com, pero docs.example.com no cubre example.com ni api.example.com. Un www. inicial es un subdominio como cualquier otro, por lo que www.example.com no cubre example.com; lista el dominio sin prefijo para cubrir ambos.127.1. Lista el nombre de dominio del sitio en su lugar.com, co.uk o gov.uk es rechazado, al igual que un nombre de una sola etiqueta como intranet. Lista un dominio completo como example.co.uk.localhost y los hosts que terminan en .localhost, .local, .internal, .localdomain o .invalid son rechazados.xn-- (Punycode) para nombres de dominio internacionalizados; un dominio que contiene caracteres no ASCII es rechazado.web_fetch no puede incluir una ruta: usa example.com, no example.com/*. Un dominio de web_search puede llevar un sufijo de ruta como example.com/blog, en el cual la ruta no puede contener espacios, ?, # ni ninguno de los caracteres $ , | ^ !. Prefiere nombres de host simples también para web_search, porque el proveedor de búsqueda compara los sufijos de ruta como patrones de URL en lugar de como reglas estrictas de host.www.example.com y example.com cuentan como dominios diferentes; consulta la regla de coincidencia anterior para saber qué cubre cada uno.Las violaciones de formato y límites se rechazan con un error 400 invalid_request_error cuando creas un agente o actualizas un agente, y cuando creas o actualizas una sesión que proporciona tools. Por ejemplo, el mensaje para una entrada que establece ambas listas incluye Only one of allowed_domains or blocked_domains may be set., y el mensaje para una lista vacía incluye allowed_domains: Empty list of domains is ambiguous. Provide at least one domain or null. El mensaje para un dominio que incumple una regla de formato nombra su lista y su posición basada en cero, por ejemplo allowed_domains.0: IP addresses are not supported; provide a plain hostname like "example.com".
Las mismas solicitudes también rechazan tres configuraciones que dependen de los proveedores de búsqueda y obtención: un dominio en allowed_domains al que el rastreador de Anthropic no tiene permitido acceder, un user_location.country que el proveedor de búsqueda no admite (el mensaje termina en user_location.country: not a country the search provider supports), y un user_location.timezone que no es un nombre IANA válido. La sesión verifica la configuración nuevamente cuando inicializa la herramienta por primera vez; si una configuración que se aceptó anteriormente ya no es válida en ese momento, la sesión emite un evento session.error y vuelve a idle sin reintentar. Corrige la configuración actualizando las herramientas de la sesión, actualiza también el agente para que las nuevas sesiones comiencen con la configuración corregida, y luego envía un nuevo user.message para continuar.
En una sesión multiagente, cada lista de dominios que aplica a un hilo se aplica al mismo tiempo: un agente en el roster del coordinador está sujeto a sus propios allowed_domains y blocked_domains, a los de cualquier agente que lo haya llamado, y a las listas actuales del coordinador.
blocked_domains conserva los allowed_domains del coordinador y bloquea esos hosts dentro de ellos, y un agente del roster que establece sus propios allowed_domains solo puede acceder a los hosts que cubren tanto su lista como la del coordinador.url_not_allowed que indica que no se permite ningún dominio, y la descripción de la herramienta se lo indica al modelo. Mantén la lista de permitidos de cada agente del roster dentro de la del coordinador para evitar esto.max_content_tokens y user_location no se combinan: un hilo usa el valor de su propia configuración de herramienta si está establecido, de lo contrario el del agente que lo llamó, de lo contrario el de la configuración actual del coordinador.{"type": "self"} no tiene configuraciones web propias y sigue las configuraciones actuales del coordinador.web_search ni web_fetch, independientemente de estas configuraciones.Estas configuraciones usan el mismo vocabulario de allowed_domains y blocked_domains que el filtrado de dominios en las herramientas de servidor de la API de Messages, con las siguientes diferencias en Managed Agents:
web_fetch no pueden incluir una ruta.max_uses, citations y cache_control no están disponibles en el conjunto de herramientas.Además de las herramientas integradas, puedes definir herramientas personalizadas. Las herramientas personalizadas son análogas a las herramientas de cliente definidas por el usuario en la API de Messages.
Cada herramienta personalizada define un contrato: tú especificas qué operaciones están disponibles y qué devuelven, y Claude determina cuándo y cómo llamarlas. El modelo nunca ejecuta nada por sí mismo. Emite una solicitud estructurada, tu código ejecuta la operación y el resultado fluye de vuelta a la conversación. Consulta Flujo de eventos de sesión para saber cómo recibir llamadas a herramientas personalizadas y devolver resultados durante una sesión.
Si tus sesiones se ejecutan en un sandbox autoalojado, el worker del entorno puede servir herramientas personalizadas desde tu sandbox, incluidas herramientas que envuelven un servidor MCP dentro de tu red.
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 vez que hayas definido herramientas personalizadas en el agente, el agente las invoca durante una sesión.
create_pr, review_pr, merge_pr), agrúpalas en una sola herramienta con un parámetro action. Menos herramientas, pero más capaces, reducen la ambigüedad en la selección y hacen que tu superficie de herramientas sea más fácil de navegar para Claude.db_query o storage_read). Esto hace que la selección de herramientas sea inequívoca a medida que tu biblioteca crece.Conecta servidores MCP a tus agentes para acceder a herramientas externas y fuentes de datos.
Controla cuándo se ejecutan las herramientas del agente y de MCP.
Envía eventos, transmite respuestas e interrumpe o redirige tu sesión en plena ejecución.
Was this page helpful?