Esta página explica los conceptos detrás del uso de herramientas: dónde se ejecutan las herramientas, cómo funciona el bucle agéntico y cuándo el uso de herramientas es el enfoque correcto. Para orientación práctica, comienza con el tutorial o la guía de implementación.
El uso de herramientas es un contrato entre tu aplicación y el modelo. Especificas qué operaciones están disponibles y qué forma tienen sus entradas y salidas; Claude decide cuándo y cómo llamarlas. El modelo nunca ejecuta nada por sí solo. Emite una solicitud estructurada, tu código (o los servidores de Anthropic) ejecutan la operación, y el resultado fluye de vuelta a la conversación.
Este contrato hace que el modelo se comporte menos como un generador de texto y más como una función que llamas. Los ingenieros con experiencia en API clásicas pueden integrar el uso de herramientas de la misma manera que lo harían con cualquier otra interfaz tipada: define el esquema, maneja la devolución de llamada, devuelve un resultado. La diferencia es que quien llama al otro lado es un modelo de lenguaje que elige qué función invocar basándose en la conversación.
El eje principal a lo largo del cual difieren las herramientas es dónde se ejecuta el código. Cada herramienta cae en uno de tres grupos, y el grupo determina de qué es responsable tu aplicación.
Escribes el esquema, ejecutas el código, devuelves los resultados. Este es el evento principal: la gran mayoría del tráfico de uso de herramientas son herramientas definidas por el usuario que llaman a lógica específica de la aplicación.
Cuando Claude decide usar una de tus herramientas, la respuesta de la API contiene un bloque tool_use con el nombre de la herramienta y un objeto JSON de argumentos. Tu aplicación extrae esos argumentos, ejecuta la operación (una consulta de base de datos, una llamada HTTP, una escritura de archivo, lo que haga la herramienta), y envía el resultado en un bloque tool_result en la siguiente solicitud. Claude nunca ve tu implementación; solo ve el esquema que proporcionaste y el resultado que devolviste.
Para un puñado de operaciones comunes (ejecutar comandos de shell, editar archivos, controlar un navegador, gestionar memoria de bloc de notas), Anthropic publica el esquema de la herramienta y tu aplicación maneja la ejecución. Las herramientas en esta categoría son bash, text_editor, computer y memory.
El modelo de ejecución es idéntico al de las herramientas definidas por el usuario: la respuesta contiene un bloque tool_use, tu código ejecuta la operación, y devuelves un tool_result. La razón para usar una herramienta de esquema de Anthropic en lugar de definir la tuya propia equivalente es que estos esquemas están entrenados. Claude ha sido optimizado en miles de trayectorias exitosas que usan estas firmas de herramientas exactas, por lo que las llama de manera más confiable y se recupera de errores de manera más elegante que lo haría con una herramienta personalizada que hace lo mismo. El esquema es la interfaz que el modelo ya espera.
Para web_search, web_fetch, code_execution y tool_search, Anthropic ejecuta el código. Habilitas la herramienta en tu solicitud y el servidor maneja todo lo demás. Nunca construyes un bloque tool_result para estas herramientas porque el bucle del lado del servidor ejecuta la operación y alimenta el resultado de vuelta al modelo antes de que la respuesta te llegue.
La respuesta que recibes contiene bloques server_tool_use mostrando qué se ejecutó y qué volvió, pero en el momento en que los ves, la ejecución ya está completa. El trabajo de tu aplicación es habilitar la herramienta y leer la respuesta final, no participar en el bucle de ejecución.
Las herramientas ejecutadas por el cliente (tanto definidas por el usuario como de esquema de Anthropic) requieren que tu aplicación maneje un bucle. El modelo no puede ejecutar tu código, por lo que cada llamada de herramienta es un viaje de ida y vuelta: el modelo pregunta, ejecutas, reportas, el modelo continúa.
La forma canónica es un bucle while basado en stop_reason:
tools y el mensaje del usuario.stop_reason: "tool_use" y uno o más bloques tool_use.tool_result.tool_result.stop_reason sea "tool_use".En la práctica esto se lee como: mientras stop_reason == "tool_use", ejecuta las herramientas y continúa la conversación. El bucle se cierra en cualquier otro motivo de parada ("end_turn", "max_tokens", "stop_sequence" o "refusal"), lo que significa que Claude ha producido una respuesta final o se ha detenido por otra razón que tu aplicación debe manejar.
Para la mecánica de construir solicitudes, manejar llamadas de herramientas paralelas y formatear resultados, consulta Manejar llamadas de herramientas.
Las herramientas ejecutadas por el servidor ejecutan su propio bucle dentro de la infraestructura de Anthropic. Una única solicitud de tu aplicación podría desencadenar varias búsquedas web o ejecuciones de código antes de que vuelva una respuesta. El modelo busca, lee resultados, decide buscar de nuevo, e itera hasta que tiene lo que necesita, todo sin que tu aplicación participe.
Este bucle interno tiene un límite de iteración. Si el modelo sigue iterando cuando alcanza el límite, la respuesta vuelve con stop_reason: "pause_turn" en lugar de "end_turn". Un turno pausado significa que el trabajo no está terminado; reenvía la conversación (incluyendo la respuesta pausada) para permitir que el modelo continúe donde lo dejó. Consulta Herramientas de servidor para el patrón de continuación.
El uso de herramientas encaja cuando la tarea requiere algo que el modelo no puede hacer solo con texto:
La señal de que deberías estar usando herramientas: si estás escribiendo una expresión regular para extraer una decisión de la salida del modelo, esa decisión debería haber sido una llamada de herramienta. Analizar texto de forma libre para recuperar intención estructurada es una señal de que la estructura pertenece al esquema.
El uso de herramientas no encaja cuando:
| Enfoque | Cuándo usarlo | Qué esperar | Más información |
|---|---|---|---|
| Herramientas de cliente definidas por el usuario | Lógica comercial personalizada, APIs internas, datos propietarios | Manejas la ejecución y el bucle agéntico | Definir herramientas |
| Herramientas de cliente de esquema de Anthropic | Operaciones de desarrollo estándar (bash, edición de archivos, control de navegador) | Manejas la ejecución; Claude llama a la herramienta de manera confiable porque el esquema está entrenado | Referencia de herramientas |
| Herramientas ejecutadas por el servidor | Búsqueda web, sandbox de código, obtención web | Anthropic maneja la ejecución; obtienes resultados directamente | Herramientas de servidor |
Construye un agente paso a paso desde una única llamada de herramienta hasta producción.
Especificación de esquema, descripciones y tool_choice.
Directorio de herramientas proporcionadas por Anthropic.
Was this page helpful?