Chat Proativo
Use este skill quando o usuário desejar que o agente inicie conversas intencionalmente em vez de esperar passivamente por prompts.
O que este skill é
Esta é uma implementação em nível de skill, não suporte nativo do produto.
Isso significa:
- Já pode criar um loop de aprendizado ativo útil.
- Mas ainda depende do agente hospedeiro ter:
- memória persistente
- recall entre sessões
- um agendador / cron / heartbeat primitivo
- entrega de mensagem de volta ao usuário
- No Hermes, use
cronjob+memory+session_search. - No OpenClaw, use seu equivalente mais próximo: heartbeat / cron / tarefa agendada / loop autônomo.
Auxiliares de execução
Este skill vem com um script auxiliar:
scripts/proactive_runtime.py
Use-o para tornar o fluxo de agendamento determinístico, em vez de reinventar JSON manualmente a cada execução.
Fluxo recomendado para Hermes:
- inicializar ou atualizar o arquivo de estado com
proactive_runtime.py - renderizar o prompt cron a partir desse arquivo de estado
- criar / atualizar / pausar / executar o
cronjobdo Hermes - armazenar o
job_idretornado de volta no arquivo de estado
Subcomandos úteis:
init-stateshow-stateenable-high-speed-test-modedisable-high-speed-test-moderender-cron-promptrender-job-config
Objetivo principal
O objetivo não é publicar mini-artigos. O objetivo é maximizar:
- taxa de resposta
- velocidade de acúmulo de memória
- refinamento do modelo do usuário
- qualidade da iteração de ângulo-tópico ao longo do tempo
O volante é:
inicie → observe a reação → aprenda quais ângulos funcionam → armazene lições compactas → inicie melhor da próxima vez
Perspectiva primeiro
Perspectiva importa mais que tópico.
Um tópico relevante ainda pode falhar se o ângulo parecer sem graça. Um ângulo forte pode fazer um tópico comum valer a pena responder.
Portanto, ao escolher a próxima abertura, otimize nesta ordem:
- a perspectiva certa
- a âncora do usuário certa
- o tópico certo
Um bom chat proativo parece:
- uma nova lente sobre algo que o usuário já se importa
- uma tensão que o usuário quer resolver
- uma pergunta fácil de responder, mas difícil de ignorar
Um mau chat proativo parece:
- check-in genérico
- preenchimento amplo e caloroso
- modo artigo
- perseguir tendências sem gancho pessoal
Comandos de gatilho (inglês)
Use frases de comando em inglês para que o usuário possa controlar o modo explicitamente.
Comandos primários:
enable proactive chatdisable proactive chatproactive chat statusshow proactive chat settingsset proactive chat interval to every 4 hoursset proactive chat max length to 80 charactersfocus proactive chat more on memake proactive chat use more fresh web contextenable proactive chat high-speed test modedisable proactive chat high-speed test modetrigger proactive chat now
Variantes de linguagem natural também contam, mas mantenha o vocabulário de comando visível em inglês.
Configurações padrão
A menos que o usuário diga o contrário, use:
- intervalo de contato ocioso: a cada 2h
- limite de mensagem em chinês: 100 caracteres chineses
- limite de mensagem em inglês: 200 caracteres
- peso de tópico relacionado a si: 0,7
- peso de tópico do mundo externo: 0,3
- orçamento de links: máx. 1 link por mensagem proativa
- tempo de espera pós-resposta recente: não envie uma nova abertura proativa se o usuário respondeu nas últimas 2h
- tempo de espera de repetição de tópico: evite repetir um ângulo claramente ignorado muito cedo
- viés de mutação: permita combinações entre domínios quando aumentarem a curiosidade sem se tornarem aleatórias
Modo de teste em alta velocidade
Use este modo apenas para validação rápida.
Comandos:
enable proactive chat high-speed test modedisable proactive chat high-speed test mode
Comportamento quando ativado:
- agendamento: a cada 1m
- limite de duração: 10 minutos no total
- limite de execuções: 10 envios proativos no total se o usuário nunca responder
- após a rajada de teste, reverta ao intervalo normal quando o modo for desativado ou quando o job for recriado no modo normal
Este modo existe para testar se o loop proativo de ponta a ponta realmente dispara, não para uso normal.
Regras de escopo
Prefira contextos 1:1
Este modo funciona melhor em:
- DMs
- chats privados
- uma thread específica do usuário
Tenha cuidado em:
- canais compartilhados
- chats em grupo
- salas públicas
Se a sala atual for claramente compartilhada, avise brevemente antes de ativar. Por padrão, não envie spam em espaços compartilhados a menos que o usuário explicitamente queira que aquela sala seja usada.
Princípios de design de mensagem
1) Otimize para resposta, não para aplauso
Uma ótima mensagem proativa é fácil de responder e difícil de ignorar.
2) Prefira o usuário ao mundo
Existem dois baldes de tópicos:
- A. o próprio usuário
- B. o mundo externo
Penda fortemente para A. Mesmo ao usar B, dobre-o de volta para A sempre que possível:
- o gosto do usuário
- o julgamento do usuário
- os objetivos atuais do usuário
- os pontos cegos do usuário
- a identidade / auto-modelo / preferências do usuário
3) Compressão supera completude
Não despeje ensaios. Forma padrão:
- 1 observação
- 1 tensão / ângulo
- 1 pergunta
4) Máximo de uma tela
Curto o suficiente para que o usuário possa responder em uma única respiração.
5) Loop aberto supera conclusão polida
Não feche o tópico muito bem. Deixe espaço para o usuário reagir.
6) Perspectiva supera calor genérico
Ruim:
- "Como você está?"
- "No que você está pensando hoje?"
Melhor:
- um ângulo preciso ligado aos interesses, história, estilo ou tensão atuais do usuário
O que conta como bom material bruto
Use estas entradas agressivamente:
- contexto da sessão atual
- memória persistente / perfil do usuário
- recall entre sessões
- tópicos proativos anteriores bem-sucedidos ou falhos
- contas sociais fornecidas pelo usuário
- exportações de arquivo
- links pessoais / sites / bios
- respostas passadas que revelaram gosto, identidade ou pontos de atrito
- sinais externos frescos apenas quando melhoram materialmente a qualidade do gancho
Se o usuário já forneceu:
- um handle do X/Twitter
- um arquivo
- um blog
- um site
- um GitHub
- outro corpus público
isso é uma fonte de alto valor para aprender quais ângulos provavelmente funcionarão.
Modelo de estado
Persista um estado JSON local por usuário/origem quando possível.
Prefira um caminho como:
$HERMES_HOME/proactive-chat/<plataforma>-<chat-ou-thread>-<usuario>.json- ou o equivalente mais próximo específico do host
Campos mínimos:
{
"enabled": true,
"job_id": "...",
"deliver_target": "origin",
"platform_context": "discord thread ...",
"user_label": "Paul",
"interval": "every 2h",
"normal_interval": "every 2h",
"max_chars_zh": 100,
"max_chars_en": 200,
"last_agent_outreach_at": "",
"last_agent_topic": "",
"last_user_reply_at": "",
"current_active_cluster": "",
"successful_angles": [],
"weak_angles": [],
"learned_preferences": [],
"profile_gaps": [],
"test_mode_enabled": false,
"test_mode_interval": "every 1m",
"test_mode_repeat": 10,
"test_mode_duration_minutes": 10
}
Não transforme isso em um arquivo de log gigante. Mantenha-o compacto e focado em decisões.
Fluxo de ativação
Quando o usuário disser enable proactive chat:
- Resolva o escopo.
- Por padrão, use o DM, thread ou origem atuais.
- No Hermes, prefira
deliver=origina menos que o usuário tenha pedido outro destino.
- Construa um modelo rápido do usuário a partir de:
- contexto da sessão atual
- memória persistente / perfil do usuário
session_search- arquivos conhecidos / links públicos
- contexto fresco de busca/notícias/social apenas se melhorar a taxa de resposta provável
- Identifique prioridades de tópico:
- autodescoberta
- identidade / gosto / atração / aversão
- objetivos / gargalos
- threads inacabadas de conversas anteriores
- pontos cegos / tradeoffs / heurísticas de decisão
- tópicos mundiais mapeados de volta para a lente do usuário
- ângulos de mutação híbrida misturando múltiplos domínios
- Crie ou atualize o arquivo de estado.
- No Hermes, prefira o script auxiliar de execução em vez de editar JSON manualmente.
- Caminho recomendado:
$HERMES_HOME/proactive-chat/<plataforma>-<chat>-<thread>-<usuario>.json - Use
scripts/proactive_runtime.py init-statese o arquivo não existir.
- Crie ou atualize o job agendado.
- No Hermes, isso deve significar uma chamada real
cronjob(action='create' | 'update', ...). - O agendamento do modo normal deve usar o
intervaldo estado. - Se o modo de teste em alta velocidade estiver ativado, o agendamento deve ser
every 1mcomrepeat=10para que a rajada dure apenas 10 minutos no total. - Use
scripts/proactive_runtime.py render-cron-promptpara produzir o prompt do agendador autocontido. - Use
scripts/proactive_runtime.py render-job-configpara ler as configurações de agendamento/repetição implícitas no estado.
- No Hermes, isso deve significar uma chamada real
- Salve o
job_idretornado de volta no arquivo de estado. - Confirme brevemente com intervalo, limite de comprimento, destino e se o modo de teste está ativo.
Fluxo de desativação
Quando o usuário disser disable proactive chat:
- encontre o job proativo correspondente
- pause-o por padrão em vez de deletá-lo
- atualize o arquivo de estado para
enabled=false - se nenhum job correspondente existir, diga que já está desligado
- se o usuário explicitamente disser para deletar/resetar, remova o job e opcionalmente limpe o arquivo de estado
Fluxo do modo de teste em alta velocidade
Quando o usuário disser enable proactive chat high-speed test mode:
- carregue o arquivo de estado atual
- alterne
test_mode_enabled=true - defina o intervalo para
every 1m - defina o limite de repetição do agendador para
10 - atualize o job cron do Hermes para que ele execute apenas por 10 minutos no total
- confirme que o modo de teste é temporário e limitado a 10 envios proativos se o usuário nunca responder
Quando o usuário disser disable proactive chat high-speed test mode:
- alterne
test_mode_enabled=false - restaure o intervalo normal de
normal_interval - atualize o job cron do Hermes de volta ao modo normal
- confirme o intervalo restaurado
Fluxo de status e configurações
Se o usuário perguntar sobre status ou alterar configurações:
- mostre as configurações resolvidas atuais brevemente
- atualize o arquivo de estado
- atualize o job agendado se necessário
- não crie jobs duplicados se um existente puder ser atualizado ou retomado
Interprete mudanças de linguagem natural diretamente, por exemplo:
set proactive chat interval to every 4 hoursset proactive chat max length to 80 charactersfocus proactive chat more on memake proactive chat use more fresh web contextenable proactive chat high-speed test modedisable proactive chat high-speed test mode
Fluxo de gatilho manual
Se o usuário disser trigger proactive chat now:
- não espere pelo temporizador ocioso
- se um job Hermes agendado já existir, prefira
cronjob(action='run', job_id=...)para disparar o mesmo caminho autônomo imediatamente - caso contrário, gere imediatamente uma abertura proativa usando as mesmas regras de perspectiva primeiro
- ainda respeite os limites de comprimento e o contexto recente
- prefira um ângulo fresco, a menos que uma thread ativa claramente valha a pena continuar
- atualize o arquivo de estado como se o sistema agendado tivesse disparado naturalmente
Este comando é para puxar manualmente a próxima mensagem proativa. Deve parecer "finja que já fiquei em silêncio pelo intervalo — agora envie a abertura".
Enquanto o modo está ativado: comportamento de resposta ao vivo
Quando o usuário responder em uma sessão onde o chat proativo está ativado:
1) Atualize o estado imediatamente
Registre pelo menos:
last_user_reply_at- o cluster de tópico ativo
- se parece um sinal forte, fraco ou ambíguo
2) Infira a força do interesse
Use heurísticas aproximadas como:
- resposta mais rápida = sinal de interesse mais forte
- resposta mais longa = sinal de interesse mais forte
- mais especificidade = sinal de interesse mais forte
- mais perguntas de acompanhamento = sinal de interesse mais forte
Mas não superajuste com base em uma única mensagem.
3) Continue o tópico atual antes de mudar de tópico
Se o usuário respondeu, isso é permissão para ir mais fundo. Não pule para um ângulo novo e não relacionado muito cedo.
4) Salve aprendizado durável
Use memória de longo prazo apenas para padrões estáveis, por exemplo:
- responde bem a perguntas de auto-modelo
- gosta de análises no nível de mecanismo sobre IA x cripto x produto
- não gosta de conversa motivacional genérica
- engaja mais quando um evento mundial é mapeado de volta para identidade, incentivos ou gosto
Não salve logs de chat brutos ou observações temporárias como memória de longo prazo.
Modo runner autônomo
Esta seção se aplica a execuções agendadas / heartbeat / cron.
Em cada execução:
- Carregue o estado.
- Se o modo estiver desativado, não faça nada.
- Se
test_mode_enabled=true, respeite o limite de alta velocidade: a cada 1 minuto, por 10 minutos no total, máximo de 10 envios se o usuário nunca responder.
- Respeite o tempo de espera pós-resposta recente.
- Se uma nova abertura parecer spam, fique em silêncio.
- Em execuções cron do Hermes, retorne uma resposta começando com
[SILENT]para que a entrega seja suprimida.
- Reconstrua o pool de candidatos a tópico.
- tópicos do próprio usuário primeiro
- tópicos mundiais mapeados de volta para o usuário em segundo
- ângulos híbridos / de mutação em terceiro
- Pontue os candidatos.
Prefira candidatos com:
- alta relevância para interesses conhecidos
- uma lacuna de curiosidade real
- novidade em relação ao contato recente
- baixo atrito de resposta
- alto valor de aprendizado para o usuário
- forte ajuste de perspectiva
- Use novidade quando ajudar.
- contexto de busca/notícias/social pode melhorar o gancho
- mas novidade é um multiplicador, não o núcleo
- Escreva exatamente uma mensagem curta.
- respeite o limite de caracteres estritamente
- por padrão, um parágrafo curto
- no máximo um link
- sem listas numeradas a menos que o formato seja excepcionalmente forte
- sem check-ins genéricos
- prefira observação + ângulo + pergunta
- Atualize o estado após o envio.
- Se a qualidade não estiver lá, fique em silêncio.
Estratégia de tópico
Ordem de prioridade
- O próprio usuário
- O mundo visto através do usuário
- Discussão puramente do mundo externo
Bons tipos de ângulo relacionados a si
- construção de identidade
- descoberta de preferências
- contradições internas não resolvidas
- gosto / aversão / atração em relacionamentos
- gargalos atuais de projeto
- heurísticas de decisão
- declarações antigas que vale a pena revisitar
- lacunas de perfil ocultas que o agente ainda precisa aprender
Bons tipos de ângulo relacionados ao mundo
Use-os pesadamente apenas se puderem ser personalizados. Exemplos:
- "esta tendência diz algo
…
[truncado para tradução]