OpenClaw na prática: como criar um agente de atendimento ao público que não seja uma bomba-relógio
Dá para usar o OpenClaw para montar um agente de atendimento, qualificação e coleta de dados. Mas não se engane.
O que você vai construir aqui
Um agente de atendimento público com estas características:
- responde dúvidas frequentes sem alucinar à toa;
- coleta dados mínimos de contato e contexto;
- registra o que foi coletado;
- separa memória operacional de memória sensível;
- encaminha casos que exigem humano;
- fica isolado do seu agente pessoal ou operacional;
- abre com segurança razoável, sem sair dando acesso demais para qualquer estranho.
A arquitetura recomendada é esta:
Cliente → Telegram ou WhatsApp → Gateway OpenClaw
↓
Agente "atendimento"
↓
1) responde FAQ
2) coleta dados
3) registra lead/incidente
4) escala para humano quando necessário
↓
Agente interno / operador
A ideia central é simples: não misture o agente público com o seu agente privado. O OpenClaw suporta múltiplos agentes isolados, cada um com workspace, arquivos de identidade, sessão e diretório de estado próprios.[1]
1) Antes de instalar: entenda o terreno
O OpenClaw é, na prática, um gateway local/self-hosted que conecta canais como WhatsApp, Telegram, Discord, Signal, iMessage e outros a um runtime de agente, com UI web, sessões, ferramentas e roteamento multiagente.[2][3]
Isso tem consequências diretas:
- o canal é só a porta de entrada;
- o comportamento real do bot nasce do workspace do agente;
- memória não é mágica — ela vive em arquivos;
- segurança depende mais da sua configuração do que do seu entusiasmo.
O runtime do OpenClaw injeta no contexto do agente arquivos como AGENTS.md, SOUL.md, USER.md e arquivos de memória do workspace em sessões novas. Em outras palavras: se você quer um bot bom, não adianta só “escrever um prompt legal”; você precisa montar o workspace direito.[4][5][6]
2) Escolha do canal: Telegram primeiro, WhatsApp depois
Minha recomendação direta
Se você quer subir rápido, testar o fluxo e validar o atendimento, comece por Telegram.
O motivo é objetivo:
- o canal de Telegram está documentado como production-ready para DMs e grupos;
- o setup é limpo com token do BotFather;
- o fluxo é previsível;
- você evita parte da fricção operacional do WhatsApp.[7]
E o WhatsApp?
Dá para usar, sim. O OpenClaw trata o WhatsApp como canal via WhatsApp Web (Baileys), com login por QR code. A própria documentação recomenda usar um número dedicado quando possível, porque isso reduz confusão operacional e melhora os limites de acesso e roteamento.[8]
Isso importa muito em atendimento. Misturar o seu número pessoal com o bot é preguiça operacional — e preguiça operacional vira incidente.
3) Instalação base
O caminho recomendado pelo projeto é o onboarding guiado.
npm install -g openclaw@latest
openclaw onboard --install-daemon
O guia oficial informa Node 24 como recomendado, com Node 22.16+ também suportado, e o onboarding é o fluxo preferido para configurar gateway, workspace, canais e skills.[9][10]
Depois disso, abra a interface web:
openclaw dashboard
O dashboard é servido pelo próprio gateway, normalmente em http://127.0.0.1:18789/.[11]

