# Worker node

> Запускайте контейнеры agent на выделенном защищённом сервере отдельно от основного хоста PentAGI.

В продуктивной среде не допускайте выполнения недоверенных [tool calls](https://pentagi.com/ru/docs/glossary/#tool-call) на машине, где запущен PentAGI. [Worker node](https://pentagi.com/ru/docs/glossary/#worker-node) размещает контейнеры [agents](https://pentagi.com/ru/docs/glossary/#agent) за конечными точками Docker, защищёнными TLS, поэтому команды, выполняемые agent, никогда не затрагивают основной хост.

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

## [Зачем нужен worker node](https://pentagi.com/ru/docs/deployment/worker-node/#why-a-worker-node)

* **Изоляция.** Контейнеры [tool](https://pentagi.com/ru/docs/glossary/#tool) работают на выделенном оборудовании с собственной сетевой границей.
* **Контролируемый доступ к Docker.** Agents, которым требуется Docker, обращаются к защищённому демону Docker-in-Docker через политику авторизации, а не к демону хоста.
* **Тестирование по отдельному каналу.** Выделенный диапазон портов на worker node поддерживает обратные вызовы по отдельному каналу (OOB).

## [Режимы подключения](https://pentagi.com/ru/docs/deployment/worker-node/#connection-modes)

* **Стандартный (рекомендуется)** — PentAGI подключается к Docker хоста worker node по TLS для создания рабочих контейнеров; рабочие контейнеры обращаются к Docker-in-Docker через его конечную точку TLS. Установите `DOCKER_INSIDE=true` вместе с `DOCKER_INSIDE_HOST`, `DOCKER_INSIDE_TLS_VERIFY` и `DOCKER_INSIDE_CERT_PATH`, а `DOCKER_SOCKET` оставьте пустым: иначе `/var/run/docker.sock` шаблона `.env` также смонтирует сокет Docker хоста worker node в каждый [sandbox](https://pentagi.com/ru/docs/glossary/#sandbox). Без `DOCKER_INSIDE_HOST` агенты не получат доступ к Docker.
* **Прямой** — PentAGI обращается напрямую к Docker-in-Docker; при этом монтирование каталогов хоста (bind mounts) запрещается политикой, поэтому доступ agents к Docker необходимо отключить.

## [Настройка](https://pentagi.com/ru/docs/deployment/worker-node/#set-it-up)

Полная процедура — подготовка TLS-сертификатов для обоих демонов, защищённая конфигурация Docker-in-Docker, обновление политик и проверка — описана в [руководстве по worker node](https://github.com/vxcontrol/pentagi/blob/main/examples/guides/worker_node.md) в репозитории.