---
title: "Loops · Comma ドキュメント"
description: "Spinfoam が eBPF にコンパイルする、常時稼働のバックグラウンド作業。"
url: https://comma.surf/ja/docs/salix/loops
language: ja
---

Salix

# Loops

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

## Loop が動くしくみ

1. エージェントが Loop を C のプログラムとして書きます。
2. Salix のサーバーサイド eBPF ランタイムである [Spinfoam](https://github.com/AFK-surf/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 は停止し、エージェントに知らせます。
