Salix

Loops

Med et Loop kan en agent arbejde i baggrunden døgnet rundt: holde øje med en indbakke, et repository eller et feed og handle, når noget ændrer sig. Et Loop kræver ingen sandkasse, der altid kører, og det vækker kun agentens hovedløkke, når det er nødvendigt.

Sådan kører et Loop

  1. Agenten skriver Loopet som et program i C.
  2. Spinfoam, Salix' eBPF-runtime på serversiden, kompilerer programmet til eBPF.
  3. Salix placerer Loopet i klyngen, ved siden af dets agent.

Spinfoams JIT-compiler er formelt verificeret og genererer hukommelsessikker kode. Et Loop bruger fra nogle få til et par dusin kilobyte hukommelse, så en agent kan lade Loops køre, så længe den har brug for dem.

Beslutninger uden en stor model

Et Loop kan kalde hurtige beslutningsmodeller som Jev. Med dem klassificerer et Loop eksterne data og tilstande (fx om en ny e-mail kræver dig) uden at kalde en stor sprogmodel.

Når et Loop finder noget, der kræver agenten, giver det agenten besked. Først da kører agentens hovedløkke, og først da bruger den modeltokens.

Hvad et Loop kan

Et Loop kan kun kalde en fast liste over funktioner: læseværktøjer, enheds- og miljøværktøjer, webforespørgsler, dine forbundne apps og en besked til sin agent. Et Loop handler med rettighederne fra den person, der oprettede det, og intet mere.

  • Hændelser: andre systemer kan sende hændelser til et Loop via API'et eller via en hemmelig webhook-URL til det pågældende Loop.
  • Tilstand: et Loop gemmer et checkpoint og får det tilbage, når det starter igen.
  • Grænser: et Loop kan kun vække sin agent et begrænset antal gange på ti minutter. Et Loop, der ligger på grænsen i en time, sættes på pause.
  • Fejl: efter en fejl starter Salix Loopet igen fra dets checkpoint, højst tre gange i timen. Derefter stopper Loopet og giver sin agent besked.