Cargando

Enviando resultados de herramientas

Lección 267 min

Ahora estamos en el paso final del flujo de trabajo de uso de herramientas. Después de ejecutar nuestras herramientas y obtener los resultados, necesitamos enviar todo de vuelta a Claude para que pueda proporcionar una respuesta completa al usuario.

El proceso es sencillo: toma todas las partes de resultados de herramientas que generamos, empaquétalas en un mensaje de usuario, y envía todo el historial de la conversación de vuelta a Claude junto con los esquemas originales de las herramientas.

Agregando el mensaje del asistente

Primero, necesitamos asegurarnos de que nuestro historial de conversación esté completo. Después de la respuesta inicial de Claude con la solicitud de uso de herramientas, necesitamos agregar esa respuesta a nuestro historial de mensajes usando add_assistant_message().

Esto asegura que tengamos el flujo completo de la conversación: pregunta del usuario → solicitud de herramienta del asistente → resultados de herramientas → respuesta final del asistente.

Ejecutando herramientas y creando resultados de herramientas

La función run_tools() procesa todas las solicitudes de uso de herramientas de la respuesta de Claude y crea partes de resultados de herramientas correctamente formateadas. Cada resultado de herramienta incluye:

  • El ID de uso de herramienta (que coincide con la solicitud original)
  • La salida real de la ejecución de la herramienta
  • Un estado que indica éxito o error

La función maneja tanto las ejecuciones exitosas de herramientas como los errores de manera adecuada, envolviendo todo en la estructura JSON correcta que Claude espera.

Agregando resultados de herramientas a la conversación

Una vez que tenemos nuestros resultados de herramientas, los agregamos a la conversación usando add_user_message():

python
add_user_message(messages, run_tools(parts))

Esto crea un mensaje de usuario que contiene todas las partes de resultados de herramientas. La conversación ahora tiene el intercambio completo necesario para que Claude proporcione una respuesta final.

Llamada final a Claude

El último paso es enviar todo de vuelta a Claude. Esto requiere dos elementos importantes:

  • El historial completo de mensajes (usuario → asistente → usuario)
  • Los esquemas originales de las herramientas
python
text, parts = chat(messages, tools=[get_current_datetime_schema])

Incluir los esquemas de las herramientas es crucial. Sin ellos, Claude estaría confundido acerca de las referencias a herramientas en el historial de la conversación y no entendería qué hace realmente get_current_datetime.

Éxito

Cuando todo funciona correctamente, Claude recibe los resultados de las herramientas y puede proporcionar una respuesta completa e informada. En nuestro ejemplo, Claude recuperó exitosamente la hora actual y la formateó en una respuesta natural: "La fecha y hora actual es 2025-04-03, 12:54:00."

Esto demuestra que nuestra integración de herramientas está funcionando correctamente. Aunque Claude conoce la fecha actual, no tiene acceso a información en tiempo real como la hora exacta actual, que es exactamente lo que proporcionó nuestra herramienta.

El ciclo completo de uso de herramientas ahora está funcionando: Claude solicita una herramienta, nosotros la ejecutamos, devolvemos los resultados, y Claude incorpora esa información en su respuesta final al usuario.