Claude Platform Docs
MessagesHerramientas

Solución de problemas del uso de herramientas

Corrige los errores más comunes del uso de herramientas con tablas de diagnóstico de síntoma a solución.

Tablas de síntoma a solución para los errores más comunes del "tool use" (uso de herramientas). Cada solución hace referencia cruzada a la página que documenta la funcionalidad.

Claude llama a la herramienta equivocada

SíntomaCausa probableSolución
Claude llama a la herramienta A cuando querías la herramienta BAmbigüedad en la descripciónAfina las descripciones. Diferencia las herramientas por CUÁNDO usarlas, no solo por QUÉ hacen. Consulta Definir herramientas.
Claude nunca llama a tu herramientaColisión de nombres de herramientas o esquema demasiado genéricoVerifica si hay nombres duplicados en tu lista de herramientas. Agrega input_examples para concretar el uso previsto.
Claude llama con tipos de parámetros incorrectosEl modelo adivina ante un esquema ambiguoAgrega strict: true (si tu esquema está en el subconjunto compatible) o agrega input_examples.

Claude inventa parámetros de herramientas

SíntomaCausa probableSolución
Parámetro que no existe en tu esquemaSobregeneración del modelo sin modo estrictoAgrega strict: true si tu esquema está en el subconjunto compatible.
Valores de parámetros fuera de tu enumFalta el modo estricto o el enum es demasiado grandeReduce el enum o agrega input_examples que muestren opciones válidas.

Las llamadas a herramientas en paralelo no funcionan

SíntomaCausa probableSolución
Claude llama a las herramientas secuencialmente cuando en paralelo sería mejorFormato del historial de mensajesEnvía múltiples bloques tool_result en UN solo mensaje de usuario, no uno por turno. Consulta Uso de herramientas en paralelo.
disable_parallel_tool_use parece ignorarseSe configuró demasiado tarde en la conversaciónDebe configurarse en la solicitud que devuelve tool_use. Configurarlo en una solicitud posterior no tiene efecto sobre las llamadas a herramientas anteriores.

La caché se invalida constantemente

SíntomaCausa probableSolución
Cada solicitud es un fallo de cachétool_choice, la configuración de pensamiento o output_config.effort varían entre solicitudesMantén tool_choice estable o coloca el punto de interrupción cache_control antes del punto de variación; mantén constantes la configuración de pensamiento y el nivel de esfuerzo durante toda la vida de una conversación en caché. Consulta Uso de herramientas con almacenamiento en caché de prompts y Pensamiento y almacenamiento en caché de prompts.
Agregar una herramienta a mitad de la conversación rompe la cachéLa herramienta se antepuso al arreglo de herramientasUsa defer_loading: true con la búsqueda de herramientas para agregar la herramienta en línea en lugar de modificar el inicio del arreglo.

Errores en el momento de la solicitud

ErrorCausaSolución
tool_use ids were found without tool_result blocks immediately afterFalta tool_result para algunos ids de tool_use, o tool_result no es el primer bloque de contenido en el mensaje de usuarioDevuelve un tool_result por cada bloque tool_use en la respuesta del asistente. Coloca los bloques tool_result antes de cualquier texto. Consulta Manejar llamadas a herramientas y Uso de herramientas en paralelo.
was found without a corresponding <name>_tool_result blockEl turno anterior del asistente tiene un bloque server_tool_use sin bloque de resultado (lo más frecuente es que Claude lo haya llamado junto con una herramienta de cliente), y o bien tu siguiente mensaje de usuario terminó ese turno (por ejemplo, con texto después de los bloques tool_result) o bien la solicitud de reanudación ya no define esa herramienta de servidor (el mensaje entonces termina con but no <name> tool was provided)Envía un mensaje de usuario que contenga solo los bloques tool_result para los ids de tool_use del cliente y mantén el mismo arreglo tools. Consulta Razones de detención y alternativas.
Unsupported regex feature in pattern field: ...Un pattern en el input_schema de una herramienta estricta usa una característica de regex que el modo estricto no puede compilar, como una retrorreferencia, un lookaround, un límite de palabra o un rango {n,m} grandeSimplifica el patrón. Se admiten patrones anclados con cuantificadores básicos, clases de caracteres y grupos; consulta Limitaciones de JSON Schema.
All tools have defer_loading: trueNinguna herramienta es visible para el modeloAl menos una herramienta debe cargarse de inmediato. La herramienta de búsqueda de herramientas en sí nunca debe tener defer_loading: true.

Error: los bloques de pensamiento no se pueden modificar

Si una solicitud falla con un 400 invalid_request_error cuyo mensaje contiene `thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modified al continuar una conversación después de una llamada a herramienta, tu aplicación está alterando los bloques de pensamiento del asistente antes de enviarlos de vuelta. Envía el mensaje completo del asistente de vuelta sin cambios y luego agrega tu tool_result.

Consulta Los bloques de pensamiento no se pueden modificar para ver el error completo y los pasos para solucionarlo.

Claude marca los resultados de herramientas como inyección de prompts

SíntomaCausa probableSolución
Claude se niega a actuar sobre un resultado de herramienta, o pide al usuario que confirme instrucciones que provienen de élTus propias instrucciones se están entregando dentro del contenido de tool_resultClaude está entrenado para tratar las instrucciones dentro de los resultados de herramientas como contenido de terceros potencialmente no confiable. Saca tus instrucciones del resultado de la herramienta: envíalas en un turno user después del bloque tool_result o, en los modelos compatibles, en un mensaje del sistema a mitad de la conversación. Limita el resultado de la herramienta solo a los datos. Consulta Mitigar jailbreaks e inyecciones de prompts.

Diferencias en el escape de JSON (Opus 4.6+)

SíntomaCausaSolución
La comparación de cadenas en las entradas de herramientas falla con modelos más nuevosEl escape de Unicode y de barras diagonales difiere entre versiones de modelosAnaliza con json.loads() o JSON.parse(). Nunca hagas coincidencia de cadenas sin procesar sobre la entrada serializada.

Próximos pasos

Escribe esquemas y descripciones que orienten a Claude hacia la herramienta correcta.

Ejecuta herramientas y devuelve resultados en el formato de mensaje requerido.

Directorio completo de las herramientas proporcionadas por Anthropic y sus cadenas de versión.

Was this page helpful?