Configurar y probar una herramienta de código en Studio

Crea una herramienta de código para aplicar cálculos, validaciones o reglas propias y pruébala con tu agente de Studio.

Configurar y probar una herramienta de código en Studio

La herramienta de código permite incorporar cálculos, validaciones y reglas propias a tu agente. Puedes resolver una cotización, preparar información de un pedido o consultar una API y adaptar su respuesta desde Studio, reduciendo la necesidad de mantener un servicio externo para esa lógica.

Tú escribes la función y, si necesita datos del agente, defines sus argumentos. Durante la conversación, el agente utiliza la herramienta y entrega esos datos cuando corresponda. La herramienta ejecuta tu código y devuelve el resultado para que el agente continúe atendiendo al cliente.

En esta guía crearás una cotización de ejemplo, aprenderás a usar datos de la conversación y secretos, y revisarás cómo probar la herramienta antes de utilizarla con tu bot.

‌

🧭 Antes de comenzar

Puedes configurar y probar la herramienta directamente en Studio. Como ayuda opcional, puedes configurarla con un asistente por MCP.

  • Necesitas acceso para editar las herramientas del bot que vas a configurar.
  • La herramienta requiere conocimientos de Python. La Guía rápida y los ejemplos prearmados te ayudan a empezar.
  • Ten claro qué tarea resolverá, qué datos necesita y qué resultado será útil para el agente.
  • Si consultarás una API, prepara su dirección, sus requisitos de acceso y las credenciales correspondientes en Secretos de Studio.
💡
Elige la herramienta según la tarea. Usa Petición HTTP para configurar consultas a APIs, incluidas varias solicitudes, selección de campos y cambios de nombre. La herramienta de código resulta útil cuando necesitas cálculos, validaciones o decisiones propias sobre los datos.
Necesidad
Ejemplo
Opción a considerar
Consultar una API y elegir qué información recibe el agente
Obtener el estado y la fecha de entrega de un pedido
Petición HTTP
Consultar varios servicios en una misma herramienta
Reunir información de cliente, pedidos y envíos
Petición HTTP, en modo de varias solicitudes
Aplicar reglas o cálculos a los datos
Calcular una cotización con descuento y envío
Herramienta de código
Consultar una API y decidir qué devolver según su respuesta
Comprobar stock, calcular el importe y explicar cuántas unidades faltan
Herramienta de código

1. ➕ Crea la herramienta

  1. Abre el Bot Agente que quieres configurar en Studio.
  1. En Herramientas e integraciones, selecciona Agregar herramienta.
  1. Elige Herramienta de código en Tipo de herramienta.
  1. Escribe un Nombre técnico que identifique la tarea, por ejemplo, calcular_cotizacion.
  1. En Código, selecciona Cargar un ejemplo o escribe tu propia función.

El nombre técnico permite identificar la herramienta al configurarla y al revisar sus llamadas. Admite letras, números, guiones y guion bajo; debe tener al menos tres caracteres.

El formulario reúne el código, la guía, los secretos y las opciones para probar la herramienta.
El formulario reúne el código, la guía, los secretos y las opciones para probar la herramienta.

Empieza con un ejemplo

En Cargar un ejemplo encontrarás estos puntos de partida:

Ejemplo
Para qué puede servir
Calcular una cotización
Aplicar un descuento y obtener el total
Calcular días entre fechas
Calcular plazos o tiempo transcurrido
Validar y formatear un RUT
Comprobar el dígito verificador y unificar el formato
Preparar el estado de un pedido
Incluir información de despacho según el estado del pedido
Consultar un producto por API
Revisar precio, stock y cantidad disponible
Empezar desde una función simple
Escribir tu propia lógica desde una base mínima
Elige un ejemplo cercano a tu necesidad y adapta sus campos, reglas y respuesta.
Elige un ejemplo cercano a tu necesidad y adapta sus campos, reglas y respuesta.
⚠️
Cargar otro ejemplo puede reemplazar tu código. Si ya hiciste cambios, revisa la confirmación antes de continuar.
‌

2. 💻 Escribe y organiza tu código

La función main es el punto de entrada: Studio la ejecuta cuando el agente utiliza la herramienta. Puedes definir otras funciones en el mismo archivo y llamarlas desde main para organizar la lógica.

Si defines parámetros en main, estos indican qué debe entregar el agente. También puedes definir main() sin argumentos. El contenido de return será la respuesta que reciba.

Opciones del editor

Opción
Cómo te ayuda
Formatear
Ordena la presentación del código
Deshacer y Rehacer
Recuperan cambios mientras editas; también puedes usar los atajos indicados en los botones
Buscar y reemplazar
Encuentra nombres o fragmentos dentro del archivo; usa ⌘ F en Mac o Ctrl F en otros equipos
Ampliar editor / Restaurar tamaño
Permiten trabajar con más espacio y regresar al formulario
Ver código y prueba en paralelo
Coloca la edición y la prueba una al lado de la otra
Reiniciar
Recupera el código inicial; revisa la confirmación si ya tienes cambios
Secretos
Permite seleccionar las credenciales que utilizará esta herramienta

El editor ofrece sugerencias al escribir, incluidos campos de context y los nombres de los secretos añadidos. También señala errores de sintaxis que debes corregir para probar o guardar el código.

ℹ️
Un código sin errores de sintaxis todavía necesita pruebas. Por ejemplo, una API puede devolver un campo inesperado o una regla puede producir un total incorrecto. Valida casos habituales y casos que deban rechazarse.
‌

3. 📋 Define los datos de entrada (opcional)

Definir argumentos es opcional. Puedes ejecutar una función main() sin argumentos. Por ejemplo, una herramienta que utiliza únicamente el nombre del contacto:

def main() -> dict:
    return {
        "cliente": context.contact.name or "Cliente",
    }

Los datos de la conversación y los secretos se utilizan por separado, sin agregarlos como argumentos de main.

Si necesitas que el agente entregue valores, como el precio y la cantidad de productos de una cotización, defínelos como argumentos de main.

En ese caso, asigna un tipo a cada argumento. Puedes utilizar texto (str), números enteros (int), decimales (float o Decimal), valores de verdadero o falso (bool), objetos y listas.

Usa modelos de Pydantic para describir tus datos

Recomendamos agrupar datos relacionados con BaseModel y describirlos con Field. Así puedes indicar qué significa cada campo, sus unidades, los valores permitidos y sus límites.

💡
El agente recibe los nombres, descripciones, tipos y límites que defines. Esto le ayuda a saber qué valores debe entregar a la función. Describe el significado de negocio: por ejemplo, «precio unitario en pesos chilenos» o «porcentaje de descuento entre 0 y 100».

Este ejemplo completo calcula una cotización con descuento y un costo de envío opcional:

from decimal import Decimal
from pydantic import BaseModel, Field


class Cotizacion(BaseModel):
    precio_unitario: Decimal = Field(
        gt=0,
        description="Precio de una unidad en pesos chilenos.",
    )
    cantidad: int = Field(
        gt=0,
        description="Cantidad de unidades que solicita el cliente.",
    )
    descuento: Decimal = Field(
        default=Decimal("0"),
        ge=0,
        le=100,
        description="Porcentaje de descuento, entre 0 y 100.",
    )
    costo_envio: Decimal = Field(
        default=Decimal("0"),
        ge=0,
        description="Costo de envío en pesos chilenos.",
    )


def calcular_subtotal(datos: Cotizacion) -> Decimal:
    return datos.precio_unitario * datos.cantidad


def calcular_ahorro(subtotal: Decimal, porcentaje: Decimal) -> Decimal:
    return subtotal * porcentaje / Decimal("100")


def main(datos: Cotizacion) -> dict:
    subtotal = calcular_subtotal(datos)
    ahorro = calcular_ahorro(subtotal, datos.descuento)
    total = subtotal - ahorro + datos.costo_envio

    return {
        "moneda": "CLP",
        "subtotal": float(subtotal),
        "ahorro": float(ahorro),
        "costo_envio": float(datos.costo_envio),
        "total": float(total),
    }

Decimal ayuda a trabajar con importes. En este ejemplo, los resultados se convierten a números al construir la respuesta.

Revisa lo que reconoce Studio

Abre Datos de entrada debajo del editor. Studio muestra los campos reconocidos, sus tipos, sus descripciones y si son obligatorios u opcionales. Esta información también se utiliza para preparar el formulario de Prueba la herramienta.

Datos de entrada muestra el significado, el tipo y la obligatoriedad de los campos de una cotización.
Datos de entrada muestra el significado, el tipo y la obligatoriedad de los campos de una cotización.

Distingue un valor inicial de un dato vacío

Definición
Qué significa
Ejemplo
Sin valor inicial
El agente debe entregar el dato
cantidad: int
Con valor inicial
Si se omite el dato, se usa el valor definido en el código
descuento: float = 0
Acepta None
El dato puede tener explícitamente el valor «sin dato»
referencia: str | None
Acepta None y tiene un valor inicial
Puede omitirse y, en ese caso, toma el valor inicial
referencia: str | None = None

Aceptar None no vuelve opcional un argumento por sí solo: para permitir que se omita, debes definir un valor inicial.

Para estructuras más complejas, puedes incluir un modelo dentro de otro, listas como list[Producto] y opciones acotadas con Literal. Encontrarás ejemplos en Guía rápida → Datos de entrada.

‌

4. 💬 Aprovecha los datos de la conversación

Además de los argumentos, tu código puede usar información que Studio conoce de la conversación mediante context. Por ejemplo, el nombre del contacto o el identificador del ticket.

Origen
Quién proporciona el valor
Ejemplo de uso
El agente, al utilizar la herramienta
Cantidad solicitada o número de pedido
context
Studio, a partir de la conversación en curso
Nombre del contacto o identificador del ticket
Las referencias que autorizaste para la herramienta
Token para consultar una API

Abre Guía rápida → Conversación o Ver disponibles para buscar los campos y revisar sus tipos. El catálogo incluye datos del contacto, ticket, agente, conversación, mensaje, correo, página web y horarios de atención, según corresponda.

La guía permite explorar los grupos de contexto y buscar un dato por su nombre o descripción.
La guía permite explorar los grupos de contexto y buscar un dato por su nombre o descripción.

Puedes personalizar una respuesta así:

def main() -> dict:
    return {
        "cliente": context.contact.name or "Cliente",
        "ticket": context.ticket.id,
    }

No necesitas agregar context como argumento de main. Al escribir context. en el editor, las sugerencias te ayudan a encontrar los campos disponibles.

ℹ️
La información disponible depende del canal y de la conversación. Algunos valores pueden ser None y algunas listas pueden estar vacías. Define cómo responder cuando falte un dato, como el nombre alternativo del ejemplo.

Simula el contexto al probar

Si tu código utiliza datos de context, Prueba la herramienta muestra Datos de conversación para esta prueba con los campos reconocidos. Completa los valores que quieras simular y revisa los que sean necesarios para tu caso.

Estos valores solo afectan a la prueba. Cuando el agente utilice la herramienta en una conversación, Studio aportará los datos reales de esa conversación. Los datos del agente se completan automáticamente.

‌

5. 🔐 Utiliza secretos sin escribir credenciales en el código

Los secretos permiten utilizar credenciales sin incluir sus valores en el archivo de código. La herramienta solo recibe los secretos que hayas seleccionado y autorizado para su uso.

  1. Prepara la credencial en el apartado Secretos de Studio, con un nombre y una descripción que permitan reconocerla.
  1. En el editor de la herramienta, abre Secretos.
  1. Selecciona el secreto y elige la versión o referencia que quieres utilizar.
  1. Revisa el nombre de la variable, por ejemplo, TOKEN_CATALOGO.
  1. Usa Insertar para añadir su lectura al código o Listo para conservar la selección.

Elige la referencia adecuada

Selección
Comportamiento
Cuándo puede convenir
Versión específica
Utiliza esa versión del secreto
Necesitas mantener una credencial concreta
Referencia activa
Sigue la versión que esté definida como activa
Quieres actualizar la credencial desde Secretos
Alias
Sigue la versión a la que apunte ese alias
Gestionas referencias reconocibles, como la de una integración

El nombre de la variable debe coincidir con el que uses en el código, incluidas mayúsculas y minúsculas. Las sugerencias del editor identifican los secretos con un candado y muestran sus nombres y descripciones, sin revelar sus valores.

def main() -> dict:
    token = os.getenv("TOKEN_CATALOGO")
    if not token:
        return {"error": "Falta configurar el acceso al catálogo."}

    return {"acceso_configurado": True}

Studio incluye os automáticamente. Si tu código ya contiene import os, puedes conservarlo.

os.getenv("TOKEN_CATALOGO") devuelve None si la variable no está disponible. os.environ["TOKEN_CATALOGO"] produce un error en ese caso. Elige cómo quieres manejar una credencial ausente.

