Skip to Content
ユーザーガイド機能スケジュールタスク

プロンプトをスケジュール実行する

/loop と cron スケジューリングツールを使用して、Qwen Code セッション内でプロンプトを繰り返し実行したり、ステータスをポーリングしたり、1回限りのリマインダーを設定したりできます。

スケジュールタスクを使用すると、Qwen Code が指定した間隔でプロンプトを自動的に再実行します。デプロイのステータスをポーリングしたり、PR の進行状況を確認したり、長時間実行されるビルドの進捗を定期的にチェックしたり、セッションの後半で何かを実行するよう自分にリマインダーを設定したりするのに役立ちます。

タスクはセッションスコープです。現在の Qwen Code プロセス内で有効であり、セッションを終了すると削除されます。ディスクへの書き込みは一切行われません。

Note: スケジュールタスクは実験的な機能です。設定experimental.cron: true を有効にするか、環境変数に QWEN_CODE_ENABLE_CRON=1 を設定して有効化してください。

/loop で定期的なプロンプトをスケジュールする

/loop バンドルスキル は、定期的なプロンプトをスケジュールする最も簡単な方法です。任意の間隔とプロンプトを渡すと、Qwen Code がセッションが開いている間バックグラウンドで実行される cron ジョブを設定します。

/loop 5m check if the deployment finished and tell me what happened

Qwen Code は間隔を解析して cron 式に変換し、ジョブをスケジュールして、実行間隔とジョブ ID を確認します。その後、プロンプトをすぐに 1 回実行します。最初の cron 実行を待つ必要はありません。

間隔の構文

間隔は省略可能です。先頭に指定することも、末尾に指定することも、完全に省略することもできます。

形式解析される間隔
先頭トークン/loop 30m check the build30 分ごと
末尾の every/loop check the build every 2 hours2 時間ごと
間隔なし/loop check the buildデフォルトで 10 分ごと

サポートされている単位は、秒が s、分が m、時間が h、日が d です。cron は 1 分単位の粒度であるため、秒は最も近い分に切り上げられます。7m90m のように単位で割り切れない間隔は、最も近いきれいな間隔に丸められ、Qwen Code が選択した値を通知します。

他のコマンドをループ実行する

スケジュールされたプロンプト自体をコマンドやスキルの呼び出しにすることもできます。これは、すでにパッケージ化したワークフローを再実行する場合に便利です。

/loop 20m /review-pr 1234

ジョブが実行されるたびに、Qwen Code は /review-pr 1234 を手動で入力したかのように実行します。

ループの管理

/loop には、既存のジョブを管理するための 2 つのサブコマンドも用意されています。

/loop list

スケジュールされたすべてのジョブを、ID と cron 式とともに一覧表示します。

/loop clear

スケジュールされたすべてのジョブを一度にキャンセルします。

1回限りのリマインダーを設定する

1回限りのリマインダーの場合は、/loop を使う代わりに、自然言語で希望を記述します。Qwen Code は、実行後に自身を削除する単発タスクをスケジュールします。

remind me at 3pm to push the release branch
in 45 minutes, check whether the integration tests passed

Qwen Code は cron 式を使用して実行時刻を特定の分と時間に固定し、実行予定時刻を確認します。

スケジュールタスクの管理

自然言語で Qwen Code にタスクの一覧表示やキャンセルを依頼するか、基盤となるツールを直接参照してください。

what scheduled tasks do I have?
cancel the deploy check job

内部では、Qwen Code は以下のツールを使用します。

ツール目的
CronCreate新しいタスクをスケジュールします。5フィールドの cron 式、実行するプロンプト、および繰り返し実行か単発実行かを指定します。
CronListスケジュールされたすべてのタスクを、ID、スケジュール、プロンプトとともに一覧表示します。
CronDeleteID を指定してタスクをキャンセルします。

各スケジュールタスクには 8 文字の ID が割り当てられており、これを CronDelete に渡すことができます。1 つのセッションで同時に保持できるスケジュールタスクは最大 50 個です。

スケジュールタスクの実行方法

スケジューラは毎秒実行予定のタスクをチェックし、セッションがアイドル状態のときにキューに追加します。スケジュールされたプロンプトは、Qwen Code が応答生成中の間ではなく、ユーザーの操作の合間に実行されます。タスクの実行時刻になっても Qwen Code がビジー状態の場合、プロンプトは現在のターンが終了するまで待機します。

すべての時刻はローカルタイムゾーンとして解釈されます。0 9 * * * のような cron 式は UTC ではなく、Qwen Code を実行している環境の午前 9 時を意味します。

ジッター

すべてのセッションが同じ実際の時刻に API にアクセスするのを防ぐため、スケジューラは実行時刻に小さな決定論的オフセットを追加します。

  • 定期タスクは、期間の最大 10%(最大 15 分)遅れて実行されます。1 時間ごとのジョブは、:00 から :06 の間の任意の時刻に実行される可能性があります。
  • 単発タスクで、時刻の切り上げまたは切り下げ(分が :00 または :30)にスケジュールされたものは、最大 90 秒早く実行されます。

オフセットはタスク ID から導出されるため、同じタスクは常に同じオフセットが適用されます。正確な実行時刻が重要な場合は、:00:30 以外の分を指定してください(例:0 9 * * * の代わりに 3 9 * * *)。これにより、単発タスクのジッターは適用されなくなります。

3 日間の有効期限

定期タスクは作成から 3 日後に自動的に期限切れになります。タスクは最後に 1 回実行された後、自身を削除します。これにより、忘れられたループが実行され続ける期間に上限が設けられます。定期タスクをより長く実行する必要がある場合は、期限切れになる前にキャンセルして再作成してください。

単発タスクはタイマーによる期限切れはありません。1 回実行された後に自身を削除するだけです。

cron 式リファレンス

CronCreate は標準的な 5 フィールドの cron 式(分 時 日 月 曜日)を受け付けます。すべてのフィールドで、ワイルドカード(*)、単一値(5)、ステップ(*/15)、範囲(1-5)、カンマ区切りリスト(1,15,30)がサポートされています。

意味
*/5 * * * *5 分ごと
0 * * * *毎時 0 分(1 時間ごと)
7 * * * *毎時 7 分
0 9 * * *毎日ローカル時刻の午前 9 時
0 9 * * 1-5平日のローカル時刻午前 9 時
30 14 15 3 *3 月 15 日のローカル時刻午後 2 時 30 分

曜日は、日曜日が 0 または 7、土曜日が 6 です。日と曜日の両方が指定されている場合(どちらも * ではない場合)、どちらかのフィールドに一致する日付がマッチします。これは標準的な vixie-cron のセマンティクスに従います。

LW? などの拡張構文や、MONJAN などの名前エイリアスはサポートされていません。

制限事項

セッションスコープのスケジュールには、以下のような固有の制約があります。

  • タスクは Qwen Code が実行中でアイドル状態のときにのみ実行されます。ターミナルを閉じたりセッションを終了したりすると、すべてのタスクがキャンセルされます。
  • 実行漏れのキャッチアップはありません。長時間実行されるリクエストで Qwen Code がビジー状態の間にタスクの実行時刻が過ぎた場合、Qwen Code がアイドル状態になったときに 1 回だけ実行され、実行漏れの回数分実行されることはありません。
  • 再起動をまたいだ永続化はありません。Qwen Code を再起動すると、セッションスコープのタスクはすべてクリアされます。
Last updated on