ブログ · ガイド · 2026年10月28日

AEGIS でエージェントをスケジュール実行する: スケジュール、実行、失敗したときに見えるもの

他の言語: English, Español, Português · 日本語のガイド一覧

開示: AEGIS は 100monkeys.ai が開発しているため、このガイドは作り手による説明として読んでください。AEGIS の公開ドキュメント、主に Schedules ページと Schedule Tools リファレンスをもとに当社の AI エージェントが下書きし、当社がレビューしました。この日本語版は英語の原文ガイドの翻訳です。以下のフィールド、ルート、メッセージはすべてそれらのページからの引用で、英語のまま示し訳を添えています。このガイドのためにこれらの呼び出しを実行してはいません。ドキュメントが手順を明示していない箇所は、そう書いています。

AEGIS by 100monkeys.ai, in beta は、自律エージェントを隔離されポリシーが適用されたランタイムで動かすセルフホスト型のオーケストレーターです。このガイドでは、エージェントの1つをタイマーに載せ、各起動が何をしたかを読み、起動が取りうる4つの結果を示します。起きなかった実行も、起きた実行と同じように見えるようにするためです。

スケジュールとは

ドキュメントは1文で定義しています。"A schedule starts one of your agents or workflows as you, either once at a time you choose or again and again on a recurrence."(スケジュールは、あなたのエージェントやワークフローの1つを、あなたとして起動する。選んだ時刻に一度だけ、または繰り返し規則に従って何度も。)ここから3つのことが言え、それぞれが以下の手順の形を決めています。

ステップ 1. エージェントとタイミングを決める

すでに aegis task execute <AGENT> で一度手動実行したエージェントを使ってください。良い実行がどう見えるかが分かっているからです。

次に2種類のタイミングから1つを選びます。指定するのはどちらか一方だけです。

計画に入れておくべき制限が2つあります。"A schedule runs at most once every 5 minutes"(スケジュールは最短でも5分に1回まで)、そして削除されていないスケジュールは最大25個までです。

ステップ 2. 実行が届く範囲を決める

スケジュール実行が届くのは、その profile または contexts が指定する接続だけで、"a schedule with neither reaches none of your connections"(どちらもないスケジュールはどの接続にも届かない)。スケジュールはどちらか一方を持ち、両方は持ちません。エージェントがメールやリポジトリを読むなら、ここでプロファイルを指定してください。そうしないと起動は接続不足で拒否され、拒否の理由にそう書かれます。

ステップ 3. スケジュールを作成する

CLI Reference に aegis schedule というシェルコマンドはありません。スケジュールは REST ルート POST /v1/schedules(スコープ schedule:write)、MCP ツール aegis.schedule.create、または Zaru の Schedules ページから作成します。ツールが受け取る引数は、リファレンスの記載どおり次のとおりです。

aegis.schedule.create {
  "name": "Morning inbox triage",
  "target_kind": "workflow",
  "target": "email-inbox-triage",
  "intent": "Sort the new mail",
  "input": { "mailbox": "ann@example.com" },
  "recurrence": { "cron": "*/30 * * * *", "timezone": "UTC", "jitter_seconds": 300 }
}

この例はドキュメント自身のスケジュールです。target_kind を agent に、target をあなたのエージェント名に変えてください。応答は {"schedule": {...}} で、state、next_run_at、last_run を含みます。その場を離れる前に next_run_at を読み返してください。

ステップ 4. 今すぐ一度起動する

動くかどうかを知るために、最初の予定時刻を待つ必要はありません。所有者は POST /v1/schedules/{id}/run または aegis.schedule.run_now で即座に1回実行できます。この実行は "exactly as a fire starts it: as the owner, with the schedule's target, input, connections or profile, and attachments"(起動が開始するのとまったく同じく、所有者として、スケジュールの対象・入力・接続またはプロファイル・添付で)行われ、"nothing else changes"(それ以外は何も変わらない)。スケジュールの状態とタイミングはそのままです。

ステップ 5. 実行履歴を読む

aegis.schedule.runs { "schedule_id": "<id>", "limit": 20 }

ルートは GET /v1/schedules/{id}/runs?limit= です。実行は新しい順に並び、それぞれ scheduled_time(今すぐ開始した実行では null)、fired_at、outcome、detail、execution(その id、kind、status)を持ちます。実行そのものを読むには、実行 ID を CLI に渡します: aegis task logs <EXECUTION_ID>。失敗だけを見たいときは --errors-only を付けます。

ステップ 6. 4つの結果を知る

各起動は予定時刻ごとに一度だけ記録されるため、Temporal が繰り返した起動は "answers the first fire's record instead of starting a second run"(2回目の実行を始めず、最初の起動の記録を返す)。各記録の結果は次のいずれかです。

started は実行が始まったことを示すだけで、成功したことは示しません。実行自体の状態は execution.status に、失敗の理由はそのログにあります。

ステップ 7. 起動が失敗し続けたときに起きること

"When the last three fires of a recurring schedule were all refused, the schedule pauses itself, with the reason 'Paused after three runs could not start: <the last refusal>.'"(繰り返しスケジュールの直近3回の起動がすべて拒否されると、スケジュールはこの理由とともに自ら一時停止する。)スケジュールの paused_reason を読み、原因を直してから aegis.schedule.resume で再開してください。オーケストレーターの再起動中に逃した起動は "is still made up to 10 minutes late; later than that, the time is skipped"(10分遅れまでは補われる。それより遅ければその時刻はスキップされる)。

ステップ 8. 承認はそのまま効く

スケジュール実行はあなたとして動くので、"so every tool call that waits for your approval in a conversation waits for it in a scheduled run too"(会話中にあなたの承認を待つツール呼び出しは、スケジュール実行でも同じく承認を待つ)。Zaru では、その依頼が Approvals ページに "From your schedule <name>" として表示されます。

ドキュメントが明示していないこと

次に読む

スケジュールされたエージェントと、それが送るものの間に人を置くには、オーケストレーターに承認ステップを持たせる方法を読んでください。実行が何をしたかを読むには、AEGIS の実行ログを読むをどうぞ。

100monkeys.ai から AEGIS をインストール