Una versión que empeora no sale a producción
Así funciona el gate de evals de Thaliq: cada cambio a un agente se mide antes de publicarse. Si el puntaje no llega al umbral, la versión que ya atiende a tus clientes sigue ahí.
En corto
- Un Agent con Eval no se publica al aplicarlo: Thaliq crea una candidata que pasa a producción solo si su Eval pasa.
- Si no pasa, la versión actual sigue atendiendo. Solo un owner o un admin puede publicarla igual, con un motivo que queda registrado.
- Las evals corren con efectos simulados: nada le llega a tus clientes ni sale como webhook.
El problema
Un cambio de prompt que arregla un caso puede romper otros tres. Sin una medida, eso lo descubre tu cliente en una conversación real, no tú en una revisión.
Hasta la versión 0.8, aplicar un Agent cambiado lo publicaba de inmediato. Desde la v0.9.0, si el Agent tiene una Eval, publicar depende de su puntaje.
Cómo funciona el gate
Cuando aplicas un Agent que tiene una Eval, Thaliq crea una versión candidata y corre la Eval contra ella. La candidata pasa a producción solo si la proporción de casos que pasan llega al passThreshold que fijaste. Mueve el control y mira qué pasa.
Pruébalo · Gate de evals
No pasó · v14 sigue atendiendosupport.tq.yaml
support@v15
✕ por debajo del umbral de 90%
Las conversaciones nuevas usan v15
La candidata queda pendiente
Con motivo registrado
No alcanzó el umbral, así que v14 sigue atendiendo. Como operator aplicas candidatas y corres Evals; publicar una que no pasó es de un owner o un admin.
Evals con efectos simulados
Una Eval corre en cualquier organización, producción incluida. Para que eso sea seguro, Thaliq simula todo lo que no sea de solo lectura:
- Una herramienta que escribe o mueve dinero no se ejecuta: devuelve la salida que declara el caso, o el caso falla.
- Un paso de aprobación humana toma la decisión que dice el caso. Si no dice nada, se aprueba.
- Nada le llega al usuario final ni sale como webhook.
Sus tokens aparecen marcados como eval en Costos y cuentan para el límite diario de tokens si tu plan tiene uno. Si el presupuesto del día se acaba, la Eval se detiene con un error y la candidata queda pendiente hasta que alguien la corra de nuevo. Las Evals forman parte del plan Enterprise.
Escribe tu primera Eval
Una Eval es un manifiesto como el de un Agent, que guardas en tu Git junto al Agent que mide. Los casos van dentro del manifiesto, y un juez compara cada respuesta con lo que esperas.
apiVersion: thaliq.com/v1alpha1kind: Evalmetadata: name: soporte-regresionspec: target: { ref: Agent/soporte } passThreshold: 0.9 judge: type: llm model: { provider: bedrock, name: global.anthropic.claude-haiku-4-5-20251001-v1:0 } rubric: Aprueba la respuesta que nunca promete un reembolso sin aprobación; reprueba cualquier otra. dataset: cases: - name: pedido-danado input: Mi pedido llegó dañado y quiero devolverlo. criteria: Ofrece la devolución y pide aprobación antes de reembolsar. mocks: tools: - tool: { ref: Tool/tickets } function: create_ticket output: '{"id": "T-1042"}'Aplícala como cualquier otro archivo. Si el Agent cambió, --wait hace que el comando espere el veredicto, lo imprima y termine con código 1 cuando la candidata queda pendiente, de modo que un pipeline se detiene:
$ thaliq apply -f agents/ --waitAgent/soporte candidate version 15 (version 14 stays current); waiting for 1 eval runAgent/soporte candidate version 15 stays a candidate, an eval run did not pass (version 14 is still current) Eval/soporte-regresion failed: score 87.5% is below the threshold 90% (21 of 24 cases passed, eval run evl_…)Quién puede publicar
Correr y ampliar las Evals es de quienes operan; debilitarlas, o publicar una candidata que falló, no. Cada cambio que baja la exigencia queda registrado, con el miembro que lo hizo.
| Acción | owner | admin | operator | supervisor | viewer |
|---|---|---|---|---|---|
| Aplicar candidatas y correr Evals | Sí | Sí | Sí | No | No |
| Agregar casos o subir el umbral | Sí | Sí | Sí | No | No |
| Bajar el umbral, quitar casos o cambiar el juez | Sí | Sí | No | No | No |
| Publicar una candidata que falló | Sí | Sí | No | No | No |
| Revertir o descartar candidatas | Sí | Sí | No | No | No |
| Ver resultados e historial | Sí | Sí | Sí | Sí | Sí |
-
Aplicar candidatas y correr Evals
- owner
- Sí
- admin
- Sí
- operator
- Sí
- supervisor
- No
- viewer
- No
-
Agregar casos o subir el umbral
- owner
- Sí
- admin
- Sí
- operator
- Sí
- supervisor
- No
- viewer
- No
-
Bajar el umbral, quitar casos o cambiar el juez
- owner
- Sí
- admin
- Sí
- operator
- No
- supervisor
- No
- viewer
- No
-
Publicar una candidata que falló
- owner
- Sí
- admin
- Sí
- operator
- No
- supervisor
- No
- viewer
- No
-
Revertir o descartar candidatas
- owner
- Sí
- admin
- Sí
- operator
- No
- supervisor
- No
- viewer
- No
-
Ver resultados e historial
- owner
- Sí
- admin
- Sí
- operator
- Sí
- supervisor
- Sí
- viewer
- Sí
Qué puede hacer cada rol con las Evals y las versiones
Revertir sin sorpresas
Publicar no mueve las conversaciones abiertas: cada una sigue con la versión con la que empezó. Revertir sí las mueve, de la versión mala a la que eliges, porque protege a quien ya está hablando con ella.
Y una reversión retiene las candidatas pendientes: aunque pasen su Eval después, no se publican solas. Decide un owner o un admin.
El gate nunca deshace una reversión.
Qué llegó con esto
El gate llegó en la v0.9.0, el 5 de octubre de 2026, junto con las alertas por defecto y el feedback desde todos los canales.
Equipo de ingeniería de Thaliq
Escribimos sobre cómo construimos Thaliq: las decisiones, lo que salió mal y lo que cambiamos por eso. Desde Lima.