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* 🔑
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
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 🔑
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 🔑
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
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
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
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*
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
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
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
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
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
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íntoma | Causa probable | Corregir |
|---|---|---|
| No se consumieron mensajes | las exchange o las claves de enrutamiento no coinciden con las del publicador | Verifica exchange y routing_keys frente a lo que emite el publicador |
| Falla el handshake de TLS | amqps:// sin ca_cert, o un certificado y una clave que no coinciden | Suministra ca_cert; para mTLS verifica el par client_cert y client_key |
| Las entregas llegan, pero no se inicia ningún SOP | dispatch es agent_loop, o el desencadenador SOP no coincide | Establece dispatch en sop o sop_and_agent_loop; comprueba la clave de enrutamiento del trigger |
Ver también
- SOP Fan-In: AMQP: sintaxis de activación y coincidencia de routing-key
- MQTT
- Visión general de los canales