Módulo 4 · Parte B de 3

Agentes de CLI modernos

Os agentes comparados abaixo reúnem o mesmo conjunto de recursos:

O perfil de segurança depende dos recursos abertos por padrão e da possibilidade de execução autônoma. O runtime subjacente também precisa conter chamadas indevidas.

O Módulo 4a separou as decisões da aplicação da imposição de regras pelo sistema operacional. Os wrappers da aplicação ficam acima desse limite. Você vai compará-los antes de criar seu próprio agente de CLI no navegador.

Mesmo ciclo, diferentes padrões da aplicação

Cada produto executa um modelo em um ciclo com ferramentas. Os padrões e recursos nativos variam, assim como os detalhes de implementação. O custo e a conveniência combinados formam o peso do harness usado abaixo.

O Hermes se diferencia das CLIs de editores porque criação de skills, memória persistente, cron e gateway de mensagens são fluxos normais de operação em sua documentação pública. Outros agentes também podem reescrever seus próprios arquivos de orientação ou skills quando têm permissão para editar arquivos. Portanto, esse risco não é exclusivo do Hermes.

O OpenShell pode hospedar essa classe de aplicação de agente. O NemoClaw é a stack de referência usada no curso. A NVIDIA documenta integrações do OpenShell com Codex, Cursor e OpenCode. A CLI define os padrões iniciais. O wrapper do OpenShell determina até onde eles podem chegar.

Os graus de liberdade formam a superfície de ataque

Todos esses agentes são configurados pelos mesmos eixos, e cada eixo representa um recurso que você concede ou restringe. A coluna do NemoClaw abaixo vem diretamente da política do OpenShell executada no launchable, que você leu e testou no Módulo 4a.

Grau de liberdadeControlePadrão do NemoClaw (política ativa)
Sistema de arquivosquais caminhos permitem leitura ou gravação gravação somente em /tmp, /sandbox/.openclaw, /sandbox/.nemoclaw e no diretório de trabalho; caminhos do sistema somente para leitura. O Landlock impõe a regra (best_effort).
Saída de redehost + porta + método/caminho HTTP, por binário bloqueada por padrão; uma lista curta de permissões (inferência NVIDIA, inference.local, clawhub/npm), cada uma limitada a um formato HTTP e vinculada a um binário específico.
Identidade do processocom qual usuário o agente é executado usuário sandbox sem privilégios de root; ptrace, mount e setuid bloqueados por seccomp.
Identidade do binárioqual executável pode usar uma permissão resolvida pelo caminho do executável e por uma inspeção dos processos ancestrais, com hash de confiança no primeiro uso; argv[0] não é considerado confiável porque pode ser falsificado.
Persistênciacron, skills e a persona em SOUL.md permite gravação dentro do workspace. O esquema de política não torna um arquivo isolado somente para leitura; por isso, com "shields up", a proteção de SOUL.md usa DAC e chattr +i, não o sandbox.
Roteamento de inferênciapor quais endpoints de modelo as chamadas saem roteado pelo gateway gerenciado inference.local; o Privacy Router decide qual contexto pode sair segundo a política do operador, não a do agente.

Experimente · a mesma tarefa, ponderada entre diferentes harnesses

O artefato compara o peso dos harnesses nestes eixos:

Descreva uma tarefa e compare quanto cada harness fornece. A célula editável expõe o prompt de sistema e a lógica de resposta, além de mostrar exemplos. Execute-a novamente após uma edição para reconstruir o artefato.

Profundo · NavegadorConstruir um agente em torno do runtime do navegador?

Crie um agente de CLI cujo shell é este navegador

As CLIs acima conectam um agente ao terminal de uma máquina real. Você pode criar a mesma estrutura usando o runtime JavaScript do navegador como shell. O agente abaixo tem uma ferramenta, js, que executa JavaScript nesta página e devolve um resultado ao agente antes da próxima decisão. Como o runtime já está carregado, não há harness adicional para configurar. O alcance continua amplo: o agente pode ler o DOM, chamar fetch e usar os helpers do curso, tudo dentro desta aba.

O Módulo 4c retoma esse formato no navegador e separa a parte transferível—uma interface web interativa, com estado e controles visíveis—dos adaptadores de autenticação, armazenamento, rede e ferramentas fornecidos por cada ambiente.

Aplicado · ShellAbrir o shell do launchable e o atalho para o sandbox?

Abra um shell real no launchable

Seu launchable do NemoClaw fornece um shell real do host pela mesma conexão /ws/terminal usada pelas sondas de política do Módulo 4a. Esse host contém a CLI openshell, ferramenta do operador que gerencia o agente em sandbox. Cada linha digitada abaixo é executada no launchable, que devolve sua própria saída.

Primeiro, conecte o launchable no Módulo 3a. Digite um comando ou use Tab para completar. No host, openshell sandbox list mostra o agente e openshell status informa o estado do gateway. O agente roda dentro do sandbox; prefixe um comando com agent para executá-lo ali: agent ls lista os arquivos por meio de openshell sandbox exec. Cada comando usa um shell breve e independente. Para conversar interativamente com o agente, use o painel abaixo em vez de openclaw tui.

Converse com seu agente

O openclaw tui é um chat interativo em tela cheia que um terminal de comando único não consegue manter aberto. O painel abaixo conversa com o mesmo agente pelo gateway do OpenClaw, a conexão /cli/gateway usada nos Módulos 3b e 3c. Assim, você pode conversar sem sair da página. O painel transmite a resposta e mostra cada ferramenta ou comando executado. Primeiro, conecte o launchable no Módulo 3a com URL e token. Faça uma pergunta, clique em uma sugestão ou pressione Tab para completar.

O terminal acima é o plano do operador. No shell do host do launchable, o openshell gerencia o agente em sandbox. Portanto, o host é o plano de controle acima da política, o perímetro destacado no Módulo 4a. Comandos enviados ao agente por agent <cmd> são executados sob a política de bloqueio por padrão; o shell do host responde ao operador.

Um harness mais completo justifica seu peso quando a tarefa exige persistência e trabalho real que uma aba não comporta. A habilidade central é interpretar a tarefa para escolher o peso necessário; essa é a visão em camadas concluída no Módulo 4c.

← Módulo 4a: OpenShell