Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

AMQP

El canal amqp consume mensajes de un broker AMQP 0-9-1 (RabbitMQ y compatibles). Cada entrega puede activar el bucle del agente, iniciar una ejecución de SOP, o ambas, seleccionadas por alias mediante el campo dispatch.

Esto es una fuente de eventos SOP. Para la sintaxis del disparador, la coincidencia de la clave de enrutamiento y la parte SOP del cableado, consulta SOP Fan-In: AMQP. Esta página cubre la conexión al broker y el modo de despacho.

Configuración

La lista completa de campos, derivada del esquema en vivo. Para un consumidor básico, configura amqp_url, exchange y routing_keys.

amqp_url* 🔑 secret · default

URL del broker AMQP. Use amqp:// para texto plano o amqps:// para TLS (por ejemplo, amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/channels/amqp y establezca el campo channels.amqp.<alias>.amqp_url.

zerocode

En el panel de Config, establece el campo channels.amqp.<alias>.amqp_url.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.amqp_url    # entrada enmascarada, almacenada cifrada

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Ruta al paquete de certificados CA para conexiones amqps://.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/channels/amqp y establezca el campo channels.amqp.<alias>.ca_cert.

zerocode

En el panel Config, establece el campo channels.amqp.<alias>.ca_cert.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.ca_cert <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Ruta al certificado de cliente para la autenticación mutua TLS del broker (Fedora Messaging requiere un certificado de cliente).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/amqp y establece el campo channels.amqp.<alias>.client_cert.

zerocode

En el panel de Config, establece el campo channels.amqp.<alias>.client_cert.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.client_cert    # entrada enmascarada, almacenada cifrada

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Ruta a la clave privada del cliente que coincide con client_cert.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/channels/amqp y establezca el campo channels.amqp.<alias>.client_key.

zerocode

En el panel Config, establece el campo channels.amqp.<alias>.client_key.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.client_key    # entrada enmascarada, almacenada cifrada

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Plantilla para el contenido del mensaje entrante. Los marcadores de posición {field} se interpolan a partir de las claves de nivel superior del cuerpo de entrega JSON. Cuando está vacío, se usa el cuerpo de entrega sin procesar de forma literal.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/amqp y establece el campo channels.amqp.<alias>.content_template.

zerocode

En el panel Config, establezca el campo channels.amqp.<alias>.content_template.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.content_template <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Dónde se enrutan las entregas consumidas: ejecuta un turno de agente (agent_loop, predeterminado), envíalo al motor SOP (sop), o ambos (sop_and_agent_loop). Los modos sop y sop_and_agent_loop comparan la entrega con los desencadenadores amqp de SOP por clave de enrutamiento.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/amqp y establece el campo channels.amqp.<alias>.dispatch.

zerocode

En el panel Config, establece el campo channels.amqp.<alias>.dispatch.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.dispatch <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Modo de reconocimiento. Cuando true (predeterminado), las entregas se reconocen solo después de que el mensaje se haya entregado de forma duradera al bucle del agente, lo que proporciona semántica de al menos una vez: si se produce un fallo antes de la transferencia, el evento se vuelve a entregar. Establézcalo en false para a lo sumo una vez (el broker reconoce al enviar), lo que descarta silenciosamente los eventos en vuelo en caso de fallo y solo es apropiado para consumidores sin efectos secundarios y de descarte bajo sobrecarga.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/channels/amqp y establezca el campo channels.amqp.<alias>.durable_ack.

zerocode

En el panel de Config, establece el campo channels.amqp.<alias>.durable_ack.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.durable_ack <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Intercambio al que vincular la cola del consumidor (p. ej., amq.topic).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/amqp y establece el campo channels.amqp.<alias>.exchange.

zerocode

En el panel Config, establece el campo channels.amqp.<alias>.exchange.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.exchange <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Herramientas excluidas de la especificación de herramientas de este canal. Cuando se establece, estas herramientas no se exponen al modelo al responder a través de este canal.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/channels/amqp y establezca el campo channels.amqp.<alias>.excluded_tools.

zerocode

En el panel de Config, establece el campo channels.amqp.<alias>.excluded_tools.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.excluded_tools <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Nombre de la cola. Déjelo sin definir para una cola exclusiva, transitoria y eliminada automáticamente, generada por el servidor. Establezca un nombre estable (se recomienda UUID) solo cuando se requiera entrega duradera a través de reconexiones.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/amqp y establece el campo channels.amqp.<alias>.queue.

zerocode

En el panel Config, establece el campo channels.amqp.<alias>.queue.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.queue <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Claves de enrutamiento a enlazar. Limítalas a los temas de interés; enlazar # consume todo el intercambio y casi nunca es lo que quieres.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/amqp y establece el campo channels.amqp.<alias>.routing_keys.

zerocode

En el panel Config, establece el campo channels.amqp.<alias>.routing_keys.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.routing_keys <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Valor colocado en ChannelMessage.sender para cada entrega desde esta fuente (por ejemplo, anitya). Permite que la protección de auto-bucle del orquestador y el enrutamiento por canal identifiquen el origen.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/amqp y establece el campo channels.amqp.<alias>.sender_label.

zerocode

En el panel Config, establece el campo channels.amqp.<alias>.sender_label.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.sender_label <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

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

Ruta punteada en el cuerpo de entrega de JSON cuyo valor se convierte en el mensaje thread_ts, correlacionando las respuestas con el evento de origen (p. ej. message.project.name). Vacío deshabilita el subproceso.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/amqp y establece el campo channels.amqp.<alias>.thread_id_field.

zerocode

En el panel de Config, establece el campo channels.amqp.<alias>.thread_id_field.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.thread_id_field <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__amqp__<alias>__thread_id_field=

Referencia completa de campos: referencia de configuración.

Modos de envío

El campo dispatch decide qué hace una entrega:

  • agent_loop (predeterminado): la entrega se pasa al bucle del agente como un mensaje. Esto conserva el comportamiento original; los consumidores existentes no se ven afectados.
  • sop: la entrega se eleva a un evento SOP (la routing key al topic del evento, el body al payload) y se despacha al motor SOP. Consulta SOP Fan-In: AMQP.
  • sop_and_agent_loop: ambos de los anteriores se ejecutan para cada entrega.

TLS

Para transporte TLS, apunta amqp_url a un extremo amqps:// y proporciona ca_cert. Para TLS mutuo, también establece client_cert y client_key. Sin esto, la conexión es de texto sin cifrar; no expongas un consumidor en texto sin cifrar a través de una red no confiable.

Solución de problemas

SíntomaCausa probableCorregir
No se consumieron mensajeslas exchange o las claves de enrutamiento no coinciden con las del publicadorVerifica exchange y routing_keys frente a lo que emite el publicador
Falla el handshake de TLSamqps:// sin ca_cert, o un certificado y una clave que no coincidenSuministra ca_cert; para mTLS verifica el par client_cert y client_key
Las entregas llegan, pero no se inicia ningún SOPdispatch es agent_loop, o el desencadenador SOP no coincideEstablece dispatch en sop o sop_and_agent_loop; comprueba la clave de enrutamiento del trigger

Ver también