コンテンツにスキップ
タイプ新しいプリミティブ
ステージ本番環境
難易度中程度
ジョブタスクを自動化
対象AI ビルダー
対象バックエンド開発者
サービスCron
サービスエージェント
Hoody の利点AI ネイティブ
Hoody の利点HTTP ネイティブ
タイプ新しいプリミティブ
ステージ本番環境
難易度中程度
ジョブタスクを自動化
対象AI ビルダー
対象バックエンド開発者
サービスCron
サービスエージェント
Hoody の利点AI ネイティブ
Hoody の利点HTTP ネイティブ
タイプ新しいプリミティブ
ステージ本番環境
難易度中程度
ジョブタスクを自動化
対象AI ビルダー
対象バックエンド開発者
サービスCron
サービスエージェント
Hoody の利点AI ネイティブ
Hoody の利点HTTP ネイティブ
タイプ新しいプリミティブ
ステージ本番環境
難易度中程度
ジョブタスクを自動化
対象AI ビルダー
対象バックエンド開発者
サービスCron
サービスエージェント
Hoody の利点AI ネイティブ
Hoody の利点HTTP ネイティブ
CRON · エージェント · 0 7 * * *

スクリプトではなくエージェントをスケジュールする

従来の cron 行は午前 2 時に reconcile.sh を実行します。Hoody の cron 行は hoody-agent にプロンプトを POST します。スケジュールは固定。仕事は違います。エッジケースは保守する分岐ではなくなり、エージェントが推論するコンテキストになります。

cron + agent ドキュメントを読む

2 つの URL、1 つのプロンプト

Hoody Cron はすべてのコンテナ上のマネージド crontab です。Hoody Agent は同じコンテナ上の組み込み自律エージェントです。cron エントリがエージェントを curl します。エージェントが日付を読み、データを読み、その日が何を必要としているかを決定します。両方のサーフェスは HTTP です — cron は /users/me/entries に、エージェントは /api/v1/agent/tasks にあります。両者の間にグルーコードはありません。

cron-1.containers.hoody.com · entry
POST · cron/users/me/entries
# POST /api/v1/cron/users/me/entries
{
  "schedule": "0 7 * * *",
  "command": "curl -X POST $AGENT/api/v1/agent/tasks \
     -d @prompt.json",
  "comment": "morning-reports"
}
agent-1.containers.hoody.com · task
POST · agent/tasks
# prompt.json — the body of the POST
{
  "description": "昨日の注文を照合してください。スキーマがドリフトしたら再マッピングしてください。異常スコアが 3 を超えたら停止してオンコールに通知してください。今日が月の最終日なら、税調整済み台帳に月次決算を含めてください。",
  "mode": "code"
}

POST 2 回で完了です。crontab 行は二度と変わりません — 保守する唯一のファイルはプロンプトです。新しいエッジケース? 1 文を追加。新しい異常ルール? 1 文を追加。スケジュールは発火し続け、エージェントが各発火が何を意味するかを理解します。

プロンプトがスクリプトにできない 3 つのこと

エージェントが受け取る作業の形は常に同じです — 日付、データセット、目標。変わるのは、エージェントがそれらに対して何を決定するかです。

推論

日付を読み、データを読み、決定する

エージェントは cron が発火した後に動きます。カレンダーをチェックします — 月末、休日、会計期末。データセットをサンプリングします — スキーマ、ボリューム、異常スコア。6 か月前にあなたが書いた静的な if ツリーからではなく、そのコンテキストで次のアクションを選びます。

適応

新しいカラム? 新しい通貨? 同じプロンプト。

昨日のエクスポートが refund_reason カラムを追加したとき、スクリプトは壊れてあなたを呼び出します。エージェントはスキーマを読み、レガシーフィールドにマッピングし、変更を実行サマリに記録します。crontab 行は何も知る必要がありませんでした。

可観測性

すべての実行は段落であり、リターンコードではない

各実行は、エージェントが何を決定し、なぜかを返信します。履歴は平易な日本語です — 「スキップ: 新しいデータなし」、「適応: refund カラム追加」、「異常: refund スパイク +412%、オンコールに通知」 — exit code 0 / exit code 1 ではありません。cron のログはジャーナルになります。

スケジュールから決定へ

