Salix

Loops

En Loop lar en agent gjøre bakgrunnsarbeid 24/7: følge med på en innboks, et repo eller en feed, og handle når noe endrer seg. En Loop trenger ingen sandkasse som alltid er på, og den vekker ikke hovedløkken til agenten med mindre den må.

Slik kjører en Loop

  1. Agenten skriver Loopen som et program i C.
  2. Spinfoam, eBPF-kjøremiljøet på serversiden i Salix, kompilerer programmet til eBPF.
  3. Salix planlegger Loopen på klyngen, ved siden av agenten.

JIT-kompilatoren i Spinfoam er formelt verifisert, og den genererer minnesikker kode. En Loop bruker fra noen få til noen titalls kilobyte minne, så en agent kan holde Loops i gang så lenge den trenger dem.

Avgjørelser uten en stor modell

En Loop kan kalle raske beslutningsmodeller, for eksempel Jev. Med dem klassifiserer en Loop eksterne data og tilstand (for eksempel om en ny e-post trenger deg) uten å kalle en stor språkmodell.

Når en Loop finner noe som trenger agenten, varsler den agenten. Først da kjører hovedløkken til agenten, og først da bruker den modelltokens.

Dette kan en Loop gjøre

En Loop kan bare kalle en fast liste med funksjoner: leseverktøy, enhets- og miljøverktøy, nettforespørsler, appene du har koblet til, og et varsel til agenten sin. En Loop handler med myndigheten til personen som opprettet den, og ikke noe mer.

  • Hendelser: andre systemer kan sende hendelser til en Loop gjennom API-et eller gjennom en hemmelig webhook-URL for den Loopen.
  • Tilstand: en Loop lagrer et sjekkpunkt, og får det tilbake når den starter igjen.
  • Grenser: en Loop kan vekke agenten sin et begrenset antall ganger per ti minutter. En Loop som ligger på den grensen i en time, settes på pause.
  • Feil: etter en feil starter Salix Loopen igjen fra sjekkpunktet, høyst tre ganger i timen. Etter det stopper Loopen og sier fra til agenten sin.