Saltearse al contenido

Python Code Structured

Python Code Structured convierte una función de Python escrita por ti en una herramienta. Escribes el código, eliges qué función se ejecuta y el componente crea a partir de sus argumentos los campos que hay que rellenar. Puedes dar esa función a un agente, que la usa cuando la necesita y rellena él los argumentos, o ejecutarla como un paso más del flujo con los valores que tú escribas.

El código se ejecuta aparte del flujo y con un tiempo máximo, de modo que un programa que no termina no bloquea el resto.

Cuándo usarlo

  • Necesitas que un agente haga un cálculo de tu negocio que siempre debe salir igual, como una tarifa, un descuento o un plazo de entrega.
  • Quieres dar a un agente una regla de validación propia, por ejemplo comprobar el formato de un código interno.
  • Necesitas transformar un texto o unos datos con una lógica que ningún otro componente cubre.

Configuración

CampoQué hace
Tool Code (obligatorio)El código de Python con una o varias funciones. Si indicas el tipo de cada argumento (str, int, float, bool, list, dict), el agente sabe qué tipo de valor enviar. Los argumentos pueden tener valor por defecto.
Tool Function (obligatorio)La función del código que se ejecuta. La lista se rellena con las funciones de Tool Code; pulsa el botón de actualizar si acabas de cambiar el código.
Tool Name (obligatorio)El nombre con el que el agente ve la herramienta, por ejemplo calcular_envio.
Description (obligatorio)Lo que el agente lee para saber cuándo usarla, por ejemplo “Calcula el coste de envío a partir del peso en kilos y el país de destino”.
argumento: Description (obligatorio)Aparece un campo por cada argumento de la función elegida. Si usas el componente como herramienta, escribe aquí la explicación que leerá el agente para rellenar ese argumento. Si usas la salida Text, escribe aquí el valor del argumento.
Parent document vectorstoreConector opcional. Esta versión del componente no lo usa; puedes dejarlo vacío.

Opciones avanzadas

CampoQué hace
Return DirectlySi lo activas, el agente entrega al usuario el resultado de la función tal cual, sin redactar su propia respuesta. Por defecto, desactivado.
Classes y FunctionsSe rellenan solos a partir de Tool Code. No hace falta tocarlos.

Resultado

Tienes dos salidas; al conectar una, la otra se oculta.

  • Tool: la función lista para un agente. Conéctala al conector Tools del agente. El agente recibe como texto lo que devuelve la función.
  • Text: ejecuta la función con los valores escritos en los campos de cada argumento y entrega como mensaje lo que devuelve.

En los dos casos, si la función escribe algo con print, también aparece en el resultado.

Ejemplo

Una empresa de mensajería quiere que su asistente calcule el precio de un envío con su tarifa.

  1. En Tool Code, escribe:
    def calcular_envio(peso_kg: float, pais: str):
    base = 5 if pais.lower() == "españa" else 12
    return f"{base + peso_kg * 1.5:.2f} euros"
  2. En Tool Function, elige calcular_envio.
  3. Pon calcular_envio en Tool Name y en Description “Calcula el precio de un envío a partir del peso en kilos y el país de destino”.
  4. En peso_kg: Description escribe “Peso del paquete en kilos” y en pais: Description, “País de destino”.
  5. Conecta la salida Tool al conector Tools del agente. Cuando un cliente pregunta cuánto cuesta enviar 3 kilos a Francia, el agente usa la función y responde con el precio.

Buenas prácticas

  • Escribe las funciones con def normal y la declaración de cada argumento en una sola línea.
  • Haz que la función devuelva un texto claro: es lo que leerá el agente.
  • Si la función falla, el agente recibe una respuesta vacía. Prueba la función con la salida Text antes de dársela al agente.

Componentes relacionados

  • PyCode: ejecuta código de Python como paso del flujo.
  • Python Executor Tool: deja que el agente escriba y ejecute su propio código.