Voltar ao catálogo
Season 5 11 Episódios 41 min 2026

OpenClaw Gateway

v2026.3 — Edição de 2026. Uma análise técnica aprofundada da arquitetura do OpenClaw Gateway, agent routing e tools. (Versão 2026.3)

Infraestrutura de LLM Sistemas Multi-Agente
OpenClaw Gateway
A Reproduzir
Click play to start
0:00
0:00
1
A Arquitetura do Gateway de IA Pessoal
Exploramos o que é o OpenClaw e por que razão existe. Os ouvintes vão aprender como um único processo Gateway self-hosted liga várias aplicações de chat a um runtime de agente de IA.
3m 49s
2
Routing Multi-Agente
Aprenda como múltiplas identidades de agentes coexistem num único Gateway. Abordamos channel bindings, regras de routing e o isolamento de workspaces.
3m 32s
3
O Agent Workspace e System Prompts
Descubra como o OpenClaw molda o comportamento do agente. Os ouvintes vão aprender sobre a montagem do system prompt e ficheiros de bootstrap como SOUL.md e AGENTS.md.
4m 21s
4
Gestão de Sessões e Isolamento de DMs
Uma análise aprofundada ao routing de conversas e à privacidade. Os ouvintes vão compreender os scopes de DM, o isolamento de sessões e os resets de lifecycle.
4m 02s
5
Gerir Limites de Contexto com Compaction
Aprenda como o OpenClaw lida com conversas infinitas dentro de context windows finitas de LLM usando o Context Engine e a auto-compaction.
3m 30s
6
Segurança e Trust Boundaries
Compreenda o modelo de confiança do OpenClaw. Os ouvintes vão aprender por que razão é um gateway de assistente pessoal em vez de uma sandbox multi-tenant, e como fazer o seu hardening.
3m 29s
7
A Exec Tool e Aprovações em Runtime
Explore como o agente interage com o seu sistema de ficheiros e shell de forma segura. Abordamos a exec tool, safe binaries e fluxos de aprovação explícita.
3m 58s
8
Ensinar Agentes com Skills
Aprenda a expandir as capacidades do seu agente sem escrever código. Exploramos a formatação de AgentSkills, load-time gating e o ClawHub.
3m 40s
9
A Managed Browser Tool
Descubra como o OpenClaw dá olhos aos agentes na web. Os ouvintes vão aprender sobre perfis isolados de Chromium e MCPs de existing-session.
3m 37s
10
Sub-Agentes Efémeros
Leve a orquestração ao próximo nível lançando background workers. Abordamos a tool sessions_spawn, nesting depth e anúncios de resultados.
3m 44s
11
Workflows de Automação Proativa
Transforme o seu bot reativo num assistente proativo. Os ouvintes vão aprender a combinar Heartbeats, Cron jobs e Hooks para uma automação poderosa.
4m 13s

Episódios

1

A Arquitetura do Gateway de IA Pessoal

3m 49s

Exploramos o que é o OpenClaw e por que razão existe. Os ouvintes vão aprender como um único processo Gateway self-hosted liga várias aplicações de chat a um runtime de agente de IA.

Download
Olá, daqui fala o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 1 de 11. Estás longe da tua secretária, mas precisas de um code review rápido. Envias uma mensagem do teu telemóvel e, segundos depois, recebes uma análise detalhada, gerada inteiramente por um servidor privado a correr na tua máquina local. A arquitetura Personal AI Gateway é o que torna este setup totalmente self-hosted possível. A maioria dos chatbots de IA força os teus dados pessoais através de uma camada de orquestração de terceiros. Se quiseres ligar uma app de mensagens a um modelo de linguagem, normalmente dependes de um serviço na cloud para unir as APIs. Isto expõe as tuas queries privadas e introduz latência. A arquitetura OpenClaw Gateway remove o serviço intermediário, correndo tudo dentro de um único processo self-hosted. Este processo serve como uma ponte dedicada. Fica diretamente entre as tuas plataformas de mensagens do dia a dia e o teu runtime de IA escolhido. Vamos seguir o caminho exato de uma mensagem para ver como a lógica flui. Envias um code snippet do teu telemóvel usando o WhatsApp. Na tua máquina local, o processo do gateway já está a correr. Mantém ligações persistentes às tuas apps de mensagens usando libraries específicas. Para o WhatsApp, o gateway usa a library Baileys para gerir a ligação direta por socket. Para o Telegram, utiliza a framework grammY. Quando a tua mensagem chega ao servidor local, vem encapsulada numa estrutura de dados específica do protocolo. Um evento do WhatsApp tem um formato de payload totalmente diferente de um evento do Telegram. O gateway faz imediatamente o parse destas mensagens recebidas. Remove os wrappers específicos da plataforma, extrai o raw text e o identificador do remetente, e empacota-os num objeto interno padronizado. Aqui está o ponto chave. Quando a tua mensagem chega ao runtime de IA, o engine não sabe a origem do texto. O runtime opera de forma completamente independente da Baileys ou da grammY. Vê apenas um request limpo e uniforme. A IA processa o teu code snippet, gera a review e envia uma resposta em plain text de volta para o gateway. O gateway inverte então o fluxo. Verifica o marcador de origem anexado ao request inicial. Se fizeste a pergunta pelo WhatsApp, o gateway formata a resposta da IA numa estrutura compatível com a Baileys e envia-a diretamente para o teu telemóvel através do socket. Se o request veio do Telegram, usa a grammY para enviar a resposta. Manter tudo isto num único processo self-hosted reduz drasticamente a complexidade operacional. Não precisas de fazer deploy de vários microsserviços, configurar message queues, ou expor endpoints locais a webhooks externos apenas para fazer o routing de um texto. Uma aplicação isolada gere os network sockets, executa a lógica de normalização e invoca o engine de IA. Como o gateway unifica vários canais internamente, o contexto da tua conversa permanece centralizado. Podes começar a fazer troubleshooting de um bug no Telegram enquanto caminhas, e fazer uma pergunta de follow-up mais tarde no WhatsApp. O gateway garante que o runtime de IA retém todo o histórico, independentemente da app mobile que abras. A vantagem mais significativa desta arquitetura é o controlo absoluto sobre os teus inputs e outputs em qualquer interface de mensagens, tudo no teu próprio hardware. Se gostas do podcast e queres apoiar o programa, podes procurar por DevStoriesEU no Patreon. Por hoje é tudo. Obrigado por ouvires, e continua a desenvolver!
2

