Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Otras plataformas de chat

Canales con integraciones funcionales pero que aún no se han extraído en guías dedicadas. Cada uno está controlado por una característica; habilita la característica correspondiente channel-<name> en el momento de la compilación.

Espaciado de respuestas salientes (reply_min_interval_secs)

Cada canal de salida acepta un campo opcional reply_min_interval_secs = N (rango 0..=REPLY_MIN_INTERVAL_MAX_SECS, valor predeterminado 0). Cuando se establece, el orquestador envuelve el canal en una capa de regulación por (canal, destinatario), de modo que las respuestas salientes consecutivas al mismo par esperan al menos N segundos entre sí. 0 (el valor predeterminado) es un paso directo: no se asigna ningún envoltorio y no hay sobrecarga.

Cuando el floor está activo, los envíos que llegan antes de que el floor expire entran en una cola FIFO acotada. Un worker en segundo plano drena la cola a la velocidad del floor para que las respuestas sigan llegando en orden con la cadencia configurada. La profundidad de la cola es por defecto 16 (adecuada para el caso de “el agente tuvo una ráfaga breve”) y está limitada por REPLY_QUEUE_DEPTH_CEILING (1024). Cuando la cola está llena, se descarta el envío más reciente y se emite un WARN con channel_alias, recipient redactado, queue_depth, queue_max y dropped_chars: el contenido del cuerpo queda fuera de los logs.

Las actualizaciones de borrador en streaming dentro de una misma respuesta no se regulan (congelarían la vista previa en vivo); solo el send final (y la escritura terminal de finalize_draft) entran en la cola. Los destinatarios distintos son independientes: la regulación de ritmo para un par no bloquea los mensajes hacia otro. El wrapper conserva el estado de hasta PACING_RECIPIENT_CAP (1024) pares distintos mediante desalojo LRU de estados inactivos: solo se reclaman las filas sin trabajo en cola y sin envíos en curso, por lo que el límite es un objetivo para el estado inactivo y no una cota dura incondicional ante una ráfaga con todos activos.

Caso de uso: canales de identidad emparejada donde las respuestas en menos de un segundo son un indicador de IA. La cobertura a nivel de protocolo existe de extremo a extremo en nueve canales (Telegram, Discord, Slack, Mattermost, Webhook, iMessage, Matrix, Signal, WhatsApp); las pruebas de integración fijan el contrato de valor mínimo + desbordamiento en Telegram y WhatsApp Web.

Advertencia sobre webhooks: en un canal de webhook síncrono, la respuesta saliente es la respuesta HTTP a la solicitud del llamador. Un valor mínimo de reply_min_interval_secs distinto de cero puede mantener esa respuesta abierta durante la duración del mínimo, lo que puede exceder el tiempo de espera de la solicitud del propio llamador. Establezca el mínimo solo cuando el llamador del webhook tolere una respuesta retrasada, o déjelo en 0 y controle el ritmo en el origen.

iMessage (solo en macOS)

iMessage se conecta mediante puente a través de la Linq Partner API ([channels.linq.<alias>]):

Solo para macOS y requiere ya sea Linq como un relé de terceros, o automatización directa de AppleScript (experimental, requiere acceso completo al disco y permisos de accesibilidad).

El Bot iLink personal de WeChat utiliza inicio de sesión mediante código QR contra la API de iLink Bot para conversaciones personales de WeChat.

DingTalk

Mensajero empresarial de Alibaba.

Lark / Feishu

Compila con channel-lark para Lark o Feishu. La característica raíz channel-feishu es un alias de channel-lark; la selección en tiempo de ejecución sigue realizándose mediante use_feishu = true.

QQ

El mensajero de consumo de Tencent. El acceso a la API de bot requiere registro de desarrollador.

IRC

IRC clásico. Admite SASL, autenticación con NickServ y múltiples canales.

Mochat

Notion

Trata una base de datos de Notion como una superficie de mensajes. Útil para flujos de trabajo asíncronos donde el “canal” es una bandeja de tareas.


Cuándo preferir una guía dedicada

Los canales con una configuración más compleja (flujos de OAuth, cifrado de extremo a extremo, consideraciones de múltiples dispositivos) se encuentran en sus propias páginas:

Si encuentras algún problema de configuración en cualquiera de los canales mencionados, abre un problema con el ejemplo reproducible y consideraremos convertirlo en una guía dedicada.