Seu bot do Slack vive avisando sobre silêncio: conheça o thread_followup_silence


O incidente está encerrado. Na thread do Slack, dois colegas fecham o assunto: “o cluster eu voltou, né?” — “sim, o failover terminou às 09:12” — “valeu, vou fechar o ticket”. E seu bot posta: ⚠️ o modelo retornou apenas um marcador de silêncio e nenhuma resposta.

Tecnicamente está correto. Ele de fato decidiu não falar. Mas, para as três pessoas naquela thread, a frase é puro ruído.

Para que serve esse aviso

O Hermes tem uma proteção: quando o modelo responde a uma mensagem obviamente respondível com nada além de um marcador de silêncio como [SILENT], o gateway não deixa o silêncio passar — ele posta um aviso no lugar. A lógica é deliberadamente conservadora: melhor uma linha a mais do que uma pergunta real que ninguém responde.

No Slack, o julgamento para respostas de thread é suave. Uma vez que o bot participou de uma thread no canal, as respostas seguintes nessa thread passam a ser tratadas como “talvez sejam para o bot”, então o gateway registra a resposta como nem esperada nem inesperada. Quando o modelo então decide “isso não é para mim” e produz um marcador de silêncio puro, o marcador é rejeitado e o cartão de aviso aparece.

O descompasso está em como as threads realmente funcionam: em uma thread movimentada, a conversa entre humanos supera em muito as mensagens de humano para bot.

O que a opção faz

thread_followup_silence é opt-in e vem desligada por padrão. Quando ligada, uma resposta não endereçada em uma thread que não é DM é julgada como não esperando resposta, então um marcador de silêncio puro se sustenta e nada é postado.

# config.yaml — bloco slack: de nível superior, ou platforms.slack.extra (extra vence se ambos definidos)
slack:
  thread_followup_silence: true

Ou via ambiente:

export SLACK_THREAD_FOLLOWUP_SILENCE=true

A comparação:

Mensagem Padrão (desligado) Opção ligada
resposta não endereçada em uma thread de canal silêncio substituído pelo aviso silêncio se sustenta, nada é postado
uma @menção ao bot resposta normal resposta normal
DM 1:1 resposta normal resposta normal
DM em grupo (várias pessoas) regras de superfície compartilhada inalterado
comandos e gatilhos de reação tratados como sempre tratados como sempre
canal plano (reply_in_thread: false) mantém o aviso mantém o aviso

Então ela fecha um buraco específico: threads de canal, sem menção ao bot, e que não são DM.

Por que o padrão continua desligado

Porque o padrão antigo resolve um problema real. Se alguém pergunta algo ao bot em uma thread sem mencioná-lo, e o bot fica em silêncio sem deixar rastro, a pergunta simplesmente evapora — e ninguém sabe que ela foi ignorada.

A opção é para workspaces onde as threads em que o bot está envolvido são majoritariamente humanos conversando entre si, e o aviso é o ruído. Todo o resto não muda nada; o caminho padrão continua idêntico, byte a byte.

Existe também uma ferramenta mais estreita na mesma área: ignore_other_user_mentions. Ela ignora apenas mensagens que começam mencionando outra pessoa, enquanto acompanhamentos simples ainda recebem resposta. Se o incômodo é “pare de se intrometer quando os colegas se chamam pelo nome”, essa é a mais adequada. Se é “a thread inteira está conversando e o bot registra um relatório de silêncio toda vez”, a opção é esta.

Verificando se funcionou

Escolha uma thread em que o bot já participou e envie uma resposta sem @menção:

  • Se o modelo decidir ficar de fora: nada deve aparecer — nenhum cartão de aviso.
  • Mencione o bot na mesma thread: ele deve responder normalmente. Se também ficar quieto ali, outra coisa está barrando (política de menção no nível do canal), não esta flag.

Para ver o julgamento por trás, acompanhe no log do gateway o campo de resposta esperada dessa mensagem: com a flag ligada, ele passa de “undetermined” para “no”.

Você já pode usar?

Sim — isso foi lançado na v0.22.7, em 3 de novembro, então é uma chave de configuração real em uma versão publicada. Defina depois de hermes update.

Se você quer o outro lado da mesma moeda — como a decisão de silêncio é delimitada por sala em configurações multiagente —, o post sobre silêncio por sala percorre isso. A lista completa de opções do Slack está na seção Slack da referência de comandos, e, se o problema real é que eventos importantes nunca chegam até você, o guia de atenção e notificações cobre a ponta receptora.