Routing Multi-Agente

3m 32s

Aprenda como múltiplas identidades de agentes coexistem num único Gateway. Abordamos channel bindings, regras de routing e o isolamento de workspaces.

Download
Olá, daqui fala o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 2 de 11. O teu bot de trabalho e o teu bot assistente pessoal nunca devem partilhar as mesmas memórias, mas levantar uma server instance separada para cada nova persona de bot é um pesadelo operacional. É exatamente esta tensão que o Multi-Agent Routing resolve. Os ouvintes costumam confundir este setup com uma arquitetura SaaS multi-tenant. Vamos esclarecer isto imediatamente. O Multi-Agent Routing não foi desenhado para fazer o hosting de bots distintos para milhares de clientes externos. Em vez disso, existe para organizar as várias personas de um único owner, ou para ligar group chats específicos a bots específicos, criados para esse fim, todos a correr de forma eficiente debaixo do mesmo teto. Para que isto funcione, o sistema separa estritamente dois conceitos. Tens de perceber a diferença entre um account ID e um agent ID. O account ID é o humano. É o identificador da pessoa que está a enviar a mensagem. O agent ID é o bot. Define a persona, o model e as instruções específicas com as quais o humano está a falar. Um único humano com um account ID vai falar rotineiramente com vários agent IDs diferentes ao longo do dia. No OpenClaw Gateway, vários agents isolados correm lado a lado. Não partilhas memory states entre eles. Cada agent ID tem o seu próprio workspace dedicado e a sua própria session store distinta. Quando uma inbound message chega ao Gateway, o sistema tem de descobrir exatamente qual workspace isolado a deve receber. Faz isto usando routing rules conhecidas como bindings. Os bindings são mapeamentos determinísticos. Olham para a metadata exata anexada a uma incoming message e fazem o routing em conformidade. Cada inbound message traz um payload de connection data. Isto inclui o channel, como o WhatsApp ou o Telegram. Inclui o account ID do remetente. Pode também incluir um peer identifier, que pode ditar uma sala de group chat específica. Configuras os bindings para avaliar esta metadata. Por exemplo, podes criar um binding que dite que qualquer mensagem que chegue ao channel do WhatsApp faça o routing diretamente para um agent ID rápido, do dia a dia. Este agent lida com tarefas rápidas, listas de compras ou web searches simples. Na mesmíssima configuração, defines outro binding a ditar que qualquer mensagem que chegue via Telegram faça o routing para um agent ID heavy-duty, a correr um model maior como o Opus, para trabalho de deep coding. O logic flow é simples. O Gateway recebe uma mensagem do Telegram. Lê a metadata do channel e o teu account ID. Verifica os bindings, encontra a regra que faz match com o Telegram e reencaminha o payload para o agent ID do Opus. O agent do Opus acorda no seu workspace isolado. Faz uma query à sua própria session store dedicada para ir buscar o histórico da conversa. Não tem absolutamente nenhum acesso à lista de compras que acabaste de enviar para o agent do WhatsApp. Aqui está o insight principal. O Multi-Agent Routing transforma um único Gateway numa switchboard determinística, usando a metadata do channel e do user para garantir que a persona certa responde sempre ao request certo, sem nunca haver contaminação cruzada das suas memórias. Como sempre, obrigado por ouvires. Até ao próximo episódio.
3

O Agent Workspace e System Prompts

4m 21s

Descubra como o OpenClaw molda o comportamento do agente. Os ouvintes vão aprender sobre a montagem do system prompt e ficheiros de bootstrap como SOUL.md e AGENTS.md.

