Analiza bloques tool_use, formatea respuestas tool_result y maneja errores con is_error.
Esta página cubre el ciclo de vida de las llamadas a herramientas: leer bloques tool_use de la respuesta de Claude, formatear bloques tool_result en tu respuesta y señalar errores. Para la abstracción del SDK que maneja esto automáticamente, consulta Tool Runner.
La respuesta tendrá un stop_reason de tool_use y uno o más bloques de contenido tool_use que incluyen:
id: Un identificador único para este bloque de uso de herramientas en particular. Esto se usará para hacer coincidir los resultados de la herramienta más adelante.
name: El nombre de la herramienta que se está usando.
input: Un objeto que contiene la entrada que se pasa a la herramienta, conforme al input_schema de la herramienta.
Cuando recibas una respuesta de uso de herramientas para una herramienta de cliente, debes:
Extraer el name, id e input del bloque tool_use.
Ejecutar la herramienta real en tu base de código correspondiente a ese nombre de herramienta, pasando el input de la herramienta.
Continuar la conversación enviando un nuevo mensaje con el role de user, y un bloque content que contenga el tipo tool_result y la siguiente información:
tool_use_id: El id de la solicitud de uso de herramientas para la cual este es un resultado.
content (opcional): El resultado de la herramienta, como una cadena (por ejemplo, "content": "15 degrees"), una lista de bloques de contenido anidados (por ejemplo, "content": [{"type": "text", "text": "15 degrees"}]), o una lista de bloques de documentos (por ejemplo, "content": [{"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "15 degrees"}}]). Estos bloques de contenido pueden usar los tipos text, image, document o search_result.
is_error (opcional): Establécelo en true si la ejecución de la herramienta resultó en un error.
Después de recibir el resultado de la herramienta, Claude usará esa información para continuar generando una respuesta al prompt original del usuario.
Manejo de resultados de herramientas de servidor
Claude ejecuta la herramienta internamente e incorpora los resultados directamente en su respuesta sin requerir interacción adicional del usuario.
Manejo de errores con is_error
Hay algunos tipos diferentes de errores que pueden ocurrir al usar herramientas con Claude: