Skip to content

Adaptadores de plataforma

源码版本v2026.7.20

Responsabilidad

Cada plataforma (Telegram, Discord, Slack, Signal, WhatsApp, WeChat, QQ…) tiene un adaptador que traduce los eventos nativos de la plataforma a un MessageEvent unificado, y las acciones de envío unificadas de vuelta a la API de la plataforma. Los adaptadores heredan de BasePlatformAdapter e implementan un puñado de métodos abstractos. Pueden venir del gateway/platforms/ integrado o de plugins en plugins/platforms/; todos se registran a través de PlatformRegistry.

Archivos clave

Flujo de datos

  1. En el arranque, GatewayRunner (gateway/run.py:3029) levanta los adaptadores vía _start_one_profile_adapter:9389.
  2. El adaptador se consulta en PlatformRegistry (gateway/platform_registry.py:162) por nombre, soportando carga diferida (registro de placeholder barato, import real solo cuando se usa).
  3. El adaptador escucha eventos de la plataforma, los traduce a MessageEvent:1759 y los entrega a _handle_message:9947.
  4. El agent produce streaming; el adaptador lo entrega de vuelta a la plataforma vía las interfaces unificadas (send:3008 / send_draft); los medios pasan por la caché CachedMedia:1638.
  5. Las diferencias entre plataformas (longitud de mensaje, texto enriquecido, límites de imágenes) las absorbe internamente el adaptador; el núcleo del gateway no se entera.

Resumen

Adaptador = traductor entre «dialecto de plataforma ↔ evento unificado». Añadir una plataforma solo requiere heredar de BasePlatformAdapter, implementar unos pocos métodos abstractos y registrarse; ver gateway/platforms/ADDING_A_PLATFORM.md. Telegram/Discord/Slack van por la vía de plugins, tratados igual que los adaptadores integrados.

Sitio de aprendizaje comunitario no oficial. Basado en el código fuente de NousResearch/hermes-agent (licencia MIT).