# Architektur

> Die Dienste, die PentAGI ausführt, wie sie miteinander kommunizieren und was optional ist.

PentAGI besteht aus einer Reihe von Docker-Diensten. Der Kern-Stack reicht aus, um [Flows](https://pentagi.com/de/docs/glossary/#flow) auszuführen; der [Knowledge Graph](https://pentagi.com/de/docs/glossary/#knowledge-graph) und die Observability-Stacks sind optionale Erweiterungen.

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

Innerhalb von zwei Minuten nach dem Start und dann alle drei Stunden prüft PentAGI außerdem `update.pentagi.com` auf ein neueres Build und sendet eine Zusammenfassung der Installation mit der Anfrage; [Update-Prüfung](https://pentagi.com/de/docs/configuration/security/#update-check) führt auf, was sie enthält und wie Sie sie deaktivieren können.

## [Dienste](https://pentagi.com/de/docs/concepts/architecture/#services)

| Gruppe               | Dienste                                                                                                                                                         | Compose-Datei                      |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
| Kern                 | `pentagi` (Go-Backend mit REST und GraphQL, React-UI), `pgvector` (PostgreSQL mit pgvector), `pgexporter` (PostgreSQL-Metriken), `scraper` (isolierter Browser) | `docker-compose.yml`               |
| Knowledge Graph      | `graphiti`, `neo4j`                                                                                                                                             | `docker-compose-graphiti.yml`      |
| LLM-Observability    | `langfuse-web`, `langfuse-worker`, `clickhouse`, `redis`, `minio`, `postgres`                                                                                   | `docker-compose-langfuse.yml`      |
| System-Observability | `grafana`, `otel`, `victoriametrics`, `jaeger`, `clickstore`, `loki`, `node-exporter`, `cadvisor`                                                               | `docker-compose-observability.yml` |

[Tools](https://pentagi.com/de/docs/glossary/#tool) werden niemals im `pentagi`-Container selbst ausgeführt: Jeder Flow erhält seinen eigenen Sandbox-Container, der aus einem für das Ziel des Flows ausgewählten Image erstellt wird, beispielsweise Kali Linux.

## [Container](https://pentagi.com/de/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, mit REST und GraphQL sowie Bearer-Token-Zugriff für die Automatisierung.
* **Vector Store** — PostgreSQL mit pgvector speichert jeden Befehl, jede Ausgabe und jedes Embedding.
* **Agents** — das Multi-Agent-System, das die Arbeit plant und ausführt; siehe [Agents](https://pentagi.com/de/docs/concepts/agents/).
* **Sandbox** — vom Host isolierte Tool-Container; in der Produktion können sie auf einem separaten [Worker Node](https://pentagi.com/de/docs/deployment/worker-node/) laufen.