Criando um assistente pessoal com OpenClaw
OpenClaw é um gateway self-hosted que conecta Discord, Google Chat, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo e muito mais a agentes de IA. Este guia cobre a configuração de “assistente pessoal”: um número de WhatsApp dedicado que se comporta como seu assistente de IA sempre ativo.⚠️ Segurança em primeiro lugar
Você está colocando um agente em posição de:- executar comandos na sua máquina (dependendo da sua política de ferramentas)
- ler/gravar arquivos no seu workspace
- enviar mensagens de volta via WhatsApp/Telegram/Discord/Mattermost e outros canais empacotados
- Sempre defina
channels.whatsapp.allowFrom(nunca execute aberto para o mundo no seu Mac pessoal). - Use um número de WhatsApp dedicado para o assistente.
- Heartbeats agora usam como padrão a cada 30 minutos. Desative até confiar na configuração definindo
agents.defaults.heartbeat.every: "0m".
Pré-requisitos
- OpenClaw instalado e com onboarding concluído — consulte Getting Started se ainda não fez isso
- Um segundo número de telefone (SIM/eSIM/pré-pago) para o assistente
A configuração com dois celulares (recomendada)
O ideal é isto: Se você vincular seu WhatsApp pessoal ao OpenClaw, toda mensagem para você vira “entrada do agente”. Raramente é isso que você quer.Início rápido de 5 minutos
- Pareie o WhatsApp Web (mostra QR; escaneie com o celular do assistente):
- Inicie o Gateway (deixe-o em execução):
- Coloque uma configuração mínima em
~/.openclaw/openclaw.json:
gateway.auth.token), mas autenticação por senha também funciona se você tiver alterado gateway.auth.mode para password. Para reabrir depois: openclaw dashboard.
Dê ao agente um workspace (AGENTS)
OpenClaw lê instruções operacionais e “memória” a partir do diretório de workspace. Por padrão, o OpenClaw usa~/.openclaw/workspace como workspace do agente e o criará (junto com AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md iniciais) automaticamente na configuração/primeira execução do agente. BOOTSTRAP.md é criado apenas quando o workspace é totalmente novo (não deve voltar depois que você o excluir). MEMORY.md é opcional (não é criado automaticamente); quando presente, é carregado para sessões normais. Sessões de subagent injetam apenas AGENTS.md e TOOLS.md.
Dica: trate essa pasta como a “memória” do OpenClaw e transforme-a em um repositório git (de preferência privado) para que AGENTS.md + arquivos de memória tenham backup. Se o git estiver instalado, workspaces totalmente novos são inicializados automaticamente.
agents.defaults.workspace (suporta ~).
A configuração que o transforma em “um assistente”
OpenClaw já vem com uma boa configuração padrão para assistente, mas normalmente você vai querer ajustar:- persona/instruções em
SOUL.md - padrões de thinking (se desejar)
- heartbeats (quando já confiar nele)
Sessões e memória
- Arquivos de sessão:
~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl - Metadados de sessão (uso de tokens, última rota etc.):
~/.openclaw/agents/<agentId>/sessions/sessions.json(legado:~/.openclaw/sessions/sessions.json) /newou/resetinicia uma sessão nova para aquele chat (configurável viaresetTriggers). Se enviado sozinho, o agente responde com uma saudação curta para confirmar o reset./compact [instructions]compacta o contexto da sessão e informa o orçamento de contexto restante.
Heartbeats (modo proativo)
Por padrão, o OpenClaw executa um heartbeat a cada 30 minutos com o prompt:Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.
Defina agents.defaults.heartbeat.every: "0m" para desativar.
- Se
HEARTBEAT.mdexistir, mas estiver efetivamente vazio (apenas linhas em branco e cabeçalhos Markdown como# Heading), o OpenClaw ignora a execução do heartbeat para economizar chamadas de API. - Se o arquivo estiver ausente, o heartbeat ainda será executado e o modelo decidirá o que fazer.
- Se o agente responder com
HEARTBEAT_OK(opcionalmente com um pequeno preenchimento; consulteagents.defaults.heartbeat.ackMaxChars), o OpenClaw suprime a entrega de saída para esse heartbeat. - Por padrão, a entrega de heartbeat para destinos estilo DM
user:<id>é permitida. Definaagents.defaults.heartbeat.directPolicy: "block"para suprimir entrega a destinos diretos mantendo as execuções de heartbeat ativas. - Heartbeats executam turnos completos do agente — intervalos menores consomem mais tokens.
Mídia de entrada e saída
Anexos de entrada (imagens/áudio/documentos) podem ser expostos ao seu comando por templates:{{MediaPath}}(caminho local do arquivo temporário){{MediaUrl}}(pseudo-URL){{Transcript}}(se a transcrição de áudio estiver habilitada)
MEDIA:<path-or-url> em sua própria linha (sem espaços). Exemplo:
- Se
tools.fs.workspaceOnlyfortrue, caminhos locais deMEDIA:de saída continuam restritos à raiz temporária do OpenClaw, ao cache de mídia, aos caminhos do workspace do agente e a arquivos gerados no sandbox. - Se
tools.fs.workspaceOnlyforfalse,MEDIA:de saída pode usar arquivos locais do host que o agente já tenha permissão para ler. - Envios locais do host ainda permitem apenas mídia e tipos seguros de documento (imagens, áudio, vídeo, PDF e documentos do Office). Texto simples e arquivos que parecem conter segredos não são tratados como mídia enviável.
Checklist operacional
/tmp/openclaw/ (padrão: openclaw-YYYY-MM-DD.log).
Próximos passos
- WebChat: WebChat
- Operações do Gateway: Gateway runbook
- Cron + ativações: Cron jobs
- Complemento macOS na barra de menu: OpenClaw macOS app
- App node para iOS: iOS app
- App node para Android: Android app
- Status do Windows: Windows (WSL2)
- Status do Linux: Linux app
- Segurança: Security