# Архитектура

> Сервисы PentAGI, их взаимодействие и необязательные компоненты.

PentAGI представляет собой набор сервисов Docker. Базового стека достаточно для запуска [flows](https://pentagi.com/ru/docs/glossary/#flow); [knowledge graph](https://pentagi.com/ru/docs/glossary/#knowledge-graph) и стек наблюдаемости являются дополнительными опциональными компонентами.

## [Системный контекст](https://pentagi.com/ru/docs/concepts/architecture/#system-context)

```mermaid
flowchart LR
  accTitle: System context of PentAGI with its users, targets, LLM providers, search engines, monitoring and the update server
  user["Security engineer"] -->|HTTPS| pentagi["PentAGI"]
  user -->|monitors| langfuse["Langfuse"]
  user -->|monitors| grafana["Grafana"]
  pentagi -->|tests| target["Target systems"]
  pentagi -->|queries| llm["LLM providers"]
  pentagi -->|searches| search["Search engines"]
  pentagi -->|reports| langfuse
  pentagi -->|reports| grafana
  pentagi -->|checks for updates| update["update.pentagi.com"]
```

В течение двух минут после запуска и затем каждые три часа PentAGI также проверяет `update.pentagi.com` на наличие более новой сборки и отправляет сводку об установке вместе с запросом; [Update check](https://pentagi.com/ru/docs/configuration/security/#update-check) перечисляет, что она содержит, и как её отключить.

## [Сервисы](https://pentagi.com/ru/docs/concepts/architecture/#services)

| Группа                  | Сервисы                                                                                                                                                          | Файл Compose                       |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
| Основные                | `pentagi` (бэкенд на Go с REST и GraphQL, UI на React), `pgvector` (PostgreSQL с pgvector), `pgexporter` (метрики PostgreSQL), `scraper` (изолированный браузер) | `docker-compose.yml`               |
| Knowledge graph         | `graphiti`, `neo4j`                                                                                                                                              | `docker-compose-graphiti.yml`      |
| Наблюдаемость LLM       | `langfuse-web`, `langfuse-worker`, `clickhouse`, `redis`, `minio`, `postgres`                                                                                    | `docker-compose-langfuse.yml`      |
| Системная наблюдаемость | `grafana`, `otel`, `victoriametrics`, `jaeger`, `clickstore`, `loki`, `node-exporter`, `cadvisor`                                                                | `docker-compose-observability.yml` |

[Tools](https://pentagi.com/ru/docs/glossary/#tool) никогда не запускаются внутри самого контейнера `pentagi`: каждый flow получает собственный [sandbox](https://pentagi.com/ru/docs/glossary/#sandbox) container, созданный на основе образа, выбранного для цели данного flow, например Kali Linux.

## [Контейнеры](https://pentagi.com/ru/docs/concepts/architecture/#containers)

```mermaid
graph TB
  accTitle: Containers of the core stack and the optional knowledge graph
  subgraph Core
    UI[Web UI] -->|HTTP/WS| API[Backend API]
    API --> DB[(PostgreSQL + pgvector)]
    API --> Agents[Agents]
    Agents --> Sandbox[Sandboxed tools]
    Agents --> Scraper[Isolated browser]
  end
  subgraph Knowledge graph
    Graphiti --> Neo4j[(Neo4j)]
  end
  Agents --> Graphiti
  API -->|telemetry| OTEL[OpenTelemetry]
  API -->|LLM traces| Langfuse
```

* **API бэкенда** — Go, с REST и GraphQL и доступом по Bearer-токену для автоматизации.
* **Vector store** — PostgreSQL с pgvector хранит все команды, результаты выполнения и векторные представления.
* **Agents** — мультиагентная система, которая планирует и выполняет работу; см. [Agents](https://pentagi.com/ru/docs/concepts/agents/).
* **Sandbox** — контейнеры с tool, изолированные от хоста; в продуктивной среде они могут размещаться на отдельном [worker node](https://pentagi.com/ru/docs/deployment/worker-node/).