Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

AMQP

amqp 通道从 AMQP 0-9-1 broker(RabbitMQ 及兼容项)消费消息。每次投递都可以驱动 agent 循环、启动一次 SOP 运行,或两者兼有,由 dispatch 字段按别名选择。

这是一个 SOP 事件源。 关于触发器语法、routing-key 匹配以及接线的 SOP 端,请参阅 SOP Fan-In: AMQP。本页涵盖代理连接和分发模式。

配置

从实时 schema 派生的完整字段列表。对于基本消费者,你需要设置 amqp_urlexchangerouting_keys

amqp_url* 🔑 secret · default

AMQP broker URL。使用 amqp:// 表示明文,或使用 amqps:// 表示 TLS(例如 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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__amqp_url=
ca_cert string? · default

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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__ca_cert=
client_cert 🔑 secret · default

用于 broker 双向 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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__client_cert=
client_key 🔑 secret · default

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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__client_key=
content_template string · default ""

入站消息内容的模板。{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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__content_template=
dispatch SopDispatch · default "agent_loop"

已消费的投递路由到哪里:驱动 agent 回合(agent_loop,默认)、分发到 SOP 引擎(sop),或两者都执行(sop_and_agent_loop)。sopsop_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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__dispatch=
durable_ack bool · default true

确认模式。为 true(默认)时,只有在消息已持久化交给 agent 循环后才会确认投递,从而提供至少一次语义:在交接前崩溃会重新投递该事件。将其设为 false 可实现至多一次(broker 在分发时确认),这会在崩溃时静默丢弃飞行中的事件,仅适用于不会产生副作用、在过载时可丢弃的消费者。

将它放置在任何表面上:

网关仪表板

打开 /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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__durable_ack=
exchange* string · default

Exchange 用于将 consumer queue 绑定到(例如 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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__exchange=
excluded_tools string[] · default []

从此通道的工具规范中排除的工具。设置后,通过此通道响应时不会向模型公开这些工具。

将它放置在任何表面上:

网关仪表板

打开/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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__excluded_tools=
queue string? · default

队列名称。对于由服务器生成、临时、自动删除、独占的队列,请留空。仅在需要跨重连实现持久投递时,设置一个稳定的名称(建议使用 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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__queue=
routing_keys string[] · default []

要绑定的路由键。将其范围限定为感兴趣的主题;绑定 # 会消费整个交换机,几乎从来都不是你想要的。

将它放置在任何表面上:

网关仪表板

打开 /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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__routing_keys=
sender_label string · default "amqp"

此来源的每次投递中放入 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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__sender_label=
thread_id_field string · default ""

指向 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 shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__amqp__<alias>__thread_id_field=

完整字段参考:配置参考

调度模式

dispatch 字段决定一个交付会执行什么:

  • agent_loop(默认):投递会作为消息交给 agent loop。这样可保留原始行为;现有消费者不受影响。
  • sop:投递会提升为一个 SOP 事件(路由键进入事件主题,正文进入载荷),并分发到 SOP 引擎。参见 SOP Fan-In: AMQP
  • sop_and_agent_loop:以上两者都会为每次交付运行。

TLS

对于 TLS 传输,请将 amqp_url 指向一个 amqps:// 端点,并提供 ca_cert。对于双向 TLS,还要设置 client_certclient_key。没有这些配置时,连接将是明文;不要在不受信任的网络上暴露明文消费者。

故障排除

症状可能的原因修复
未消费消息交换器或路由键与发布者不匹配验证 exchangerouting_keys 是否与发布者发出的内容一致
TLS 握手失败amqps:// 不含 ca_cert,或者证书与密钥不匹配提供 ca_cert;对于 mTLS,请验证 client_certclient_key 配对
送达已到达,但没有启动 SOPdispatchagent_loop,或者 SOP 触发器不匹配dispatch 设置为 sopsop_and_agent_loop;检查 trigger 路由键

另见