Skip to main content
リファレンス

Loop コマンドリファレンス

/loop によるループ実行のパラメーター形式、間隔の単位、予算上限、既定値、およびキャンセル方法

/loop Qoder CLI を使用して、プロンプトまたはスラッシュコマンドを繰り返し実行できます。固定間隔での実行(内部では定期タスクシステムによって実装)と、Qoder 自身がペースを決める実行の 2 つがあります。本ページでは、パラメーター形式、間隔の変換、予算上限、およびキャンセル方法について説明します。ループ実行の使用方法については、タスクの繰り返し実行 を参照してください。

使い方

/loop [interval] [flags] <prompt>
  • [間隔](省略可):実行間隔。指定すると固定間隔モード、省略すると動的ペース配分モードになります。
  • [フラグ](省略可):永続化と予算上限。下表を参照してください。
  • <プロンプト>(必須):繰り返し実行するプロンプトテキストまたはスラッシュコマンド。スラッシュコマンドはそのまま渡されます。

2 つのモード

モード選択条件メカニズム
固定間隔入力に間隔が含まれる間隔が cron 式に変換され、定期タスクとして登録されます。
動的ペース配分入力に間隔が含まれない各実行の後、Qoder 自身が次の起動をスケジュールします。遅延は [60, 3600] 秒に制限されます。スケジュールしなければループは終了します。
特殊なケース:
  • 引数なしの /loop.qoder/loop.md が存在する場合、Qoder は動的ペース配分モードでそのタスクリストを繰り返し実行します。存在しない場合は使用方法のヒントが表示されます。
  • /loop 5m(間隔のみでプロンプトなし):使用方法のヒントが表示されます。
  • フラグのみでプロンプトなし(例:/loop --max-turns 3):Qoder は各イテレーションでプロジェクトの一般的なヘルスチェックを行います(動的ペース配分モード)。

フラグ

フラグ説明
--durableタスクをディスクに保存し、再起動後も維持します。自動失効はしません。
--durable <N>d日数タスクをディスクに保存し、N 日後に失効させます。
--permanent-p失効期限なしの --durable と同等です。
--max-turns <N>整数N 回実行したらループを停止します。
--max-credits <N>数値累計 N クレジットを消費したらループを停止します。小数も指定できます。
フラグの解析ルール:
  • 上限はスペース形式(--max-turns 6)とイコール形式(--max-turns=6)の両方に対応します。
  • フラグは入力内のどこに書いても構いません。間隔の解析より先に取り除かれるため、/loop --max-turns 5 10m check the deploy の間隔は 5 ではなく 10m と解釈されます。
  • 同じフラグが繰り返された場合は最初の値が採用され、すべての重複はプロンプトから削除されます。
  • --durable--permanent は固定間隔のループに適用されます。動的ペース配分のループは常に現在のセッションにのみ存在します。

間隔の単位

間隔は数値と単位を表すサフィックスで構成されます。
サフィックス単位説明
s最も近い分に切り上げます(最小粒度は 1 分)。
mN 分ごと。
h時間N 時間ごと。
dN 日ごと(ローカル時間の深夜 0 時にトリガー)。
最小粒度は 1 分です。秒単位の間隔は ceil(N/60) 分に切り上げられ、切り上げ時には通知が表示されます。

解析ルール

フラグを取り除いた後、/loop は以下の優先順位で残りの入力を解析します。
  1. 先頭のトークン:最初の単語が ^\d+[smhd]$(例:5m2h)に一致する場合、それを間隔とし、残りをプロンプトとします → 固定間隔モード。
  2. 末尾の every 句:該当しない場合、入力が every <N><単位> または every <N> <単位> で終わる場合(例:every 20mevery 5 minutes)、それを間隔として抽出し、プロンプトから削除します → 固定間隔モード。every の直後に時間表現が続く場合にのみ一致します。check every PR には間隔が含まれません。
  3. それ以外:間隔は含まれず、入力全体がプロンプトとなります → 動的ペース配分モード。

/loop 5m /babysit-prs          # Run /babysit-prs every 5 minutes
/loop 30m check the deploy     # Check the deployment every 30 minutes
/loop 1h /standup 1            # Run /standup 1 every hour
/loop run tests every 20m      # Run tests every 20 minutes
/loop monitor CI pipeline      # 動的ペース配分:Qoder がタイミングを決定
/loop --durable 30d 1h /standup 1        # ディスクに保存し、30 日後に失効
/loop --max-turns 6 10m check the deploy # 6 回実行したら停止

間隔から cron への変換