Download
Olá, daqui fala o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 3 de 11. Já desejaste poder literalmente escrever uma alma para a tua IA, talvez fazendo com que responda exclusivamente como uma lagosta espacial mal-humorada? No OpenClaw, alcançar esse nível de controlo de personagem requer zero código. Tudo acontece inteiramente através de plain text, o que nos leva ao workspace do agente e aos system prompts. Um agente no OpenClaw é definido pelo seu workspace. Este workspace é simplesmente um diretório de ficheiros que contém um conjunto específico de ficheiros de bootstrap em Markdown. Em vez de enterrares o teu system prompt na lógica da aplicação ou em campos complexos da base de dados, o OpenClaw expõe as instruções centrais como documentos legíveis e com controlo de versões. Quando a aplicação corre, o OpenClaw lê estes ficheiros para construir o system prompt monolítico que guia o large language model. A construção baseia-se em quatro documentos principais. O primeiro é o ficheiro Markdown agents. Este documento estabelece a identidade central, os objetivos principais e as fronteiras operacionais rigorosas do agente. Pensa nele como a descrição de funções fundamental. Diz ao modelo o que é suposto alcançar e que tópicos deve evitar por completo. O segundo documento é o ficheiro Markdown soul. É aqui que vivem a personalidade, o tom e o estilo de conversação. É exatamente aqui que instruis o modelo a agir como uma lagosta espacial mal-humorada. Escreves instruções explícitas a dizer ao agente para se queixar do vácuo congelante do espaço, usar metáforas de crustáceos e agir de forma geralmente irritada com as questões humanas. Ao isolares a personalidade da lógica central, podes trocar o tom do teu agente sem arriscar a sua fiabilidade funcional. O terceiro componente é o ficheiro Markdown tools. Este texto explica as capacidades externas disponíveis para o agente. Descreve que funções o modelo pode fazer trigger, os parâmetros necessários para essas funções e como interpretar logicamente os resultados. Faz a ponte entre o raciocínio interno do modelo e a tua codebase real. O documento final é o ficheiro Markdown user. Este ficheiro injeta contexto sobre a pessoa que está a interagir com o agente. Pode conter preferências do utilizador, níveis de competência técnica ou restrições de conta. Isto garante que o agente adapta as suas respostas ao humano específico do outro lado do chat, em vez de oferecer conselhos genéricos. Aqui está o ponto-chave. O OpenClaw pega no conteúdo destes quatro ficheiros e concatena-os. Esta string combinada torna-se no system prompt final. O detalhe crucial é que este prompt é injetado na context window em cada turno da conversa. O modelo não lê estes ficheiros apenas uma vez no startup para depois os guardar de alguma forma num banco de memória separado. Lê todo o bloco concatenado sempre que o utilizador envia uma nova mensagem. Esta escolha arquitetónica dita como deves escrever os teus ficheiros do workspace. Como é feito o prepend de todo o texto do workspace a cada interação, o teu token count vai aumentar agressivamente. Se escreveres uma história de fundo de três páginas no ficheiro soul, pagas o custo de processamento dessas três páginas sempre que o utilizador simplesmente disser olá. Mais importante ainda, system prompts grandes consomem os limites disponíveis da context window. Um workspace inchado abafa o histórico real da conversa, fazendo com que o modelo se esqueça de partes anteriores do chat muito mais depressa. Tens de ser implacável ao editar os documentos do teu workspace. Remove instruções redundantes. Usa uma linguagem precisa. Se uma regra no ficheiro agents nunca for triggered, apaga-a. O system prompt não é um passo de configuração único. É um imposto recorrente na tua context window e no teu orçamento de API, pago em cada turno da conversa. Mantém-no leve, e o teu agente manter-se-á focado. Obrigado por ouvirem. Fiquem bem, pessoal.
4

Gestão de Sessões e Isolamento de DMs

4m 02s

Uma análise aprofundada ao routing de conversas e à privacidade. Os ouvintes vão compreender os scopes de DM, o isolamento de sessões e os resets de lifecycle.

Download
Olá, daqui fala o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 4 de 11. Fazes o deploy de um novo chatbot para o workspace da tua empresa. A Alice pede-lhe para resumir as notas da sua reunião privada e, cinco minutos depois, ele acidentalmente cita essas notas de volta para o Bob. O teu agent acabou de fazer um leak de dados porque trata toda a gente no workspace como se fosse exatamente a mesma pessoa. Corrigir isto exige compreender Session Management e DM Isolation. Antes de corrigir a sobreposição, precisamos de abordar um equívoco comum. Os engenheiros confundem muitas vezes session keys com authentication tokens. Não são a mesma coisa. As session keys não são barreiras de segurança. São simplesmente seletores de routing. Elas dizem ao sistema OpenClaw qual o bloco de histórico de conversa a extrair da base de dados e a injetar no prompt. Se precisares de restringir quem pode falar com o teu agent, usas autenticação adequada. As session keys apenas mantêm o texto separado. Todas as interações com um agent OpenClaw acontecem dentro de uma sessão. A sessão guarda o histórico da conversa e o contexto ativo de curto prazo. Por defeito, o OpenClaw faz o routing de todo o tráfego através de uma única session key partilhada chamada main. Se correres um script local no terminal ou um assistente pessoal só para ti, este comportamento por defeito funciona perfeitamente. Todo o teu contexto permanece numa única thread contínua. Mas se ligares exatamente esse mesmo agent a uma plataforma multi-utilizador, a configuração por defeito deixa de funcionar. Cada utilizador que fala com o bot escreve exatamente no mesmo histórico main. O agent lê o prompt da Alice, gera uma resposta e guarda-a. Quando o Bob envia uma mensagem dez segundos depois, o agent lê o input do Bob juntamente com o input anterior da Alice. É aqui que a coisa fica interessante. Tu evitas esta sobreposição usando as definições de DM Isolation. Quando configuras a integração com a plataforma, mudas a estratégia de session routing do default para per-channel-peer. Quando ativas o per-channel-peer, o OpenClaw deixa de fazer o routing do tráfego para a sessão main. Em vez disso, gera dinamicamente uma session key única para cada mensagem recebida. Faz isto combinando o identificador de canal da plataforma com o identificador do utilizador. Agora, quando a Alice envia uma mensagem ao bot num canal específico, o OpenClaw cria uma session key única para ela e para esse canal. Quando o Bob envia uma mensagem ao bot, o seu identificador de utilizador gera uma session key completamente diferente. O sistema carrega um state limpo e vazio para o Bob. Os contextos deles ficam totalmente isolados. Se a Alice falar com o bot num canal completamente diferente, ela também recebe uma nova session aí. Estas sessões não mantêm o state para sempre. O OpenClaw gere o session cleanup através de dois eventos de lifecycle específicos. O primeiro é um idle reset. Se uma determinada sessão não receber novas mensagens durante um período configurado, o sistema faz drop do contexto. Na próxima vez que o utilizador enviar uma mensagem, começa do zero. O segundo mecanismo de cleanup é um hard daily reset. Independentemente do quão ativa a conversa esteja, o OpenClaw faz um purge forçado a todos os session contexts exatamente às 4h da manhã, hora do servidor. Este daily reset funciona como um passo automatizado de garbage collection. Garante que a memória é libertada e que conversas longas não consomem silenciosamente quantidades massivas de context tokens ao longo de semanas de uso. Quando fazes o deploy de agents em ambientes de grupo, nunca assumas que a plataforma gere a separação de utilizadores por ti. Mapear explicitamente as tuas session keys para a user boundary correta é a única forma de evitar context leaks acidentais. É tudo por este episódio. Obrigado por ouvires e continua a programar!
5

