Salix

Loops

Loop を使うと、エージェントは 24 時間バックグラウンドで作業できます。受信箱やリポジトリ、フィードを見守り、何かが変わったら動きます。Loop に常時稼働のサンドボックスは要りません。また、必要なとき以外はエージェントのメインループを起こしません。

Loop が動くしくみ

  1. エージェントが Loop を C のプログラムとして書きます。
  2. Salix のサーバーサイド eBPF ランタイムである Spinfoam が、そのプログラムを eBPF にコンパイルします。
  3. Salix が、クラスター上でエージェントのそばに Loop を配置します。

Spinfoam の JIT コンパイラーは形式的に検証されており、メモリ安全なコードを生成します。Loop のメモリ使用量は数キロバイトから数十キロバイトなので、エージェントは必要な間ずっと Loop を動かし続けられます。

大きなモデルを使わない判断

Loop は Jev のような高速な判断モデルを呼び出せます。これを使うと、Loop は外部のデータや状態を分類できます(たとえば、新しいメールにあなたの対応が必要かどうか)。大規模言語モデルを呼ぶ必要はありません。

エージェントの対応が必要なものを見つけると、Loop はエージェントに通知します。そのときに初めてエージェントのメインループが動き、モデルのトークンを使います。

Loop にできること

Loop が呼び出せるのは、決められた機能だけです。読み取りツール、デバイスと環境のツール、Web リクエスト、連携したアプリ、そして自分のエージェントへの通知です。Loop は作成した人の権限で動き、それを超えることはありません。

  • イベント:ほかのシステムは、API または Loop ごとの秘密の Webhook URL を通じて、Loop にイベントを送れます。
  • 状態:Loop はチェックポイントを保存し、再び起動したときにそれを受け取ります。
  • 制限:Loop が 10 分間にエージェントを起こせる回数には上限があります。上限に達したままの状態が 1 時間続くと、Loop は一時停止します。
  • 障害:障害が起きると、Salix はチェックポイントから Loop を再起動します。再起動は 1 時間に最大 3 回までです。それを超えると Loop は停止し、エージェントに知らせます。