# Memory en kennis

> Hoe PentAGI commando's, resultaten en relaties onthoudt tijdens een flow.

PentAGI gebruikt drie soorten [memory](https://pentagi.com/nl/docs/glossary/#memory) zodat [agents](https://pentagi.com/nl/docs/glossary/#agent) kunnen voortbouwen op eerder werk in plaats van steeds opnieuw te beginnen.

| Memory              | Waar het staat          | Wat het bevat                                                                     |
| ------------------- | ----------------------- | --------------------------------------------------------------------------------- |
| Langetermijn-memory | PostgreSQL met pgvector | Embeddings van resultaten, succesvolle methoden en toolkennis                     |
| Werk-memory         | Flow-context            | Het huidige doel, de [task](https://pentagi.com/nl/docs/glossary/#task) status en beschikbare resources |
| Episodisch memory   | Commandogeschiedenis    | Eerdere acties, hun uitkomsten en patronen die werkten                            |

Elk commando en de bijbehorende output wordt opgeslagen in PostgreSQL. Agents raadplegen de [vector store](https://pentagi.com/nl/docs/glossary/#vector-store) voor vergelijkbare gevallen voordat ze handelen, en schrijven hun [findings](https://pentagi.com/nl/docs/glossary/#finding) terug — de `memorist`- en `searcher`-agents doen het meeste zoekwerk.

## [Knowledge graph (optioneel)](https://pentagi.com/nl/docs/concepts/memory/#knowledge-graph-optional)

Met de [knowledge graph](https://pentagi.com/nl/docs/glossary/#knowledge-graph) stack ingeschakeld, stuurt PentAGI agent-responses en tool-executies naar [Graphiti](https://github.com/getzep/graphiti) op Neo4j. Met de ingest-regels van het `.env` template extraheert het entiteiten en relaties — hosts, services, kwetsbaarheden, technieken en hoe deze in de loop van tijd samenhangen — uit terminal- en bestandsbewerkingen, en houdt het de andere events doorzoekbaar zonder extractie.

```bash
GRAPHITI_ENABLED=true
GRAPHITI_URL=http://graphiti:8000
GRAPHITI_CONFIG_DIR=llm_configs
GRAPHITI_LLM_CLIENT_TYPE=openai
NEO4J_URI=bolt://neo4j:7687
NEO4J_PASSWORD=replace_with_a_strong_password
```

```bash
git clone --depth 1 https://github.com/vxcontrol/pentagi.git pentagi-src
cp -r pentagi-src/examples/graphiti ./graphiti
cp -r pentagi-src/examples/neo4j ./neo4j
rm -rf pentagi-src
curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/main/docker-compose-graphiti.yml
docker compose -f docker-compose.yml -f docker-compose-graphiti.yml up -d
```

Graphiti draait zijn eigen model: `GRAPHITI_LLM_CLIENT_TYPE` kiest de preset — `openai`, `gemini`, `litellm` of `custom` — waarvan de modellen zijn ingesteld in `./graphiti/<preset>.yaml`, en de bijbehorende sleutel komt uit `.env` (`OPEN_AI_KEY` voor `openai`). Een `.env` van vóór 2.2.0 mist deze regels en de `GRAPHITI_INGEST_*`-regels: kopieer ze uit de huidige `.env.example`.

> [!WARNING]
> Graphiti is een bèta-integratie en staat standaard uit. Het ophalen van informatie is beperkt tot de actieve [flow](https://pentagi.com/nl/docs/glossary/#flow); de meegeleverde Graphiti-API heeft geen authenticatie, dus houd deze en Neo4j op een privénetwerk. Extractie en embeddings worden los van het eigen model van de flow in rekening gebracht.

PentAGI controleert Graphiti alleen bij het opstarten, gedurende een paar seconden. Als Graphiti dan nog niet klaar is, logt PentAGI een waarschuwing en draait zonder de knowledge graph tot de volgende herstart. Zodra Graphiti dus gezond rapporteert, voer je `docker restart pentagi` uit.