¡Aprende todo lo que necesitas para dominar el uso de herramientas con Claude como parte de nuestros nuevos cursos! Por favor
continúa compartiendo tus ideas y sugerencias usando este
formulario.
Cómo funciona el uso de herramientas
Claude admite dos tipos de herramientas:-
Herramientas del cliente: Herramientas que se ejecutan en tus sistemas, que incluyen:
- Herramientas personalizadas definidas por el usuario que tú creas e implementas
- Herramientas definidas por Anthropic como uso de computadora y editor de texto que requieren implementación del cliente
- Herramientas del servidor: Herramientas que se ejecutan en los servidores de Anthropic, como las herramientas de búsqueda web y obtención web. Estas herramientas deben especificarse en la solicitud de API pero no requieren implementación de tu parte.
Las herramientas definidas por Anthropic usan tipos versionados (por ejemplo,
web_search_20250305, text_editor_20250124) para garantizar la compatibilidad entre versiones de modelos.Herramientas del cliente
Integra herramientas del cliente con Claude en estos pasos:1
Proporciona a Claude herramientas y un prompt del usuario
- Define herramientas del cliente con nombres, descripciones y esquemas de entrada en tu solicitud de API.
- Incluye un prompt del usuario que podría requerir estas herramientas, por ejemplo, “¿Cómo está el clima en San Francisco?”
2
Claude decide usar una herramienta
- Claude evalúa si alguna herramienta puede ayudar con la consulta del usuario.
- Si es así, Claude construye una solicitud de uso de herramienta con el formato adecuado.
- Para herramientas del cliente, la respuesta de la API tiene un
stop_reasondetool_use, señalando la intención de Claude.
3
Ejecuta la herramienta y devuelve los resultados
- Extrae el nombre de la herramienta y la entrada de la solicitud de Claude
- Ejecuta el código de la herramienta en tu sistema
- Devuelve los resultados en un nuevo mensaje
userque contenga un bloque de contenidotool_result
4
Claude usa el resultado de la herramienta para formular una respuesta
- Claude analiza los resultados de la herramienta para elaborar su respuesta final al prompt original del usuario.
Herramientas del servidor
Las herramientas del servidor siguen un flujo de trabajo diferente:1
Proporciona a Claude herramientas y un prompt del usuario
- Las herramientas del servidor, como búsqueda web y obtención web, tienen sus propios parámetros.
- Incluye un prompt del usuario que podría requerir estas herramientas, por ejemplo, “Busca las últimas noticias sobre IA” o “Analiza el contenido en esta URL.”
2
Claude ejecuta la herramienta del servidor
- Claude evalúa si una herramienta del servidor puede ayudar con la consulta del usuario.
- Si es así, Claude ejecuta la herramienta, y los resultados se incorporan automáticamente en la respuesta de Claude.
3
Claude usa el resultado de la herramienta del servidor para formular una respuesta
- Claude analiza los resultados de la herramienta del servidor para elaborar su respuesta final al prompt original del usuario.
- No se necesita interacción adicional del usuario para la ejecución de herramientas del servidor.
Ejemplos de uso de herramientas
Aquí tienes algunos ejemplos de código que demuestran varios patrones y técnicas de uso de herramientas. Por brevedad, las herramientas son herramientas simples, y las descripciones de las herramientas son más cortas de lo que sería ideal para garantizar el mejor rendimiento.Ejemplo de herramienta única
Ejemplo de herramienta única
JSON
get_weather con la entrada proporcionada, y devolver el resultado en un nuevo mensaje user:JSON
Uso de herramientas en paralelo
Uso de herramientas en paralelo
Claude puede llamar múltiples herramientas en paralelo dentro de una sola respuesta, lo cual es útil para tareas que requieren múltiples operaciones independientes. Al usar herramientas en paralelo, todos los bloques Para ejemplos completos, scripts de prueba y mejores prácticas para implementar llamadas de herramientas en paralelo, consulta la sección de uso de herramientas en paralelo en nuestra guía de implementación.
tool_use se incluyen en un solo mensaje del asistente, y todos los bloques tool_result correspondientes deben proporcionarse en el mensaje del usuario subsiguiente.Importante: Los result ados de las herramientas deben formatearse correctamente para evitar errores de API y asegurar que Claude continúe usando herramientas en paralelo. Consulta nuestra guía de implementación para requisitos de formato detallados y ejemplos de código completos.
Ejemplo de múltiples herramientas
Ejemplo de múltiples herramientas
Puedes proporcionar a Claude múltiples herramientas para elegir en una sola solicitud. Aquí tienes un ejemplo con una herramienta En este caso, Claude puede:
get_weather y una get_time, junto con una consulta del usuario que pide ambas.- Usar las herramientas secuencialmente (una a la vez) — llamando primero
get_weather, luegoget_timedespués de recibir el resultado del clima - Usar llamadas de herramientas en paralelo — generando múltiples bloques
tool_useen una sola respuesta cuando las operaciones son independientes
user, con cada resultado en su propio bloque tool_result.Información faltante
Información faltante
Si el prompt del usuario no incluye suficiente información para llenar todos los parámetros requeridos para una herramienta, Claude Opus es mucho más probable que reconozca que falta un parámetro y lo pida. Claude Sonnet puede preguntar, especialmente cuando se le solicita pensar antes de generar una solicitud de herramienta. Pero también puede hacer su mejor esfuerzo para inferir un valor razonable.Por ejemplo, usando la herramienta Este comportamiento no está garantizado, especialmente para prompts más ambiguos y para modelos menos inteligentes. Si Claude Opus no tiene suficiente contexto para llenar los parámetros requeridos, es mucho más probable que responda con una pregunta aclaratoria en lugar de hacer una llamada de herramienta.
get_weather anterior, si le preguntas a Claude “¿Cómo está el clima?” sin especificar una ubicación, Claude, particularmente Claude Sonnet, puede hacer una suposición sobre las entradas de las herramientas:JSON
Herramientas secuenciales
Herramientas secuenciales
Algunas tareas pueden requerir llamar múltiples herramientas en secuencia, usando la salida de una herramienta como entrada para otra. En tal caso, Claude llamará una herramienta a la vez. Si se le solicita llamar todas las herramientas de una vez, Claude probablemente adivinará parámetros para herramientas más adelante en el flujo si dependen de resultados de herramientas para herramientas más arriba en el flujo.Aquí tienes un ejemplo de usar una herramienta En este caso, Claude primero llamaría la herramienta
Este ejemplo demuestra cómo Claude puede encadenar múltiples llamadas de herramientas para responder una pregunta que requiere recopilar datos de diferentes fuentes. Los pasos clave son:
get_location para obtener la ubicación del usuario, luego pasar esa ubicación a la herramienta get_weather:get_location para obtener la ubicación del usuario. Después de que devuelvas la ubicación en un tool_result, Claude luego llamaría get_weather con esa ubicación para obtener la respuesta final.La conversación completa podría verse así:| Rol | Contenido |
|---|---|
| Usuario | ¿Cómo está el clima donde estoy? |
| Asistente | Primero encontraré tu ubicación actual, luego verificaré el clima allí. [Uso de herramienta para get_location] |
| Usuario | [Resultado de herramienta para get_location con id coincidente y resultado de San Francisco, CA] |
| Asistente | [Uso de herramienta para get_weather con la siguiente entrada]{ “location”: “San Francisco, CA”, “unit”: “fahrenheit” } |
| Usuario | [Resultado de herramienta para get_weather con id coincidente y resultado de “59°F (15°C), mayormente nublado”] |
| Asistente | Basándome en tu ubicación actual en San Francisco, CA, el clima ahora mismo es 59°F (15°C) y mayormente nublado. Es un día bastante fresco y nublado en la ciudad. Tal vez quieras llevar una chaqueta ligera si vas a salir. |
- Claude primero se da cuenta de que necesita la ubicación del usuario para responder la pregunta del clima, así que llama la herramienta
get_location. - El usuario (es decir, el código del cliente) ejecuta la función
get_locationreal y devuelve el resultado “San Francisco, CA” en un bloquetool_result. - Con la ubicación ahora conocida, Claude procede a llamar la herramienta
get_weather, pasando “San Francisco, CA” como el parámetrolocation(así como un parámetrounitadivinado, ya queunitno es un parámetro requerido). - El usuario nuevamente ejecuta la función
get_weatherreal con los argumentos proporcionados y devuelve los datos del clima en otro bloquetool_result. - Finalmente, Claude incorpora los datos del clima en una respuesta en lenguaje natural a la pregunta original.
Uso de herramientas con cadena de pensamiento
Uso de herramientas con cadena de pensamiento
Por defecto, Claude Opus está programado para pensar antes de responder una consulta de uso de herramientas para determinar mejor si una herramienta es necesaria, qué herramienta usar y los parámetros apropiados. Claude Sonnet y Claude Haiku están programados para tratar de usar herramientas tanto como sea posible y son más propensos a llamar una herramienta innecesaria o inferir parámetros faltantes. Para solicitar a Sonnet o Haiku que evalúen mejor la consulta del usuario antes de hacer llamadas de herramientas, se puede usar el siguiente prompt:Prompt de cadena de pensamiento
Responde la solicitud del usuario usando herramientas relevantes (si están disponibles). Antes de llamar una herramienta, haz algún análisis. Primero, piensa sobre cuál de las herramientas proporcionadas es la herramienta relevante para responder la solicitud del usuario. Segundo, revisa cada uno de los parámetros requeridos de la herramienta relevante y determina si el usuario ha proporcionado directamente o dado suficiente información para inferir un valor. Al decidir si el parámetro puede ser inferido, considera cuidadosamente todo el contexto para ver si apoya un valor específico. Si todos los parámetros requeridos están presentes o pueden ser razonablemente inferidos, procede con la llamada de herramienta. PERO, si uno de los valores para un parámetro requerido falta, NO invoques la función (ni siquiera con rellenos para los parámetros faltantes) y en su lugar, pide al usuario que proporcione los parámetros faltantes. NO pidas más información sobre parámetros opcionales si no se proporciona.Modo JSON
Modo JSON
Puedes usar herramientas para hacer que Claude produzca salida JSON que siga un esquema, incluso si no tienes intención de ejecutar esa salida a través de una herramienta o función.Al usar herramientas de esta manera:
- Usualmente quieres proporcionar una sola herramienta
- Deberías establecer
tool_choice(ver Forzar el uso de herramientas) para instruir al modelo a usar explícitamente esa herramienta - Recuerda que el modelo pasará la
inputa la herramienta, así que el nombre de la herramienta y la descripción deben ser desde la perspectiva del modelo.
record_summary para describir una imagen siguiendo un formato particular.Precios
Tool use requests are priced based on:- The total number of input tokens sent to the model (including in the
toolsparameter) - The number of output tokens generated
- For server-side tools, additional usage-based pricing (e.g., web search charges per search performed)
- The
toolsparameter in API requests (tool names, descriptions, and schemas) tool_usecontent blocks in API requests and responsestool_resultcontent blocks in API requests
tools, we also automatically include a special system prompt for the model which enables tool use. The number of tool use tokens required for each model are listed below (excluding the additional tokens listed above). Note that the table assumes at least 1 tool is provided. If no tools are provided, then a tool choice of none uses 0 additional system prompt tokens.
| Model | Tool choice | Tool use system prompt token count |
|---|---|---|
| Claude Opus 4.1 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Opus 4 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 4 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 3.7 (deprecated) | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Haiku 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Haiku 3.5 | auto, noneany, tool | 264 tokens 340 tokens |
| Claude Opus 3 (deprecated) | auto, noneany, tool | 530 tokens 281 tokens |
| Claude Sonnet 3 | auto, noneany, tool | 159 tokens 235 tokens |
| Claude Haiku 3 | auto, noneany, tool | 264 tokens 340 tokens |
usage reportadas.
Próximos pasos
Explora nuestro repositorio de ejemplos de código de uso de herramientas listos para implementar en nuestros libros de cocina:Herramienta Calculadora
Aprende cómo integrar una herramienta de calculadora simple con Claude para cálculos numéricos precisos.
Agente de Servicio al Cliente
Construye un bot de servicio al cliente receptivo que aprovecha las herramientas del cliente para
mejorar el soporte.
Extractor JSON
Ve cómo Claude y el uso de herramientas pueden extraer datos estructurados de texto no estructurado.