Cargando

Funciones de herramientas

Lección 237 min

Cuando construyes aplicaciones de IA con Claude, a menudo necesitarás darle acceso a información en tiempo real o la capacidad de realizar acciones. Aquí es donde entran las funciones de herramientas: son funciones de Python que Claude puede llamar cuando necesita datos adicionales para ayudar a los usuarios.

La imagen anterior muestra tres herramientas esenciales que implementaremos: obtener la fecha/hora actual, agregar duración a las fechas y configurar recordatorios. Comencemos con la primera.

¿Qué son las funciones de herramientas?

Una función de herramienta es una función de Python simple que se ejecuta automáticamente cuando Claude determina que necesita información adicional para completar una tarea. Por ejemplo, si un usuario pregunta "¿Qué hora es?", Claude llamaría a tu herramienta de fecha/hora para obtener la hora actual.

Aquí hay un ejemplo de una función de herramienta del clima. Observa cómo valida las entradas y proporciona mensajes de error claros; estas son prácticas recomendadas clave que seguiremos.

Prácticas recomendadas para funciones de herramientas

Al escribir funciones de herramientas, ten en cuenta estas pautas:

  • Usa nombres descriptivos: Tanto el nombre de tu función como los nombres de los parámetros deben indicar claramente su propósito
  • Valida las entradas: Siempre verifica que los parámetros requeridos estén presentes y sean válidos
  • Proporciona mensajes de error significativos: Si Claude recibe un error, podría intentar llamar a tu función nuevamente con parámetros corregidos

El manejo de errores es particularmente importante porque Claude puede aprender de los fallos. Si devuelves un mensaje de error claro como "La ubicación no puede estar vacía", Claude podría reintentar la llamada a la función con un valor de ubicación adecuado.

Construyendo tu primera función de herramienta

Creemos una función para obtener la fecha y hora actuales. Esta función aceptará una cadena de formato para controlar cómo aparece la fecha:

python
def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
    if not date_format:
        raise ValueError("date_format cannot be empty")
    return datetime.now().strftime(date_format)

La cadena de formato predeterminada "%Y-%m-%d %H:%M:%S" produce una salida como "2024-03-15 14:30:45". Puedes personalizar esto pasando diferentes cadenas de formato:

python
# Obtener solo la hora
get_current_datetime("%H:%M")  # Returns "14:30"

# Obtener un formato de fecha diferente
get_current_datetime("%B %d, %Y")  # Returns "March 15, 2024"

Validación de entradas

La verificación de validación if not date_format: asegura que no intentemos formatear una fecha con una cadena vacía. Aunque Claude rara vez comete este error, proporcionar mensajes de error claros ayuda a la IA a entender qué salió mal y cómo solucionarlo.

Cuando Claude encuentra un error, ve el mensaje de error exacto. Este ciclo de retroalimentación permite que Claude ajuste su enfoque e intente nuevamente con parámetros corregidos.

Próximos pasos

Esta función de herramienta es solo el primer paso. A continuación, necesitarás crear un esquema JSON que describa esta función a Claude, y luego integrarla en tu sistema de chat. La función en sí es Python sencillo; la complejidad radica en conectarla correctamente al sistema de uso de herramientas de Claude.