SOP ファンイン: AMQP
AMQP の配信は SOP の実行を開始できます。エイリアスが SOP ディスパッチモードで実行される場合、AMQP コンシューマーは各配信を SOP イベントに変換し(ルーティングキーがイベントトピックになり、メッセージボディがペイロードになります)、エンジンにディスパッチします。
トランスポート側(ブローカー接続、キュー、エクスチェンジ、TLS)は AMQP channel で設定します。このページではトリガーについて説明します。配信がエージェントループ、SOPエンジン、またはその両方を駆動するかを決定するディスパッチモードは、チャネルの
dispatchフィールドです。
トリガー
AMQP 配信。ライブ: SOP ディスパッチ モードで AMQP コンシューマーによって配信されます。
| フィールド | 型 | default | 意味 |
|---|---|---|---|
condition | string? | null | 配信ボディに対して評価される任意の式。 |
routing_key* | string | — | ルーティングキーフィルター(トピックエクスチェンジのセマンティクス):.区切りの単語、 |
SOP を読み込んで検証する:
定義
Syntax の説明に従い、amqp トリガーで SOP を作成してください。上記のトリガーフィールドはサポートされているキーです。このページではファイル全体を順に説明します。
検証
zeroclaw sop validate
検査
zeroclaw sop list
zeroclaw sop show <name>
マッチング
routing_key は AMQP のトピックエクスチェンジのセマンティクスを使用します。キーは . で区切られた単語で、* は正確に1つの単語に一致し、# は0個以上の単語に一致します。配信本文は SOP イベントペイロードに転送され、オプションのトリガー condition で利用できます。ステップコンテキストは、上限が設定され、サニタイズされ、フレーム化された形式を受け取ります。$.value > 85 のような JSON パスの condition では、パブリッシャーが JSON 本文を送信する必要があります。
実行する
チャネルの dispatch フィールドを SOP モード(sop または sop_and_agent_loop)に設定し、SOP を読み込んでから、トリガーが一致するルーティングキーでメッセージをエクスチェンジにパブリッシュします。コンシューマーは配信をイベントに変換し(ルーティングキーをトピックに、ボディをペイロードに)、それをディスパッチします。読み込まれた各 SOP のうち、routing_key パターンが一致し、かつ(存在する場合)condition がボディに対して成立するものについて、実行が開始されます。
何も起動しない場合は、dispatch が SOP モードであること、キューがバインドされていてルーティングキーが実際にコンシューマーに届くこと、および condition が一致することを確認してください。fan-in 概要のトラブルシューティング表 を参照してください。
承認して観察する
チェックポイントに到達した実行は WaitingApproval として一時停止します。CLI(zeroclaw sop list、zeroclaw sop approve)またはゲートウェイAPIの承認エンドポイント(GET /admin/sop/pending、POST /admin/sop/approve、POST /admin/sop/deny)を介した帯域外操作で、これらをクリアまたは確認できます。