AMQP
amqpチャネルはAMQP 0-9-1ブローカー(RabbitMQおよび互換)からメッセージを消費します。各配信はエージェントループの実行、SOP実行の開始、またはその両方を駆動でき、エイリアスごとにdispatchフィールドで選択されます。
これは SOP イベントソースです。 トリガー構文、ルーティングキーのマッチング、および配線の SOP 側については、SOP Fan-In: AMQP を参照してください。このページでは、ブローカー接続とディスパッチモードについて説明します。
設定
ライブスキーマから導出された全フィールドの一覧です。基本的なコンシューマーでは、amqp_url、exchange、routing_keys を設定します。
amqp_url* 🔑
AMQP ブローカー URL。平文には amqp://、TLS には amqps:// を使用します(例: amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub)。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.amqp_url フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.amqp_url フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.amqp_url # マスクされた入力、暗号化して保存
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__amqp_url=
ca_cert
amqps:// 接続用の CA 証明書バンドルへのパス。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.ca_cert フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.ca_cert フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.ca_cert <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__ca_cert=
client_cert 🔑
ブローカーの mutual-TLS 認証用クライアント証明書へのパス (Fedora Messaging にはクライアント証明書が必要です)。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.client_cert フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.client_cert フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.client_cert # マスクされた入力、暗号化して保存
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__client_cert=
client_key 🔑
client_cert に対応するクライアント秘密鍵のパス。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.client_key フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.client_key フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.client_key # マスクされた入力、暗号化して保存
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__client_key=
content_template
受信メッセージ内容のテンプレート。{field} プレースホルダーは、JSON 配信本文のトップレベルキーから補間されます。空の場合は、配信本文の生データがそのまま使用されます。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.content_template フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.content_template フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.content_template <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__content_template=
dispatch
消費した配信のルーティング先: エージェントのターンを駆動する(agent_loop、デフォルト)、SOP エンジンにディスパッチする(sop)、またはその両方(sop_and_agent_loop)。sop および sop_and_agent_loop モードでは、ルーティングキーによって配信を SOP の amqp トリガーと照合します。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.dispatch フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.dispatch フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.dispatch <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__dispatch=
durable_ack
確認応答モード。true(デフォルト)の場合、配信はメッセージがエージェントループに永続的に渡された後にのみ ACK され、at-least-once セマンティクスになります。ハンドオフ前のクラッシュはイベントを再配信します。false に設定すると at-most-once(ブローカーがディスパッチ時に ACK)となり、クラッシュ時にインフライトのイベントをサイレントにドロップし、副作用がなく過負荷時にドロップするコンシューマーにのみ適しています。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.durable_ack フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.durable_ack フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.durable_ack <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__durable_ack=
exchange*
コンシューマーキューをバインドするエクスチェンジ (例: amq.topic)。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.exchange フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.exchange フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.exchange <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__exchange=
excluded_tools
このチャネルのツール仕様から除外されるツールです。設定すると、これらのツールはこのチャネル経由で応答する際にモデルに公開されません。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.excluded_tools フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.excluded_tools フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.excluded_tools <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__excluded_tools=
queue
キュー名。サーバー生成の一時的な自動削除される排他キューを使用する場合は未設定のままにします。再接続をまたぐ永続的な配信が必要な場合のみ、安定した名前(UUID を推奨)を設定します。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.queue フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.queue フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.queue <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__queue=
routing_keys
バインドするルーティングキー。関心のあるトピックにスコープを絞ってください。# をバインドするとエクスチェンジ全体を消費してしまい、望ましい動作であることはほとんどありません。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.routing_keys フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.routing_keys フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.routing_keys <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__routing_keys=
sender_label
このソースからの各配信で ChannelMessage.sender に設定される値(例: anitya)。オーケストレーターの自己ループガードとチャネルごとのルーティングが送信元を識別できるようにします。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.sender_label フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.sender_label フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.sender_label <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__sender_label=
thread_id_field
JSON 配信ボディへのドット区切りパス。その値がメッセージの thread_ts となり、返信を元のイベントに関連付けます(例: message.project.name)。空の場合はスレッディングを無効にします。
任意のサーフェスに設定する場合:
ゲートウェイダッシュボード
/config/channels/amqp を開き、channels.amqp.<alias>.thread_id_field フィールドを設定します。
zerocode
Config ペインで、channels.amqp.<alias>.thread_id_field フィールドを設定します。
zeroclaw config
zeroclaw config set channels.amqp.<alias>.thread_id_field <value>
環境変数
オーバーライドをエクスポートします(POSIXシェル用。~/.bashrc、~/.zshrc、.env、またはDockerfileに記述します)。<alias>を実際のエイリアスに置き換えてください。
export ZEROCLAW_channels__amqp__<alias>__thread_id_field=
完全なフィールドリファレンス: config reference。
ディスパッチモード
dispatch フィールドは配信の動作を決定します:
agent_loop(デフォルト): デリバリーはメッセージとしてエージェントループに渡されます。これにより元の動作が維持され、既存のコンシューマーには影響しません。sop: 配信は SOP イベントに変換され(ルーティングキーはイベントトピックに、ボディはペイロードに)、SOP エンジンにディスパッチされます。SOP Fan-In: AMQP を参照してください。sop_and_agent_loop: 上記の両方を各デリバリーごとに実行します。
TLS
TLS トランスポートの場合、amqp_url を amqps:// エンドポイントに指定し、ca_cert を指定します。相互 TLS の場合は、client_cert と client_key も設定します。これらがない場合、接続は平文になります。信頼できないネットワーク上で平文のコンシューマーを公開しないでください。
トラブルシューティング
| 症状 | 考えられる原因 | 修正 |
|---|---|---|
| 消費されたメッセージはありません | publisher と exchange またはルーティングキーが一致しません | パブリッシャーが発行する内容に対して exchange と routing_keys を検証する |
| TLS ハンドシェイクに失敗しました | amqps:// に ca_cert がない、または証明書とキーの不一致 | ca_cert を指定してください。mTLS の場合は client_cert と client_key のペアを検証します |
| 配送は到着するがSOPが開始しない | dispatchがagent_loopであるか、またはSOPトリガーが一致しません | dispatch を sop または sop_and_agent_loop に設定します。trigger のルーティングキーを確認してください |
関連項目も参照してください
- SOP Fan-In: AMQP: トリガー構文とルーティングキーのマッチング
- MQTT
- チャンネルの概要