La guía de secretos explica la selección de referencias y cómo leerlas desde el código.
La guía de secretos explica la selección de referencias y cómo leerlas desde el código.
🔒
Mantén las credenciales fuera de la respuesta. No incluyas secretos en return, print ni mensajes de error. Devuelve únicamente los datos que necesita el agente.
‌

6. 🌐 Consulta una API y aplica tus reglas

Puedes combinar una consulta a un servicio con condiciones y cálculos. Por ejemplo: obtener el stock de un producto, comparar la cantidad solicitada y devolver un total o informar cuántas unidades faltan.

En Guía rápida → Librerías encontrarás las librerías disponibles. Entre ellas están httpx para consultas HTTP y pydantic para definir y validar datos, además de las utilidades de Python para fechas, JSON y cálculos.

Ejemplo: comprobar disponibilidad de un producto

El siguiente ejemplo utiliza el secreto TOKEN_CATALOGO y espera que la API responda con los campos nombre, stock y precio.

Antes de probarlo, sustituye la URL ilustrativa por la de tu servicio y adapta los campos a su respuesta. Sigue los pasos para añadir el secreto a la herramienta con ese nombre de variable.

from decimal import Decimal
import httpx
from pydantic import BaseModel, Field


class ConsultaProducto(BaseModel):
    sku: str = Field(min_length=1, description="Código del producto.")
    cantidad: int = Field(gt=0, description="Unidades solicitadas.")


def consultar_producto(sku: str, token: str) -> dict:
    respuesta = httpx.get(
        "https://api.example.com/productos",
        params={"sku": sku},
        headers={"Authorization": f"Bearer {token}"},
        timeout=15.0,
    )
    respuesta.raise_for_status()
    return respuesta.json()


def main(consulta: ConsultaProducto) -> dict:
    token = os.getenv("TOKEN_CATALOGO")
    if not token:
        return {"error": "Falta configurar el acceso al catálogo."}

    producto = consultar_producto(consulta.sku, token)
    stock = int(producto["stock"])

    if consulta.cantidad > stock:
        return {
            "disponible": False,
            "producto": producto["nombre"],
            "unidades_disponibles": stock,
            "unidades_faltantes": consulta.cantidad - stock,
        }

    total = Decimal(str(producto["precio"])) * consulta.cantidad
    return {
        "disponible": True,
        "producto": producto["nombre"],
        "cantidad": consulta.cantidad,
        "total": float(total),
    }
Situación
Qué recibe el agente
Se solicitan 5 unidades y hay 8 disponibles
Disponibilidad, cantidad solicitada y total
Se solicitan 10 unidades y hay 8 disponibles
Falta de disponibilidad, 8 unidades disponibles y 2 faltantes

Autoriza la IP de salida cuando el proveedor lo requiera

Las consultas a servicios externos utilizan la IP fija que muestra el formulario en IP de salida. Si tu proveedor requiere una lista de direcciones autorizadas, copia esa IP y compártela con quien administra el servicio.

Usa siempre la dirección que muestra Studio; no copies la IP de una captura de esta guía. Configura además los requisitos de autenticación de tu API.

‌

7. ▶️ Prueba la herramienta y revisa su respuesta

Abre Prueba la herramienta. El formulario se actualiza a partir de los argumentos de main y de los datos de conversación reconocidos en el código.

Si main() no recibe argumentos, puedes probarla sin completar datos de entrada. Si utiliza context, revisa también cómo simular los datos de la conversación.

Completa los valores de prueba

Opción
Qué ocurre en esa prueba
Indicar valor
Se utiliza el valor que escribas
Usar valor inicial
Se omite el campo y la función utiliza el valor definido en el código
Omitir
No se proporciona el campo, cuando su definición lo permite
Sin dato (None)
Se proporciona explícitamente None, si el tipo lo acepta

Usar valor inicial no cambia el código. Por ejemplo, si costo_envio tiene un valor inicial de 0, puedes probar otro costo con Indicar valor sin modificar ese valor inicial. Revisa la diferencia entre un valor inicial y un dato vacío si necesitas decidir cómo definirlo.

Ejecuta la cotización del ejemplo

  1. Utiliza el código de cotización de esta guía y completa los datos de prueba con estos valores:
Campo
Valor
precio_unitario
10000
cantidad
3
descuento
10
costo_envio
1500
  1. Si utilizas context, completa también Datos de conversación para esta prueba siguiendo los pasos para simular el contexto.
  1. Selecciona Probar herramienta y espera a que termine la ejecución.
  1. Revisa Así recibirá el agente la respuesta.

Con la función de esta guía, la respuesta será:

{
    "moneda": "CLP",
    "subtotal": 30000.0,
    "ahorro": 3000.0,
    "costo_envio": 1500.0,
    "total": 28500.0
}
ℹ️
Distingue la referencia del resultado real. Antes de ejecutar, la vista puede mostrar un Ejemplo o una Referencia basada en tu código. Después de una ejecución correcta, Resultado muestra lo que devolvió esa prueba.

Si cambias el código o los datos, vuelve a ejecutar para comprobar el nuevo resultado.

⚠️
La prueba ejecuta tu código y sus consultas reales. Si tu función crea registros, modifica datos o envía información a otro servicio, esas acciones también pueden ocurrir al probar. Utiliza un servicio o datos de prueba cuando corresponda.

Prueba también situaciones que deban rechazarse

Caso a revisar
Qué debes comprobar
Datos habituales
El cálculo y la información devuelta son correctos
Campos opcionales omitidos
Se utilizan los valores iniciales previstos
Valores fuera de rango
Se informa el problema; por ejemplo, una cantidad igual a cero
Datos de conversación ausentes
Tu código aplica la alternativa que definiste
Error o demora de una API
Puedes identificar qué consulta falló y revisar sus requisitos
Una condición de negocio no se cumple
La respuesta explica el motivo y permite orientar al cliente
‌

8. 💾 Guarda los cambios y prueba al agente

  1. Revisa el código, los datos de entrada, las referencias de secretos y las pruebas de la herramienta.
  1. Selecciona Guardar en borrador.
  1. En los componentes de comportamiento del bot, explica cuándo debe usar la herramienta y qué hacer con su respuesta.
  1. Abre el tester del bot y escribe una solicitud como la que haría un cliente.
  1. En la pestaña Debug, revisa la llamada, los argumentos, la respuesta y el tiempo de ejecución.
  1. Cuando termines de validar, sigue el proceso de publicación y versiones de tu bot.

Por ejemplo, puedes indicar al agente que utilice calcular_cotizacion para calcular cotizaciones y que solicite los datos que falten antes de hacerlo.

Mensaje de prueba para la conversación:

Quiero cotizar 3 unidades de un producto de $10.000 cada una.
Tengo un 10 % de descuento y el envío cuesta $1.500.
¿Cuánto pagaría en total?

Comprueba que el agente utilice la herramienta y responda con un total de $28.500.

Editar una herramienta y trabajar con versiones

Abre la herramienta guardada para modificarla en el mismo formulario. Guarda los cambios en el borrador y vuelve a probarla antes de publicar otra versión del bot.

ℹ️
El código queda congelado en cada versión del bot. Después de publicar esa versión, puedes modificar y probar el código en el borrador sin afectar el funcionamiento del bot publicado. Los cambios se aplican al bot en uso cuando creas y publicas una nueva versión.
🔐

Las referencias de secretos tienen su propio comportamiento. Aunque el código de una versión del bot quede fijo, una referencia activa o un alias puede apuntar después a otra versión del secreto. Elige una versión específica si necesitas conservar esa referencia concreta.

‌

🤖 Opcional: configura la herramienta con un asistente por MCP

Esta es una opción adicional. Puedes configurar la herramienta manualmente en Studio, sin utilizar Claude, Codex ni otra conexión MCP. Si prefieres que un asistente cree o edite la herramienta automáticamente siguiendo tus indicaciones, puedes conectarlo por MCP.

Describe la tarea, los datos que necesita, las reglas que debe aplicar y la respuesta que esperas. El asistente puede ayudarte a escribir el código y guardar la herramienta en el borrador del bot autorizado.

Conexión y permisos para usar un asistente

Para esta opción, sigue la guía Conectar Adereso MCP con Claude o Codex para conectar tu asistente. Si utilizas una API key, debe tener MCP habilitado y acceso al bot que quieres configurar.

Un administrador puede revisar los permisos de la API key en Desk, desde Admin. → Usuarios de API. Abre la clave con Editar y revisa Permisos → Studio, junto con el alcance de bots seleccionado.

