スケジュールタスクAPI
@grant CAT.agent.task
スケジュールタスクAPIにより、スクリプトはCron式ベースのスケジュールタスクを作成でき、2つの実行モードがあります。
実行モード
内部モード
Agentシステムにより自動的に処理:
- Cronスケジュールが発火したとき、自動的に会話を作成または再開
- 設定された
promptをLLMに送信 - モデルとSkillsを指定可能
- 実行履歴とトークン使用量が自動的に記録
イベントモード
スクリプト自体により処理:
- Cronスケジュールが発火したとき、スクリプトにイベント通知が送信
- スクリプトは
addListenerでイベントをリッスン - 処理ロジックは完全にカスタマイズ可能
create — タスクを作成
const task = await CAT.agent.task.create(options);
パラメータ(AgentTaskCreateOptions):
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | はい | タスク名 |
crontab | string | はい | 標準Cron式(5フィールド:分 時 日 月 曜日) |
mode | "internal" | "event" | はい | 実行モード |
enabled | boolean | いいえ | 有効かどうか、デフォルトはtrue |
notify | boolean | いいえ | 発火時にブラウザ通知を送るかどうか |
prompt | string | いいえ | 内部モードのプロンプト |
modelId | string | いいえ | 内部モードで使用するモデルID |
skills | string[] | いいえ | 内部モードで読み込むSkills |
maxIterations | number | いいえ | 内部モードの最大ツール呼び出し回数、デフォルトは10 |
AgentTaskを返します:
| フィールド | 型 | 説明 |
|---|---|---|
id | string | タスクID |
name | string | タスク名 |
crontab | string | Cron式 |
mode | string | 実行モード |
enabled | boolean | 有効かどうか |
notify | boolean | 通知を送るかどうか |
nextruntime | number | 次回実行タイムスタンプ |
lastruntime | number | 前回実行タイムスタンプ |
conversationId | string | 内部モードの関連会話ID(オプション) |
lastRunStatus | "success" | "error" | 前回の実行ステータス |
lastRunError | string | 前回の実行エラーメッセージ |
createtime | number | 作成タイムスタンプ |
Cron式の例:
| 式 | 説明 |
|---|---|
* * * * * | 毎分 |
0 9 * * * | 毎日09:00 |
0 */2 * * * | 2時間ごと |
30 8 * * 1-5 | 平日08:30 |
0 0 1 * * | 毎月1日00:00 |
list — すべてのタスクを一覧
const tasks = await CAT.agent.task.list();
現在のスクリプトが作成したすべてのタスクを返します。
get — タスクの詳細を取得
const task = await CAT.agent.task.get(taskId);
タスクが存在しない場合はundefinedを返します。
update — タスクを更新
const task = await CAT.agent.task.update(taskId, partial);
更新可能なフィールド:
await CAT.agent.task.update(task.id, {
name: "新しい名前",
crontab: "0 10 * * *",
enabled: false,
prompt: "新しいプロンプト",
notify: true
});
更新後、nextruntimeが自動的に再計算されます。
remove — タスクを削除
const success = await CAT.agent.task.remove(taskId);