Salix
Loops
Loop を使うと、エージェントは 24 時間バックグラウンドで作業できます。受信箱やリポジトリ、フィードを見守り、何かが変わったら動きます。Loop に常時稼働のサンドボックスは要りません。また、必要なとき以外はエージェントのメインループを起こしません。
Loop が動くしくみ
- エージェントが Loop を C のプログラムとして書きます。
- Salix のサーバーサイド eBPF ランタイムである Spinfoam が、そのプログラムを eBPF にコンパイルします。
- 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 は停止し、エージェントに知らせます。