Gerir Limites de Contexto com Compaction

3m 30s

Aprenda como o OpenClaw lida com conversas infinitas dentro de context windows finitas de LLM usando o Context Engine e a auto-compaction.

Download
Olá, daqui fala o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 5 de 11. As janelas de contexto da IA não são infinitas, mas a tua conversa muitas vezes precisa de o ser. Quando uma sessão longa bate numa parede, a solução padrão é começar a descartar mensagens mais antigas por completo, o que faz com que o agente se esqueça de repente de passos críticos de setup. A gestão de limites de contexto com Compaction resolve isto, condensando de forma suave os chats mais antigos em resumos densos antes mesmo de o limite ser ultrapassado. Antes de olharmos para a mecânica, não confundas isto com session pruning. O session pruning é uma operação separada que apenas limpa o excesso de tool results. O Compaction opera diretamente no histórico principal da conversa. Pensa numa longa sessão de programação. O agente tem estado a gerar boilerplate, a ler ficheiros locais e a fazer debug de erros de lógica há uma hora. Cada interação soma à contagem de tokens. Se o sistema atingir o hard limit do modelo de linguagem subjacente, a API rejeita o request e a sessão faz crash. Precisas de uma forma de recuperar espaço sem quebrar a lógica do assistente. O OpenClaw lida com isto através do Context Engine. O Context Engine gere todo o fluxo de mensagens entre o utilizador e o modelo. Dentro deste engine, existe um ponto específico de lifecycle chamado compact. Esta fase atua como uma válvula de segurança automática para context overflow. O engine monitoriza ativamente o uso de tokens da conversa atual. Defines um limite máximo de tokens na tua configuração. Enquanto a conversa se mantiver abaixo deste limite, as mensagens passam normalmente. Quando a contagem de tokens se aproxima do limite, o engine dispara automaticamente um memory flush através do ponto de lifecycle compact. Quando o flush é disparado, o sistema divide o histórico de mensagens em duas secções. Separa as mensagens mais recentes das mensagens mais antigas e históricas. As mensagens recentes permanecem completamente intactas. O engine preserva as palavras exatas da troca de mensagens imediata para que o agente não perca a sua linha de raciocínio atual ou a sintaxe exata da função em que estás a trabalhar ativamente. Aqui está o ponto chave. As mensagens mais antigas não são descartadas. Em vez disso, são encaminhadas para um processo secundário de resumo. Este processo lê a maior parte da conversa inicial e condensa-a num texto curto de resumo. Este texto captura os objetivos originais, as decisões arquiteturais tomadas no início e quaisquer regras estabelecidas, enquanto remove o ruído da conversa e iterações obsoletas do código. O engine reestrutura então a memória ativa. Substitui o grande bloco de mensagens antigas em bruto por este único bloco de resumo. O novo prompt estruturado contém primeiro o bloco de resumo, seguido pelas mensagens recentes na íntegra. A contagem total de tokens desce drasticamente. O agente continua a compreender o contexto histórico ao ler o resumo, e pode continuar a executar a tarefa ativa ao ler as mensagens recentes. A conversa continua sem problemas, sem qualquer intervenção manual. A gestão eficaz de contexto não tem a ver com reter cada palavra exata que digitaste, mas sim com comprimir sistematicamente o passado para que o agente tenha o máximo de espaço para raciocinar sobre o presente. É tudo por este episódio. Obrigado por ouvires, e continua a desenvolver!
6

Segurança e Trust Boundaries

3m 29s

