Salix

Loops

Mit einem Loop erledigt ein Agent Hintergrundarbeit rund um die Uhr: Er beobachtet ein Postfach, ein Repository oder einen Feed und handelt, wenn sich etwas ändert. Ein Loop braucht keine dauerhaft laufende Sandbox, und er weckt die Haupt-Schleife des Agenten nur, wenn es nötig ist.

So läuft ein Loop

  1. Der Agent schreibt den Loop als Programm in C.
  2. Spinfoam, die serverseitige eBPF-Runtime von Salix, kompiliert das Programm zu eBPF.
  3. Salix plant den Loop auf dem Cluster ein, neben seinem Agenten.

Der JIT-Compiler von Spinfoam ist formal verifiziert und erzeugt speichersicheren Code. Ein Loop braucht nur einige bis einige Dutzend Kilobyte Speicher, sodass ein Agent Loops so lange laufen lassen kann, wie er sie braucht.

Entscheidungen ohne großes Modell

Ein Loop kann schnelle Entscheidungsmodelle wie Jev aufrufen. Damit ordnet ein Loop externe Daten und Zustände ein (zum Beispiel, ob eine neue E-Mail dich braucht), ohne ein großes Sprachmodell aufzurufen.

Findet ein Loop etwas, das den Agenten braucht, benachrichtigt er den Agenten. Erst dann läuft die Haupt-Schleife des Agenten, und erst dann verbraucht sie Modell-Tokens.

Was ein Loop kann

Ein Loop kann nur eine feste Liste von Fähigkeiten aufrufen: Lese-Tools, Geräte- und Umgebungs-Tools, Web-Anfragen, deine verbundenen Apps und eine Benachrichtigung an seinen Agenten. Ein Loop handelt mit den Rechten der Person, die ihn erstellt hat, und mit keinen weiteren.

  • Ereignisse: Andere Systeme können einem Loop Ereignisse über die API oder über eine geheime Webhook-URL für diesen Loop senden.
  • Zustand: Ein Loop speichert einen Checkpoint und bekommt ihn zurück, wenn er neu startet.
  • Limits: Ein Loop kann seinen Agenten innerhalb von zehn Minuten nur begrenzt oft wecken. Ein Loop, der eine Stunde lang an diesem Limit bleibt, pausiert.
  • Fehler: Nach einem Fehler startet Salix den Loop von seinem Checkpoint aus neu, höchstens dreimal pro Stunde. Danach stoppt der Loop und benachrichtigt seinen Agenten.