Por Dentro do OpenClaw: A Arquitetura que a Wired Chamou de 'Taking Over Silicon Valley'
JSONL, não banco de dados. Filas seriais, não caos assíncrono. Descubra por que a arquitetura simples do OpenClaw supera sistemas enterprise. Diagrama técnico incluído.
Muita gente fala sobre o OpenClaw, mas poucos entendem como ele realmente funciona por dentro. Neste artigo, vamos mergulhar na arquitetura técnica do sistema.
Visão Geral
O OpenClaw é uma CLI escrita em TypeScript que funciona como um roteador de mensagens inteligente. Diferente de outros sistemas de agentes que usam processamento assíncrono caótico, o OpenClaw usa um sistema de filas baseado em lanes que mantém as coisas seriais por padrão.
Sistema de Memória
A memória do OpenClaw é surpreendentemente simples:
Histórico de Sessão
- Formato: JSONL (JSON Lines)
- Localização: Arquivos locais
- Comportamento: Histórico antigo permanece, sem compressão automática
Memória Persistente
- Formato: Arquivos Markdown que o próprio agente escreve
- Arquivos principais:
MEMORY.md- Memória de longo prazomemory/YYYY-MM-DD.md- Logs diáriosSOUL.md- Personalidade e configuração
Busca Híbrida
O sistema combina dois tipos de busca:
- Busca Vetorial (SQLite) - Para correspondência semântica
- Busca por Palavras-chave (FTS5) - Para correspondência exata
Isso significa que você encontra tanto conteúdo semanticamente similar quanto matches exatos de termos específicos.
Segurança e Sandbox
Execução de Comandos
Por padrão, comandos rodam em um sandbox Docker com um sistema de allowlist similar ao Claude Code:
// ~/.openclaw/exec-approvals.json
{
"agents": {
"main": {
"allowlist": [
{ "pattern": "/usr/bin/npm", "lastUsedAt": 1706644800 },
{ "pattern": "/opt/homebrew/bin/git", "lastUsedAt": 1706644900 }
]
}
}
}
Padrões Perigosos Bloqueados
Certos padrões são rejeitados automaticamente antes da execução:
# Rejeitados automaticamente:
npm install $(cat /etc/passwd) # substituição de comando
cat file > /etc/hosts # redirecionamento perigoso
rm -rf / || echo "failed" # operadores encadeados
Automação de Browser
Uma das features mais interessantes é como o OpenClaw lida com automação de browser.
Snapshots Semânticos
Em vez de tirar screenshots e analisar pixels, o OpenClaw usa snapshots da árvore de acessibilidade:
- button "Sign In" [ref=1]
- textbox "Email" [ref=2]
- textbox "Password" [ref=3]
- link "Forgot password?" [ref=4]
Vantagens
- Eficiência de tokens - Muito menos dados que imagens
- Confiabilidade - Não depende de coordenadas de pixel
- Velocidade - Processamento mais rápido
- Acessibilidade - Funciona com qualquer layout
Filosofia de Design
O principal takeaway da arquitetura do OpenClaw é que ele prefere simplicidade explicável sobre complexidade inteligente.
- Memória em arquivos de texto legíveis por humanos
- Sistema de filas serial em vez de async caótico
- Sandbox com allowlist explícito
- Snapshots semânticos em vez de visão computacional
Isso significa que você pode:
- Inspecionar e editar a memória manualmente
- Entender exatamente o que o agente está fazendo
- Debugar problemas facilmente
- Confiar no sistema sem “mágica” opaca
Componentes Principais
| Componente | Função | Tecnologia |
|---|---|---|
| CLI | Interface principal | TypeScript/Node.js |
| Message Router | Roteamento de mensagens | Sistema de lanes |
| Memory | Persistência | JSONL + Markdown |
| Search | Busca híbrida | SQLite + FTS5 |
| Sandbox | Execução segura | Docker |
| Browser | Automação web | Playwright + A11y tree |
Conclusão
O OpenClaw não tenta ser o sistema de agentes mais sofisticado do mundo. Em vez disso, foca em ser:
- Transparente - Você vê tudo que acontece
- Seguro - Sandbox e allowlists por padrão
- Simples - Arquitetura fácil de entender
- Eficiente - Otimizado para tokens e performance
Para quem quer construir em cima do OpenClaw ou simplesmente entender como funciona, essa simplicidade é uma feature, não um bug.
Próximos Passos
Baseado em análise técnica compartilhada pela comunidade.