# Worker node

> Execute containers de agent em um servidor dedicado e protegido, separado do host principal do PentAGI.

Em produção, mantenha a execução de [tool](https://pentagi.com/pt-br/docs/glossary/#tool) não confiável fora da máquina que roda o PentAGI. Um [worker node](https://pentagi.com/pt-br/docs/glossary/#worker-node) hospeda os containers dos [agents](https://pentagi.com/pt-br/docs/glossary/#agent) atrás de endpoints Docker protegidos por TLS, de modo que os comandos executados por um agent nunca tocam o host principal.

```mermaid
graph TB
  accTitle: Main node running PentAGI and a separate worker node running the tool containers
  subgraph Main node
    PA[PentAGI]
  end
  subgraph Worker node
    HD[Host Docker :2376 TLS]
    DIND[Docker-in-Docker :3376 TLS<br/>authorization policy + seccomp]
    W[Worker containers]
    N[Nested containers]
  end
  PA -->|TLS, creates workers| HD
  HD --> W
  W -->|TLS| DIND
  DIND --> N
```

## [Por que usar um worker node](https://pentagi.com/pt-br/docs/deployment/worker-node/#why-a-worker-node)

* **Isolamento.** Os containers de tool rodam em hardware dedicado com seu próprio limite de rede.
* **Acesso controlado ao Docker.** Agents que precisam do Docker se comunicam com um daemon Docker-in-Docker endurecido por meio de uma política de autorização, em vez de usar o daemon do host.
* **Testes fora de banda.** Uma faixa de portas dedicada no worker node suporta callbacks OOB.

## [Modos de conexão](https://pentagi.com/pt-br/docs/deployment/worker-node/#connection-modes)

* **Padrão (recomendado)** — O PentAGI se conecta ao Docker do host do worker node via TLS para criar containers worker; os workers acessam o Docker-in-Docker por seu endpoint TLS. Defina `DOCKER_INSIDE=true` junto com `DOCKER_INSIDE_HOST`, `DOCKER_INSIDE_TLS_VERIFY` e `DOCKER_INSIDE_CERT_PATH`, e deixe `DOCKER_SOCKET` vazio: o `/var/run/docker.sock` do template `.env` também montaria o socket do Docker do host do worker node em cada [sandbox](https://pentagi.com/pt-br/docs/glossary/#sandbox). Sem `DOCKER_INSIDE_HOST`, os agents não têm acesso ao Docker.
* **Direto** — O PentAGI se comunica diretamente com o Docker-in-Docker; bind-mounts do host são então negados pela política, portanto o acesso ao Docker para os agents deve ser desabilitado.

## [Configuração](https://pentagi.com/pt-br/docs/deployment/worker-node/#set-it-up)

O procedimento completo — certificados TLS para ambos os daemons, a configuração endurecida do Docker-in-Docker, atualizações de política e verificação — está no [guia do worker node](https://github.com/vxcontrol/pentagi/blob/main/examples/guides/worker_node.md) no repositório.