Versiones y pruebas de agentes
Publicar le da al agente versiones numeradas. Así puedes cambiarlo sin tocar lo que usan tus contactos, probar el cambio, activarlo y volver atrás si lo necesitas.
Cómo funciona la publicación
Hasta la primera publicación, guardar un agente cambia lo que hace de inmediato. Después de publicar, guardar solo cambia su borrador, y tus contactos siguen hablando con la versión activa hasta que publiques de nuevo. Solo el nombre del agente y su Nivel del Registro cambian en cuanto guardas.
Para publicar, guarda tus cambios, abre la pestaña Versiones del agente y haz clic en Publicar. La nueva versión entra en funcionamiento con el siguiente mensaje. Publicar sin activar crea la versión y mantiene la actual en ejecución.
La pestaña Versiones avisa cuando el borrador guardado tiene cambios que no están activos y cuando cambió el valor de un encabezado. Los nuevos valores de encabezado no se usan hasta que publicas.
Publicar siempre publica el borrador guardado que tienes en pantalla. Si alguien guardó el agente después de que lo abriste, por ejemplo en otra pestaña del navegador o por la API, la publicación se detiene y carga el nuevo borrador, para que lo revises y publiques de nuevo.
En la app, solo los propietarios de la empresa pueden ver las versiones y las ejecuciones de prueba, publicar, volver atrás o ejecutar pruebas. Con el Asistente IA, solo los propietarios pueden publicar, volver atrás o ejecutar pruebas.
Volver atrás
Cada versión publicada queda en la pestaña Versiones. Las más antiguas están en Mostrar versiones anteriores. Haz clic en Activar en cualquiera de ellas, y los mensajes nuevos la usan de inmediato.
Esto restaura el agente y nada más. Los workflows, las plantillas y las variables quedan como están ahora, y los valores de encabezado de esa versión vuelven con ella, así que un token que hayas revocado después dejará de funcionar. Antes, AutoTalk comprueba las credenciales que usaría esa versión, como su clave del modelo o una clave en uno de sus pasos. Si una fue revocada, se niega y te pide que la ingreses de nuevo.
Las versiones conservan los valores de encabezado para que volver atrás funcione. Quedan ocultos cuando ves o comparas versiones. Si un secreto termina en una versión, revócalo en el proveedor.
Pruebas
La pestaña Pruebas guarda conversaciones con guion que se ejecutan en el agente real. Las pruebas son parte del borrador, así que guárdalas como cualquier otro cambio y haz clic en Ejecutar todas las pruebas. Las pruebas deben ser JSON válido para poder guardarlas.
Solo las personas pueden cambiar las pruebas, en la app, por MCP o por la API. Los pasos de workflow y las herramientas de agente no pueden, ni siquiera con un token que creen con Generar Token JWT, así que un agente no puede reescribir las pruebas con las que se le evalúa. Una clave de API que tú pongas en un paso sí puede cambiarlas, así que no pongas esas claves en los pasos.
[
{
"name": "cancels after hours",
"repeat": 2,
"clock": "2026-10-02T17:00:00-03:00",
"contact": {"name": "Test", "attributes": {"plan": "new"}},
"mocks": [
{"action": "actions/network/http/request/send", "tool": "register", "output": {"status": 202, "data": {"ok": true}}}
],
"turns": [
{
"user": "I need to cancel",
"expect": {
"replies": {"min": 1, "max": 1},
"reply_match": ["(?i)monday"],
"tools_required": [{"name": "register", "args": {"reason": "^cancel$"}}],
"effects": [{"action": "actions/messaging/contact/send", "min": 1, "match": ["(?i)cancellation"]}]
},
"expect_soft": {"reply_not_match": ["(?i)tomorrow"]}
}
]
}
]
| Campo | Qué hace |
|---|---|
name | Nombre único de la prueba |
repeat | Cuántas veces ejecutarla, hasta 5. Todas las ejecuciones deben pasar, porque las respuestas del modelo varían |
clock | La fecha y la hora que ve el agente durante esta prueba |
contact | El nombre y los atributos personalizados del contacto de prueba |
mocks | Respuestas para los pasos que no pueden ejecutarse de verdad en una prueba |
turns | La conversación: cada turno tiene user, o tap para tocar una opción del último menú |
expect | Lo que debe ser cierto después de ese turno |
expect_soft | Lo que debería ser cierto. Se informa y nunca hace fallar la prueba |
Qué puedes comprobar
| Comprobación | Pasa cuando |
|---|---|
replies | El número de mensajes enviados al contacto está entre min y max |
reply_match, reply_not_match | Las respuestas coinciden, o no, con estas expresiones regulares |
tools_required | Se llamó a estas herramientas, opcionalmente con argumentos que coinciden con una expresión regular |
tools_forbidden | No se llamó a estas herramientas |
menu | Se envió o no un menú |
paused | La conversación se pausó o no |
lost | El mensaje se ignoró o no |
effects | Un paso con efecto externo ocurrió entre min y max veces. match, each_match y not_match comprueban lo que habría enviado |
Cada turno también debe llegar al contacto, terminar sin errores, no enviar nada después de un menú y no mostrar texto interno de planificación. Si el silencio es lo correcto, usa "replies": {"max": 0} o "lost": true.
Una ejecución rechaza una prueba con una comprobación desconocida o un campo del tipo equivocado, así que un error de escritura no puede dejar de comprobar algo sin avisar.
Qué puede hacer una prueba
Nada llega a una persona real ni a un sistema externo:
- Los mensajes a cualquier otra persona se capturan, no se entregan.
- Las solicitudes HTTP nunca se envían. Dales un mock. Los resultados guardan solo una parte de la solicitud: el esquema y el host de la dirección, una primera parte corta de la ruta como
apiov1, y los nombres de sus valores de query. El resto de la ruta, los valores de la query y cualquier contraseña en la dirección quedan ocultos, igual que los valores del cuerpo con nombres comotoken,passwordoapiKey. Esto solo afecta a los resultados guardados: elwhendel mock yeffectscomprueban la solicitud tal como la envió el agente. - Las variables nunca se descifran: la prueba ve un valor sustituto.
- Una prueba solo ve sus propios contactos, conversaciones y mensajes: las búsquedas solo encuentran esos, y obtener los de otra persona hace fallar la prueba. Una prueba puede actualizar su propio contacto y su conversación, pero un cambio que los movería a otro canal o a otra persona necesita un mock y nunca se guarda.
- Cualquier otra cosa con efecto externo necesita un mock: crear o eliminar registros, ejecutar workflows, pasos de código, medios y monitores. Una prueba sin el mock necesario falla e indica el paso.
Ejecutar y leer resultados
Un agente ejecuta un conjunto de pruebas a la vez. Las ejecuciones de todas las empresas comparten los mismos workers y se turnan, así que una ejecución larga puede pausarse entre pruebas y continuar después. Cancelar detiene una ejecución en pocos segundos, incluso en medio de un turno. Una ejecución que no ha empezado, o que espera entre pruebas, se detiene de inmediato, y puedes iniciar otra enseguida.
Cada prueba muestra Aprobada, Fallida o No se pudo ejecutar. No se pudo ejecutar significa que AutoTalk nunca dejó responder al agente, por ejemplo por un límite, mantenimiento, una falla del proveedor del modelo, un turno que tardó demasiado o un ajuste de la empresa o del canal que hizo que AutoTalk ignorara el mensaje. No dice nada del agente, así que ejecuta la prueba de nuevo en lugar de cambiar el agente. Cada turno tiene un límite de tiempo (para un agente LLM, su propio límite de ejecución más unos dos minutos y medio), y cada ejecución de una prueba tiene como máximo 30 minutos.
Los resultados se guardan durante 90 días. Las respuestas y los valores muy largos se acortan en los resultados guardados, y una ejecución muy grande guarda solo el veredicto de sus últimas pruebas. Las comprobaciones siempre ven todo.
Costo
Las pruebas usan tokens reales, facturados como siempre. Una ejecución se detiene si alcanza su límite de tokens o el presupuesto de tu empresa, y la prueba en la que se detuvo muestra Sin presupuesto con el motivo. Una ejecución no empieza si tu empresa no tiene presupuesto o crédito. Los tokens de tus propias claves de proveedor también cuentan para el límite, igual que los tokens que una prueba gastó antes de ser interrumpida y ejecutada de nuevo.
Qué no se puede probar todavía
Los agentes Typebot, los agentes con servidores MCP y los agentes con un paso Conectar Servidor MCP, AutoTalk MCP Connect o Generar Token JWT todavía no se pueden probar. La pestaña Pruebas explica por qué. Sin pruebas, estos agentes se publican como no probados. Con pruebas, las pruebas no pueden ejecutarse, así que publicar requiere Publicar de todos modos.
Pruebas y publicación
Un agente con pruebas solo se puede publicar después de que una ejecución completa de todas sus pruebas pase en ese borrador exacto. Cualquier cambio en el borrador o en sus pruebas requiere una nueva ejecución. Cambiar una credencial no.
Si necesitas publicar de todos modos, el rechazo ofrece Publicar de todos modos, que pide un motivo. El motivo y quién publicó quedan en esa versión. Esto omite el requisito de pruebas y nada más: los errores de configuración, una credencial faltante o revocada y una credencial ingresada para otro endpoint siguen bloqueando la publicación.
Qué no cubren las pruebas
Una ejecución aprobada cubre el agente en sí. Los pasos con mock no se prueban, y los workflows y las plantillas pueden cambiar después de publicar, así que pruébalos por separado.
Usar la API o MCP
Estas son funciones de agents, que llamas con la herramienta MCP execute_function o con executeFunction de la API.
- Validar, publicar, volver atrás e iniciar o cancelar pruebas requieren
automation:admin.forcePublishrequiere lo mismo quepublish. - Leer versiones y ejecuciones de prueba requiere
data:readen la API. En MCP,execute_functionen sí requiereautomation:admin, así que leer allí requiereautomation:adminydata:read.
| Función | Qué hace |
|---|---|
validateDraft | Comprueba el borrador y devuelve el contentHash necesario para publicar, si se puede probar y qué pasos necesitan mocks |
publish | Publica, con expectedContentHash y opcionalmente activate: false |
forcePublish | Publica sin pruebas aprobadas, con expectedContentHash y reason |
setLiveRelease | Activa una versión, con releaseId y expectedLiveReleaseId |
listReleases, getRelease | Lee versiones. Los valores de encabezado quedan ocultos |
testDraft | Inicia una ejecución. only ejecuta algunas pruebas, pero solo una ejecución completa cuenta para publicar |
getTestRun, listTestRuns, cancelTestRun | Lee o detiene ejecuciones |
Los pasos de workflow y de agente no pueden llamar a estas funciones, y un token que un paso creó con Generar Token JWT no puede publicar, ejecutar pruebas ni cambiar pruebas. Así, un agente no puede publicarse ni probarse a sí mismo con una de sus propias herramientas. Una clave de API que tú pongas en un paso sigue funcionando con sus propios scopes, así que no pongas claves con automation:admin en los pasos.