# Worker node

> Esegui i container degli agent su un server dedicato e protetto, separato dall'host principale di PentAGI.

In produzione, tieni l'esecuzione di [tool](https://pentagi.com/it/docs/glossary/#tool) non attendibili fuori dalla macchina che esegue PentAGI. Un [worker node](https://pentagi.com/it/docs/glossary/#worker-node) ospita i container degli [agents](https://pentagi.com/it/docs/glossary/#agent) dietro endpoint Docker protetti da TLS, in modo che i comandi eseguiti da un agent non tocchino mai l'host principale.

```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
```

## [Perché un worker node](https://pentagi.com/it/docs/deployment/worker-node/#why-a-worker-node)

* **Isolamento.** I container dei tool vengono eseguiti su hardware dedicato con il proprio confine di rete.
* **Accesso Docker controllato.** Gli agents che necessitano di Docker comunicano con un daemon Docker-in-Docker irrobustito tramite una policy di autorizzazione, anziché con il daemon dell'host.
* **Test out-of-band.** Un intervallo di porte dedicato sul worker node consente le callback out-of-band.

## [Modalità di connessione](https://pentagi.com/it/docs/deployment/worker-node/#connection-modes)

* **Standard (consigliata)** — PentAGI si connette al Docker host del worker tramite TLS per creare i container worker; i worker raggiungono Docker-in-Docker tramite il suo endpoint TLS. Imposta `DOCKER_INSIDE=true` insieme a `DOCKER_INSIDE_HOST`, `DOCKER_INSIDE_TLS_VERIFY` e `DOCKER_INSIDE_CERT_PATH`, e lascia `DOCKER_SOCKET` vuoto: il `/var/run/docker.sock` del template `.env` monterebbe anche il socket Docker host del worker node in ogni [sandbox](https://pentagi.com/it/docs/glossary/#sandbox). Senza `DOCKER_INSIDE_HOST`, gli agent non hanno accesso a Docker.
* **Diretta** — PentAGI comunica direttamente con Docker-in-Docker; i bind-mount dell'host vengono quindi negati dalla policy, perciò l'accesso a Docker per gli agents deve essere disabilitato.

## [Configurazione](https://pentagi.com/it/docs/deployment/worker-node/#set-it-up)

La procedura completa — certificati TLS per entrambi i daemon, configurazione irrobustita di Docker-in-Docker, aggiornamenti delle policy e verifica — è disponibile nella [guida al worker node](https://github.com/vxcontrol/pentagi/blob/main/examples/guides/worker_node.md) nel repository.