Compreenda o modelo de confiança do OpenClaw. Os ouvintes vão aprender por que razão é um gateway de assistente pessoal em vez de uma sandbox multi-tenant, e como fazer o seu hardening.

Download
Olá, daqui é o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 6 de 11. Colocar uma IA num workspace partilhado do Slack com acesso ao terminal parece um incidente de segurança garantido, a menos que definas rigorosamente quem tem permissão para lhe dar instruções. Hoje falamos sobre Segurança e Trust Boundaries. A regra fundamental do OpenClaw Gateway é que opera num modelo de confiança de assistente pessoal. Muitos developers assumem que os gateways de IA vêm com autorização complexa ao nível do utilizador integrada. O OpenClaw não. O OpenClaw não foi desenhado para isolamento multi-tenant hostil. Não tenta separar utilizadores maliciosos uns dos outros de forma segura numa única instance partilhada. Em vez disso, todo o Gateway atua como uma única boundary que representa um operador de confiança. O sistema assume que qualquer pessoa que consiga comunicar com o Gateway está autorizada a agir em nome do dono. Pensa nisto como uma workstation desbloqueada. Se a tua instance do OpenClaw estiver configurada com uma tool que modifica a infraestrutura, qualquer pessoa que consiga falar com essa instance pode fazer trigger dessa modificação. O próprio modelo de IA não tem o conceito de user roles ou access tokens. Apenas vê uma stream de texto a entrar. Isto leva-nos ao sério risco dos canais partilhados. Se ligares o teu Gateway a um grupo público do Telegram ou a um canal de Slack de uma equipa grande, todos os utilizadores desse canal passam a estar dentro da tua trust boundary. A IA trata cada mensagem que lê como uma instrução válida. Se um utilizador externo escrever um ataque de prompt injection no chat, está a sequestrar a autoridade delegada das tools do teu bot. O Gateway não consegue distinguir entre tu pedires o status do sistema e um atacante a enganar o modelo para correr um shell script destrutivo. A autoridade pertence ao bot, mas o controlo pertence a quem fornece o prompt. Se tiveres uma ligação exposta, como um bot de Telegram, tens de a proteger. Primeiro, desativa as tools com privilégios elevados para esse profile específico do Gateway. Não dês a um bot acessível publicamente acesso ao teu file system local ou a APIs internas sensíveis. Mantém o teu toolset limitado a ações read-only ou inofensivas. Segundo, restringe a communication layer. Configura a ligação para aceitar apenas direct messages de utilizadores específicos emparelhados, ignorando completamente group chats e estranhos. Ao limitar quem pode inserir texto e que tools o bot pode executar, tu proteges a boundary. Para verificares se não deixaste nenhuma porta aberta, usa o utilitário de command line integrado. Corre o comando openclaw security audit. Esta tool faz um scan à tua configuração ativa do Gateway e verifica dois riscos principais. Primeiro, verifica a tua exposição de rede. Vai avisar-te se a tua instance estiver a escutar em interfaces públicas em vez de estar ligada de forma segura ao localhost. Segundo, sinaliza tools permissivas. A auditoria vai alertar-te se tiveres capabilities de alto risco, como arbitrary code execution, ativadas ao mesmo tempo que integrações de chats públicos. Aqui está o ponto chave. A boundary da segurança do teu sistema é exatamente a boundary de quem pode submeter texto para os teus modelos. Se não consegues limitar a audiência, tens de limitar as tools. Obrigado por passares uns minutos comigo. Até à próxima, fica bem.
7

A Exec Tool e Aprovações em Runtime

3m 58s

Explore como o agente interage com o seu sistema de ficheiros e shell de forma segura. Abordamos a exec tool, safe binaries e fluxos de aprovação explícita.

