Skip to main content

Criando um assistente pessoal com o OpenClaw

O OpenClaw é um gateway de WhatsApp + Telegram + Discord + iMessage para agentes Pi. Plugins adicionam Mattermost. Este guia é a configuração de “assistente pessoal”: um número dedicado de WhatsApp que se comporta como seu agente sempre ativo.

⚠️ Segurança em primeiro lugar

Você está colocando um agente em posição de:
  • executar comandos na sua máquina (dependendo da configuração das ferramentas do Pi)
  • ler/gravar arquivos no seu workspace
  • enviar mensagens para fora via WhatsApp/Telegram/Discord/Mattermost (plugin)
Comece de forma conservadora:
  • 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 têm padrão de 30 minutos. Desative até confiar na configuração definindo agents.defaults.heartbeat.every: "0m".

Pré-requisitos

  • OpenClaw instalado e integrado — veja Primeiros passos se você ainda não fez isso
  • Um segundo número de telefone (SIM/eSIM/pré-pago) para o assistente

A configuração com dois telefones (recomendado)

Você quer isto: Se você vincular seu WhatsApp pessoal ao OpenClaw, cada mensagem para você vira “entrada do agente”. Isso raramente é o que você quer.

Início rápido de 5 minutos

  1. Pareie o WhatsApp Web (mostra o QR; escaneie com o telefone do assistente):
  1. Inicie o Gateway (deixe-o em execução):
  1. Coloque uma configuração mínima em ~/.openclaw/openclaw.json:
Agora envie uma mensagem para o número do assistente a partir do seu telefone na allowlist. Quando a integração terminar, abrimos automaticamente o dashboard e imprimimos um link limpo (sem token). Se pedir autenticação, cole o token de gateway.auth.token nas configurações da Control UI. Para reabrir depois: openclaw dashboard.

Dê ao agente um workspace (AGENTS)

O OpenClaw lê instruções operacionais e “memória” do diretório de workspace. Por padrão, o OpenClaw usa ~/.openclaw/workspace como workspace do agente e o criará (além dos arquivos iniciais AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) automaticamente na configuração/primeira execução do agente. BOOTSTRAP.md só é criado quando o workspace é totalmente novo (ele não deve voltar depois que você o apagar). MEMORY.md é opcional (não é criado automaticamente); quando presente, é carregado para sessões normais. Sessões de subagentes injetam apenas AGENTS.md e TOOLS.md. Dica: trate esta pasta como a “memória” do OpenClaw e torne-a um repositório git (idealmente privado) para que seus AGENTS.md + arquivos de memória tenham backup. Se o git estiver instalado, workspaces totalmente novos são inicializados automaticamente.
Layout completo do workspace + guia de backup: Agent workspace
Fluxo de trabalho de memória: Memory
Opcional: escolha um workspace diferente com agents.defaults.workspace (suporta ~).
Se você já distribui seus próprios arquivos de workspace a partir de um repositório, pode desativar completamente a criação de arquivos de bootstrap:

A configuração que o transforma em “um assistente”

O OpenClaw vem com um bom padrão de assistente, mas você normalmente vai querer ajustar:
  • persona/instruções em SOUL.md
  • padrões de raciocínio (se desejado)
  • heartbeats (quando você passar a confiar)
Exemplo:

Sessões e memória

  • Arquivos de sessão: ~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl
  • Metadados da sessão (uso de tokens, última rota, etc.): ~/.openclaw/agents/<agentId>/sessions/sessions.json (legado: ~/.openclaw/sessions/sessions.json)
  • /new ou /reset inicia uma sessão nova para aquele chat (configurável via resetTriggers). Se enviado sozinho, o agente responde com um breve olá 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.md existir mas estiver efetivamente vazio (apenas linhas em branco e cabeçalhos markdown como # Heading), o OpenClaw pula a execução do heartbeat para economizar chamadas de API.
  • Se o arquivo estiver ausente, o heartbeat ainda é executado e o modelo decide o que fazer.
  • Se o agente responder com HEARTBEAT_OK (opcionalmente com um pequeno preenchimento; veja agents.defaults.heartbeat.ackMaxChars), o OpenClaw suprime a entrega de saída para aquele heartbeat.
  • 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 via templates:
  • {{MediaPath}} (caminho de arquivo temporário local)
  • {{MediaUrl}} (pseudo-URL)
  • {{Transcript}} (se a transcrição de áudio estiver habilitada)
Anexos de saída do agente: inclua MEDIA:<path-or-url> em sua própria linha (sem espaços). Exemplo:
O OpenClaw extrai isso e envia como mídia junto com o texto.

Checklist operacional

Os logs ficam em /tmp/openclaw/ (padrão: openclaw-YYYY-MM-DD.log).

Próximos passos