# Memory a znalosti

> Jak si PentAGI pamatuje příkazy, výsledky a vztahy v rámci flow.

PentAGI uchovává tři typy [memory](https://pentagi.com/cs/docs/glossary/#memory), aby agenti mohli navazovat na předchozí práci namísto toho, aby začínali od nuly.

| Memory     | Kde je uložena                       | Co obsahuje                                                                      |
| ---------- | ------------------------------------ | -------------------------------------------------------------------------------- |
| Dlouhodobá | PostgreSQL s pgvector                | Embeddingy výsledků, úspěšných postupů a znalostí o [tool](https://pentagi.com/cs/docs/glossary/#tool) |
| Pracovní   | Kontext [flow](https://pentagi.com/cs/docs/glossary/#flow) | Aktuální cíl, stav [task](https://pentagi.com/cs/docs/glossary/#task) a dostupné zdroje                |
| Epizodická | Historie příkazů                     | Minulé akce, jejich výsledky a vzorce, které se osvědčily                        |

Každý příkaz a jeho výstup jsou uloženy v databázi PostgreSQL. Agenti před provedením akce prohledávají [vector store](https://pentagi.com/cs/docs/glossary/#vector-store) na podobné případy a zapisují zpět své [findings](https://pentagi.com/cs/docs/glossary/#finding) — většinu této vyhledávací činnosti zajišťují agenti `memorist` a `searcher`.

## [Knowledge graph (volitelné)](https://pentagi.com/cs/docs/concepts/memory/#knowledge-graph-optional)

Pokud je povolen zásobník [knowledge graph](https://pentagi.com/cs/docs/glossary/#knowledge-graph), PentAGI odesílá odpovědi agentů a provádění tool do [Graphiti](https://github.com/getzep/graphiti) nad Neo4j. S pravidly ingestu šablony `.env` extrahuje entity a vztahy — hostitele, služby, zranitelnosti, techniky a to, jak se v čase vzájemně propojují — z operací terminálu a souborů a ostatní události ponechává vyhledávatelné bez extrakce.

```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 spouští vlastní model: `GRAPHITI_LLM_CLIENT_TYPE` vybírá předvolbu — `openai`, `gemini`, `litellm` nebo `custom` — jejíž modely jsou nastaveny v `./graphiti/<preset>.yaml` a odpovídající klíč pochází z `.env` (`OPEN_AI_KEY` pro `openai`). Soubor `.env` z verze před 2.2.0 tyto řádky a pravidla `GRAPHITI_INGEST_*` postrádá: zkopírujte je z aktuálního `.env.example`.

> [!WARNING]
> Integrace Graphiti je ve verzi beta a je ve výchozím nastavení vypnuta. Přístup k historii je omezen na aktivní flow; dodávané API Graphiti nepodporuje autentizaci, proto jej i Neo4j provozujte výhradně v soukromé síti. Extrakce a embeddingy jsou účtovány odděleně od modelu daného flow.

PentAGI kontroluje Graphiti pouze při spuštění, po dobu několika sekund. Pokud do té doby není Graphiti připraveno, PentAGI zaznamená varování a běží bez knowledge graph až do svého dalšího restartu, takže jakmile Graphiti nahlásí, že je v pořádku, spusťte `docker restart pentagi`.