3 ステップ — cron が発火し、エージェントが推論し、決定が着地します。中央のステップは、あなたが 17 のエッジケース分岐を持つ 400 行のシェルスクリプトで自分で書いていたものです。今はプロンプトです。

3 ステップの日次ループ1 つのプロンプト · 無限のエッジケース
07:00

cron が発火

Hoody Cron がエントリを実行します。crontab 行は 1 つの curl です: プロンプト本体を持つ POST /api/v1/agent/tasks。あなたが書いたリトライもなく、ログプラミングもなく — cron サービスがエントリをシステム crontab に挿入し、実行を追跡します。

07:00 + ε

エージェントが推論

エージェントは記述を受け取り、ツール — ターミナル、ファイル、sqlite、ブラウザ、exec — を開いて、アクションプランを選びます。実行、スキップ、適応、または通知するかもしれません。選択は毎日変わります。指示は変わりません。

07:00 — 07:04

決定が着地

実行が完了します。エージェントはサマリ行を返信します: レポートを再生成、新しいデータがないためスキップ、異常で停止。あなたは朝食をとりながら携帯で読みます。

スケジュールは変わっていません。スクリプトも変わっていません。変わったのは、人間であるあなたが起きて対処する必要があったかどうかです。エージェントがループに入ると、答えはほぼ常に no — そして実行履歴がその理由を教えてくれます。

cron + agent ペアから得られるもの

Hoody Cron と Hoody Agent は、同じコンテナ上の 2 つのサービスで、両方とも HTTP として到達可能です。数値は文書化されたサーフェスから来ています — 捏造したベンチマークではありません。

  1. CRONTAB サイズ1 行

    crontab に 1 つの curl、永遠に。プロンプト本体が、あなたが書き直す唯一のもの — そしてそれは crontab -e を実行することではなく、JSON ファイルで行います。

  2. エージェントエンドポイント100+

    hoody-agent はフルサーフェスを公開します — ターミナル exec、ファイル読み書き、sqlite クエリ、ブラウザ自動化、デーモン制御 — をエージェントのタスクに対してプレーンな HTTP コールとして。

  3. グルーの行0

    cron とエージェントの間に SDK はありません。1 つの URL に POST し、もう 1 つを読みます。両方のサービスは同じコンテナにあるので、コールはローカルネットワーク高速です。

Hoody Cron は標準の 5 フィールド表現 (* * * * *) とマクロ (@hourly、@daily、@weekly、@monthly、@yearly) をサポートします。Hoody Agent タスク作成は 1 回の POST /api/v1/agent/tasks。ライブ更新は /api/v1/agent/ws でストリーミングされます。

cron エントリはジョブを実行しません — エージェントにジョブを理解させるのです。

before · 分岐するスクリプトafter · 分岐するプロンプト
古い CRON エントリが指していたもの0 2 * * * /usr/local/bin/reconcile.sh # 412 行 · 17 エッジケース新しい月末ルールはスクリプトを編集して祈ることを意味した
今は何を指しているか0 7 * * * curl POST agent/tasks -d @prompt.json1 行、永遠に — プロンプトが保守する唯一のアーティファクト
エージェントタスク仕様を読む

これが置き換えるもの

cron がファイルしか実行する方法を知らなかったため、reconcile.sh の中に書いていたもの一式。それぞれが分岐、フラグ、設定であり、スケジュールが知る必要のないものです。エージェントがその日を読んで決定します。

  • 壊れやすいスクリプト化された cron ジョブ1 つの入力カラムが動くとクラッシュする bash 分岐
  • 変わるスキーマのための手動メンテナンス上流のエクスポートにフィールドが増えるたびに reconcile.sh を編集
  • 手書きの ETL スクリプトチームで 1 人しか理解していない .sh ファイルのフォルダ
  • if X then Y else Z の cron ロジック月末、休日、異常 — 1 つのスクリプトに配線された 3 つのフラグ
  • 変更ポーリングスクリプト最初の cron の出力を監視して決定する別の cron
  • 手書きの if-else スケジューラどのスクリプトを実行するかを選ぶことだけが仕事の 200 行ディスパッチャ

cron スクリプトの保守をやめましょう。プロンプトの保守を始めましょう。スケジュールが発火し、エージェントが理解します。

cron + agent ドキュメントを読む

他のユースケースを読む