Skip to content

Plattform-Adapter

源码版本v2026.7.20

Verantwortung

Jede Plattform (Telegram, Discord, Slack, Signal, WhatsApp, WeChat, QQ …) hat einen Adapter, der native Plattform-Events in ein einheitliches MessageEvent übersetzt und einheitliche Sende-Aktionen an die jeweilige Plattform-API zurückleitet. Adapter erben von BasePlatformAdapter und implementieren nur wenige abstrakte Methoden. Adapter stammen aus dem eingebauten gateway/platforms/ oder dem Plugin plugins/platforms/ und werden stets über die PlatformRegistry registriert.

Schlüsseldateien

Datenfluss

  1. Beim Start bringt GatewayRunner (gateway/run.py:3029) die Adapter über _start_one_profile_adapter:9389 hoch.
  2. Der Adapter wird aus der PlatformRegistry (gateway/platform_registry.py:162) nach Namen geladen; Deferred Loading ist erlaubt (zunächst billiger Platzhalter, echter Import erst bei Nutzung).
  3. Der Adapter hört auf Plattform-Events, übersetzt sie in MessageEvent:1759 und übergibt sie an _handle_message:9947.
  4. Der Agent erzeugt Streaming-Output; der Adapter übergibt ihn über die einheitliche Schnittstelle (send:3008 / send_draft) an die Plattform; Medien laufen über den CachedMedia:1638-Cache.
  5. Plattform-Unterschiede (Nachrichtenlänge, Rich-Text, Bildobergrenzen) werden vollständig vom Adapter geschluckt – der Gateway-Kern bekommt davon nichts mit.

Zusammenfassung

Adapter = Übersetzer zwischen «Plattform-Dialekt ↔ einheitlichem Event». Eine neue Plattform bedeutet nur: von BasePlatformAdapter erben, wenige abstrakte Methoden implementieren und registrieren – siehe gateway/platforms/ADDING_A_PLATFORM.md. Telegram/Discord/Slack laufen über den Plugin-Pfad und werden gleich behandelt wie eingebaute Adapter.

Inoffizielle Community-Lernseite. Basiert auf dem MIT-lizenzierten NousResearch/hermes-agent-Quellcode.