このページは英語版ドキュメントの翻訳です。コマンド、識別子、例はそのままです。ランタイム 7.24.4 · SDK 2.6.7。 英語版
ループモードとスケジュールタスク
ステータス: 現行 対象範囲: 現在の状態 最終確認: 2026-08-27 所有者: ax-code runtime
AX Code には、組み合わせられる自動化の基本要素が 3 つあります。
| 基本要素 | 何か | 寿命 |
|---|---|---|
/goal |
セッションが追い続ける永続的な目的。文書化された計画、予算、検証の関門を持つ | セッションごとに永続 |
/loop |
セッションがアイドルのあいだ、固定間隔でプロンプトを再実行するハートビート | このバックエンドプロセス |
| スケジュールタスク | エージェントが会話で設定できる、永続的な 1 回限りまたは繰り返しの実行(「平日の 9 時に…」) | プロジェクトデータベースに永続 |
/loop — 繰り返すプロンプト
/loop <interval> <prompt> start (interval like 30s, 5m, 1h)
/loop status show runs, busy-skips, and the prompt
/loop stop stop the loop
例:
/loop 5m check CI for new failures and fix any you find
/loop 30m drain the review queue
規則:
- 間隔の範囲は 30 秒から 24 時間です。セッションあたりループは 1 つで、新しいものを始めると古いものが置き換わります。
- セッションが忙しいあいだに発火したティックは スキップされて数えられ、キューには入りません。ループがターンを積み上げることはありません。
- すべてのティックは通常のプロンプトターンです。権限、質問、自律の上限、完了の関門がすべて適用されます。自律がオフのとき、ティックは最初の権限プロンプトで単に待機します。
- ループあたり 500 回という硬い上限があり、その後ループは通知付きで自ら停止します。
- ループはバックエンドプロセスの中だけにあり、再起動を生き延びません。永続するスケジュールには、下記のスケジュールタスクを使います。
/goal と /loop を組にする
/goal が目的を所有します(「すべてのテストが成功し、未解決のレビュー所見がない」)。/loop が確認を続けるハートビートを提供します。先にゴールを作ると、専用の計画ライターが走り、レビューできる契約を .ax-code/goals/ の下に保存します(プロジェクトが git の worktree でないときは AX のデータディレクトリ)。計画が失敗するとゴールは一時停止のままです。/goal resume が再試行します。このゴールの差分を測る Git 範囲の検査は、計画時点の HEAD({BASELINE})を使い、目的がそのリモートを名指ししない限り origin/main は使いません。ゴールの完了は引き続き検証が関門です。エージェントは、合格した検証実行なしに、編集後のゴールを完了と印付けできません。計画があるときは、すべての受け入れ基準について証拠も供給しなければなりません。
/goal keep main green: fix any CI failure the loop finds
/loop 10m check CI status and act on failures
ゴール保証はオプトインです
/goal <objective> は直ちに開始します。凍結された受け入れ契約は付かないため、完了はエージェントが保つ作業計画(未完了の todo)と、最後の変更後の合格した検証によって判断されます。/goal view(およびゴールダイアログの「ゴールの詳細を表示」)は、その旨を明示します。「保証契約なし」と示すため、状態を推測する必要はありません。
/goal --assure <objective> は先に計画ライターを走らせ、受け入れ基準、ソース参照、実行可能な検査を凍結します。完了にはその後、必須の各検査について現在の成功した受領も必要です(verify_project。その ID は goalCheck)。ゴールの「完了」を、説明ではなく証明可能にしなければならないときに使います。
--assure は、予算フラグとどちらの順でも組み合わせられます(/goal --assure --budget 500000 <objective>)。/goal replace <objective> は、置き換えられるゴールが有効な契約を持つとき保証を保つため、置き換えが、すでに保証されていたゴールを黙って弱めることはありません。
ゴールの予算と上限
アクティブなゴールは、実行ごとの自動継続の上限(session.max_continuations)を持ち上げます。実行は、ゴールが完了、阻害、一時停止、または予算制限になるまで続きます。代わりに何が境界になるかは次のとおりです。
- トークン予算(
/goal --budget N …): 使い切ると、エージェントはまとめのターンを 1 回受け、その後ゴールはbudget_limitedになります。 - 時間予算(
/goal --time-budget 30m …): 秒、分(m)、または時間(h)の壁時計上限で、トークン予算とどちらの順でも組み合わせられます。トークン予算が見えない経過作業、つまりリモートの学習ジョブ、長いツール呼び出し、プロバイダーの停滞を境界づけます。発火したときは、同じまとめのターンとbudget_limitedへの遷移が適用されます。 - 累積ステップ上限: アクティブなゴールの実行は、合計ステップ
max_steps × 40(既定 20,000)という Super-Long の歯止めを共有します。通常の自律上限max_steps × (max_continuations + 1)ではありません。session.max_total_stepsで上書きします。 - ドゥームループ検出、影響範囲の上限、ツールだけのターンの遮断は、全体を通じて引き続き適用されます。
ゴール CLI(ヘッドレス)
同じゴール制御は、TUI の外で ax-code goal の下にあります。
ax-code goal status [--json]— 現在のゴールを表示します(-s/--sessionでセッションを選びます。既定はプロジェクトの再開可能な単一ゴールで、選択が曖昧になるときはエラーになります)。ax-code goal pause/ax-code goal clear— 一時停止または消去します。ax-code goal resume— ゴールを再開し、落ち着くまでヘッドレスで進めます。--attachがないときはプロセス内でプロジェクトを起動します。--attach http://localhost:4111があるときは、稼働中のサーバーを進めます。終了コードはヘッドレスゴールの契約に従います。0は完了、3は阻害、4は予算制限、6は一時停止または非終端、1はセッションエラー、124はアイドルタイムアウト(--idle-timeout-ms、既定 10 分)です。イベントは JSONL として標準出力へ流れ(--event-log PATHも記録します)、最後のGoal <status>: <objective>行は標準エラーへ行きます。
ゴール実行がステップ上限に近づくと、エージェントは 1 回限りの収束警告を受け、ゴールを検証して完了するか、きれいな引き継ぎを残すよう求められます。それでも上限に達した場合、ゴールは失敗ではなく 一時停止 され、/goal resume で再び拾えます(余白が必要なら先に session.max_total_steps を上げます)。
スケジュールタスク — 永続し、会話で設定する
エージェントに直接頼んでください。エージェントは schedule_task、list_scheduled_tasks、manage_scheduled_task のツールを使います。
- 「14:30 にデプロイを確認するよう知らせて。」
- 「平日の午前 9 時に、新しい CI の失敗を要約して。」
- 「スケジュールタスクを一覧して。」 / 「CI 要約タスクを一時停止して。」
エージェントが作る、または管理するスケジュール変更は、schedule 権限を要求します。読み取り専用の実行は、スケジュールを変更したり起動したりできません。無人のヘッドレス作成には、明示的な ax-code schedule コマンドを使うか、エージェントに明示的な schedule 権限付与を設定してください。広いワイルドカード付与は、スケジュール変更を認可しません。
同じタスクは、TUI を開かずにシェルから管理できます。
ax-code schedule list # status, next run, schedule, id, title
ax-code schedule show <id> # details plus the five most recent runs
ax-code schedule runs <id> # run history: fired, failed, skipped and why
ax-code schedule pause|resume <id>
ax-code schedule delete <id>
ax-code schedule run <id> # trigger now; requires a live runtime
pause/resume/delete は、管理されたランタイムが動いているときはそれを通り(即時に効き、ライブの TUI が更新されます)、そうでなければプロジェクトデータベースへ直接書き込みます。run にはライブのバックエンドが必要です。ax-code runtime start で 1 つ起動してください。ワンショットの CLI プロセスが、終えられない作業を引き受けてはならないためです。すべての読み取りサブコマンドは --json を受け付けます。
スケジュールは、1 回限りの実行、日次または週次の時刻、5 フィールドの cron 式をサポートし、それぞれに任意の IANA タイムゾーンを付けられます。タスクはプロジェクトデータベースに永続し、そのプロジェクトの AX Code バックエンドが動いているあいだ発火します(スケジューラの走査は 60 秒、原子的な引き取りにより、バックエンドが複数開いていてもタスクは 1 回だけ発火します)。スケジュールの進行と永続キューへの挿入は 1 つのデータベーストランザクションを共有するため、クラッシュが発生を進めたのに回復すべき作業を残さない、ということは起きません。
ax-code run や ax-code stats のようなワンショットコマンドは、期限到来のタスクを引き取りません。それらを配送するには、ax-code runtime start で永続バックエンドを起動します。
逃した発生の既定は catchUpPolicy: "run_once" です。停止時間のあと、AX Code は積み残しを 1 回の実行へまとめます。古い作業を実行せずに進めたいときは "skip" を使います。タスクは maxRunDurationMs を 1 秒から 72 時間の範囲で設定することもできます。時間切れの実行は取り消され、失敗として記録されます。
プロセスやホストの再起動をまたいで運用するには、バックエンドを監視の下で動かします。systemd、launchd、PM2 の例と正確な回復の意味は 長時間の運用 を参照してください。
長い無人実行
複数時間の自律セッションでは、Super-Long モードが実行期限(最大 72 時間)、要求のペース調整、コンパクションの調整を追加します。長いエージェント作業をサポートすると宣言された能力を持つモデルでは自動で有効になります(Alibaba ルート上の Qwen 3.7 以降の Max/Plus や、z.ai ルート上の GLM 5.x のような、100 万コンテキストの推論モデル)。セッションごと、プロジェクトごと、または AX_CODE_SUPER_LONG で強制することもできます。実行の関与は記録されます(super-long run engaged)。プロバイダーのペース調整は、実行開始からの猶予窓のあとでしか始まりません(既定 2 時間、super_long.pacing_grace_minutes)。これにより、エージェント実行の生産的な初期段階はツール呼び出しのスループットを満杯に保ち、マラソンの後半はモデルが宣言したレート制限の階層に従ってペース調整されます。