Download
Olá, daqui fala o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 7 de 11. Dar acesso direto à linha de comandos a um modelo de IA parece um caminho rápido para dar cabo de um sistema. Mas e se o agente pudesse executar comandos inofensivos de parsing de dados automaticamente, pedindo explicitamente a tua permissão antes de tocar em algo destrutivo? A Exec tool e as Runtime Approvals lidam exatamente com este equilíbrio. A Exec tool permite que um agente OpenClaw execute comandos de shell para interagir com o sistema. Quando o agente decide que precisa de executar um comando, direciona-o diretamente para a máquina host ou para um container sandbox designado. O uso de um container sandbox limita o raio de impacto para a execução geral. No entanto, às vezes o agente precisa mesmo de interagir com o teu file system local, ler os teus logs locais ou iniciar processos locais. Executar comandos no host é poderoso, e é exatamente por isso que o modelo de autorização existe. O OpenClaw usa um sistema de autorização de duas camadas para te manter no controlo sem atrasar o agente desnecessariamente. A primeira camada baseia-se em safe bins. Estes são binários específicos que tu colocas explicitamente numa whitelist como inofensivos, como o jq para fazer parsing de JSON ou o grep para pesquisar texto. Se o agente chamar um comando que usa apenas estas safe bins, o Gateway executa-o imediatamente. Não há prompts, e o agente mantém o seu ritmo. A segunda camada apanha tudo o resto. Se o agente tentar uma execução de shell completa ou tentar usar um binário que não esteja na safe list, o Gateway interceta o pedido. Para o agente e aciona o sistema de runtime approvals. Aparece um prompt na UI do teu Gateway ou na tua companion app. Podes rever a command string exata que o agente quer executar. Se aprovares, o Gateway executa o comando e devolve o output ao agente. Se rejeitares, o comando nunca é executado. Em vez disso, o agente recebe um erro de execution denied, e tem de descobrir outra forma de prosseguir ou pedir-te esclarecimentos. Eis o ponto-chave de como isto funciona na prática. Digamos que o agente precisa de analisar um ficheiro de log enorme. Chama o grep para extrair os erros. Isso corre instantaneamente. Em seguida, precisa de compilar o projeto, por isso tenta correr npm run build como um background process. O Gateway para o agente e faz ping à tua companion app. Lês o comando, percebes que faz sentido, e carregas em aprovar. A build arranca em background. Mais tarde, o agente decide fazer uma limpeza, tentando apagar um source file. O Gateway faz-te ping novamente. Tu negas o pedido. O teu ficheiro permanece intacto, e o agente aprende que não tem permissão para essa ação. Há uma restrição de segurança rigorosa que precisas de conhecer ao executar no host. O Gateway rejeita explicitamente qualquer tentativa de fazer override à variável de ambiente path. Isto previne o hijacking. Sem este bloqueio, um prompt malicioso poderia enganar o agente para redefinir a path, fazendo com que o nome de uma safe bin como grep executasse um script destrutivo escondido numa pasta diferente. Como a path está bloqueada, a lista de safe bins permanece absoluta. O verdadeiro poder da Exec tool não é apenas a IA poder executar comandos, mas sim o facto de o modelo de segurança em camadas forçar um humano no loop apenas quando as apostas são altas, deixando o agente completamente autónomo para o trabalho de rotina. Se quiseres ajudar a manter o programa a andar, podes procurar por DevStoriesEU no Patreon. É tudo para este episódio. Obrigado por ouvires, e continua a programar!
8

Ensinar Agentes com Skills

3m 40s

Aprenda a expandir as capacidades do seu agente sem escrever código. Exploramos a formatação de AgentSkills, load-time gating e o ClawHub.

Download
Olá, daqui é o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 8 de 11. Queres que o teu agent manipule imagens usando uma command-line tool. Normalmente, isso significa escrever wrappers em Python, definir schemas e esperar que o language model entenda os parâmetros. Mas, na verdade, não precisas de código para ensinar uma nova capability a uma IA. Só precisas de um ficheiro de texto. Hoje, vamos focar-nos em ensinar agents com Skills no OpenClaw. Uma Skill no OpenClaw é essencialmente um manual de instruções. É um ficheiro de texto simples chamado SKILL ponto md, formatado usando o standard AgentSkills. Não é um binário compilado e não é um script Python. É um documento Markdown que diz ao agent exatamente como orquestrar as tools existentes. Dentro deste ficheiro, escreves instruções passo a passo. Defines o propósito da skill, as tools que ela usa, e a sequência de ações que o agent deve tomar. Se estiveres a criar uma skill de processamento de imagem chamada image-lab, o teu ficheiro SKILL ponto md vai explicar como formatar os argumentos da command-line para redimensionar ou recortar uma imagem. O agent lê este ficheiro e traduz as tuas instruções em inglês em execuções precisas na command-line. Uma skill é inútil se a tool subjacente faltar no sistema. O OpenClaw evita falhas aqui usando load-time gating. Isto permite-te definir pré-requisitos para que o teu agent nunca tente usar software que não está instalado. Tratas disto declarando requirements na configuração da skill. Para a skill image-lab, podes precisar de um package manager específico para correr os comandos. Especificas isto usando a property requires ponto bins, listando o nome do executável, como uv. Também podes exigir environment variables específicas usando a property requires ponto env, o que garante que uma API key ou um caminho de configuração está presente antes da skill ativar. Quando o OpenClaw arranca, ele avalia estas gates. Ele verifica o environment local à procura do binário uv e de quaisquer variáveis pedidas. Se faltarem, o OpenClaw ignora silenciosamente a skill. O sistema não vai crashar e o agent não vai alucinar comandos não suportados. Simplesmente opera sem as capabilities do image-lab. Aqui está a ideia principal. O OpenClaw precisa de entregar estas skills válidas ao language model de forma eficiente. Ele pega em todas as skills que passaram nos load-time checks e compila-as numa lista XML compacta. Este bloco XML é injetado diretamente no system prompt do agent. Os language models são altamente otimizados para fazer parsing de tags XML. Ao formatar o manual de instruções desta maneira, o agent separa claramente a sua core persona da lógica estrita e passo a passo definida nas tuas skills. Não tens de escrever todas as skills tu mesmo. O OpenClaw integra-se com o ClawHub, o registry oficial para skills criadas pela comunidade. Se precisares que o teu agent opere uma database específica ou um cloud utility, podes pesquisar no ClawHub e instalar uma skill existente. Ela faz o download para o teu environment, passa pelos mesmos load-time checks, e é injetada automaticamente no system prompt. O aspeto mais valioso da arquitetura de Skills é o decoupling da capability do código. Podes reconfigurar completamente a forma como o teu agent resolve problemas complexos multi-step apenas editando um ficheiro Markdown, sem nunca modificar a tua application logic ou compilar uma nova build. Obrigado por passares uns minutos comigo. Até à próxima, fica bem.
9

A Managed Browser Tool

