
OpenClaw v2026.5.7, Sandboxes do Agents SDK e Segurança do Gemini CLI
OpenClaw Daily cobre o OpenClaw v2026.5.7, focando na recuperação de publicação do ClawHub, status JSON do cron, listagem de canais, aplicação de proprietário de comandos nativos, escopo admin do Active Memory, atualização de snapshot de habilidades, autorização antes da ferramenta para despacho de habilidades inline, credenciais do Tavily com suporte a SecretRef, invalidação de cache de contexto e parsing de destino Discord. Além disso, aborda o clampagem de tokens de compactação, relatórios de falha de entrega, probes de voz no Discord, liveness do poller Telegram, roteamento WhatsApp e aprovações do Codex. Show notes: https://tobyonfitnesstech.com/pt/podcasts/episode-47/
🎧 Listen to Episode[00:00] v2026.5.7 oferece aos operadores novas formas de verificar se publishing, cron, channels, auth, delivery, voice, memory e approvals estão realmente funcionando. O publishing do ClawHub agora tenta novamente falhas transitórias de instalação de dependências, mantém plugin publishes que passaram no preview avançando quando uma célula de preview falha, e verifica cada versão de pacote esperada após o publish. O Cron JSON agora expõe o status calculado diretamente. A listagem de canais é focada em canais em vez de misturar detalhes de auth de modelo. O dispatch de inline skill do auto-reply agora passa pelos hooks de autorização antes da chamada de ferramenta. As ferramentas Tavily resolvem credenciais respaldadas por SecretRef a partir do snapshot de config de runtime ativo. Alvos de canal Discord com prefixo de provider agora são roteados como envios de canal em vez de tentativas enganosas de mensagem direta. Essa é a forma do release: menos suposições ocultas, menos caches desatualizados, menos falsos sucessos e mais contratos explícitos de operador.
[02:30] HISTÓRIA 1 — OpenClaw v2026.5.7 Torna Publishing, Channels, Cron, Auth, Memory, Delivery, Voice, WhatsApp e Codex Approvals Mais Observáveis e Seguros
Comece com o release e publishing de plugins. Um release de manutenção não deve deixar operadores imaginando se um plugin foi realmente publicado em todos os lugares em que deveria chegar. v2026.5.7 adiciona tratamento de retry para falhas transitórias de instalação de dependências do CLI do ClawHub, mantém um plugin publicável quando uma célula de preview falha mesmo que o preview tenha passado, e verifica cada versão de pacote esperada do ClawHub após o publish. Esse passo final de verificação é o importante. Um pipeline de publish não está completo quando um comando sai; está completo quando as versões de pacote esperadas estão visíveis onde os installers downstream vão buscá-las.
Isso importa para um ecossistema de plugins porque publishes parciais são piores que falhas limpas. Um pacote pode estar disponível em um lugar, faltando em outro, ou publicado na versão errada. Operadores então caçam erros de instalação que parecem problemas de configuração local mas são realmente problemas de distribuição de release. A verificação pós-publish transforma o processo de release em um loop de reconciliação: declare o conjunto esperado de pacotes, tente o publish e verifique se o estado do registry corresponde. Se não corresponder, a falha é visível na hora da manutenção em vez de descoberta pelos usuários.
A superfície do modelo OpenAI recebe uma adição direcionada: openai/chat-latest é suportado como uma substituição direta explícita de API-key de modelo para testar o alias moving do ChatGPT Instant API sem alterar o modelo padrão estável. A frase-chave é substituição explícita. Um alias moving é útil para testar comportamento da faixa instant-chat atual, mas é um mau padrão para agentes de produção porque seu snapshot de modelo subjacente pode mudar. Mantê-lo por trás de um ID de modelo explícito permite que builders testem o alias enquanto preservam padrões estáveis para jobs agendados, workflows de produção e avaliações reproduzíveis.
Cron fica mais fácil de automatizar. cron list --json e cron show --json agora incluem status calculado, então ferramentas externas podem ler estados disabled, running, ok, error, skipped ou idle sem reimplementar a derivação de status do OpenClaw. Esta é uma boa mudança de contrato de API. Se uma CLI fornece JSON para máquinas, o JSON deve incluir o estado que humanos veem. Caso contrário, cada dashboard, monitor e script wrapper tem que fazer engenharia reversa do status a partir de timestamps, campos de último erro, flags de enable e marcadores de execução. Isso cria automação inconsistente e alarmes falsos.
A inspeção de canal também ganha um contrato mais limpo. openclaw channels list agora é apenas canais, adiciona --all para canais bundled e catalog, renderiza estados installed, configured e enabled, e move detalhes de auth e uso de modelo para openclaw models auth list, openclaw status e openclaw models list. A separação é importante porque prontidão de canal e autenticação de modelo são domínios operacionais diferentes. Um canal Slack ou Discord pode estar instalado mas desabilitado, configurado mas sem permissões, ou habilitado mas não saudável atualmente. Auth de modelo pertence a credenciais de provider e seleção de runtime. Misturar esses em um comando torna mais difícil para automação responder perguntas simples.
Limites de segurança são apertados em vários lugares. Handlers de comando nativos agora honram aplicação de owner. Active Memory requer escopo admin para toggles de memory global. Auto-reply controla dispatch de ferramenta de inline skill através de hooks de autorização antes da chamada de ferramenta. Esses são todos fixes de autorização em superfícies que podem mudar estado do sistema. Comandos nativos podem executar caminhos de controle privilegiados. Toggles de memory global podem afetar o que sessões futuras lembram. Inline skills podem acionar ferramentas de um caminho de auto-reply, onde o usuário pode não estar assistindo cada passo interno. O release empurra essas ações de volta através de verificações de autorização explícitas.
O fix de dispatch de inline skill merece destaque. Sistemas de skill são convenientes porque permitem que um agente roteie uma tarefa para comportamento empacotado. Mas se auto-reply pode fazer dispatch de uma ferramenta de inline skill sem passar pelos hooks de autorização antes da chamada de ferramenta, então o caminho conveniente se torna o caminho mais fraco. O design correto é que cada ponto de entrada de ferramenta, seja invoked por um turno de chat visível, uma inline skill, um plugin ou um auto-reply em background, flua através do mesmo hook de política antes da execução. Isso dá aos administradores um lugar para implementar comportamento de allow, deny, prompt, log ou rate-limit.
Credenciais recebem um fix similar de limite de runtime. Ferramentas dedicadas tavily_search e tavily_extract agora resolvem credenciais do snapshot de config de runtime ativo, então API keys respaldadas por SecretRef de exec não chegam às ferramentas não resolvidas. Sistemas SecretRef só funcionam se cada ferramenta lê secrets através da mesma view de runtime resolvida. Se uma ferramenta recebe o marcador literal não resolvido, a falha parece credenciais ruins mesmo que o secret exista. Pior, desenvolvedores podem contornar colocando uma key hardcoded. Resolver do snapshot ativo mantém config por-run, SecretRefs e credenciais de ferramenta alinhados.
Caminhos de install de plugin gerenciado ficam mais robustos também. OpenClaw agora usa o mesmo shell de lifecycle npm POSIX absoluto para install, rollback, repair e uninstall de plugins gerenciados, assim como updates de pacote staged. O modo de falha aqui é sutil: um shell com PATH restrito pode quebrar cleanup ou rollback mesmo que o caminho de install original funcione. Usar o mesmo shell de lifecycle absoluto através de install e repair actions reduz drift de ambiente. Operadores devem poder confiar que rollback usa as mesmas suposições de toolchain que install.
Correção de sessão e contexto recebe atenção. Sessões de Gateway limpam snapshots de skills em cache durante /new e sessions.reset, então sessões de canal de longa duração reconstruem listas de skills visíveis após mudanças de skills. Context engines de agentes invalidam views de contexto assembladas em cache quando histórico de origem encolhe ou assemblagem falha, impedindo reutilização de histórico pré-reset desatualizado. Esses são bugs de invalidação de cache, mas o impacto visível ao usuário é severo. Se um reset não limpa o snapshot de skills, o agente pode anunciar capacidades desatualizadas. Se uma view de contexto sobrevive a um encolhimento de histórico, o modelo pode ver estado de conversa antigo após um reset.
Compaction recebe um guard de limite de modelo. Tokens de reserva de summary são clamped ao limite de output de cada modelo então compaction de alto contexto não solicita mais valores max_tokens inválidos. Este é um problema prático multi-modelo. Um context engine pode planejar uma reserva de summary grande, mas o modelo selecionado pode não ser capaz de emitir tantos tokens. Se a solicitação for enviada de qualquer forma, compaction falha na fronteira do provider. Clamping tokens de reserva aos limites de output do modelo transforma uma solicitação inválida em um plano de summary limitado.
Semântica de delivery se torna mais honesta. Delivery de agente agora reporta deliverySucceeded=false quando delivery outbound retorna sem resultado de adapter, então caminhos de delivery claims ou vazios não se disfarçam mais como envios bem-sucedidos. Execuções isoladas de cron também falham delivery announce implícito antes da execução do modelo quando delivery.channel=last não tem rota anterior, então jobs recorrentes não gastam tokens antes de atingir um erro permanente de alvo de delivery. Ambas as mudanças seguem o mesmo princípio: não execute trabalho caro se a rota de saída é impossível, e não reporte sucesso quando nenhum adapter confirmou delivery.
Parsing de alvo Discord recebe um fix concreto para mensagens de agente cross-channel. Alvos com prefixo de provider como discord:channel:<id> agora são parseados como envios de canal em vez de alvos legados de mensagem direta do Discord. Isso impede que chamadas de message(action="send") de agente cross-channel errem o roteamento de IDs de canal em falhas enganosas de Unknown Channel. Namespaces importam aqui. Um alvo de canal com prefixo de provider não é um user id, e uma camada genérica de mensagens deve preservar essa intenção até o adapter.
Hardening do Telegram abrange autorização e liveness. Telegram agora honra accessGroup:* allowlists de sender para DMs, grupos, comandos nativos e autorização de callback antes de aplicar verificações numéricas de sender-ID. O polling watchdog permanece atrelado à liveness de getUpdates então chamadas de Bot API outbound não relacionadas não podem mascarar um inbound poller travado. Esse segundo fix é um problema clássico de health-check. Um bot ainda pode enviar mensagens enquanto seu loop de polling inbound está preso. Se chamadas outbound resetarem o watchdog, o sistema parece saudável mesmo que não possa receber input do usuário.
Operações de voice melhoram no Discord. channels capabilities e channels status --probe agora auditam permissões de canal de voz do Discord, incluindo alvos de auto-join, então permissões faltantes de Connect, Speak e Read Message History aparecem antes do /vc join. Captura de voz também é menos truncada: a graça de silêncio pós-fala padrão se estende para 2.5 segundos, voice.captureSilenceGraceMs está disponível para sessões ruidosas, e o prompt de output falado é apertado em torno de fragmentos STT ao vivo. Agentes de voz vivem ou morrem na segmentação de turno. Graça de silêncio muito pouca corta falantes. Graça demais torna o agente lento. Tornar a graça configurável dá aos operadores um knob de tuning para ruído de sala e estilo de fala.
Fixes do WhatsApp são operacionalmente específicos mas importantes. Envios proativos de número de telefone agora roteiam através de mapeamentos forward de LID do Baileys quando disponíveis, então contatos endereçados por LID recebem mensagens do agente em vez de criar ghost chats apenas de sender. Auto-replies de diretiva MEDIA: com caption agora enviam uma vez em vez de emitir uma mensagem de mídia vazia antes do reply de mídia com caption. Ambos são exemplos de correção de adapter. Provedores de mensagens frequentemente têm múltiplas formas de identidade e primitivas de mídia. A plataforma de agente precisa mapeá-las corretamente ou usuários veem mensagens duplicadas, faltantes ou ghost.
Comportamento de approval do Codex muda de uma forma que deve reduzir fadiga de approval sem contornar revisão. Em modos de approval do Codex, OpenClaw para de instalar o hook nativo de PermissionRequest pré-guardian por padrão, permitindo que o reviewer do Codex aprove comandos seguros antes do OpenClaw apresentar um approval. Ele lembra decisões allow-always para payloads nativos idênticos de PermissionRequest do Codex dentro da janela de sessão ativa, e solicitações de approval de plugin validam e renderizam suas decisões allow reais então UIs de approval nativo como Telegram não podem oferecer ações desatualizadas. O detalhe a explicar é o sequenciamento: deixe o reviewer interno lidar com comandos seguros, apresente approvals quando necessário, e certifique-se de que as ações de UI correspondam ao conjunto atual de decisões allow.
Compatibilidade de provider e mídia também recebe reparos. OpenClaw normaliza uploads PNG farejados como APNG, preserva replay de thought-signature de chamada de ferramenta do Gemini 3 com fallbacks de signature, aceita chaves customizadas legadas de __env__:VAR de provider, e repara sanitização de transcript de chamada de ferramenta em snake_case. Essas são as bordas que tornam transcripts e ferramentas portáveis. Se signatures de chamada de ferramenta não fazem replay, estado de provider pode rejeitar turnos de follow-up. Se sanitização de transcript mishandla chamadas de ferramenta em snake_case, superfícies de replay e audit divergem do que realmente aconteceu.
A classificação prática de release é alta para operadores. v2026.5.7 não é um recurso chamativo; é um conjunto de contratos de confiabilidade. Publishing verifica estado de registry. Cron expõe status calculado. Channels e auth de modelo são separados. Inline skills passam por autorização. SecretRefs resolvem no runtime. Caches de contexto invalidam após reset. Delivery falha antes de desperdiçar tokens. Permissões de voice e timing de captura são visíveis. Approvals do Codex se alinham com decisões reais. Essas são as mudanças que tornam um sistema de agente menos misterioso quando roda o dia todo.
[28:00] HISTÓRIA 2 — OpenAI Agents JS v0.9 até v0.11 Transforma Sandboxes em Workspace Manifests, Limites de Runtime, Agendamento de Ferramentas e Fronteiras de Artefatos
O Agents SDK da OpenAI para JavaScript tem se movido rapidamente esta semana, e a mudança mais importante é a superfície do sandbox agent. Sandbox agents se baseiam no Agent, Runner e run flow existentes, mas adicionam workspaces persistentes, workspace manifests, sandbox sessions, capabilities, snapshots, memory e suporte a resume. Em termos práticos, esta é a diferença entre um agent que pode chamar uma função e um agent que pode trabalhar em um ambiente de computador controlado ao longo do tempo.
A abstração central é o Manifest. Um manifest descreve o que o workspace do agent contém: arquivos e diretórios sintéticos, arquivos e diretórios locais, repositórios Git, variáveis de ambiente, usuários, grupos, permissões, mounts e locais de saída. Isso transforma a configuração do sandbox em um contrato de workspace declarativo. Em vez de uma tarefa dizer "de alguma forma dê a este agent um repo e um lugar para escrever artefatos", o manifest diz exatamente o que está montado, onde aparece, quais arquivos são graváveis e quais caminhos externos são permitidos.
Isso importa porque agentes de arquivos e comandos precisam de fronteiras. Se um agent pode inspecionar arquivos, executar comandos, aplicar patches e gerar artefatos, o sandbox precisa definir o que está no escopo. Um workspace persistente é poderoso para tarefas de longo horizonte porque o agent pode continuar a partir de um estado anterior, mas persistência também significa que o estado pode se acumular. Snapshots e comportamento de resume permitem que os builders decidam quando preservar, restaurar ou descartar esse estado. A questão operacional se torna: quais arquivos são entradas da tarefa, quais são saídas geradas e quais são memória persistente entre execuções?
v0.11.0 adiciona uma mudança na fronteira de artefatos que é fácil de perder, mas importante. A materialização de código-fonte local do sandbox agora mantém LocalFile.src e LocalDir.src dentro do baseDir de materialização, a menos que o caminho de origem esteja coberto por Manifest.extraPathGrants. O diretório base é o diretório de trabalho atual do processo SDK quando o manifest é aplicado. Fontes relativas são resolvidas a partir desse diretório. Fontes absolutas já devem estar dentro dele ou sob uma concessão explícita. Isso fecha uma questão de fronteira de artefatos local.
A implicação de migração é direta. Se uma aplicação intencionalmente copia arquivos host confiáveis de fora do diretório base para um workspace sandbox, agora ela precisa declarar isso com uma concessão de caminho extra. Esse é um contrato melhor. Faz a diferença entre "o agent pode ler caminhos host arbitrários porque um caminho de origem apontava para lá" e "a aplicação concedeu explicitamente este diretório externo, possivelmente somente leitura, com uma descrição." Para sistemas de agentes que manipulam dados de clientes, repositórios proprietários ou arquivos adjacentes a credenciais, concessões explícitas são o padrão correto.
O modelo padrão do SDK mudou na v0.10.0 de gpt-4.1 para gpt-5.4-mini quando nenhum modelo é definido. Isso afeta agents e runs que dependiam de padrões implícitos. Como o novo padrão é um modelo GPT-5, as configurações de modelo padrão implícitas agora incluem padrões GPT-5 como reasoning.effort="none" e verbosity="low". A recomendação para builders é simples: agents de produção devem definir o modelo explicitamente. Padrões são úteis para exemplos e protótipos, mas comportamento do agent, custo, latência, esforço de raciocínio e verbosidade não devem mudar apenas porque uma dependência foi atualizada.
Limites de turno se tornam explícitos. maxTurns=null pode desativar o limite de turnos do run do Agents SDK, enquanto mantém o padrão em DEFAULT_MAX_TURNS, atualmente dez, quando a configuração é omitida. Isso é uma válvula de segurança em tempo de execução. Um limite rígido de turnos evita loops descontrolados e custos surpresa. Desativar o limite pode ser necessário para fluxos de trabalho de longo horizonte, mas deve ser combinado com outros controles: timeouts de wall-clock, tool allowlists, limites de orçamento, checkpointing e visibilidade de progresso. A distinção útil é que omitido significa padrão seguro; null significa que o desenvolvedor intencionalmente removeu o limite.
O agendamento de ferramentas também se torna mais controlável. toolExecution.maxFunctionToolConcurrency em RunConfig controla a concorrência de execução local de function-tool no lado do SDK. Isso é separado de ModelSettings.parallelToolCalls do lado do provider. Essa separação importa. O modelo pode ser permitido propor múltiplas chamadas de ferramentas em paralelo, mas o runtime local ainda precisa decidir quantas executar de uma vez. Uma ferramenta de sistema de arquivos, ferramenta de banco de dados, ferramenta shell e ferramenta HTTP têm diferentes efeitos colaterais e perfis de recursos. A concorrência local é uma política de agendamento de runtime, não apenas uma preferência de geração de modelo.
O naming de ferramentas MCP obtém uma opção deAvoidance de colisão. O SDK pode incluir o nome do servidor MCP nos nomes das ferramentas, alinhando-se com o Python SDK. Isso previne conflitos quando múltiplos servidores MCP expõem ferramentas com o mesmo nome local. Sem prefixos de servidor, dois servidores diferentes podem expor search, read ou query. O agent então vê nomes de ferramentas ambíguos, e os logs se tornam mais difíceis de auditar. O naming com prefixo de servidor torna o namespace de ferramentas mais explícito, o que é especialmente importante quando agents se conectam a múltiplos servidores de ferramentas internos e externos.
v0.11.0 também muda o modelo padrão do RealtimeAgent para gpt-realtime-2. Os padrões realtime não são cosméticos. Um modelo realtime afeta latência de áudio, tomada de turnos, comportamento de transcrição, expectativas de barge-in e qualidade de interação por voz. Se um produto usa RealtimeAgent sem fixar um modelo, atualizar o SDK pode mudar o comportamento realtime subjacente. Novamente, a recomendação é fixar padrões de produção e testar novos modelos realtime sob condições de áudio representativas antes de movê-los para sessões voltadas para o cliente.
A série de releases também inclui correções que mostram onde runtimes de agents falham. v0.9.1 preserva a identidade de agents com nomes duplicados na serialização de estado de run, reconcilia chamadas de função em stream quando runs gerenciados pelo servidor são abortados, e evita repetição de IDs de itens de conversa do assistente. v0.10.1 restaura o histórico de sessão quando a substituição de compactação de respostas falha e valida políticas de aprovação MCP hospedadas. Estas são correções de máquina de estado. Sistemas de agents têm estado local, estado de servidor, deltas em stream, substituição de compactação e política de aprovação. Se esses divergirem, o próximo turno pode repetir o item errado, perder histórico ou aprovar a ação errada.
O aprendizado prático para builders JavaScript é tratar o Agents SDK como um runtime, não apenas um wrapper em torno de chamadas de modelo. Defina workspace manifests rigorosamente. Use extraPathGrants para caminhos host de propósito. Fixe modelos de produção. Decida se os limites de turno devem permanecer no padrão, ser aumentados ou desativados com outros guardrails. Defina a concorrência local de ferramentas com base nos efeitos colaterais. Adicione prefixos nos nomes de ferramentas MCP quando vários servidores estão conectados. Teste mudanças de modelo realtime como mudanças de comportamento de produto, não apenas atualizações de dependência.
[40:00] HISTÓRIA 3 — Gemini CLI v0.42 Nightlies Endurece Bordas do Agent Runtime: Shell Safety Evals, Approval Races, Compression Queues, OAuth Hangs e Auto Memory Patches
As nightlies do Gemini CLI de 6 e 7 de maio são úteis porque mostram o trabalho de runtime nada glamoroso necessário para agentes de linha de comando. As mudanças não são um único lançamento de modelo; elas são uma lista de edge cases em torno de aprovação, segurança de shell, compactação de contexto, falhas de streaming, OAuth, naming de sandbox, Auto Memory e saída não interativa. Esses são exatamente os lugares onde CLI agents se tornam frágeis.
Comece com aprovações. As correções do servidor A2A resolvem uma race condition de aprovação de ferramenta, melhoram o relatório de status e resolvem uma race no wait de conclusão de ferramenta. Em um runtime de agent, aprovação é uma máquina de estado. Uma chamada de ferramenta é proposta, aprovação é solicitada, uma decisão humana ou de política chega, a ferramenta executa ou é negada, e o runtime relata conclusão. Se o sistema relata status antes do resultado da aprovação ser commitado, ou espera o sinal de conclusão errado, a UI pode mostrar uma ferramenta como concluída enquanto ainda está pendente, ou executar após um caminho de negação deveria ter parado.
Shell-command safety evals são uma adição forte. Ferramentas shell são poderosas porque permitem que agents inspecionem arquivos, executem testes, instalem dependências e operem fluxos de trabalho de desenvolvedores. Elas são perigosas pela mesma razão. Uma suite de evaluation de segurança shell dá aos mantenedores uma forma de testar se o modelo e runtime identificam corretamente comandos arriscados, redirecionamentos, operações destrutivas de arquivos, exposição de credenciais e tentativas de escape de sandbox. A parte importante é que a segurança é avaliada como comportamento, não apenas documentada como política.
As nightlies também adicionam saída JSON para AgentExecutionStopped em modo não interativo. Isso importa para CI e scripts wrapper. Uma TUI humana pode mostrar um estado parado em prosa; automação precisa de um objeto estruturado. Se execuções não interativas param devido a uma política, limite, erro ou estado de aprovação, a saída JSON permite que sistemas chamadores distingam uma parada limpa de um crash ou timeout. CLI agents cada vez mais executam dentro de jobs agendados e sistemas de orquestração, então semântica de terminal estruturada é parte da superfície do produto.
A compactação de contexto recebe uma correção de enfileiramento: mensagens podem ser enfileiradas durante a compactação. Compactação é necessária porque sessões longas de agents excedem limites de contexto, mas também é um hazard de concorrência. Se um usuário envia uma mensagem enquanto o runtime está compactando histórico, o sistema precisa decidir se bloqueia a entrada, a descarta, anexa ao contexto antigo ou a enfileira para o contexto compactado. Enfileirar preserva a intenção do usuário enquanto permite que o gerenciador de contexto termine uma reescrita coerente. Sem isso, corrupção de chat ou turnos perdidos se tornam prováveis.
O CLI também tenta novamente erros ERR_STREAM_PREMATURE_CLOSE. Execuções de agents em stream dependem de conexões de longa duração entre saída de modelo, progresso de ferramenta e renderização de terminal. Um fechamento prematuro pode ser uma falha de rede ou transporte transitória em vez de uma falha lógica. Tentar novamente cuidadosamente pode tornar o sistema mais robusto, mas o runtime deve evitar duplicar efeitos colaterais. O padrão seguro é tentar novamente caminhos de stream idempotentes ou pré-execução e ser mais conservador uma vez que uma ferramenta tenha mutado estado.
Várias correções são sobre ambientes headless e não padrão. O CLI previne um hang silencioso durante autenticação OAuth no Linux headless. Ele rejeita IDs de projeto numéricos em GOOGLE_CLOUD_PROJECT. Ele melhora a UX de lista MCP em pastas não confiáveis. Estas são correções de qualidade do operador. Muitos agents executam em máquinas remotas, containers, workers de CI ou servidores sem navegador. Falhas de autenticação e resolução de projeto precisam falhar com status acionável, não pendurar esperando por uma UI que não existe.
O comportamento do sandbox recebe mudanças menores, mas importantes. O CLI randomiza nomes de containers sandbox e permite redirecionamento em modos YOLO e AUTO_EDIT sem sandboxing. Nomes de containers randomizados reduzem colisões quando múltiplas execuções executam no mesmo host. O comportamento de redirecionamento importa porque a sintaxe de shell faz parte do trabalho normal do desenvolvedor: redirecionar saída para arquivos, direcionar logs e escrever patches. Mas qualquer mudança em torno de redirecionamento também precisa de avaliação de segurança porque redirecionamento pode sobrescrever arquivos ou exfiltrar conteúdo. É por isso que shell safety evals e mudanças de comportamento de shell pertencem à mesma discussão.
Auto Memory recebe um refinamento na lista de permissões de patches privados e documentação mais clara sobre como o Auto Memory propõe atualizações de memória e habilidades. Memória persistente é útil apenas se as atualizações forem delimitadas e revisáveis. Uma lista de permissões de patches de memória controla quais tipos de atualizações de memória privada podem ser aplicadas automaticamente. Sem esse limite, um agente pode persistir fatos sensíveis, incorretos ou excessivamente amplos. Com um limite muito restritivo, a memória se torna inútil. O modelo correto de operação é: proposta, escopo, lista de permissões e revisão.
A release de 7 de maio também move a explicação de ferramentas do fluxo de pensamentos para o conteúdo da chamada de ferramenta. Isso pode parecer uma limpeza de UI, mas afeta a privacidade e a observabilidade. Fluxos de pensamentos e conteúdo de chamadas de ferramentas têm públicos e regras de retenção diferentes em muitos sistemas. Se uma explicação de ferramenta pertence à chamada de ferramenta, colocá-la lá torna os logs de auditoria mais claros e evita misturar a justificativa da ferramenta visível ao usuário com canais de raciocínio interno. Runtimes de agentes precisam dessas delimitações de conteúdo para manter a consistência.
A recomendação prática para operadores do Gemini CLI é monitorar esses nightlies como sinais de endurecimento de runtime. Máquinas de estado de aprovação precisam de testes de race condition. Ferramentas de shell precisam de avaliações de segurança. Compressão precisa de enfileiramento de entrada. Streaming precisa de regras de retry que evitem efeitos colaterais duplicados. OAuth precisa de modos de falha headless. Patches de memória precisam de listas de permissões. Execuções não interativas precisam de estados JSON. Esses não são refinamentos opcionais para um agente CLI; são a diferença entre um terminal de demonstração e uma superfície de automação confiável.
[50:00] Encerramento
O takeaway prático do EP047 é operacional: OpenClaw v2026.5.7 torna o estado do sistema mais visível e seguro em publicação, cron, canais, memória, entrega, voz, mensagens e aprovações. OpenAI Agents JS mostra como agentes em sandbox estão se tornando runtimes manifestados no workspace com grants de caminho explícitos, limites de turnos, concorrência de ferramentas e namespaces MCP. Gemini CLI mostra as bordas do runtime que importam quando agentes de linha de comando executam em fluxos de trabalho reais: races de aprovação, segurança de shell, filas de compressão, retries de transporte, vitalidade OAuth e escopo de patches de memória. Para construtores, a questão não é apenas o que o agente pode fazer; é quais delimitações, statuses e caminhos de recuperação existem quando ele faz o trabalho.