Salix

Loop

Un Loop permette a un agente di lavorare in background 24/7: sorvegliare una casella di posta, un repository o un feed, e agire quando qualcosa cambia. Un Loop non ha bisogno di una sandbox sempre accesa, e non sveglia il loop principale dell'agente se non è necessario.

Come gira un Loop

  1. L'agente scrive il Loop come programma in C.
  2. Spinfoam, il runtime eBPF lato server di Salix, compila il programma in eBPF.
  3. Salix pianifica il Loop sul cluster, accanto al suo agente.

Il compilatore JIT di Spinfoam è verificato formalmente e genera codice sicuro per la memoria. Un Loop usa da pochi a qualche decina di kilobyte di memoria, quindi un agente può tenere attivi i suoi Loop per tutto il tempo che gli servono.

Decisioni senza un modello grande

Un Loop può chiamare modelli decisionali veloci, come Jev. Con questi, un Loop classifica dati e stati esterni (ad esempio, se una nuova email richiede la tua attenzione) senza chiamare un modello linguistico di grandi dimensioni.

Quando un Loop trova qualcosa che richiede l'intervento dell'agente, lo avvisa. Solo allora gira il loop principale dell'agente, e solo allora consuma token di modello.

Cosa può fare un Loop

Un Loop può chiamare solo un elenco fisso di capacità: strumenti di lettura, strumenti per dispositivo e ambiente, richieste web, le tue app collegate e una notifica al suo agente. Un Loop agisce con l'autorità della persona che lo ha creato, e niente di più.

  • Eventi: altri sistemi possono inviare eventi a un Loop tramite l'API o tramite un URL webhook segreto per quel Loop.
  • Stato: un Loop salva un checkpoint e lo recupera quando riparte.
  • Limiti: un Loop può svegliare il suo agente un numero limitato di volte in dieci minuti. Un Loop che resta a quel limite per un'ora va in pausa.
  • Errori: dopo un guasto, Salix riavvia il Loop dal suo checkpoint, al massimo tre volte all'ora. Dopodiché il Loop si ferma e avvisa il suo agente.