Conecte a stack do NemoClaw
Nos Módulos 1 e 2, mantivemos a orquestração no navegador, e cada workflow terminava quando a página deixava de manter suas mensagens, resultados intermediários ou o estado das ramificações. O Módulo 3 transfere os mesmos padrões de agentes para um launchable do NemoClaw no Brev.
Os principais componentes funcionais desta implantação são:
- Endpoint do LLM. Transforma prompts e resultados de ferramentas em respostas semânticas, mas não preserva o estado da sessão do agente.
- Harness do OpenClaw. Preserva o histórico da sessão, um workspace baseado em arquivos e o acesso a ferramentas.
- Sandbox do OpenShell. Limita o que o agente em execução pode alcançar.
- Blueprint do NemoClaw. Configura o OpenClaw e o OpenShell para trabalharem juntos.
Nesta lição, você conectará o navegador ao launchable, inspecionará suas quatro rotas de conexão, usará uma chamada direta ao modelo como controle, enviará um turno do agente com ferramentas pelo gateway e comprovará que uma sessionKey restaura o histórico que o cliente não reenviou.
Inicie o launchable
- Abra o launchable do NemoClaw e faça login.
- Abra
<launchable>/dashboard. - Localize o cartão
my-assistantem execução e selecione Chat with Agent. - Volte para cá e informe a URL do launchable. Se o curso não for servido pelo launchable, cole também a sessão de acesso do navegador do launchable.
Copie a sessão de acesso ao launchable quando esta página estiver hospedada separadamente
O token do gateway e a sessão de acesso ao launchable autorizam coisas diferentes:
- O token do gateway autoriza chamadas JSON-RPC em
/cli/gateway. - A sessão de acesso, um cookie do navegador
_pomeriumouCF_Authorization, autoriza o acesso ao launchable.
Quando este curso não for servido pelo launchable, copie esse cookie do navegador no campo Sessão de acesso abaixo:
- Mantenha aberta a guia do launchable em que você fez login. Use
_pomeriumpara um hostapps.run.brev.nvidia.comouCF_Authorizationpara um hostbrevlab.com. - Chrome, Edge ou Brave: abra as ferramentas do desenvolvedor, selecione Application (Aplicativo) → Storage (Armazenamento) → Cookies e escolha a origem do launchable.
- Firefox: abra as ferramentas do desenvolvedor, selecione Storage (Armazenamento) → Cookies e escolha a origem do launchable.
- Safari: se necessário, ative os recursos para desenvolvedores web em Settings (Ajustes) → Advanced (Avançado), abra o Inspetor Web e selecione Storage (Armazenamento) → Cookies e a origem do launchable.
- Localize o nome do cookie correspondente e copie somente o Value (Valor) completo. Não copie o cabeçalho
Cookieinteiro nem cole o valor em nenhum lugar além do campo Sessão de acesso desta página.
Inspecione as quatro rotas de conexão
O teste de conexão e o código visível compartilham a conexão normalizada do launchable e a decisão do provedor. Execute a célula editável para testar, em ordem, os metadados do agente, o gateway, o terminal e o estado; depois, inspecione o resultado renderizado automaticamente com os dados sensíveis ocultos.
Um launchable com Pomerium mantém direto o tráfego de inicialização e WebSocket: as verificações HTTP são executadas pelo loopback do terminal. O Cloudflare envia as verificações HTTP pelo relay aprovado; os WebSockets tentam primeiro o launchable e podem usar o relay para recuperação. A verificação mostra a rota sem revelar a sessão.
Etapa 1 · Estabeleça o controle direto do modelo
As verificações anteriores do launchable comprovam que o stack em execução está acessível. Antes de enviar um turno do agente, faça uma solicitação direta de Chat Completions pela rota do modelo usada nos Módulos 1 e 2. Esse controle não tem sessão do OpenClaw nem ferramentas do gateway, para que a Etapa 2 mostre o que o harness adiciona. Ele não inspeciona nem reconfigura o modelo dentro do seu launchable.
Confirme a conexão direta com o modelo
O cartão de configurações reflete a rota do modelo do curso salva na página inicial ou no Módulo 1a. Altere-a somente se a sonda direta falhar. A rota do modelo do curso e a conexão com o launchable mantêm credenciais e estado separados.
Passo 2 · Opere o agente por meio de seu gateway
O Passo 1 estabeleceu o controle exclusivo do modelo: uma solicitação POST de Chat Completions carregou o modelo, as mensagens e a autorização do chamador. O OpenClaw chama o modelo configurado dentro do launchable, mas esta página opera o agente em execução por outra interface.
O diagrama compara interfaces usadas em camadas distintas, não uma única rota de solicitação:
- REST (Transferência Representacional de Estado). O controle direto do modelo no Passo 1 usa uma solicitação HTTP limitada e sua resposta. Uma API ainda pode identificar estado no servidor entre chamadas.
- Model Context Protocol (MCP). Dentro do runtime de um agente, o MCP padroniza a descoberta e a chamada de ferramentas e contexto. Ele não transporta o tráfego do gateway deste navegador.
- Gateway do OpenClaw. O exercício abaixo e a interface de controle usam o mesmo WebSocket
/cli/gateway. Ele transporta eventos JSON-RPC entre o cliente no navegador e o agente em execução.
Autorize o gateway
Alcançar o launchable e operar seu gateway exigem credenciais distintas:
- Acesso ao launchable. A sessão do navegador permite alcançar o host.
- Autoridade do gateway. O token do gateway autoriza chamadas JSON-RPC.
Após a autenticação no launchable, GET /api/agent retorna o token do gateway em agent.dashboardUrl. Deixe o campo do token vazio para que a sonda o preencha.
Esse token carrega o escopo operator.admin, a mesma autoridade que a UI Control detém. Com ele você pode:
models.listlista os modelos oferecidos pelo runtime.cron.addagenda um trabalho que será executado sem sua presença.chat.sendcom umasessionKeyenvia uma mensagem diretamente ao ciclo do agente.
Verifique antes de alterar o runtime
Os launchables compatíveis do NemoClaw normalmente mostram tools.toolSearch=false. Uma configuração personalizada ainda pode ativá-lo; por isso, a verificação de integridade lê o valor ativo antes de Recuperar alterar qualquer coisa:
- Sintoma: você solicita um comando, nenhuma resposta chega, a execução para de avançar e expira.
- Causa: toolSearch permite que o modelo acesse ferramentas escrevendo código para uma ponte (
tool_search_code· “run bridge code”). O modelo fraco pode ficar preso nessa ponte em vez de chamarexec. - Recuperação: execute a verificação de integridade. Se
toolSearchestiver ativado e a sonda de exec falhar, Recuperar pode desativá-lo comconfig.patch. A limpeza de sessões e a reinicialização continuam opcionais.
Com o runtime conectado, você pode enviar uma mensagem ao ciclo do agente. Execute as três células abaixo em ordem. A primeira conecta e lista modelos e tarefas cron. A segunda envia um turno de chat, e a última transmite o rastreamento. Leia-o linha por linha:
- Cada linha
⚙️é uma chamada de ferramenta com seus argumentos de entrada. - Cada linha
✓/✗é o resultado dessa ferramenta. - O gateway não encaminha o raciocínio do modelo; esse rastreamento de entrada e saída é a visão mais detalhada de cada etapa. Quando uma execução para sem resultado, use a célula de logs acima para acompanhar o runtime.
Cada chat verifica a própria integridade. Se registrar ⚠ DEGRADED, volte aqui, execute Recuperar e tente novamente.
Qualquer pessoa que possa ler o ambiente launchable pode ler esse token, e um leitor do token é um operador com tudo acima. Módulo 4 transforma isso de uma conveniência para a questão de segurança central.
Passo 3 · A memória vive na chave da sessão
Cada chat.send recebe uma sessionKey, que determina o que o turno recorda:
- Mesma chave, duas vezes: o gateway reidrata o histórico do primeiro turno antes da segunda execução, então o agente responde de uma conversa que seu cliente nunca reenvia.
- Chave diferente: um começo limpo, nada carregado.
A primeira célula registra um fato e o solicita novamente com a mesma chave. O agente usa um turno que o cliente não reenviou, pois o gateway restaurou o histórico mantido no servidor. As outras duas células permitem gerenciar esse estado.
- Limpar apaga uma sessão em uma chamada; o próximo turno começa sem histórico. Cada célula de chat também contém uma linha
sessions.resetcomentada para reiniciar no próprio local. - Limpar sessões remove as sessões descartáveis acumuladas durante os testes, inclusive as chaves por execução do Passo 2, e mantém apenas a sessão principal.
O que vem a seguir
Módulo 3b abre os arquivos que moldam cada turno OpenClaw. O Módulo 3c adiciona skills e gatilhos agendados, então o Módulo 4 testa como OpenShell limita as ações que as instruções persistentes podem iniciar.
Referências
- OpenAI Chat Completions API. O protocolo usado pelo endpoint de modelo, incluindo o campo
finish_reasonexibido nesta página. - NVIDIA build.nvidia.com. A API de modelos usada pelo proxy do curso; cole sua chave nvapi- no campo de autenticação.
- Anthropic, Claude Code (docs). O padrão de diretório como sessão que a próxima página aplica ao editar a configuração do OpenClaw.
- Park et al., Generative Agents (2023). Apresenta memória e identidade mantidas no servidor como estruturas duráveis de runtime, padrão aplicado aqui pela chave de sessão.
Lista completa em Próximos passos · Referências.
Experimente · fale com o seu launchable
Uma vez que a sonda acima é verde, este artefato abre o mesmo /cli/gateway WebSocket e permite que você converse com seu agente OpenClaw ao vivo. Ele transmite a resposta e mostra um chip sempre que o agente alcança uma ferramenta. Todas as respostas que vê aqui voltavam para aquela ligação ao vivo.