synsema
ES Español

Humano en el circuito para agentes de IA — approve, confirm y ask son primitivas del lenguaje

Una compuerta que espera a una persona de verdad — en la terminal, o encolada detrás de enlaces de un solo uso cuando el programa corre como servidor — y que deniega cuando no hay nadie. Un agente no puede falsificar una aprobación.

Todos los frameworks de agentes tienen su historia de humano en el circuito: casi siempre un callback que cableás vos y del que esperás que pase por todos los caminos. En Synsema la compuerta es una sentencia del lenguaje, así que quien decide de dónde puede venir la respuesta es el runtime, no tu disciplina.

Cuatro palabras§

approve "Deploy to production?"                         -- yes/no gate
confirm "Send this email to 500 customers?"             -- confirmation
let env be ask "Which environment?" with ["staging", "prod"]
show plan as "What the agent is about to do"            -- preview for the human

let ok be approve "Refund " + text(amount) + " to " + customer + "?" within 1h
when not ok
    give nothing

within acota la espera (s, m, h, d). Al vencer, la compuerta devuelve false y lo dice una vez. Nunca se cuelga para siempre.

De dónde viene la respuesta§

  • Una terminal. Aparece la pregunta y el programa espera y/n.
  • Sin terminal — un pipe, CI, un agente manejando el programa: la compuerta **deniega al

instante**, con un aviso que le dice a un agente de IA que tiene que aprobar una persona. No hay variable de entorno que apruebe sola.

  • Bajo serve. La compuerta se encola; el pedido queda bloqueado hasta que alguien responde o

hasta que vence y deniega. La consola imprime un token de un solo uso y el comando listo para usar; GET /approvals lista lo pendiente y POST /approvals/{id} responde. Con SYNSEMA_HUMAN_WEBHOOK cada compuerta además avisa en tu canal con enlaces firmados de sí/no que podés tocar desde el teléfono.

Por qué una primitiva y no un callback§

Porque la propiedad que querés es negativa: no existe ningún camino donde la salida del propio modelo cuente como consentimiento. Con un callback eso es cierto hasta que alguien se olvida. Con una sentencia que implementa el intérprete, es cierto por construcción — igual que un fetch a un host no declarado se rechaza antes de que salga un solo byte.

Así aprueba Lampson el paso peligroso de una tarea programada desde tu teléfono, y así el agente de tickets de soporte de la portada no reembolsa nada sin una persona.

Miralo correr: la página de interacción humana de la documentación tiene todas las opciones, y en try.synsema.org podés escribir la compuerta y ver cómo te deniega en el navegador.