3m 37s

Descubra como o OpenClaw dá olhos aos agentes na web. Os ouvintes vão aprender sobre perfis isolados de Chromium e MCPs de existing-session.

Download
Olá, daqui é o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 9 de 11. O teu agente está a tentar extrair dados de uma página web, mas não está apenas a fazer parsing de HTML raw. Precisa de renderizar uma dashboard React dinâmica, clicar num botão e esperar que um gráfico carregue. Tens de dar ao agente uma interface web totalmente funcional, mas não queres, de todo, que ele estrague as tuas tabs abertas ou faça hijack do teu rato. A Managed Browser Tool trata exatamente disso. Esta tool dá ao teu agente a capacidade de clicar, escrever, navegar e capturar visualmente o mesmo que um humano veria. Corre um ambiente de browser real para interagir com aplicações com client-side rendering, contornando as limitações de simples HTTP requests. Para manter o teu workspace seguro, a Managed Browser Tool usa diferentes profiles operacionais. O default é o profile openclaw isolado. Quando o agente usa este profile, a tool arranca uma instância Chromium completamente separada e dedicada. Tem os seus próprios cookies, o seu próprio local storage e o seu próprio histórico em branco. O agente navega no seu próprio browser dedicado. Pode preencher formulários e clicar em menus sem nunca tocar na tua sessão pessoal do Chrome. No entanto, há momentos em que um agente precisa de aceder a tools internas onde já estás autenticado. Para isso, a tool disponibiliza o user profile. Em vez de arrancar do zero, o user profile liga-se à tua sessão do Chrome existente e autenticada. Liga-se através do DevTools Protocol via Model Context Protocol. Isto permite que o agente utilize os teus tokens de login ativos para essa task específica, sem exigir que passes credenciais diretamente à IA. Aqui está o ponto chave. Dar um browser automatizado a um agente de IA no teu environment introduz riscos de segurança imediatos. Para mitigar isto, o controlo da Managed Browser Tool é estritamente loopback-only. O agente comunica com o browser inteiramente através da interface de loopback local. Mais importante ainda, cada request de navegação é protegido pela policy de Server-Side Request Forgery. Esta policy garante que o agente não pode usar a sua instância de browser como proxy para fazer scan silenciosamente às portas da tua rede local ou aceder a serviços internos não autorizados. Pensa no cenário da dashboard React. Primeiro, o agente emite um comando para arrancar o browser usando o profile isolado default. Navega para o URL da dashboard e espera ativamente que os componentes JavaScript façam mount e que o DOM estabilize. A seguir, localiza o elemento específico do gráfico usando um CSS selector e dispara um click event para expandir a vista. Finalmente, emite um comando de screenshot. O browser captura a frame renderizada e devolve o image buffer diretamente ao gateway. Dar um browser a um agente nunca deve significar entregar as chaves da tua rede interna ou da tua sessão pessoal do Chrome. A Managed Browser Tool mantém o agente altamente capaz, mas estritamente contido. É tudo por este episódio. Até à próxima!
10

Sub-Agentes Efémeros

3m 44s

Leve a orquestração ao próximo nível lançando background workers. Abordamos a tool sessions_spawn, nesting depth e anúncios de resultados.

Download
Olá, daqui fala o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 10 de 11. Pedes à tua IA para fazer o scrape de um site complexo ou processar milhares de linhas de log, e depois ficas simplesmente à espera. Ficas a olhar para um indicador a girar durante dez minutos, sem poderes fazer outra pergunta até que a task termine. Para resolver este problema de bloqueio, usas subagentes efémeros. Um subagente efémero é um worker temporário e isolado a correr em background. Em vez de fazer a computação pesada por si só, o teu agente de chat principal delega o trabalho. Faz isto usando uma tool específica do sistema chamada sessions spawn. Quando o agente principal encontra uma task massiva, aciona esta tool. Passa-lhe um prompt claro, quaisquer ficheiros de contexto necessários e as instruções específicas para o trabalho. Esta ação cria uma sessão de chat completamente nova e invisível, a correr inteiramente em background. Como esta sessão é isolada, o teu agente principal fica imediatamente livre. Podes continuar a falar com o teu assistente principal, fazer perguntas não relacionadas ou atribuir mais tasks enquanto o subagente processa os dados pesados fora da tua vista. Vejamos um cenário concreto. Lanças um log de erros de servidor massivo no teu chat principal e pedes uma auditoria de segurança. Processar esse log linha a linha com o teu LLM principal e pesado demora muito tempo e queima muitos tokens caros. Em vez disso, o teu agente principal delega o trabalho. Aqui está o ponto chave. Ao chamar o sessions spawn, o agente principal pode especificar um modelo completamente diferente para a task em background. Pode atribuir um LLM mais barato e mais rápido ao subagente. Este worker em background usa o modelo mais rápido para devorar a análise repetitiva do log. O agente principal mantém-se responsivo usando o modelo inteligente, enquanto o subagente faz o trabalho pesado usando o modelo rápido. Quando o subagente finalmente termina o parsing desses logs, precisa de uma forma de devolver os dados. Faz isto anunciando o seu resultado final para cima na chain. O subagente pega no seu resumo compilado e injeta uma mensagem diretamente de volta no chat original que fez o pedido. Tu simplesmente vês uma nova mensagem aparecer do subagente com a tua análise de logs concluída, pronta para tu e o agente principal discutirem. Esta arquitetura é conhecida como o orchestrator pattern, e baseia-se em regras à volta do nesting depth. O cenário que acabámos de cobrir é nesting depth um. O utilizador fala com o agente principal, e o agente principal faz o spawn de um subagente. O OpenClaw também suporta nesting depth dois. Num cenário de depth dois, o teu subagente de parsing de logs pode encontrar um payload fortemente codificado nos logs. Pode então fazer o spawn do seu próprio subagente apenas para descodificar esse payload específico. Esse agente de segundo nível descodifica o texto, passa-o de volta ao primeiro subagente, que depois conclui a análise do log e reporta de volta para cima para o teu chat principal. O sistema limita isto estritamente a depth dois. Este hard limit previne loops recursivos descontrolados onde os agentes fazem continuamente o spawn de outros agentes para sempre, esgotando os teus recursos de compute. Os subagentes efémeros mudam fundamentalmente a forma como interages com uma interface de prompt. Deixas de tratar o teu LLM como uma única thread bloqueada e começas a tratá-lo como um task manager assíncrono. É tudo por este episódio. Até à próxima!
11