間隔パターンcron 式説明
Nm(N ≤ 59)*/N * * * *N 分ごと
Nm(N ≥ 60)0 */H * * *時間に変換(H = N/60、24 で割り切れる必要がある)
Nh(N ≤ 23)0 */N * * *N 時間ごと
Nd0 0 */N * *N 日ごとの深夜 0 時
Nsceil(N/60)m とみなすcron の最小粒度は 1 分
間隔が単位で割り切れない場合(例:7m は不均等な間隔を生成する、90m は cron で表現できない)、最も近い均等な間隔が選択され、タスク作成前に丸め結果が通知されます。

予算上限

上限は「到達したら停止する」値であり、「超えてよい」値ではありません。使用量が上限に達した時点でループは停止します。両方を指定した場合は先に到達した方が停止させ、同時に到達した場合は実行回数の上限がメッセージに表示されます。
上限カウント対象判定タイミング精度
--max-turnsタスクの全期間における実行回数各実行の前正確です。--max-turns 2 はちょうど 2 回トリガーされます。
--max-credits累計消費クレジット1 回の実行が計上された後最後の実行は上限を少し超えることがあります。実行中のものが打ち切られることはありません。
その他のルール:
  • 指定できるのは正の数のみです。スケジュール用ツールは 0 や負の数を黙って無視せずエラーとして拒否します。また既存のタスクファイルに非正の上限があった場合、読み込み時に破棄され、そのタスクは上限なしとして扱われます。
  • 実行回数は全期間の累計です。Qoder CLI を再起動してもリセットされません。
  • 上限への到達と失効は別のものです。上限に到達したタスクは削除され、再開はできません。続行するには新しいループを作成してください。
  • 上限に到達すると、あなたと Qoder の両方に通知されます。画面には Scheduled task <id> stopped: it used 2 of 2 turns.(動的ペース配分モードでは Loop stopped: it used 3 of 3 turns.)が表示され、Qoder はタスクを作り直すのではなく停止をそのまま報告するよう指示されます。

保存されるフィールド

永続化されたタスクでは、上限と使用量が他のフィールドとともに .qoder/scheduled_tasks.json に保存されます。
フィールド説明
fireCount全期間の実行回数。maxTurns と比較されます。
creditsUsed累計消費クレジット。値がない場合は未計測を意味し、0 とは異なります。
maxTurns実行回数の上限。値がなければ上限なしです。
maxCreditsクレジットの上限。値がなければ上限なしです。
これらのフィールドが存在する前に書き込まれたタスクファイルは上限なしとして扱われ、従来どおり動作します。

動的ペース配分モードの上限

動的ペース配分モードでは、上限と使用量はループが続く間メモリ上に保持されます。
  • 固定される:ループを開始する /loop でフラグを指定すれば、以降のすべての起動に適用されます。後続の起動でフラグを指定し直さなくても上限は解除されません。
  • 停止でリセット:ループを停止すると上限と使用量の両方がクリアされ、次の /loop は前のループの消費を引き継がずゼロから始まります。
  • 上限に到達すると保留中の起動はキャンセルされ、ループは再び起動しません。

ツールパラメーター

Qoder 自身がタスクをスケジュールする際にも同じ上限を指定できるため、自然言語で依頼することもできます(「5 回確認したら止めて」)。
ツールパラメーター
定期タスクの作成maxTurnsmaxCredits — 応答では Stops after N turns or M credits. の形で示されます。
動的ペース配分の起動maxTurnsmaxCredits — ループ全体に固定して適用されます。

パネルの操作

/crontab パネルでは:
  • USAGE 列は、上限が指定されている場合は 3/10 turns · 12.5/50 credits、指定されていない場合は 2 turns · 8.25 credits と表示します。消費が未計測の場合は、消費額の部分がダッシュになります(—/50 credits)。まだ実行されておらず上限もないタスクでは空欄になります。
  • タスクの詳細ページには Turns 3 / 10 (stops at the limit)Credits 12.5 / 50 (stops at the limit) が表示されます。
  • t キーで実行回数の上限、b キーでクレジットの上限を編集できます。空の値で上限を解除し、非正の値は受け付けられず、Esc でキャンセルします。

キャンセルと無効化

  • 既定ではセッション単位の定期タスクとして作成され、プロセス終了とともに停止します。
  • 定期タスクは作成後 7 日 で自動的に期限切れになります(--durable で失効なし、--durable <N>d で任意の期限を指定した場合を除く)。
  • 期限切れ前に、対応する定期タスクを手動で削除できます(エージェントに自然言語で削除を要求してタスク ID を提供する、または /crontab パネルから削除する)。
  • 動的ペース配分モードでは、Qoder に停止を指示するとループが終了し、保留中の起動もキャンセルされます。
  • ループタスクを作成すると、最初の cron トリガーを待たずに、現在のプロンプトが 即座に 1 回実行されます

次のステップ

Qoder CLI を使用する
Loop コマンドリファレンス - Qoder