源码简介
这套源码属于 AI 自动化安全测试类项目,核心是一套由智能体编排驱动的渗透测试平台 PentAGI(Penetration Testing AI)。它把大语言模型、多智能体协作、Docker 沙箱和向量化记忆组合起来,自动化完成信息收集、攻击策略规划与工具执行等渗透测试流程,适合安全研究人员做本地部署、流程学习和二次开发参考。仓库以 MIT 许可开源,并附带一份明确限定”合法授权渗透测试用途”的 EULA 协议。注意:项目本身不内置攻击载荷,只是调度 Kali 等公开安全工具在隔离容器中运行,部署与使用时须严格遵守授权范围。
适用场景
- 安全研究团队搭建本地自动化渗透测试与红队演练环境
- 学习 AI 智能体如何编排信息收集、漏洞利用与报告生成流程
- 在自有授权目标上做合规的安全评估与二次开发验证
技术栈与运行环境
- 前端:React + TypeScript,Apollo Client(GraphQL),Vite 构建,Radix UI 组件
- 后端:Go 1.24,Gin(REST)+ gqlgen(GraphQL)+ GORM,JWT/OAuth2 认证
- 数据库:PostgreSQL + pgvector(语义检索与记忆,必需),Neo4j(可选知识图谱)
- 运行环境:Docker / Docker Compose 容器化部署,默认服务端口 8443(HTTPS)
- 其他依赖:Docker SDK(沙箱容器执行)、OpenTelemetry / Langfuse / Grafana(可观测性)、goose(数据库迁移)
功能亮点
- 智能体编排:采用 Researcher / Developer / Executor 多智能体协作,由用户创建”flow(测试任务)”后自动排队执行并实时推送进度(见 CLAUDE.md 数据流与 pkg/tools/flow_manager.go)
- 沙箱工具执行:通过 Docker SDK 在隔离容器内运行渗透测试命令,终端会话与命令执行由 pkg/docker、pkg/terminal、pkg/tools/terminal.go、executor.go 统一管理
- 多 LLM 接入:适配 OpenAI、Anthropic、Gemini、AWS Bedrock、Ollama、DeepSeek、GLM、Kimi、Qwen 及自定义 HTTP 端点,可在设置页或环境变量配置(见 .env.example 与 pkg/providers)
- 搜索引擎集成:内置 DuckDuckGo、Google、Splous、Tavily、Traversaal、Perplexity、Searxng 等情报检索源(见 pkg/tools 下对应实现)
- 持久化记忆与知识图谱:测试过程、工具输出与推理存入 PostgreSQL(pgvector 语义检索),可选 Graphiti/Neo4j 构建关系知识图谱(pkg/graphiti)
- 可视化控制台与可观测性:React 前端提供 dashboard、flows、knowledges、resources、templates、settings 等页面;后端接入 OpenTelemetry/Langfuse/Grafana 做链路追踪与 LLM 分析
安装与部署提示
- 准备 Docker 与 Docker Compose 环境,复制 `.env.example` 为 `.env` 并至少填写数据库连接与至少一个 LLM Provider 的 API Key。
- 仓库根目录提供 `docker-compose.yml`,可直接 `docker compose up -d` 拉起核心服务;可选叠加 observability / langfuse / graphiti 配置。
- 后端也可用 Go 本地编译:`go build -trimpath -o pentagi ./cmd/pentagi`;前端在 `frontend/` 下 `pnpm install && pnpm run build`。
- 数据库迁移通过 goose 在启动时自动执行(脚本位于 backend/migrations/sql),无需手动导入。
- 仓库内置交互式部署向导 `cmd/installer`(TUI),可引导生成 `.env`、Docker Compose 与数据库配置。
截图与演示说明
常见问题
运行前需要注意什么?
需要 Docker 环境与可用的 LLM Provider Key,PostgreSQL + pgvector 为必需依赖,Neo4j 仅在启用知识图谱时可选。默认端口 8443 使用 HTTPS,首次部署务必修改 `.env.example` 中的默认口令与签名盐(如 COOKIE_SIGNING_SALT、数据库与 Neo4j 密码)。
适合二次开发吗?
适合。后端为清晰的 Go 模块化结构(controller / graph / providers / tools / docker / terminal),前端为 React + Apollo 的模块化页面;新增 LLM Provider、搜索源或工具集成均有明确扩展入口(CLAUDE.md 已给出新增 Provider 的完整步骤)。
安全风险提示
特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!
其他合规与配置提醒(基于 EULA 与 .env.example):
- 授权使用边界:本项目明确限定仅用于合法授权的渗透测试与安全研究,不得用于未授权目标或任何违法用途;EULA 要求用户在拥有网络所有者明确许可的环境中运行。
- 工具调度而非内置攻击:平台本身不自带攻击载荷,仅在隔离 Docker 容器内调度公开安全工具(如 Kali 工具集),运行产物可能包含敏感或对抗性内容,须按合规要求妥善处置。
- 默认凭据需替换:`.env.example` 中留有占位默认值(如 COOKIE_SIGNING_SALT=salt、PENTAGI_POSTGRES_PASSWORD=postgres、NEO4J_PASSWORD=devpassword 等),部署前必须改为强随机值。
- 数据合规:接入外部 LLM 与搜索引擎时,测试数据可能传出本地,需自行评估 GDPR 等数据保护要求;建议在内网或隔离环境部署。
下载说明
源码仅供学习研究、测试部署和二次开发参考,商用前请自行确认 MIT 许可与 EULA 条款、版权和安全风险。使用本项目须严格遵守”仅限授权测试”原则,不得用于未授权网络访问或任何违反法律法规的活动。
开源地址:https://github.com/vxcontrol/pentagi