Workflows de Automação Proativa

4m 13s

Transforme o seu bot reativo num assistente proativo. Os ouvintes vão aprender a combinar Heartbeats, Cron jobs e Hooks para uma automação poderosa.

Download
Olá, daqui é o Alex da DEV STORIES DOT EU. OpenClaw Gateway, episódio 11 de 11. Um verdadeiro assistente não fica parado à espera que digites um comando. Ele verifica proativamente os teus sistemas e alerta-te quando algo precisa realmente da tua atenção. Passar de um loop reativo de prompt e resposta para um agente autónomo requer mecanismos específicos de agendamento e execução. Isto leva-nos aos workflows de automação proativa. O OpenClaw lida com a automação baseada em tempo utilizando dois mecanismos distintos. O primeiro é o Heartbeat. O segundo é o Cron. Os engenheiros costumam confundi-los porque ambos disparam ações automaticamente com base no tempo, mas têm papéis arquitetónicos completamente diferentes no que diz respeito ao estado e ao isolamento de sessão. O Heartbeat é um loop periódico que corre continuamente dentro da tua sessão principal ativa. Foi desenhado para verificações rotineiras e contínuas, onde o teu contexto atual importa. Aqui está o ponto-chave. Como o Heartbeat opera dentro da tua sessão atual, tem acesso direto à tua interface ativa. Pensa num cenário em que queres monitorizar a tua inbox à procura de mensagens urgentes. Configuras um Heartbeat para executar uma verificação a cada trinta minutos. Se detetar um e-mail crítico, o Heartbeat pode fazer push imediato de um alerta em linguagem natural diretamente para a tua stream de conversação ativa. Atua como uma background thread contínua, ligada ao teu estado de utilizador atual, permitindo interrupções contextuais imediatas. O Cron opera de forma completamente diferente. Foi construído para jobs agendados e precisos que exigem isolamento total. Se queres que o sistema compile um briefing matinal diário abrangente a partir de várias fontes de dados exatamente às seis da manhã, usas o Cron. Quando um agendamento do Cron é acionado, o OpenClaw não usa o teu chat ativo. Em vez disso, inicia uma background session completamente isolada. Faz pull dos dados necessários, processa a carga analítica pesada silenciosamente e monitoriza todo o job internamente como uma Background Task. Isto significa que o processamento pesado não polui a context window do teu chat ativo no desktop. Assim que o job termina, o briefing finalizado é guardado e fica pronto para o recuperares quando fizeres login. O Heartbeat partilha o estado contigo, enquanto o Cron corre headless e isolado. Os triggers baseados em tempo são apenas parte do workflow. O OpenClaw depende de Hooks e Standing Orders como ferramentas complementares para fechar o loop de automação. Enquanto o Heartbeat e o Cron ditam quando uma ação acontece com base num relógio, os Hooks lidam com triggers externos, event-driven. Um Hook expõe um endpoint de escuta que sistemas externos podem chamar. Se um log crítico do servidor indicar uma falha, um sistema externo pode acionar um Hook do OpenClaw, acordando o assistente para analisar o erro imediatamente, sem esperar pelo próximo pulso agendado do Heartbeat. As Standing Orders fornecem as regras operacionais persistentes para todas estas runs autónomas. Quando esse Cron job isolado acorda às seis da manhã, não há nenhum utilizador presente para guiar o seu output. As Standing Orders definem o formato exato, a profundidade analítica e as regras de prioridade que o assistente deve seguir enquanto trabalha de forma completamente independente. Ao combinar Heartbeats periódicos para monitorização ativa, Cron jobs isolados para tarefas agendadas pesadas e Standing Orders persistentes para governar o comportamento não guiado, mudas fundamentalmente a natureza da aplicação. Deixas de construir uma simples interface de chat e começas a fazer deploy de um verdadeiro assistente autónomo. Como este é o episódio final da nossa série sobre o OpenClaw, encorajo-te vivamente a explorares a documentação oficial, a tentares configurar estas background tasks de forma hands-on, ou a visitares devstories dot eu para sugerires tópicos para a nossa próxima série. Obrigado por passares uns minutos comigo. Até à próxima, fica bem.