Refactor de Outbound Session Mirroring
¿Alguna vez has enviado un mensaje a través de una API y has notado que la respuesta aparece en una sesión que no corresponde? Es un problema común cuando el sistema intenta registrar el mensaje saliente en la sesión del agente en lugar de la sesión del destinatario. Esto rompe el hilo de la conversación y dificulta el seguimiento del historial, especialmente cuando los objetivos de primer contacto no tienen entradas de sesión previas.
Para solucionar esto, hemos rediseñado cómo se procesan los mensajes salientes. La idea es simple: el ruteo debe coincidir con el comportamiento de los mensajes entrantes (inbound) para que el mirroring sea coherente.
Requisitos previos
Sección titulada «Requisitos previos»- Core channels o extensiones compatibles (Slack, Discord, Telegram, Matrix, MS Teams, Mattermost, BlueBubbles, Nextcloud Talk, Zalo, Nostr o Tlon).
- Acceso a los servicios de ruteo en
src/infra/outbound.
Inicio rápido
Sección titulada «Inicio rápido»Sigue estos pasos para implementar el nuevo sistema de ruteo en 5 minutos:
- Configura el ruteo de sesión: Utiliza el nuevo helper
resolveOutboundSessionRouteensrc/infra/outbound/outbound-session.ts. Este componente construye elsessionKeydel objetivo usandobuildAgentSessionKey, asegurando que el mensaje se registre donde el usuario realmente lo ve. - Asegura la creación de la sesión: Llama a
ensureOutboundSessionEntrypara escribir metadatos mínimos deMsgContext. Esto garantiza que, si es la primera vez que contactas a un usuario, la sesión se cree automáticamente alineada con el formato inbound. - Actualiza el flujo de envío: En
runMessageAction, deriva elsessionKeydel objetivo antes de pasarlo aexecuteSendAction. Ya no dependas de la sesión actual del agente. - Simplifica Gateway send: Si usas Gateway, puedes omitir el
sessionKey. El sistema ahora lo deriva automáticamente a partir del target y el agente por defecto, normalizando los keys a minúsculas antes de hacer el mirroring.
Solución de problemas
Sección titulada «Solución de problemas»- Mensajes de Slack fuera de hilo: Si los mensajes salientes no aparecen en el hilo correcto, verifica que estés usando
resolveThreadSessionKeyspara añadir el sufijo dereplyToothreadId. - DMs de Mattermost fallidos: Asegúrate de que el ruteo esté eliminando el carácter
@de los targets de Mattermost para que coincidan con las sesiones de mensajes directos.
Para resolver dudas específicas sobre tu implementación, consulta al AI Setup Assistant.
Próximos pasos
Sección titulada «Próximos pasos»OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.