Memory i wiedza
Jak PentAGI zapamiętuje polecenia, wyniki i relacje w trakcie flow.
PentAGI przechowuje trzy rodzaje memorymemory — pamięćTo, co agenci przechowują, aby móc budować na wcześniejszej pracy zamiast zaczynać od zera: pamięć długotrwała, robocza i epizodyczna., dzięki czemu agenci mogą opierać się na wcześniejszej pracy, zamiast zaczynać od zera.
| Memory | Gdzie jest przechowywana | Co zawiera |
|---|---|---|
| Długoterminowa | PostgreSQL z pgvector | Osadzenia wyników, sprawdzonych podejść i wiedzy o tooltool — narzędzieTo, za pomocą czego działa agent: wbudowana funkcja, taka jak terminal, izolowana przeglądarka lub wyszukiwanie w sieci, albo program w sandboxie, np. nmap, metasploit lub sqlmap. |
| Robocza | Kontekst flowflowJeden flow PentAGI: cel, zadania utworzone na podstawie Twoich wiadomości oraz wszystko, co agenci zrobili po drodze. | Bieżący cel, stan tasktask — zadanieJedno żądanie w flow: jego pierwsza wiadomość lub późniejsza wiadomość, która nie odpowiada na pytanie agenta. PentAGI dzieli każde zadanie na podzadania. i dostępne zasoby |
| Epizodyczna | Historia poleceń | Przeszłe akcje, ich wyniki i wzorce, które się sprawdziły |
Każde polecenie i jego wynik są zapisywane w PostgreSQL. Przed podjęciem akcji agenci przeszukują vector storevector store — magazyn wektorowyBaza danych embeddingów, która umożliwia agentom przeszukiwanie pamięci i dokumentów pod kątem znaczenia. w poszukiwaniu podobnych przypadków, a następnie zapisują w nim swoje findingsfinding — ustalenieCoś, co test odkrył i zarejestrował, np. host, działająca usługa lub luka. — większość tej pracy wyszukującej wykonują agenci memorist i searcher.
Knowledge graph (opcjonalnie)
Po włączeniu infrastruktury knowledge graphknowledge graph — graf wiedzyGraf hostów, usług, luk i dostępu między nimi, który PentAGI buduje podczas testu, gdy ta opcjonalna funkcja jest włączona. Pokazuje, jak ustalenia są ze sobą powiązane., PentAGI wysyła odpowiedzi agentów oraz wykonania tool do Graphiti na Neo4j. Zgodnie z regułami ingestu szablonu .env wyodrębnia encje i relacje — hosty, usługi, podatności, techniki oraz to, jak powiązania między nimi zmieniają się w czasie — z operacji terminala i plików, a pozostałe zdarzenia utrzymuje w stanie umożliwiającym wyszukiwanie bez ekstrakcji.
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_passwordgit 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 -dGraphiti uruchamia własny model: GRAPHITI_ wybiera preset — openai, gemini, litellm lub custom — którego modele są ustawione w ./, a pasujący klucz pochodzi z .env (OPEN_ dla openai). Plik .env sprzed wersji 2.2.0 nie zawiera tych linii ani reguł GRAPHITI_: skopiuj je z bieżącego pliku .env.example.
Graphiti to integracja w fazie beta, domyślnie wyłączona. Zakres przywoływania obejmuje tylko aktywny flow; wbudowane API Graphiti nie posiada uwierzytelniania, dlatego trzymaj je i Neo4j w sieci prywatnej. Ekstrakcja i osadzanie są rozliczane osobno, niezależnie od modelu używanego przez flow.
PentAGI sprawdza Graphiti tylko podczas uruchamiania, przez kilka sekund. Jeśli Graphiti nie będzie wtedy gotowe, PentAGI loguje ostrzeżenie i działa bez knowledge graph aż do następnego restartu, więc gdy Graphiti zgłosi gotowość, uruchom docker restart pentagi.
Ostatnia aktualizacja