Lo que quieres pedir
Permisos de Studio que necesitas
Identificador del permiso
Buscar bots y revisar su configuración
Consultar bots y versiones
studio.read
Crear una herramienta de código o leer y editar su código
Editar bots, con acceso al bot elegido
studio.edit
Probar el código desde el asistente
Editar bots y Ejecutar pruebas, para ese bot
studio.edit • studio.qa.run
Elegir un secreto y asociarlo, o editar código que utiliza secretos
Consultar secretos para elegirlo y Usar secretos en bots para utilizarlo en la configuración autorizada
studio.secrets.read • studio.secrets.use
Autorizar por primera vez el uso de un secreto en la herramienta
Administrar usos permitidos de secretos, además de los permisos de configuración que correspondan
studio.secrets.grants.edit
Publicar los cambios del bot
Publicar bots
studio.publish

Los permisos y el alcance deben cubrir la organización y el bot elegidos. Si el asistente no encuentra el bot o no puede modificarlo, pide al administrador que revise ambos.

🔒
Puedes preparar cambios sin conceder permiso para publicarlos. Para crear o editar una herramienta en el borrador necesitas Editar bots. Concede Publicar bots solo si quieres permitir que el asistente publique cambios.

Pide crear una herramienta

Indica el bot, el nombre de la herramienta, las reglas y dónde deben quedar los cambios. Por ejemplo:

En el borrador del bot «Asistente de ventas», crea una herramienta
llamada calcular_cotizacion.

Debe recibir precio unitario, cantidad, porcentaje de descuento y costo
de envío, en pesos chilenos. El precio y la cantidad deben ser mayores
que cero; el descuento debe estar entre 0 y 100 y el envío no puede
ser negativo. Si no se indican descuento o envío, usa cero.

Calcula el descuento sobre el subtotal de los productos y agrega
el envío después. Devuelve subtotal, ahorro, envío y total.
Describe claramente los campos y guarda la herramienta asociada al bot.
Al terminar, resume los cambios y déjalos en borrador, sin publicar.

También puedes adjuntar un código que ya tengas y pedir que lo revise y lo utilice para crear la herramienta.

Pide editar una herramienta existente

Explica qué comportamiento debe cambiar y qué debe conservarse:

En el borrador del bot «Asistente de ventas», revisa la herramienta
calcular_cotizacion. Agrega una validación para rechazar un costo
de envío mayor que el subtotal de los productos, con un mensaje
que permita entender qué dato revisar.

Conserva los demás cálculos y campos de la respuesta.
Guarda el cambio en la misma herramienta, déjalo sin publicar
y explícame qué modificaste.

Si la herramienta usa secretos, indica sus nombres y la versión o alias que quieres mantener. No pegues sus valores en la conversación: el asistente debe utilizar las referencias autorizadas de Studio.

Pide una prueba y comprueba el resultado

Con los permisos de prueba, puedes solicitar un caso concreto:

Prueba el código de calcular_cotizacion del borrador de
«Asistente de ventas» con un precio unitario de 10.000 pesos,
3 unidades, 10 % de descuento y 1.500 pesos de envío.

Comprueba que el total sea 28.500 pesos y muéstrame la respuesta.
No cambies el código ni publiques el bot.
ℹ️

Comprueba el contexto y los secretos desde Studio. La prueba directa de código por MCP utiliza el código y los argumentos indicados, sin recibir valores de secretos ni datos de una conversación. Para validar esos casos, utiliza Prueba la herramienta o el tester del bot en Studio.

Revisa lo que quedó guardado

  1. Pide al asistente un resumen de los cambios y la confirmación de que la herramienta quedó asociada al borrador del bot.
  1. Abre la herramienta en Studio y revisa el código, Datos de entrada y las referencias de secretos.
  1. Prueba un caso habitual y otro que deba rechazarse. Si usa contexto o secretos, valida también esos datos desde Studio.
  1. Revisa la interacción en el tester del bot antes de seguir el proceso de publicación.

El mismo borrador se puede seguir editando desde Studio. La ayuda del asistente complementa la configuración manual y las pruebas de la herramienta descritas en esta guía.

