Dein Slack-Bot warnt ständig vor Stille: thread_followup_silence hilft


Der Incident ist geschlossen. Im Slack-Thread wickeln zwei Kollegen ab: „eu cluster is back up, right?“ — „yes, failover finished at 09:12“ — „thanks, closing the ticket.“ Und dein Bot postet: ⚠️ the model returned only a silence marker and no reply.

Es ist technisch korrekt. Er hat sich tatsächlich entschieden zu schweigen. Aber für die drei Menschen in diesem Thread ist der Satz reines Rauschen.

Wofür diese Warnung da ist

Hermes hat einen Guard: Wenn das Modell auf eine offensichtlich beantwortbare Nachricht nur mit einem Stille-Marker wie [SILENT] antwortet, lässt das Gateway die Stille nicht stehen — es postet stattdessen einen Hinweis. Die Logik ist bewusst konservativ: lieber eine Zeile zu viel als eine echte Frage, die niemand beantwortet.

Auf Slack ist das Urteil für Thread-Antworten weich. Sobald der Bot an einem Channel-Thread teilgenommen hat, gelten spätere Antworten in diesem Thread als „könnte für den Bot sein“, das Gateway erfasst die Antwort also weder als erwartet noch als unerwartet. Entscheidet das Modell dann „das ist nicht für mich“ und produziert einen nackten Stille-Marker, wird der Marker abgelehnt und die Warnkarte erscheint.

Die Diskrepanz liegt daran, wie Threads sich tatsächlich verhalten: In einem warmen Thread übersteigt Mensch-zu-Mensch-Geplauder die Mensch-zu-Bot-Nachrichten bei Weitem.

Was der Schalter tut

thread_followup_silence ist Opt-in und standardmäßig aus. Ist er an, wird eine nicht adressierte Antwort in einem Thread außerhalb von DMs so gewertet, dass sie keine Antwort erwartet — ein nackter Stille-Marker bleibt also stehen und es wird nichts gepostet.

# config.yaml — Top-Level slack:-Block, oder platforms.slack.extra (extra gewinnt, wenn beides gesetzt ist)
slack:
  thread_followup_silence: true

Oder über die Umgebung:

export SLACK_THREAD_FOLLOWUP_SILENCE=true

Der Vergleich:

Nachricht Default (aus) Schalter an
nicht adressierte Antwort in einem Channel-Thread Stille wird durch den Hinweis ersetzt Stille bleibt, nichts gepostet
eine @mention des Bots normale Antwort normale Antwort
1:1-DM normale Antwort normale Antwort
Gruppen-DM (mehrere Personen) Regeln für geteilte Oberflächen unverändert
Kommandos und Reaktions-Trigger wie gewohnt behandelt wie gewohnt behandelt
flacher Channel (reply_in_thread: false) behält den Hinweis behält den Hinweis

Damit schließt es genau ein Loch: Channel-Threads, keine Erwähnung des Bots, keine DM.

Warum der Default aus bleibt

Weil der alte Default ein echtes Problem löst. Fragt jemand den Bot in einem Thread etwas, ohne ihn zu erwähnen, und der Bot schweigt spurlos, verdampft die Frage einfach — und niemand weiß, dass sie übersprungen wurde.

Der Schalter ist für Workspaces, in denen die Threads mit Bot-Beteiligung überwiegend Menschen sind, die miteinander reden, und die Warnung das Rauschen ist. Alle anderen ändern nichts; der Default-Pfad ist Byte für Byte derselbe.

Es gibt im selben Bereich auch ein engeres Werkzeug: ignore_other_user_mentions. Es überspringt nur Nachrichten, die damit beginnen, jemand anderen zu erwähnen, während einfache Follow-ups weiterhin Antworten bekommen. Ist die Störung „hör auf dazwischenzufunken, wenn Kollegen sich beim Namen nennen“, passt das besser. Ist es „der ganze Thread plaudert und der Bot reicht jedes Mal einen Stille-Bericht ein“, dann ist es dieser Schalter.

Prüfen, ob es gewirkt hat

Such dir einen Thread, an dem der Bot teilgenommen hat, und schick eine Antwort ohne @mention:

  • Entscheidet das Modell, draußen zu bleiben: Es sollte nichts erscheinen — keine Warnkarte.
  • Erwähne den Bot im selben Thread: Er sollte normal antworten. Bleibt er auch dort still, gated etwas anderes (die Mention-Policy auf Channel-Ebene), nicht dieses Flag.

Für das zugrundeliegende Urteil schau im Gateway-Log auf das Feld für die erwartete Antwort dieser Nachricht: Mit dem Flag an wandert es von „undetermined“ nach „no“.

Kannst du es heute nutzen?

Ja — es ist am 3. November mit v0.22.7 erschienen, also ein echter Config-Key in einer veröffentlichten Version. Setze es nach hermes update.

Wenn du die andere Seite derselben Medaille willst — wie die Stille-Entscheidung pro Raum in Multi-Agent-Setups abgegrenzt wird —, geht der Beitrag zur Stille pro Raum das durch. Die vollständige Slack-Optionsliste steht im Slack-Abschnitt der Kommando-Referenz, und wenn das eigentliche Problem ist, dass wichtige Ereignisse dich nie erreichen, deckt der Leitfaden zu Aufmerksamkeit und Benachrichtigungen die Empfangsseite ab.