# Architectuur

> De services die PentAGI draait, hoe ze met elkaar communiceren en wat optioneel is.

PentAGI bestaat uit een set Docker-services. De kernstack is voldoende om [flows](https://pentagi.com/nl/docs/glossary/#flow) uit te voeren; de knowledge graph- en observability-stacks zijn optionele toevoegingen.

## [Systeemcontext](https://pentagi.com/nl/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"]
```

Binnen twee minuten na het starten en vervolgens elke drie uur controleert PentAGI ook `update.pentagi.com` op een nieuwere build en stuurt een samenvatting van de installatie mee met het verzoek; [Update check](https://pentagi.com/nl/docs/configuration/security/#update-check) geeft aan wat erin staat en hoe je het kunt uitschakelen.

## [Services](https://pentagi.com/nl/docs/concepts/architecture/#services)

| Groep                                              | Services                                                                                                                                                         | Compose-bestand                    |
| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
| Kern                                               | `pentagi` (Go-backend met REST en GraphQL, React-UI), `pgvector` (PostgreSQL met pgvector), `pgexporter` (PostgreSQL-metrieken), `scraper` (geïsoleerde browser) | `docker-compose.yml`               |
| [Knowledge graph](https://pentagi.com/nl/docs/glossary/#knowledge-graph) | `graphiti`, `neo4j`                                                                                                                                              | `docker-compose-graphiti.yml`      |
| LLM-observability                                  | `langfuse-web`, `langfuse-worker`, `clickhouse`, `redis`, `minio`, `postgres`                                                                                    | `docker-compose-langfuse.yml`      |
| Systeemobservability                               | `grafana`, `otel`, `victoriametrics`, `jaeger`, `clickstore`, `loki`, `node-exporter`, `cadvisor`                                                                | `docker-compose-observability.yml` |

[Tools](https://pentagi.com/nl/docs/glossary/#tool) draaien nooit in de `pentagi`-container zelf: elke flow krijgt zijn eigen sandbox-container, gebouwd op basis van een image die is gekozen voor het doel van de flow, zoals Kali Linux.

## [Containers](https://pentagi.com/nl/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
```

* **Backend-API** — Go, met REST en GraphQL en Bearer-token-toegang voor automatisering.
* **Vector store** — PostgreSQL met pgvector bewaart elk commando, elke output en elke embedding.
* **Agents** — het multi-agentsysteem dat het werk plant en uitvoert; zie [Agents](https://pentagi.com/nl/docs/concepts/agents/).
* **Sandbox** — toolcontainers die geïsoleerd zijn van de host; in productie kunnen ze op een aparte [worker node](https://pentagi.com/nl/docs/deployment/worker-node/) draaien.