Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

SOP の実行方法

ランタイム契約

  • SOP 定義は、<shared>/sops/<sop_name>/SOP.toml と任意の SOP.md から読み込まれます。
  • CLI zeroclaw sopは現在、定義のみを管理します:listvalidateshow
  • SOP の実行は、ライブイベントのファンイン(認証済みWebhook、MQTT、ファイルシステム、または AMQP)によって、cron トリガー用のデーモンの定期的なSOPメンテナンスタックによって、またはエージェント内ツール sop_execute によって開始されます。残りのトリガータイプ(peripheral と calendar)は定義・照合されますが、ライブイベントソースにはまだ接続されていません(SOPファンインを参照)。
  • 実行の進行は、ツールsop_statussop_approvesop_advanceを使用します。
  • 実行状態は、デフォルトではプロセスローカルです。sop.persist_runs = true を指定すると、デフォルトの SQLite バックエンドの初期化に成功した場合、実行状態が <data_dir>/sop/runs.db に保存され、再起動後にアクティブな実行が復元されます。初期化に失敗した場合は警告がログに記録され、プロセスローカルメモリにフォールバックします。
  • SOP監査レコードは、設定されたメモリバックエンドのカテゴリsop下に永続化されます。

実行状態と監査履歴は独立したサーフェスです。ライフサイクルの所有権、キャンセル、および再起動のセマンティクスについては、Background work lifecycle を参照してください。

イベントフロー

graph LR
    MQTT[MQTT listener] -->|topic match| Dispatch
    TOOL[sop_execute tool] -->|manual| Dispatch
    WH[Webhook request] -->|authenticated HTTP fan-in| Dispatch
    CRON[Cron trigger] -->|daemon maintenance tick| Dispatch
    GPIO[Peripheral trigger] -.->|defined, unwired| Dispatch

    Dispatch --> Engine[SOP Engine]
    Engine --> Run[SOP Run]
    Run --> Action{Action}
    Action -->|ExecuteStep| Agent[Agent Loop]
    Action -->|WaitApproval| Human[Operator]
    Human -->|sop_approve| Run

はじめに

  1. sops_dir はデフォルトでは未設定のため、実行時の SOP の読み込みは初期状態で無効です。ゲートウェイ、zerocode、または zeroclaw config set を通じて sops_dir を設定すると有効になります。相対値はインストールルート(config.toml を含むディレクトリ)を基準に解決されるため、ドキュメントに記載されている shared/sops は、SOP 作成者が書き込むのと同じディレクトリである <install>/shared/sops になります。絶対値または ~-プレフィックス付きの値はそのまま使用されます。"" に戻す(または削除する)と、実行時の SOP の読み込みは再び無効になります。CLI はオフライン検査のために引き続き <install>/shared/sops にフォールバックします。

    以前のビルドから移行しますか? 相対 sops_dir 値は、skill-bundles ディレクトリと同じ方法で、インストールルートを基準に解決されるようになりました。以前のビルドでは、同じ設定に対して 2 つ の異なるルートが存在していたため、アップグレードする前に両方を確認してください:

    以前のビルドで表面化するRoot はそれを使用しましたsops_dir = "shared/sops" の配置先
    ランタイムでの読み込みとローカルの zeroclaw sop CLIdata_dir<data_dir>/shared/sops
    Web および RPC SOP の作成<install>/shared<install>/shared/shared/sops(重複したセグメント)

    現在はどちらも、単一の正規の <install>/shared/sops に解決されます。両方の古い場所を調べ、見つかった定義を <install>/shared/sops に移動してください。いずれかのツリーに残された定義は、アップグレード後に見えなくなります。古い Web または RPC サーフェス経由で作成された定義は、ドキュメントで説明されていた場所ではなく、二重化された writer パスに置かれているため、最も見落としやすいものです。

    その他の相対値も同様に移動します。sops_dir = "my-sops" は、ランタイムおよび CLI では <data_dir>/my-sops から、Web および RPC での作成では <install>/shared/my-sops から、<install>/my-sops に移動します。絶対値および ~-で始まる値は影響を受けません。

    未設定の場合も変更されます。オフライン CLI フォールバックは、以前は <data_dir>/sops をスキャンしていましたが、現在は <install>/shared/sops をスキャンします。

    zeroclaw sop list は新しい場所を読み取るため、アップグレード後に一覧が空の場合は、定義が古いディレクトリツリーのいずれかに残っていることを意味します。

  2. 例えば、SOPディレクトリを作成します:

    ~/.zeroclaw/shared/sops/deploy-prod/SOP.toml
    ~/.zeroclaw/shared/sops/deploy-prod/SOP.md
    
  3. 定義を検証して検査します:

    sh

    zeroclaw sop list
    zeroclaw sop validate
    zeroclaw sop show deploy-prod
    
  4. トリガーは構成されたイベントソースを経由して実行されるか、sop_executeでエージェントターンから手動で実行されます。

トリガーのルーティングと認証の詳細については、SOP Fan-Inを参照してください。