Produzione
Eseguire PentAGI per un team: hardening, isolamento, Podman e più istanze.
Checklist
- Imposta tutte le credenziali,
COOKIE_inclusa, prima del primo avvio — vedi Sicurezza. L'installer genera il salt e le password dei servizi, ma non le password di amministrazione di Langfuse e Grafana: impostaSIGNING_ SALT LANGFUSE_,INIT_ USER_ PASSWORD passwordnel template, prima che Langfuse si avvii per la prima volta, e cambia le credenziali predefinite di Grafanaadmin/admindopo il suo primo avvio. Su un'installazione in esecuzione, cambia le password di PostgreSQL e Neo4j all'interno dei database prima di cambiarle in.env. - Utilizza un certificato reale e un
PUBLIC_stabile.URL - Dietro un reverse proxy, imposta
TRUSTED_sull'indirizzo o sul CIDR del proxy. Altrimenti ogni utente condivide l'indirizzo del proxy e 30 accessi falliti entro 5 minuti bloccano tutti per 15 minuti.PROXIES - Sposta l'esecuzione dei 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. su un worker node dedicato.
- Abilita l'osservabilità per monitorare costi ed errori.
- Mantieni il 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. e Langfuse su una rete privata.
Podman
PentAGI funziona sia con Podman che con Docker. In modalità rootless, il servizio scraper richiede una configurazione aggiuntiva perché i container rootless non possono associarsi a porte privilegiate; il README del repository descrive le configurazioni rootless e rootful.
Più istanze (TENANT_ ID)
Lascia TENANT_ vuoto per un'installazione singola e mantienilo vuoto su un'installazione esistente: impostarlo in seguito sposta l'istanza in uno schema nuovo e vuoto che inizia con l'account [email protected] predefinito, e i suoi flowflowUn'esecuzione di PentAGI: un obiettivo, i task creati dai tuoi messaggi e tutto ciò che gli agenti hanno fatto lungo il percorso., utenti e impostazioni non appaiono più. Impostalo sulle istanze che aggiungi quando più istanze di PentAGI condividono risorse esterne come un server PostgreSQL, un worker nodeworker node — nodo workerUn server separato che esegue i container degli strumenti degli agenti, così i comandi che eseguono non toccano mai l'host principale di PentAGI., un'istanza di Neo4j o di Langfuse:
| Area | Effetto di TENANT_ |
|---|---|
| PostgreSQL | Opera nello schema acme invece di public |
| Container worker | Denominati acme-pentagi-terminal-<flow> |
| Knowledge graph | Gli ID di gruppo diventano acme-flow-<id> |
| Autenticazione | Le chiavi di cookie e token includono il tenanttenantUn'installazione di PentAGI. Quando più installazioni condividono risorse esterne, come un unico database PostgreSQL, ogni nuova installazione riceve il proprio TENANT_ID; un'installazione esistente lo lascia vuoto. |
| Telemetria | I dati di Langfuse e OpenTelemetry sono etichettati con il tenant |
Il valore deve corrispondere a ^[a-z][a-z0-9_. Le risorse dell'host non sono isolate in namespace. Le istanze sullo stesso server necessitano del proprio DATA_ e delle proprie porte pubblicate. Le istanze i cui sandboxsandboxIl container Docker isolato in cui gli agenti eseguono i loro strumenti. L'interfaccia lo mostra come Terminal. vengono eseguiti sullo stesso host Docker, su un server o su un worker node condiviso, necessitano del proprio DOCKER_ e, se è impostato, del proprio DOCKER_; altrimenti i loro sandbox reclamano le stesse porte e i flow non riescono ad avviarsi. Ogni base avvia una finestra di 2000 porte, 28000 per impostazione predefinita, quindi usa ad esempio 28000 e 30000.
Ultimo aggiornamento il