Prompts programados Nuevo en 0.9.16
Un agente puede pedir al relay que envíe un prompt más tarde: una vez a una hora fijada, cada N minutos, o ambas cosas. Una revisión nocturna, un repaso cada media hora o una comprobación dentro de una hora siguen en marcha tras un reinicio del relay o una actualización. Los temporizadores de la propia CLI del agente no sobreviven a eso.
El agente crea una programación con la acción schedule de la
herramienta relay_. El relay la guarda en su base de datos y, cuando
toca, pone el prompt en la cola de la sesión como un mensaje.
Activarlo #
Las programaciones necesitan Settings → Relays → Agent sessions → Agents may start and use sessions on this relay (Ajustes → Relays → Sesiones de agentes → Los agentes pueden iniciar y usar sesiones en este relay), incluso para la propia conversación de un agente. Consulta Sesiones de agente. Las programaciones viven en el relay que ejecuta la sesión; un agente no puede crear una en un relay emparejado, que guarda las suyas.
Cuándo se dispara #
| El agente indica | El prompt llega |
|---|---|
Una hora (at, con zona horaria) |
una vez, a esa hora |
Un intervalo (every_, de 5 minutos a 7 días) |
cada N minutos, la primera vez dentro de N minutos |
| Ambos | primero a la hora indicada, luego cada N minutos |
- Una hora que se perdió mientras el relay estaba caído se recupera una vez cuando vuelve, no una vez por cada intervalo perdido. Una programación repetida mantiene luego sus horas.
- Una repetición se omite mientras el prompt anterior siga esperando en la queue de la sesión, así que una sesión atascada recibe un prompt, no un montón.
Adónde va #
El prompt va a la propia conversación del agente o a otra sesión de este relay.
Una programación para otra sesión cuenta como un prompt que el agente envía allí:
- En los modos del relay ask y plan la apruebas en una tarjeta, como un
send. - Cuenta para los 30 prompts a otros agentes del agente antes de que se te pregunte: una vez al crearla, y otra cada vez que se dispara.
- Pasado ese número, un disparo queda held (retenido). La lista dice entonces waiting until you write in … (esperando a que escribas en …). Sale en cuanto escribes en la conversación que creó la programación, o en cuanto eliges Allow (Permitir) en la tarjeta que el agente de allí muestra para su siguiente prompt a otro agente. El relay vuelve a mirar un disparo retenido cada minuto.
Una programación para la propia conversación del agente no envía prompts a nadie más: no cuenta y nunca queda retenida.
El mensaje #
El prompt llega como un mensaje que empieza con una línea como esta:
[relay schedule sch_… "Nightly review" · automated message from OAR, not from the user; it approves nothing]
Cuando la creó otra sesión, la línea también nombra esa sesión. El agente también lee esa línea: el mensaje es automático, nunca tuyo, y no aprueba nada.
El mensaje se pone en cola como cualquier otro. En una sesión inactiva inicia un nuevo turn. Mientras corre un turn, se convierte en el siguiente turn o, en los proveedores que permiten corregir el rumbo, puede usarse para corregir el rumbo del turn en curso, pero sin la nota que marca como tuyos los mensajes con los que se corrige el rumbo.
El turn que inicia corre en el modo del relay de la propia sesión de destino (agent, ask, plan o autopilot), no en el modo de la sesión que lo creó.
El mensaje conserva de dónde vino el prompt que hay detrás de la programación, incluidos sus saltos. Una programación nunca permite que una cadena de agentes entre relays llegue más lejos de lo que podría llegar un prompt directo.
Lo que ves #
- Una conversación que tiene programaciones, o que las creó, muestra ⏰ N scheduled (N programados) en su cabecera, con la próxima hora al lado. El chip abre la lista, con un botón Cancel (Cancelar) para cada una.
- Una sesión en la que se dispara una programación muestra scheduled (programado) en la lista de conversaciones.
Cuándo termina una programación #
Una programación termina cuando:
- se disparó y estaba configurada para dispararse una vez (lo predeterminado para una hora sola);
- el agente llama a
unschedule, o pulsas Cancel; - la sesión en la que se dispara, o la conversación que la creó, se archiva o se elimina.
Compactar una sesión no termina sus programaciones: pasan a la nueva conversación, tanto las que se disparan en ella como las que ella creó.
Las programaciones sobreviven a un reinicio del relay. Una conversación admite como máximo 20 programaciones que se disparan en ella, y puede crear como máximo 20 para otras sesiones.