Memory e conoscenza
Come PentAGI memorizza comandi, risultati e relazioni durante un flow.
PentAGI mantiene tre tipi di memorymemory — memoriaCiò che gli agenti conservano per poter costruire sul lavoro precedente invece di ricominciare da zero: memoria a lungo termine, di lavoro ed episodica. in modo che gli agentsagent — agenteUn agente AI di PentAGI: un modello con il proprio prompt, impostazioni e strumenti che svolge un tipo di lavoro in un flow, come testare, scrivere codice o cercare sul web. possano basarsi sul lavoro precedente invece di ricominciare da zero.
| Memory | Dove risiede | Cosa contiene |
|---|---|---|
| A lungo termine | PostgreSQL con pgvector | Embedding di risultati, approcci efficaci e conoscenze sui tooltool — strumentoCiò con cui un agente agisce: una funzionalità integrata come il terminale, il browser isolato o la ricerca web, oppure un programma nella sandbox come nmap, metasploit o sqlmap. |
| Di lavoro | Contesto del flowflowUn'esecuzione di PentAGI: un obiettivo, i task creati dai tuoi messaggi e tutto ciò che gli agenti hanno fatto lungo il percorso. | L'obiettivo corrente, lo stato del tasktaskUna richiesta in un flow: il suo primo messaggio, o un messaggio successivo che non risponde a una domanda di un agente. PentAGI divide ogni task in subtask. e le risorse disponibili |
| Episodica | Cronologia dei comandi | Azioni passate, i loro esiti e i pattern che hanno funzionato |
Ogni comando e il relativo output vengono memorizzati in PostgreSQL. Gli agents interrogano il vector storevector storeIl database di embedding che consente agli agenti di cercare nella memoria e nei documenti per significato. per cercare casi simili prima di agire e vi salvano i findingsfindingQualcosa che il test ha scoperto e registrato, come un host, un servizio in esecuzione o una vulnerabilità.: sono gli agents memorist e searcher a svolgere la maggior parte di queste ricerche.
Knowledge graph (opzionale)
Quando lo stack del knowledge graphknowledge graph — grafo della conoscenzaIl grafo di host, servizi, vulnerabilità e degli accessi tra di essi che PentAGI costruisce durante un test quando questa funzionalità opzionale è abilitata. Mostra come i finding sono collegati. è abilitato, PentAGI invia le risposte degli agent e le esecuzioni dei tool a Graphiti su Neo4j. Con le regole di ingestione del template .env, estrae entità e relazioni — host, servizi, vulnerabilità, tecniche e come si relazionano nel tempo — dalle operazioni sul terminal e sui file, e mantiene gli altri eventi ricercabili senza estrazione.
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 esegue il proprio modello: GRAPHITI_ sceglie il preset — openai, gemini, litellm o custom — i cui modelli sono impostati in ./, e la chiave corrispondente proviene da .env (OPEN_ per openai). Un .env precedente alla 2.2.0 non ha queste righe e le regole di GRAPHITI_: copiale dall'attuale .env.example.
Graphiti è un'integrazione in versione beta ed è disattivata per impostazione predefinita. Il ricordo è limitato al flow attivo; l'API Graphiti inclusa non prevede autenticazione, pertanto mantienila insieme a Neo4j su una rete privata. L'estrazione e gli embedding vengono addebitati separatamente rispetto al modello utilizzato dal flow.
PentAGI controlla Graphiti solo all'avvio, per alcuni secondi. Se Graphiti non è pronto entro quel tempo, PentAGI registra un avviso ed esegue senza il knowledge graph fino al suo prossimo riavvio, quindi una volta che Graphiti segnala di essere sano, esegui docker restart pentagi.
Ultimo aggiornamento il