Después de que Claude solicita una llamada a herramienta, necesitas ejecutar la función y enviar los resultados de vuelta. Esto completa el flujo de trabajo de uso de herramientas al proporcionarle a Claude la información que solicitó.
Ejecutando la función de la herramienta
Cuando Claude responde con un bloque de uso de herramienta, extraes los parámetros de entrada y llamas a tu función. Así es como accedes a los parámetros de la herramienta:
response.content[1].inputEsto te da un diccionario de los argumentos que Claude quiere pasar a tu función. Dado que tu función espera argumentos de palabra clave en lugar de un diccionario, usas la sintaxis de desempaquetado de Python:
get_current_datetime(**response.content[1].input)
Bloque de resultado de herramienta
Después de ejecutar la función de la herramienta, necesitas enviar los resultados de vuelta a Claude usando un bloque de resultado de herramienta. Este bloque va dentro de un mensaje de usuario y le indica a Claude qué sucedió cuando ejecutaste la herramienta.

El bloque de resultado de herramienta tiene varias propiedades importantes:
- tool_use_id - Debe coincidir con el id del bloque ToolUse al que corresponde este ToolResult
- content - Salida de la ejecución de tu herramienta, serializada como una cadena
- is_error - True si ocurrió un error
Manejo de múltiples llamadas a herramientas
Claude puede solicitar múltiples llamadas a herramientas en una sola respuesta. Por ejemplo, si un usuario pregunta "¿Cuánto es 10 + 10 y cuánto es 30 + 30?", Claude podría responder con dos bloques ToolUse separados.

Cada llamada a herramienta obtiene un ID único, y debes hacer coincidir estos IDs al enviar los resultados de vuelta. Esto asegura que Claude sepa qué resultado corresponde a qué solicitud, incluso si los resultados llegan en un orden diferente.

Construyendo la solicitud de seguimiento
Tu solicitud de seguimiento a Claude debe incluir el historial completo de la conversación más el nuevo resultado de la herramienta. Así es la estructura:
messages.append({
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": response.content[1].id,
"content": "15:04:22",
"is_error": False
}]
})El historial completo de mensajes ahora contiene:
- Mensaje original del usuario
- Mensaje del asistente con bloque de uso de herramienta
- Mensaje del usuario con bloque de resultado de herramienta
Realizando la solicitud final
Al enviar la solicitud de seguimiento, aún debes incluir el esquema de la herramienta aunque no esperes que Claude haga otra llamada a herramienta. Claude necesita el esquema para entender las referencias a la herramienta en tu historial de conversación.
client.messages.create(
model=model,
max_tokens=1000,
messages=messages,
tools=[get_current_datetime_schema]
)
Claude entonces responderá con un mensaje final que incorpora los resultados de la herramienta en una respuesta natural para el usuario. El flujo de trabajo de uso de herramientas ahora está completo: has habilitado exitosamente a Claude para acceder a información en tiempo real a través de tu función personalizada.