メインコンテンツまでスキップ

用語と状態

構成要素

用語意味
Workflow恒久 ID・名前・説明を持つワークフロー本体。Revision の集合。
Workflow Revision1 つのグラフ定義。draft / published / superseded の状態を持つ。
Nodeグラフ上の処理単位。capability / agent / loop / terminal / loop_result の 5 種。
EdgeNode 間の接続。normal または error
Workflow RunRevision の 1 回の実行単位。
Activationある Node が、ある経路・Loop 反復で論理的に 1 回起動された単位。永続 UUID を持つ。
Capability Node既存 Capability を呼び出す Node。
Agent Node既存の Agent を呼び出し、出力を JSON Schema で検証する Node。
Loop Node非循環の子グラフを上限付きで反復する Node。
Loop Result NodeLoop 子グラフの終端。次の loop.state を返す。
Terminal Nodeグラフの終端。success または failure
型付き参照run.inputs.* / nodes.<node_id>.output.* / loop.state.* の形で値を渡す仕組み。
EffectCapability が成功時に成立させる、コードで宣言された事後条件。

Revision のライフサイクル

状態意味
draft編集可能。
published公開済みで不変。Run はここから作成する。
superseded新しい published が作成された旧版。参照は可能だが新規 Run には使わない。
  • draft のみ編集できます。公開済み Revision を編集するには、Workflow 詳細で 新しい下書き を作成します。
  • v1 では新しい下書きは空のグラフ・既定の inputs_schema で始まります(既存グラフの複製はしません)。
  • 公開のたびに新しい published Revision が作られ、それ以前の publishedsuperseded になります。
  • Run は作成時点の revision_id とグラフ・入力をスナップショットとして保持します。公開後に Capability / Agent を変更しても既存 Run には影響しません。

グラフの構造規約

  • 非循環(DAG) — 通常の Edge は循環できません。静的検証で検証されます。
  • 反復は Loop Node の中だけ — 反復は Loop Node の非循環な子グラフで表現します。
  • Loop のネスト不可 — Loop 子グラフの中に loop Node は置けません。
  • OR 合流のみ — 複数の source Node から同じ target Node へ Edge を張れます。Node は最初に到達した経路で一度だけ実行されます。並列実行 / AND join はありません。
  • entry は 1 つ — トップレベルグラフには、入辺のない entry Node がちょうど 1 つ必要で、そこから全 Node へ到達できる必要があります。
  • Loop 子グラフ — 1 つの loop_result で終わり、entry_node_id から全子 Node へ到達でき、全子 Node から loop_result へ到達できる必要があります。
  • Terminal Node に outgoing Edge は不可

Edge

  • normal — source Node の成功時に評価されます。
  • error — source Node の失敗時に使われます。複数ある場合は最初の 1 本だけを使い、存在しなければ Run は failed になります。
  • 条件付き Edge は排他的 — source からの outgoing Edge を order_index 順に評価し、最初に真になった Edge の target へ進みます。すべて偽で条件なし Edge もなければ Run は failed になります。

Run の状態

状態意味
queued作成済み。worker の実行待ち。
waiting_approvalplan_required Capability / Agent Node を含み、承認待ち。
running実行中。
waiting_hitlHITL へ質問を登録済み。回答待ち。
waiting_attention非冪等 Node が中断し、人間対応待ち。
cancelling取消要求を受け、協調的取消処理中。
interruptedworker 停止などで中断。明示的な再開が必要。
completed成功 Terminal に到達し、効果が満たされた終端状態。
incomplete終端には到達したが効果未達、または Loop 上限到達。失敗ではない。
failed失敗 Terminal 到達、または実行時エラー。
cancelled取消により終端。

終端状態(completed / incomplete / failed / cancelled)からは遷移しません。

Node の状態

pending / running / waiting_hitl / succeeded / skipped / failed / needs_attention / cancelled

  • skipped は分岐の結果到達しなかった Node。
  • needs_attention は非冪等 Node が外部操作中に中断した状態で、人間の判断を待ちます。

完了の判定

完了は LLM の自己申告ではなく、効果(Effect)の成立 で決まります。

  • 実際に実行された効果的な Node の satisfied_effects を収集します。
  • 成功 Terminal に到達した時点で、必要な効果がすべて成立していれば completed
  • 不足していれば incomplete(失敗ではない)。
  • Loop が max_iterations に達した場合も incomplete
  • 失敗 Terminal 到達や実行時エラーは failed

次に読む