tilebox-workflow-jobs について
`tilebox` CLIでTilebox Workflowsのジョブを操作するエージェント向けスキルです。ジョブの投入、状態確認、ログやトレースの調査、入力形式、再試行、キャンセルを扱います。
主な機能
- 01ジョブの投入と完了待ち
- 02状態の絞り込みと確認
- 03ログと実行スパンの調査
- 04失敗タスクの再試行やキャンセル
- 05タスク識別子と入力形式の確認
活用シーン
- 01クラスターへのワークフロータスク投入
- 02タスク失敗や実行時間のデバッグ
- 03再試行やキャンセル前の進捗確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tilebox/ skills --skill tilebox-workflow-jobsインストール後、Claude Code で/tilebox-workflow-jobsを入力して読み込まれたか確認します。
詳細
Tilebox ジョブの管理
tilebox job と tilebox cluster を使った運用作業には、このスキルを使用します。エージェントでは、人間向けの出力を明示的に生成する場合を除き、すべてのジョブコマンドで --json を使用してください。
CLI メタデータの更新
記憶に頼る前に、インストール済みの正確なフラグとスキーマを確認してください。
tilebox agent-context job --output-schema
tilebox agent-context cluster --output-schema
関連するドキュメントの概念:
- Tilebox Workflows は、クラスター全体でタスクを並列処理するエンジンです。
- ジョブを送信するとトレースが開始され、タスクの実行ごとにスパンが作成されます。
- タスクのログは、ジョブ、タスク、ランナー、サービス、トレース、スパンのメタデータと関連付けられます。
- アクティブなスパン内で出力されたログは、トレースビューでスパンイベントとしても表示されます。
コマンドの選択
- 作業を開始する:
tilebox job submit --name ... --task ... --input ... --json。 - ジョブを検索する:
tilebox job list --last 7d --jsonを実行するか、--state、--task-state、--nameで絞り込みます。 - 1 つのジョブを調べる:
tilebox job get <job-id> --json。 - 完了、失敗、キャンセルを待つ:
tilebox job wait <job-id> --json。 - ジョブのログメッセージを調べる:
tilebox job logs <job-id> --sort desc --limit 100 --json。 - タイミングのデバッグでジョブのトレース/スパンを調べる:
tilebox job spans <job-id> --sort asc --json。 - 原因を修正した後、再試行可能な失敗タスクを再試行する:
tilebox job retry <job-id> --json。 - 保留中/実行中の作業を停止する:
tilebox job cancel <job-id> --json。
コマンドの引数や出力形式が不明な場合は、tilebox agent-context job <subcommand> --output-schema を使用してください。agent-context は常に JSON を返すため、--json は追加しないでください。
ジョブの送信
基本形式:
tilebox job submit \
--name <job-name> \
--task <task-identifier-name> \
--version v0.0 \
--input '<json-or-plain-text>' \
--json
重要なフラグ:
--name:必須のジョブ名です。1 回の実行を識別するもので、場所、期間、頻度など、実行固有の有用な情報を含めることができます。インスタンス固有のジョブ名をワークフロー名やスラッグとして再利用しないでください。--task:必須のタスク識別子名です。--version:デフォルトはv0.0です。--input:インラインの JSON またはプレーンテキストです。有効な JSON はそのまま渡され、JSON ではないテキストは JSON 文字列になります。--input-file:ファイルから入力を読み取ります。標準入力には-を使用します。--cluster:任意のクラスターのスラッグです。デフォルトのクラスターを使う場合は省略します。--max-retries:ルートタスクの再試行回数です。デフォルトは0です。--wait:送信後、新しいジョブ ID を指定したtilebox job wait <new-job-id>と同様に待機します。
互換性のあるランナーが利用可能で、タスクを実行する見込みがあるとわかっている場合にのみ --wait を使用してください。それ以外の場合は、--wait を付けずに送信し、job get、job logs、または job spans で調べてください。
例:
tilebox job submit --name process-scene --task ProcessScene --input S2A_001 --json
tilebox job submit --name process-count --task ProcessCount --input 5 --json
tilebox job submit --name process-count --task ProcessCount --input '"5"' --json
tilebox job submit --name structured --task tilebox.com/process_scene --version v1.0 --input '{"scene_id":"S2A_001","other_arg":3}' --json
tilebox job submit --name from-file --task ProcessScenes --input-file scenes.json --json
cat scenes.json | tilebox job submit --name from-stdin --task ProcessScenes --input-file - --json
Python の CronTask または StorageEventTask を送信する場合は、tilebox-workflow-automations スキルを使用してください。これらのタスクでは、自動化トリガーのラッパーを構築するために --automation が必要です。
Python タスク識別子と入力
Python の Task クラスは、明示的な identifier() メソッドを定義していない場合、デフォルトで識別子 <ClassName>@v0.0 を使用します。ランナーに登録された正確なタスク名とバージョンを指定してください。
入力は Python の serialize_task(task)/deserialize_task(TaskClass, bytes) に一致させる必要があります。
- フィールドなし:入力を省略するか、
{}を送信します。 - フィールドが 1 つ:フィールドの値を直接送信します。
scene_id: str→--input S2A_001は JSON 文字列"S2A_001"を送信します。count: int→--input 5は JSON 数値5を送信します。文字列"5"の場合は--input '"5"'を使用します。scene_ids: list[str]→ オブジェクトではなく、JSON 配列を送信します。
- フィールドが複数:フィールド名をキーとする JSON オブジェクトを送信します。
不明な場合は、Python で正確なペイロードを生成してください。
/path/to/.venv/bin/python - <<'PY' > task-input.json
from test import ProcessScenes
from tilebox.workflows.task import serialize_task, deserialize_task
task = ProcessScenes(["S2A_001", "S2B_002"])
payload = serialize_task(task)
assert deserialize_task(ProcessScenes, payload).scene_ids == task.scene_ids
print(payload.decode())
PY
tilebox job submit --name process-scenes --task ProcessScenes --input-file task-input.json --json
一覧表示、調査、待機
tilebox job list --last 7d --limit 100 --json
tilebox job list --state failed --after 2026-05-01 --before 2026-06-01 --json
tilebox job list --name landsat --task-state failed,failed_optional --json
tilebox job get <job-id> --json
tilebox job wait <job-id> --stalled-timeout 5m --json
ページ分割された一覧出力の場合、フィルターとソート順を変えずに保ち、next_cursor が空になるまで --cursor に渡してください。
job get では、まず state、execution_stats、task_summaries、progress を確認してください。
ログ、スパン、再試行、キャンセル
tilebox job logs <job-id> --sort desc --limit 100 --json
tilebox job logs <job-id> --include-runner-attributes --json
tilebox job spans <job-id> --sort asc --limit 100 --json
tilebox job spans <job-id> --include-runner-attributes --json
tilebox job retry <job-id> --json
tilebox job cancel <job-id> --json
アプリケーションのメッセージやエラーにはログを使用してください。タイミング、順序、親子関係、属性にはスパンを使用してください。根本的な問題を修正した後にのみ再試行してください。作業を続行すべきでない場合はキャンセルしてください。キューに登録されたタスクは実行されず、すでに実行中のタスクは完了する場合があります。
デバッグの流れ
tilebox job get <job-id> --jsonを実行して、状態とタスク数を確認します。- 失敗した場合は、失敗したタスクの概要と直近のログを調べます。
- タイミング、順序、またはランナー/ランタイムの属性が重要な場合は、スパンを使用します。
- コード、データ、認証情報、またはインフラストラクチャを修正してから再試行します。
- 再試行せずにジョブを停止すべき場合は、キャンセルします。