pentagi

Application

vxcontrol/pentagi

Autonomous AI system for complex penetration testing tasks.

Overview

PentAGI is an automated security testing tool that uses AI to autonomously execute penetration testing steps. It integrates over 20 professional security tools, a smart memory system, knowledge graph, and a web UI. Supports multiple LLM providers and is fully self-hosted.

README Preview

# PentAGI\n\n\n    Penetration testing Artificial General Intelligence\n\n\n\n\n> **Join the Community!** Connect with security researchers, AI enthusiasts, and fellow ethical hackers. Get support, share insights, and stay updated with the latest PentAGI developments.\n\n[](https://discord.gg/2xrMh7qX6m)⠀[](https://t.me/+Ka9i6CNwe71hMWQy)\n\n\n\n\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Architecture](#architecture)\n  - [Agent Supervision](#advanced-agent-supervision)\n- [Quick Start](#quick-start)\n- [How to Use PentAGI After Login](#how-to-use-pentagi-after-login)\n- [API Access](#api-access)\n  - [LLM Provider Configuration](#custom-llm-provider-configuration)\n    - [Ollama](#ollama-provider-configuration)\n    - [OpenAI](#openai-provider-configuration)\n    - [Anthropic](#anthropic-provider-configuration)\n    - [Google AI (Gemini)](#google-ai-gemini-provider-configuration)\n    - [AWS Bedrock](#aws-bedrock-provider-configuration)\n    - [DeepSeek](#deepseek-provider-configuration)\n    - [GLM](#glm-provider-configuration)\n    - [Kimi](#kimi-provider-configuration)\n    - [Qwen](#qwen-provider-configuration)\n- [Advanced Setup](#advanced-setup)\n  - [Langfuse Integration](#langfuse-integration)\n  - [Monitoring and Observability](#monitoring-and-observability)\n  - [Knowledge Graph (Graphiti)](#knowledge-graph-integration-graphiti)\n  - [OAuth Integration](#github-and-google-oauth-integration)\n  - [Docker Image Configuration](#docker-image-configuration)\n- [Development](#development)\n- [Testing LLM Agents](#testing-llm-agents)\n- [Embedding Configuration and Testing](#embedding-configuration-and-testing)\n- [Function Testing with ftester](#function-testing-with-ftester)\n- [Building](#building)\n- [Credits](#credits)\n- [License](#license)\n\n## Overview\n\nPentAGI is an innovative tool for automated security testing that leverages cutting-edge artificial intelligence technologies. The project is designed for informati

FAQ (3)

Troubleshooting
How to fix "docker-compose-graphiti.yml does not exist" when running ./installer restart with Graphiti disabled?

Upgrade PentAGI to version 2.2.0 or newer, which includes an updated installer that skips missing optional Compose files such as docker-compose-graphiti.yml during restart. After upgrading, run ./installer restart again. This error occurs in installer build v2.0.0-87ac00f when GRAPHITI_ENABLED=false because the restart process still tries to stop the Graphiti stack.

GitHub Issue #378
Troubleshooting
How do I fix the PentAGI container escape where an AI agent can access /var/run/docker.sock through prompt injection?

Upgrade to PentAGI 2.2.0 or newer, which includes the sandbox hardening and Docker socket proxy changes. Then ensure Docker-in-Docker is disabled unless explicitly required: set DOCKER_INSIDE=false in docker-compose.yml, remove any bind mount of /var/run/docker.sock, and recreate the stack with docker compose up -d --force-recreate. Verify a sandbox cannot access the socket, for example: docker exec pentagi-terminal-<id> ls -l /var/run/docker.sock; it should return "No such file or directory". If DinD is required, do not mount the host socket. Point DOCKER_INSIDE_HOST to a separate, isolated Docker daemon and place an authorization proxy or Tecnativa/docker-socket-proxy in front of it using a least-privilege API allowlist. no-new-privileges, capability drops, and other container hardening are useful defense-in-depth, but they do not prevent escape when a container has unrestricted access to the host Docker socket.

GitHub Issue #337
Troubleshooting
How to fix PentAGI error "missing the OpenAI API key" when using a local Ollama model such as qwen2.5:14b?

Upgrade to PentAGI 2.2.0 or newer; this provider-initialization bug is fixed there. Do not use a dummy OPENAI_API_KEY for Ollama—that variable name is incorrect. The native OpenAI provider uses OPEN_AI_KEY, while Ollama or other OpenAI-compatible servers must be configured through PentAGI's documented Ollama/custom provider settings. Use model qwen2.5:14b and the container-accessible Ollama URL, typically http://host.docker.internal:11434/v1 on Docker Desktop, or http://<host-LAN-IP>:11434/v1/host-gateway on Linux. Ensure Ollama is listening on all interfaces (OLLAMA_HOST=0.0.0.0) and the model is pulled: ollama pull qwen2.5:14b. Then restart with docker compose down && docker compose pull && docker compose up -d and check logs using docker compose logs -f. Only set OPEN_AI_KEY with OPEN_AI_SERVER_URL when using the real OpenAI provider or an OpenAI reverse proxy.

GitHub Issue #375