⏱️ Límites y recomendaciones de uso

  • Diseña cada herramienta para una tarea acotada y devuelve solo los datos útiles para el agente.
  • Una ejecución tiene un tiempo máximo de cinco minutos. También se aplican límites de cálculo, memoria y tamaño de respuesta; una tarea muy intensiva puede detenerse antes.
  • Define un tiempo de espera para las consultas a APIs y contempla respuestas incompletas o errores del proveedor.
  • Consulta Guía rápida → Librerías para conocer las opciones disponibles y revisa la versión de Python indicada en el editor.
  • No dependas de archivos locales o variables globales para conservar información entre ejecuciones.
  • No incluyas credenciales ni información innecesaria del cliente en las respuestas o mensajes de error.

🛠️ Solución de problemas

Qué observas
Qué revisar
El código señala un error de sintaxis
Revisa la línea indicada, la indentación y los signos de apertura y cierre
No puedes preparar la prueba o guardar
Confirma que existe main, que sus argumentos tienen tipo y que no quedan errores del código o de los secretos
Los campos de prueba no son los que esperabas
Revisa la firma de main, los modelos utilizados y cómo reconoce Studio los datos de entrada
No aparece el secreto en las sugerencias
Revisa cómo añadir el secreto y comprueba que su nombre de variable coincide con el código
La API rechaza la consulta
Revisa la URL, los parámetros, la referencia del secreto y la autorización de la IP de salida
Aparece No se pudo ejecutar
Lee el mensaje, revisa los datos y la consulta externa; corrige la causa antes de reintentar
La prueba tardó demasiado
Revisa los límites de ejecución, acota la tarea y define tiempos de espera para las consultas externas
El bot no usa la herramienta
Confirma que esté guardada, que esté disponible en la versión probada y que los componentes expliquen cuándo utilizarla

❓ Preguntas frecuentes

¿El agente escribe el código durante la conversación?

El bot que atiende la conversación ejecuta el código que quedó configurado: proporciona los argumentos que necesita la función y recibe su respuesta. Quien configura la herramienta puede escribir el código en Studio o pedir ayuda a un asistente conectado por MCP para prepararlo y guardarlo en el borrador.

¿Puedo utilizar varias funciones dentro de la herramienta?

Sí. Define main como punto de entrada y llama desde ahí a las funciones auxiliares que necesites. Esto permite separar consultas, validaciones y cálculos.

¿Por qué conviene usar Pydantic?

Permite agrupar campos, explicar su significado y definir tipos, opciones y límites. El agente recibe esa información para entregar los datos a la función. También ayuda a detectar valores que no cumplen lo definido.

¿Tengo que entregar el contacto o el ticket como argumentos?

Puedes utilizar los datos de la conversación disponibles en context sin agregarlos a main. En el tester de la herramienta puedes simular los datos reconocidos; en una conversación se utilizan los valores aportados por Studio.

¿Cambiar un dato del tester modifica al cliente o al ticket?

Los valores de Datos de conversación para esta prueba solo simulan el contexto. Sin embargo, si tu código hace una consulta que modifica un servicio externo, esa acción sí puede ejecutarse durante la prueba.

¿Qué pasa si falta un secreto?

Depende de cómo lo lea tu código. os.getenv permite comprobar si está ausente y devolver una respuesta controlada; os.environ produce un error si la variable no existe. Revisa la selección y los permisos del secreto antes de probar.

¿Qué ocurre si mi función falla?

El agente recibe una respuesta de error con información sobre el problema y puede continuar la conversación según sus instrucciones. En Prueba la herramienta se muestra el mensaje del fallo; revisa también las trazas al probar el bot.

¿La vista previa demuestra que el código ya se ejecutó?

Una vista con la etiqueta Ejemplo o Referencia es orientativa. Ejecuta Probar herramienta y revisa la etiqueta Resultado para comprobar una respuesta real.

¿Guardar en borrador cambia de inmediato el bot publicado?

Los cambios se guardan en el borrador. Valídalos y sigue el proceso de versiones y publicación del bot para llevarlos al uso previsto. El código de las versiones ya creadas se conserva; revisa cómo funciona el versionado del código.

📚 Recursos para seguir aprendiendo

  • Guía rápida, dentro del formulario: consulta ejemplos de datos simples, modelos y listas, además del catálogo de contexto, secretos y librerías.

Conversemos

¿Quieres incorporar una cotización, una validación o una consulta con reglas propias a tu agente? Conversemos sobre los datos y el resultado que necesita tu caso. Si tienes dificultades al configurarlo o probarlo, nuestro equipo de soporte puede orientarte.

¿Esto respondió tu pregunta?
😞
😐
🤩