# Como compilar agentes sem entregar o desktop às dependências

Fixe a fonte, analise o grafo de pacotes e compile sem rede em Docker. O isolamento continua necessário depois que o aplicativo estiver pronto.

Rota Nacional · 2026-11-04T22:53:28Z · 2026-11-04T22:53:28Z

## Separe obter, instalar, compilar e executar

Um pacote pode executar código durante a instalação ou a compilação. Baixar a fonte oficial e compilar no terminal do usuário ainda expõe os arquivos e as credenciais desse terminal. O primeiro limite deve existir antes desses passos.

Para o Hermes Desktop light, usamos um container de trabalho. A fonte entrou somente para leitura. Uma pasta de saída recebeu dependências e artefatos. Nenhuma chave de modelo, pasta pessoal, sessão SSH ou socket do Docker entrou nesse ambiente.


## Registre a origem antes de instalar

- Escolha uma revisão exata do repositório oficial. Registre o commit, a versão, a licença e o hash do arquivo obtido.
- Confira se a versão da interface corresponde à do agente. A prova desta série usou a base v0.22.6, commit f0d94882e89ab8d4098b5bb2f166adfb9ee0a0ab. Isso registra uma base testada; não recomenda manter essa versão sem atualizações.
- Leia os comandos de instalação e os scripts que o projeto executa. Preserve o lockfile de origem antes de uma migração de gerenciador.
- Fixe também a imagem do compilador por digest. Monte apenas os arquivos necessários e limite memória, CPU, processos e duração.

## Analise o grafo e desative scripts automáticos

O fluxo aplicado importou o lockfile para pnpm e manteve uma lista exata de adaptações. O Socket analisou as 1.181 versões do grafo antes da instalação. Alertas de segurança levaram a atualizações específicas de dependências, registradas no patch e no lockfile congelado.

A instalação manteve ignoreScripts ativo. Os passos necessários do Electron e do terminal nativo foram executados depois, de forma explícita, dentro do container. Uma recusa do guard pede análise da causa. Trocar o comando para fugir da verificação retira o controle.

A análise de pacotes ajuda a encontrar riscos conhecidos. Ela não comprova a ausência de código malicioso. Integridade do download, revisão dos scripts e limite de acesso continuam necessários.


## Feche a rede antes da compilação final

Prepare antes o Electron, seus cabeçalhos e as ferramentas de empacotamento. Confira os downloads. Depois execute a compilação final com --network none. Não monte o store compartilhado de pacotes nessa etapa se a compilação já tem todos os arquivos.

Um processo contaminado continua podendo alterar os artefatos que produz. Por isso, registre os hashes do pacote, mantenha a origem das alterações e rode também o aplicativo em um ambiente restrito. Compilar sem rede reduz canais disponíveis durante o build; não certifica o resultado.


## Prove o pacote que você vai abrir

O primeiro pacote do Hermes desta instalação falhou ao pré-carregar arquivos locais no Electron. O build havia passado. As opções modulePreload: false e cssCodeSplit: false do Vite corrigiram a abertura. A navegação e as configurações foram então conferidas na interface real.

O pacote registra source: local e dirty: true, pois recebeu adaptações. A prova deve registrar também o que ficou de fora: neste caso, o auxiliar opcional de teclas do HUD e uma conversa com modelo. A RN ainda precisava receber uma chave própria pelo aplicativo.


## Perguntas frequentes

Um hash comprova que o pacote é seguro?

O hash identifica os bytes conferidos. Ele não avalia o comportamento. Uma origem comprometida também pode distribuir um arquivo com hash consistente.

Posso executar o aplicativo fora do isolamento depois de compilar?

Isso devolve os acessos normais do usuário ao aplicativo. Nesta instalação, a compilação em Docker e a execução em Bubblewrap atendem a momentos diferentes do risco.


- [Compilação oficial do Hermes v0.22.6](https://github.com/NousResearch/hermes-agent/blob/v0.22.6/apps/desktop/BUILDING.md)
- [Instalação congelada no pnpm](https://pnpm.io/cli/install)
- [Documentação do Socket](https://docs.socket.dev/)
- [Opções de compilação do Vite](https://vite.dev/config/build-options.html)

[Conferir a integração com a RN](https://rota-nacional.ia.br/pt/docs/)

Use a rota protegida compatível com a política da organização. Você não precisa incluir a mesma política e cobrança de uso em cada cliente.
- [Usar com agente](https://rota-nacional.ia.br/llms.txt)

[Como compilar agentes sem entregar o desktop às dependências](https://rota-nacional.ia.br/pt/artigos/compilar-agentes-dependencias-isolamento/)