Figura 2 — Exemplo de interface do ecossistema OpenClaw. Fonte: assets oficiais do repositório.[3:1]
4) Crie um agente isolado só para atendimento
Não use o agente principal para falar com cliente. Isso é erro básico.
Crie um agente próprio:
openclaw agents add atendimento
openclaw agents list --bindings
A própria CLI mostra openclaw agents add e openclaw agents bind como fluxo padrão para agentes isolados e bindings de roteamento.[12] A documentação de multi-agent explica que cada agente tem:
- workspace próprio;
agentDirpróprio;- sessões próprias;
- identidade e arquivos próprios.[1:1]
Isso significa que você pode ter:
main: seu agente privado;atendimento: bot público;ops: bot interno para time ou operador.
E é exatamente assim que deveria ser.
5) Trave a segurança antes de abrir a porta
Essa é a parte que todo mundo tenta pular. Não pule.
A documentação de segurança do OpenClaw é cristalina em dois pontos:
- se várias pessoas podem mandar DM para o bot, você deve isolar sessão por remetente;
- prompt injection não é resolvido por “instruções bonitas”; o que realmente limita dano é política de ferramentas, sandbox, allowlists e escopo.[13]
Baseline mínimo recomendado
O guia de segurança publica um baseline endurecido com:
session.dmScope: "per-channel-peer";tools.profile: "messaging";- bloqueio de grupos de ferramentas de automação, runtime e filesystem amplo;
execnegado;elevateddesligado.[13:1]
Exemplo inspirado diretamente nesse baseline:
{
"gateway": {
"mode": "local",
"bind": "loopback",
"auth": {
"mode": "token",
"token": "troque-por-um-token-longo-e-aleatorio"
}
},
"session": {
"dmScope": "per-channel-peer"
},
"tools": {
"profile": "messaging",
"deny": [
"group:automation",
"group:runtime",
"group:fs",
"sessions_spawn",
"sessions_send"
],
"fs": {
"workspaceOnly": true
},
"exec": {
"security": "deny",
"ask": "always"
},
"elevated": {
"enabled": false
}
}
}
Por que isso é obrigatório?
Porque, por padrão, o OpenClaw pode operar com leitura/escrita de arquivos, acesso de rede e envio de mensagens, dependendo do que você habilitou. A superfície de risco é real.[13:2]
Comando obrigatório depois de cada ajuste
openclaw security audit
E, quando fizer mudanças maiores:
openclaw doctor
Se você pretende abrir DMs públicas sem auditoria e sem reduzir ferramentas, você não está montando atendimento. Está montando uma armadilha.
6) Estruture o workspace como um sistema, não como um prompt
A pior forma de montar esse bot é jogar tudo dentro de um único AGENTS.md e rezar.
A melhor forma é organizar o workspace por função.
Estrutura sugerida
~/.openclaw/workspace-atendimento/
├── AGENTS.md
├── SOUL.md
├── USER.md
├── knowledge/
│ ├── faq.md
│ ├── produtos.md
│ ├── politicas.md
│ └── horarios.md
├── policies/
│ ├── intake.md
│ ├── escalacao.md
│ └── tom_de_voz.md
├── data/
│ ├── leads/
│ │ └── intakes.ndjson
│ ├── incidents/
│ │ └── casos_abertos.md
│ └── faq/
│ └── open_questions.md
├── memory/
│ └── YYYY-MM-DD.md
├── MEMORY.md
└── skills/
└── lead_capture/
└── SKILL.md
O papel de cada arquivo
AGENTS.md: regras de operação do agente.SOUL.md: identidade, postura e limites.USER.md: perfil do operador/dono, não do cliente.knowledge/*.md: base factual que o agente consulta.policies/*.md: fluxo, coleta de dados, escalonamento.data/*: registros estruturados do atendimento.memory/YYYY-MM-DD.md: memória operacional diária.MEMORY.md: memória curada de longo prazo, com uso cuidadoso.[5:1][6:1]
7) O arquivo que manda no jogo: AGENTS.md
O template oficial do OpenClaw deixa claro que, no início de cada sessão, o agente deve ler SOUL.md, USER.md, as notas de hoje e ontem, e MEMORY.md apenas em sessão principal privada.[5:2] Para atendimento público, isso significa uma coisa importante:
não use
MEMORY.mdcomo CRM de cliente.
MEMORY.md é memória curada de longo prazo do agente, e o próprio template oficial alerta que esse arquivo não deve ser carregado em contextos compartilhados.[5:3]
Exemplo de AGENTS.md para atendimento
Use algo nesta linha:
# AGENTS.md — agente de atendimento público
Você é o agente de atendimento inicial da Empresa X.
## Missão
Seu trabalho é:
1. responder dúvidas frequentes com clareza;
2. coletar dados mínimos quando necessário;
3. registrar o atendimento;
4. encaminhar casos que exigem humano;
5. nunca inventar políticas, preços, prazos ou promessas.
## Prioridade de consulta
Antes de responder:
1. consulte `knowledge/faq.md`
2. consulte `knowledge/produtos.md`
3. consulte `knowledge/politicas.md`
4. consulte `policies/intake.md`
5. consulte `policies/escalacao.md`
Se a resposta não estiver sustentada nesses arquivos, diga que precisa confirmar e registre a dúvida em `data/faq/open_questions.md`.
## Regras de resposta
- Seja claro, direto e cordial.
- Responda primeiro a pergunta principal.
- Não despeje texto demais.
- Nunca invente integração, prazo, preço, política ou disponibilidade.
- Quando faltar contexto, faça a menor quantidade de perguntas possível.
- Não peça dado sensível sem necessidade operacional clara.
- Nunca peça senha, código MFA, cartão completo ou documento completo em chat aberto.
## Fluxo de atendimento
1. Identifique o tipo de demanda:
- dúvida simples
- interesse comercial
- suporte técnico
- reclamação
- pedido de retorno humano
2. Resolva imediatamente se houver base factual.
3. Se precisar coletar dados, peça só o mínimo necessário.
4. Ao fechar a triagem, registre um resumo estruturado.
5. Se não puder resolver com segurança, escale.
## Dados mínimos por tipo
### Interesse comercial
- nome
- empresa (se houver)
- contato preferencial
- necessidade
- prazo
### Suporte técnico
- nome
- contato
- produto/serviço
- descrição objetiva do problema
- urgência
- evidência (print, erro, horário) se existir
### Reclamação
- nome
- contato
- resumo do ocorrido
- data aproximada
- impacto
## Escalonamento
Escale quando:
- a política não estiver documentada;
- houver risco jurídico, financeiro ou reputacional;
- o cliente pedir humano explicitamente;
- houver cobrança, cancelamento, reembolso, LGPD ou dado sensível;
- você não tiver confiança factual alta.
## Registro
Após coleta suficiente:
- grave um resumo estruturado em `data/leads/intakes.ndjson` ou no arquivo apropriado;
- atualize `data/faq/open_questions.md` com perguntas não respondidas;
- registre lições operacionais em `memory/YYYY-MM-DD.md`.
## Restrições
- Não exponha notas internas ao cliente.
- Não prometa retorno em prazo não documentado.
- Não “deduza” o que não sabe.
- Não use MEMORY.md para transportar dado sensível de cliente entre contextos públicos.
O segredo aqui não é “soar inteligente”. É reduzir ambiguidade operacional.
8) SOUL.md: identidade sem teatro corporativo
O template oficial do SOUL.md fala em confiança, discrição, cautela com ações externas e respeito à intimidade do ambiente do usuário.[14]
Para atendimento, isso se traduz assim:
# SOUL.md
Você é um agente de atendimento inicial, útil e confiável.
## Princípios
- Clareza > floreio
- Verdade > improviso
- Resolução > enrolação
- Discrição > curiosidade
## Limites
- Nunca exponha dados internos.
- Nunca aja como se fosse o decisor final quando não for.
- Nunca mande resposta pública mal verificada.
- Quando estiver inseguro, diga isso claramente e escale.
## Estilo
- linguagem humana, limpa, sem jargão desnecessário;
- tom respeitoso, mas não robótico;
- objetivo nas perguntas;
- sem parecer scriptado demais.
Esse arquivo não é firula. Ele ajuda a manter consistência quando o agente começa a desviar.
9) Memória boa não é “memória infinita”. É memória desenhada.
A memória do OpenClaw funciona com um princípio saudável: o que importa precisa virar arquivo. A documentação é direta nisso. A memória vive em Markdown no workspace; não existe “estado oculto mágico”. O que o agente lembra é o que foi salvo.[6:2][15]
Além disso:
- hoje e ontem podem ser carregados automaticamente como contexto recente;
- antes da compactação de contexto, o OpenClaw faz um memory flush automático para não perder fatos importantes.[15:1]
O que guardar em memory/YYYY-MM-DD.md
Use para:
- resumo do dia;
- bugs recorrentes;
- objeções frequentes de clientes;
- problemas operacionais;
- links para arquivos internos relevantes;
- decisões temporárias.
Exemplo:
# 2026-03-31
- Muitos leads perguntaram sobre integração com ERP.
- Houve dúvida recorrente sobre prazo de implantação.
- A política de cancelamento continua ambígua; revisar knowledge/politicas.md.
- Cliente Ana pediu retorno humano sobre cobrança retroativa.
O que guardar em MEMORY.md
Guarde só o que é durável e estrutural:
- lições estáveis;
- preferências operacionais;
- decisões consolidadas;
- postura da empresa;
- critérios de triagem que não mudam toda semana.
Exemplo:
# MEMORY.md
- Nunca responder preço final sem consultar a política comercial vigente.
- Sempre tratar pedidos de reembolso como caso de escalonamento.
- Em dúvidas sem base factual, responder com transparência e registrar a lacuna.
- O canal prefere mensagens curtas e confirmatórias, não blocos enormes.
O que não fazer
- não use
MEMORY.mdpara armazenar histórico detalhado de cada cliente; - não use memória como substituto de base de conhecimento;
- não confie em memória para algo que exige estrutura — use arquivo estruturado.
Se dado importa, registre fora da conversa.
10) Sessões: se você errar aqui, um cliente vaza para o outro
A documentação de sessões não deixa margem para romantismo: por padrão, todas as DMs podem compartilhar a mesma sessão em setups single-user. Se mais de uma pessoa falar com o bot, você precisa habilitar isolamento de DM. Caso contrário, o contexto de Alice pode vazar para Bob.[16]
Configuração certa
{
"session": {
"dmScope": "per-channel-peer",
"reset": {
"idleMinutes": 720
}
}
}
O per-channel-peer é o recomendado para isolar por canal + remetente.[16:1]
E se a mesma pessoa falar por dois canais?
A documentação recomenda session.identityLinks quando você quer que a mesma pessoa compartilhe uma identidade entre canais diferentes.[16:2]
Meu conselho: só faça isso quando tiver certeza de que sabe o que está unificando. Senão você cria um Frankenstein de contexto.
11) Configure o canal: tutorial rápido para Telegram
Para um primeiro bot público, Telegram é o caminho mais limpo.
Passo 1 — criar token
No Telegram, fale com @BotFather, rode /newbot e guarde o token.[7:1]
Passo 2 — configurar o canal
Exemplo mínimo:
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "COLE_SEU_TOKEN_AQUI",
"dmPolicy": "pairing",
"groups": {
"*": {
"requireMention": true
}
}
}
}
}
Esse é o padrão seguro de entrada: pairing em DMs e menção exigida em grupos.[7:2][17]
Passo 3 — subir gateway e aprovar o primeiro contato
openclaw gateway
openclaw pairing list telegram
openclaw pairing approve telegram <CODIGO>
Os códigos de pairing expiram em uma hora.[7:3]
Quando abrir para o público de verdade?
A documentação admite dmPolicy: "open" para Telegram, mas isso exige allowFrom com "*".[7:4] Em português claro: isso transforma seu bot em porta aberta.
Faça isso só depois de:
- reduzir ferramentas;
- testar prompt injection;
- validar o fluxo de atendimento;
- confirmar que o agente não executa nada perigoso.
12) Se for WhatsApp, faça direito
O setup rápido oficial é:
{
"channels": {
"whatsapp": {
"dmPolicy": "pairing",
"allowFrom": ["+5511999999999"],
"groupPolicy": "allowlist",
"groupAllowFrom": ["+5511999999999"]
}
}
}
Depois:
openclaw channels login --channel whatsapp
openclaw gateway
openclaw pairing list whatsapp
openclaw pairing approve whatsapp <CODIGO>
O OpenClaw recomenda usar um número separado quando possível.[8:1] E isso não é preciosismo. Em atendimento, número dedicado significa:
- identidade clara do bot;
- menos confusão com self-chat;
- menos chance de política mal configurada;
- fronteira operacional mais limpa.
Outro detalhe importante: o canal de WhatsApp do OpenClaw é baseado em WhatsApp Web (Baileys); a própria doc observa que não existe um canal nativo separado via Twilio no registro embutido de canais.[8:2]
Isso significa: se você precisava de uma stack de WhatsApp corporativo gerenciada e certificada, você precisa pensar duas vezes antes de enfiar tudo no OpenClaw.
13) Faça a base de conhecimento parar o bot de inventar
O erro clássico de agente de atendimento é responder com confiança usando nada além de probabilidade.
A solução é simples: dê uma base curta, clara, atualizada e verificável.
Exemplo de knowledge/faq.md
# FAQ operacional
## Horário de atendimento humano
- Segunda a sexta: 9h às 18h
- Sábado: 9h às 12h
- Domingo: sem atendimento humano
## Prazo de retorno
- Dúvidas simples: tentativa de resposta imediata pelo agente
- Casos humanos: retorno em até 1 dia útil
- Casos financeiros ou cancelamento: prioridade alta
## Política de preço
- O agente não fecha preço final sem consultar a política comercial vigente.
- Em pedidos comerciais, coletar contexto e encaminhar ao time humano.
## Política de cancelamento
- O agente não promete cancelamento instantâneo.
- Todo pedido de cancelamento deve ser escalado.
Regras que você deve colocar no agente
- responder apenas com base no que estiver documentado;
- quando não souber, dizer isso claramente;
- registrar a pergunta aberta em
data/faq/open_questions.md; - nunca tratar suposição como política.
Isso parece óbvio. Mesmo assim, quase ninguém faz.
14) Coleta de dados: o bot precisa ser eficiente, não policialesco
Um agente bom coleta o mínimo necessário para destravar o próximo passo.
Fluxo de coleta que funciona
- entende a categoria da demanda;
- pede só os campos mínimos;
- resume de volta para confirmar;
- registra;
- resolve ou escala.
Exemplo de abordagem
Cliente: “Quero entender melhor o serviço de vocês.”
Bot:
“Perfeito. Posso te orientar já. Para eu te direcionar melhor, me diga só três coisas:
- seu nome,
- empresa ou contexto de uso,
- o principal objetivo com o serviço.”
Curto. Direto. Nada de formulário vomitado em chat.
Campos mínimos por cenário
| Cenário | Campos mínimos |
|---|---|
| Interesse comercial | nome, contato, contexto, objetivo, prazo |
| Suporte técnico | nome, contato, produto, problema, urgência |
| Reclamação | nome, contato, ocorrido, impacto, data aproximada |
| Pedido de humano | nome, contato, motivo do encaminhamento |
Regra de ouro
Nunca colete porque “vai que ajuda”.
Colete porque sem aquele dado o próximo passo trava.
15) Para dados importantes, memória não basta: registre de forma estruturada
Se o objetivo é “coletar dados”, você precisa de registro estruturado, não só conversa.
A forma mais simples é pedir que o agente registre cada triagem concluída em um arquivo NDJSON dentro do workspace, por exemplo:
data/leads/intakes.ndjson
Exemplo de linha:
{"timestamp":"2026-03-31T14:32:00-03:00","canal":"telegram","nome":"Ana","contato":"ana@empresa.com","tipo":"interesse_comercial","objetivo":"automatizar triagem de leads","urgencia":"media","status":"triado","resumo":"Lead qualificado; pediu retorno humano"}
Por que isso é melhor?
Porque depois você consegue:
- exportar;
- integrar com outro sistema;
- auditar;
- procurar padrões;
- saber o que o bot realmente coletou.
Conversa é contexto.
Arquivo estruturado é operação.
16) Skills: como disciplinar o agente sem transformar tudo em gambiarra
O OpenClaw usa skills como diretórios com SKILL.md em Markdown com frontmatter YAML. Elas servem para ensinar ao agente quando e como agir.[18][19]
Exemplo de skill para captura de lead
Crie:
mkdir -p ~/.openclaw/workspace-atendimento/skills/lead_capture
E dentro dela, SKILL.md:
---
name: lead_capture
description: Registra atendimentos concluídos e dúvidas abertas em arquivos estruturados do workspace.
---
# Lead Capture
Use esta skill quando uma conversa atingir triagem suficiente para registro.
## Objetivo
Registrar dados coletados sem depender apenas da memória da conversa.
## Regras
- Nunca invente campo ausente.
- Se um dado não foi fornecido, use `null`.
- Não registrar segredo, senha, MFA, cartão ou documento completo.
- Sempre confirmar o resumo antes de registrar quando a conversa estiver ambígua.
## Registro principal
Ao concluir triagem, registre um objeto JSON em `data/leads/intakes.ndjson` com:
- timestamp
- canal
- nome
- contato
- tipo
- objetivo ou problema
- urgência
- status
- resumo
## Perguntas sem resposta
Se a resposta não estiver sustentada por `knowledge/*.md`, adicione a dúvida em `data/faq/open_questions.md` com:
- data
- pergunta
- contexto
- motivo da escalada
Depois recarregue a sessão:
/new
ou reinicie o gateway:
openclaw gateway restart
E confira:
openclaw skills list
Esse fluxo é exatamente o modelo documentado para criação de skills locais no workspace.[18:1]
17) Hooks e webhooks: quando você quer parar de depender só da conversa
O OpenClaw oferece duas coisas diferentes:
- hooks, que rodam dentro do gateway quando eventos acontecem;
- webhooks, que deixam sistemas externos dispararem ações no OpenClaw.[20][21]
Quando hooks ajudam no atendimento
Use hooks quando você quiser, por exemplo:
- manter trilha de auditoria;
- salvar contexto em reset;
- disparar automação ao fechar atendimento;
- empurrar um resumo para um sistema externo.[20:1]
Os hooks são scripts pequenos descobertos automaticamente, com HOOK.md e handler.ts, e o próprio projeto já traz hooks empacotados como session-memory e command-logger.[20:2]
Quando webhooks ajudam
Use webhooks quando outro sistema precisa acionar o agente — por exemplo:
- formulário do site;
- CRM;
- inbox;
- fila de novos leads;
- formulário de “fale conosco”.
A documentação mostra /hooks/agent e mapeamentos via hooks.mappings, além de um config recomendado com hooks.enabled, token e defaultSessionKey fixo.[21:1]
Exemplo mínimo de postura segura, baseado na doc:
{
"hooks": {
"enabled": true,
"token": "${OPENCLAW_HOOKS_TOKEN}",
"defaultSessionKey": "hook:ingress",
"allowRequestSessionKey": false,
"allowedSessionKeyPrefixes": ["hook:"]
}
}
Tradução prática
- skill: ensina o agente a se comportar melhor.
- hook: reage a evento interno.
- webhook: integra sistema externo com o agente.
Se você quer coleta séria de dados, cedo ou tarde vai usar pelo menos um desses três.
18) Melhor prática que quase ninguém segue: separe agente público de agente interno
Uma arquitetura muito melhor para atendimento é esta:
atendimento: responde cliente, coleta dados, registra, escala;ops: agente interno, visível só para você ou equipe;main: seu agente pessoal.
O multi-agent do OpenClaw foi feito exatamente para separar workspaces, identidade, sessão e estado.[1:2]
Exemplo de binding
A CLI documenta o uso de bindings assim:
openclaw agents bind --agent atendimento --bind telegram
openclaw agents bindings
Ou, se você tiver conta específica:
openclaw agents bind --agent atendimento --bind telegram:publico
O roteamento passa a decidir qual workspace e qual store de sessões serão usados para aquele canal/conta.[12:1][22]
Essa separação resolve três problemas de uma vez:
- evita vazamento de contexto;
- evita mistura de personalidade;
- reduz blast radius se o público mandar lixo malicioso.
19) Teste como um paranoico, não como um otimista
Antes de abrir o bot, rode um teste de verdade.
Checklist de teste
- [ ] pergunta simples com resposta documentada;
- [ ] pergunta sem resposta documentada;
- [ ] usuário tentando arrancar instruções internas;
- [ ] link suspeito pedindo para o bot “seguir instruções”;
- [ ] coleta de dados incompleta;
- [ ] coleta com dado contraditório;
- [ ] cliente pedindo humano;
- [ ] dois clientes diferentes falando ao mesmo tempo;
- [ ] grupo sem menção ao bot;
- [ ] grupo com menção ao bot;
- [ ] tentativa de obter dado de outro cliente;
- [ ] tentativa de forçar ação externa;
- [ ] reinício de sessão após inatividade;
- [ ] recuperação de contexto após compactação.
O que você quer ver
- o bot não inventa;
- o bot não mistura clientes;
- o bot não executa coisa perigosa;
- o bot não fala demais em grupo;
- o bot registra o que precisa;
- o bot escala quando deve.
Se um desses falhar, não está pronto.
20) Anti-padrões que vão te ferrar
1. Abrir DM pública com ferramenta demais
Se você deixa DM aberta e mantém filesystem amplo, browser, exec ou automação pesada, você está aumentando o raio de desastre. A própria doc insiste em pairing/allowlists, sandbox e ferramenta mínima.[13:3]
2. Usar MEMORY.md como banco de clientes
Errado conceitualmente e ruim de auditar. MEMORY.md é memória curada do agente, não CRM.[5:4]
3. Misturar bot público e bot privado
Economia burra. O custo da bagunça será maior do que o custo de um agente separado.
4. Base de conhecimento sem dono
Se ninguém atualiza knowledge/*.md, o bot degrada rápido.
5. Achar que “modelo forte” substitui regra operacional
Não substitui. Modelo forte ajuda. Política e isolamento seguram a operação.
21) Um pacote mínimo que eu realmente colocaria no ar
Se eu tivesse que montar isso hoje com o mínimo de burrice, faria assim:
Canal
- Telegram para a primeira versão pública;
- WhatsApp só depois, de preferência com número dedicado.[7:5][8:3]
Segurança
session.dmScope: "per-channel-peer".[16:3]tools.profile: "messaging".[13:4]execnegado.[13:5]workspaceOnly: truepara filesystem.[13:6]- pairing no staging; abertura pública só depois de teste sério.[7:6][8:4]
Estrutura
- um agente
atendimento; - um agente
ops; - base factual em
knowledge/; - política em
policies/; - registros em
data/; - skill local de captura de lead;
- hook ou webhook quando integração externa fizer sentido.[18:2][20:3][21:2]
Rotina
- revisar
data/faq/open_questions.mdtoda semana; - consolidar aprendizados em
knowledge/faq.md; - auditar logs e registros;
- rodar
openclaw security auditsempre que abrir superfície nova.[13:7]
22) Conclusão
O OpenClaw é forte quando você o trata como o que ele é: um gateway de agente self-hosted, com canais, sessões, memória em arquivos, skills e automações.[2:1][3:2]
Para atendimento ao público, a receita que funciona não é “prompt mágico”. É esta:
- isolar o agente;
- reduzir ferramentas;
- desenhar memória;
- documentar fatos;
- registrar dados de forma estruturada;
- escalar sem vergonha quando faltar base.
A pior decisão é querer um bot “autônomo” demais logo de cara.
Comece com um agente bom de triagem, FAQ e coleta. Depois, se ele provar valor, você integra com o resto.
Esse é o caminho adulto. O outro caminho é demo bonita e incidente feio.
Apêndice A — exemplo de knowledge/faq.md mais robusto
# FAQ
## O que fazemos
A Empresa X oferece suporte de implantação, automação de processos e integração de sistemas.
## Para quem é
Empresas pequenas e médias que precisam reduzir trabalho manual e padronizar operação.
## O que o agente pode responder sozinho
- visão geral do serviço
- horário de atendimento
- como funciona o primeiro contato
- documentos e informações iniciais necessárias
- diferenças básicas entre planos, quando isso estiver documentado
## O que o agente NÃO pode responder sozinho
- preço final
- desconto
- exceção contratual
- cancelamento final
- prazo garantido fora da política
- posição jurídica
- tratamento de incidente crítico sem validação humana
## Horário humano
Segunda a sexta, 9h às 18h.
## Escalonamento obrigatório
- cobrança
- contrato
- LGPD
- cancelamento
- reembolso
- incidente com impacto operacional alto
## Última revisão
2026-03-31
Responsável: time de operações
Apêndice B — exemplo de policies/intake.md
# Política de intake
## Objetivo
Coletar só o mínimo necessário para responder, qualificar ou encaminhar.
## Ordem
1. entender o tipo de demanda
2. pedir os dados mínimos
3. confirmar o resumo
4. registrar
5. resolver ou escalar
## Regra de ouro
Se a resposta puder ser dada sem pedir dado pessoal, responda primeiro.
## Dados proibidos em chat aberto
- senha
- token
- código MFA
- cartão completo
- documento completo
- credenciais internas
Apêndice C — exemplo de prompt de teste para o agente
Use o próprio CLI para testar comportamento sem depender do canal:
openclaw agent --agent atendimento --message "Um cliente quer cancelar o serviço e pede prazo imediato. Como você responde e quais dados você coleta?"
A CLI oficial documenta openclaw agent --agent <id> --message "..."
como forma de disparar uma rodada de agente pelo terminal, útil para teste e automação.[23]
Referências
OpenClaw Docs — Multi-Agent Routing: https://docs.openclaw.ai/concepts/multi-agent ↩︎ ↩︎ ↩︎
OpenClaw Docs — Home / visão geral: https://docs.openclaw.ai/ ↩︎ ↩︎
Repositório oficial do OpenClaw no GitHub: https://github.com/openclaw/openclaw ↩︎ ↩︎ ↩︎
OpenClaw Docs — Agent Runtime: https://docs.openclaw.ai/concepts/agent ↩︎
OpenClaw Docs — AGENTS.md Template: https://docs.openclaw.ai/reference/templates/AGENTS ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
OpenClaw Docs — Memory Overview: https://docs.openclaw.ai/concepts/memory ↩︎ ↩︎ ↩︎
OpenClaw Docs — Telegram: https://docs.openclaw.ai/channels/telegram ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
OpenClaw Docs — WhatsApp: https://docs.openclaw.ai/channels/whatsapp ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
OpenClaw Docs — Getting Started: https://docs.openclaw.ai/start/getting-started ↩︎
OpenClaw Docs — Onboarding (CLI): https://docs.openclaw.ai/start/wizard ↩︎
OpenClaw Docs — Dashboard / Control UI: https://docs.openclaw.ai/web/dashboard ↩︎
OpenClaw Docs — CLI
agents: https://docs.openclaw.ai/cli/agents ↩︎ ↩︎OpenClaw Docs — Security: https://docs.openclaw.ai/gateway/security ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
OpenClaw Docs — SOUL.md Template: https://docs.openclaw.ai/reference/templates/SOUL ↩︎
OpenClaw Docs — Memory configuration reference: https://docs.openclaw.ai/reference/memory-config ↩︎ ↩︎
OpenClaw Docs — Session Management: https://docs.openclaw.ai/concepts/session ↩︎ ↩︎ ↩︎ ↩︎
OpenClaw Docs — Configuration Reference: https://docs.openclaw.ai/gateway/configuration-reference ↩︎
OpenClaw Docs — Creating Skills: https://docs.openclaw.ai/tools/creating-skills ↩︎ ↩︎ ↩︎
OpenClaw Docs — Skills: https://docs.openclaw.ai/tools/skills ↩︎
OpenClaw Docs — Hooks: https://docs.openclaw.ai/automation/hooks ↩︎ ↩︎ ↩︎ ↩︎
OpenClaw Docs — Webhooks: https://docs.openclaw.ai/automation/webhook ↩︎ ↩︎ ↩︎
OpenClaw Docs — Channel Routing: https://docs.openclaw.ai/channels/channel-routing ↩︎
OpenClaw Docs — Agent CLI / Agent Send: https://docs.openclaw.ai/cli/agent ↩︎