快速摘要:PentAGI 是一款由 VXControl 团队开源的全自主 AI 多智能体渗透测试系统,采用 MIT 许可证发布在 GitHub 上,目前已获得超过 7000 Star。它通过编排多个专业化的 AI Agent(侦察员、分析师、开发者、执行者),自动调用 nmap、Metasploit、sqlmap 等 20 余种安全工具,在 Docker 沙箱中完成从目标侦察到漏洞利用再到报告生成的完整渗透测试流程,全程无需人工干预。 本文将从系统架构、多Agent协同机制、知识图谱记忆系统、部署配置到实战操作,为你做一次全方位的深度拆解。无论你是安全从业者还是技术爱好者,往下看都有更详细的干货。
莫潇羽@无忆研习社(www.wuyi.wiki)在持续关注AI安全工具的过程中,发现PentAGI这个项目在安全圈掀起了不小的波澜。在整理了大量GitHub源码、官方文档和社区讨论之后,我决定写下这篇万字长文,把这个项目的来龙去脉讲清楚。
一、什么是 PentAGI?它为什么值得关注?
PentAGI,全称 Penetration testing Artificial General Intelligence(渗透测试通用人工智能),是由 VXControl 团队开发并开源的一套全自主 AI 渗透测试平台。项目的 GitHub 仓库地址为 https://github.com/vxcontrol/pentagi,采用 MIT 开源许可证,任何人都可以在遵守许可证条款的前提下自由使用和修改。
传统的渗透测试流程通常需要一支专业的安全团队,花费数天甚至数周的时间,经历信息收集、漏洞扫描、漏洞利用、权限提升、报告撰写等多个环节。而 PentAGI 的核心理念是:把这一整套流程交给一组协同工作的 AI Agent 来完成。
你只需要给它指定一个目标(比如一个 Web 应用的地址),然后启动系统,它就会像一支训练有素的特种部队一样自动开始工作——侦察、分析、攻击、记录、报告,一气呵成。
截至 2026 年 2 月,这个项目在 GitHub 上已经积累了超过 7000 个 Star 和 800 多个 Fork,Docker Hub 上的镜像下载量也突破了 10000 次。在社交媒体上,相关的讨论帖获得了数十万的浏览量,安全圈对此的讨论相当热烈。
为什么安全圈会如此关注?
PentAGI 引发广泛讨论的原因,不仅仅是因为它把渗透测试自动化了——市面上的漏洞扫描器早就做到了基本的自动化。真正让人兴奋(或者说让人紧张)的,是它展示了一种 多Agent协同的攻击范式。
传统的自动化安全扫描工具往往是按照预设的规则去执行固定的检测逻辑,比如运行一组预定义的扫描策略、匹配已知的漏洞签名。这类工具在面对标准化的漏洞时表现不错,但遇到需要灵活调整策略的复杂情况就容易束手无策。举个例子,当传统扫描器发现某个Web接口可能存在SQL注入时,它只会按照预设的payload列表逐一尝试。如果服务器有WAF(Web应用防火墙)拦截了标准payload,扫描器通常就会判定为"不存在漏洞"而放弃。
但 PentAGI 的处理方式完全不同。它的多个 Agent 之间可以实时通信、动态调整策略——侦察Agent发现目标部署了某品牌的WAF,分析Agent立刻查询知识图谱找到该WAF的已知绕过方法,执行Agent用变换后的payload重新尝试注入。如果这种方式还不行,系统会继续寻找其他攻击入口,比如从一个看起来不起眼的文件上传接口绕过去。这种灵活性和适应性,是此前的自动化工具难以企及的。
在社交媒体上,围绕PentAGI的讨论也相当两极分化。一部分安全研究人员认为这是革命性的工具,可以极大地提高安全评估的效率和覆盖面。另一部分从业者则表达了深深的担忧——当这样的工具落入恶意攻击者手中时,防御方该如何应对?
安全专家 Martin Szerment 对此的评论颇有代表性——他认为 PentAGI 代表的不只是一个工具的进步,而是一种全新的攻击范式的到来。他指出,那种认为安全能力会随着分析师数量线性增长的旧观念已经过时了,基于静态规则和固定战术手册构建的防御体系,将无法有效应对这类能够动态调整意图和策略的自适应攻击集群。他的结论很直接:"要么适应这种新范式,要么被淘汰。"
项目背景与开发团队
PentAGI 由 VXControl 团队开发和维护。VXControl 是一家专注于安全编排和自动化响应领域的技术团队,此前他们还开发了 SOLDR(System of Orchestration, Lifecycle control, Detection and Response)等安全产品。从他们的 GitHub 组织页面可以看到,团队在安全工具开发方面有相当的积累。
PentAGI 的后端使用 Go 语言编写,前端使用 React 和 TypeScript,知识图谱部分则使用了 Graphiti 项目的 Go 客户端封装。项目在 2025 年初首次发布,并在 2025 年底发布了 1.0 正式版本,标志着从实验性项目走向了生产可用的状态。
二、PentAGI 的系统架构全览
在深入了解 PentAGI 的工作原理之前,我们需要先搞清楚它的整体架构。莫潇羽在研究了项目的源码和文档之后,把它的架构梳理成了以下几个层次,方便大家理解。
2.1 整体架构分层
PentAGI 采用微服务架构设计,整个系统由多个 Docker 容器协同运行。从功能上划分,可以分为以下几个主要层次:
前端层(Frontend UI):基于 React + TypeScript 构建的现代化 Web 界面,用于系统管理和监控。用户可以在这个界面上创建渗透测试任务、查看实时进度、浏览测试报告。
后端层(Backend API):使用 Go 语言编写,提供 GraphQL 和 REST 两种 API 接口,并支持 WebSocket 实现实时通信。后端负责任务调度、Agent 管理、工具调用等核心逻辑。
AI Agent 层(Multi-Agent System):这是 PentAGI 最核心的部分。多个专业化的 AI Agent 在这里协同工作,每个 Agent 负责不同的任务域。
数据存储层:使用 PostgreSQL(带 pgvector 向量扩展)作为主要数据库,存储任务记录、命令输出、向量嵌入等数据。可选配 Neo4j 图数据库用于知识图谱。
安全工具层:预装了 20 多种专业渗透测试工具的 Docker 容器,包括 nmap、Metasploit、sqlmap、hydra 等。所有工具都在沙箱环境中运行,与宿主机隔离。
监控与分析层:集成了 Grafana、Prometheus(VictoriaMetrics)、Jaeger、Loki 等监控组件,以及 Langfuse AI 分析平台,提供完整的可观测性。
2.2 核心容器编排结构
下面通过一个简化的架构描述,帮助大家理解 PentAGI 的容器编排关系:
┌─────────────────────────────────────────────────────────┐
│ 用户(安全工程师) │
│ │ │
│ ┌────▼────┐ │
│ │ Web UI │ React + TypeScript │
│ └────┬────┘ │
│ │ HTTP/WebSocket │
│ ┌────▼────┐ │
│ │ Backend │ Go + GraphQL │
│ └─┬──┬──┬─┘ │
│ ┌──────────┘ │ └──────────┐ │
│ ┌────▼────┐ ┌─────▼──────┐ ┌───▼────┐ │
│ │PostgreSQL│ │ AI Agents │ │Langfuse│ │
│ │+pgvector │ │ 多Agent系统 │ │AI分析 │ │
│ └─────────┘ └──┬───┬─────┘ └────────┘ │
│ ┌─────┘ └──────┐ │
│ ┌─────▼─────┐ ┌──────▼──────┐ │
│ │ 安全工具集 │ │ 知识图谱 │ │
│ │ (沙箱容器) │ │ Neo4j+Graphiti│ │
│ └───────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
整个系统通过 Docker Compose 进行编排,分为三个独立的网络:pentagi-network(核心服务)、langfuse-network(AI 分析)、observability-network(可观测性监控)。这种网络隔离设计既保证了各组件之间的正常通信,又避免了不必要的网络暴露。
值得一提的是,PentAGI 在架构设计上充分考虑了可扩展性。它采用了微服务架构,各个组件可以独立部署和扩展。如果测试任务量较大,可以通过增加 Worker 节点来实现水平扩展。后端提供的 GraphQL 和 REST 双接口,也让集成到现有工作流变得更加灵活。此外,系统支持通过 OAuth 集成 GitHub 和 Google 账号体系,方便在团队中推广使用。
三、多Agent协同机制:PentAGI 的核心引擎
PentAGI 最具技术价值的部分,就是它的多Agent协同系统。这不是简单地让一个 AI 模型顺序执行一系列命令,而是一套精心设计的分工协作机制。
3.1 Agent 角色分工
根据 PentAGI 的源码和文档,系统中定义了以下几种专业化的 Agent 角色:
Orchestrator(编排者):相当于整个团队的"指挥官"。它负责接收用户的任务目标,制定总体攻击计划,并将任务分解为多个子任务分配给其他 Agent。编排者还会持续监控各个 Agent 的执行进度,根据实时反馈动态调整策略。
Researcher(研究员):负责信息收集和侦察。这个 Agent 会调用搜索引擎、网页爬虫、以及各种情报收集工具,对目标进行全方位的信息搜集。它不仅搜集目标的技术信息(如开放端口、运行服务),还会查询历史漏洞数据库,了解目标可能存在的已知漏洞。
Developer(开发者):负责攻击方案的设计和代码编写。当需要编写自定义的利用脚本,或者对现有工具的输出进行二次处理时,这个 Agent 就会派上用场。它可以根据 Researcher 提供的情报,针对性地设计攻击向量。
Executor(执行者):负责实际的攻击执行。它在隔离的 Docker 容器中运行各种渗透测试工具,执行具体的扫描和攻击命令。每一条命令的执行结果都会被记录下来,供其他 Agent 参考。
从 PentAGI 后端源码中的消息链类型定义可以看出,系统还包含了更细化的角色划分:
Agent 类型(msgchain_type):
- primary_agent → 主控Agent
- pentester → 渗透测试执行者
- coder → 代码编写者
- searcher → 搜索情报收集者
- installer → 环境安装配置者
- generator → 任务生成器
- refiner → 策略优化器
- reporter → 报告生成器
3.2 Agent 之间的协同流程
为了帮助大家理解这些 Agent 是如何协同工作的,莫潇羽@无忆研习社 把整个流程梳理成了四个阶段。
第一阶段:初始化与情报加载
当用户提交一个渗透测试任务后,Orchestrator 首先会做两件事情:一是查询向量数据库(Vector Store),检索与当前目标相似的历史任务经验;二是加载知识图谱(Knowledge Base)中的相关上下文信息。这一步非常关键——它让系统不是"从零开始",而是带着以往的经验和知识来面对新任务。
第二阶段:目标侦察与分析
Orchestrator 将侦察任务交给 Researcher。Researcher 会综合使用多种手段收集目标信息:
- 通过内置的 Web 爬虫(基于 vxcontrol/scraper 镜像)访问目标网站,收集页面结构、技术栈等信息
- 调用外部搜索 API(支持 Tavily、Perplexity、DuckDuckGo、Google Custom Search、Searxng 等多种搜索引擎),搜集目标的公开情报
- 查询向量数据库中的相似案例,找到可复用的攻击模式
- 将收集到的所有发现存入向量存储,供后续 Agent 使用
第三阶段:方案制定与攻击执行
Researcher 将侦察结果交还给 Orchestrator,Orchestrator 再将其转发给 Developer 进行攻击方案设计。Developer 会根据已有的情报和工具能力,制定具体的攻击计划,包括选择哪些工具、以什么顺序执行、每一步的预期目标是什么。
攻击计划制定好之后,Executor 接手执行。它会在隔离的 Docker 容器中逐步运行攻击命令,并将每一步的执行结果反馈给 Orchestrator。如果某个攻击向量失败了,Orchestrator 会根据反馈信息要求 Developer 调整方案,或者让 Researcher 补充更多情报——这就是 自适应攻击 的核心所在。
第四阶段:结果记录与报告生成
所有攻击尝试完成后(无论成功还是失败),Reporter 会将整个过程中发现的漏洞、利用方法、攻击路径等信息整理成一份详细的渗透测试报告。报告中会包含漏洞描述、严重等级评估、利用步骤说明以及修复建议。
3.3 协同通信的技术实现
从技术层面来看,Agent 之间的通信主要通过以下机制实现:
消息链(Message Chain):每个 Agent 的交互都以消息链的形式记录。系统为每种 Agent 类型定义了独立的消息链类型,确保上下文的隔离和可追溯性。
任务-子任务-动作 三级结构:系统使用 Flow → Task → SubTask → Action 的四级层次结构来管理整个任务流程。每个 Action 可以产生 Artifact(工件,如文件、报告)和 Memory(记忆,如观察结果、结论),形成完整的执行链路。
PentAGI 的数据模型可以用如下结构来理解:
Flow (渗透测试流程)
├── Task (任务)
│ ├── SubTask (子任务, 指定Agent类型)
│ │ ├── Action (具体动作)
│ │ │ ├── Artifact (产出物: 文件/报告/日志)
│ │ │ └── Memory (记忆: 观察/结论 + 向量嵌入)
│ │ └── Action ...
│ └── SubTask ...
└── Task ...
上下文压缩(Chain Summarization):由于渗透测试过程可能产生大量的对话上下文,很容易超出大语言模型的 token 限制。PentAGI 为此实现了一套精巧的上下文压缩算法。它会将对话链转换为结构化的 AST(ChainAST),然后有选择地对旧消息进行摘要压缩,同时保留关键的工具调用记录和最新的对话内容。
这套压缩系统提供了丰富的配置选项,可以通过环境变量进行调优:
# 全局摘要配置
SUMMARIZER_PRESERVE_LAST=true # 保留最后一段的完整消息
SUMMARIZER_USE_QA=true # 使用问答对压缩策略
SUMMARIZER_LAST_SEC_BYTES=51200 # 最后一段的最大字节数(50KB)
SUMMARIZER_MAX_BP_BYTES=16384 # 单个消息对的最大字节数(16KB)
SUMMARIZER_MAX_QA_SECTIONS=10 # 保留的最大问答段数
SUMMARIZER_MAX_QA_BYTES=65536 # 问答段的最大总字节数(64KB)
# 助手专用摘要配置(可单独调优)
ASSISTANT_SUMMARIZER_PRESERVE_LAST=true
ASSISTANT_SUMMARIZER_LAST_SEC_BYTES=76800 # 助手的最后段更大(75KB)
四、20+ 专业安全工具集:AI 的"武器库"
PentAGI 自身并不从零开始编写攻击工具——它站在巨人的肩膀上,集成了安全圈最经典、最成熟的工具集合。这些工具被预装在 Docker 容器中,AI Agent 会根据目标情况 自主决定 使用哪个工具、在什么时候使用。
4.1 主要工具清单
以下是 PentAGI 预装的核心安全工具(莫潇羽@无忆研习社 整理):
网络侦察类
- nmap — 端口扫描和服务发现的标准工具,被誉为"网络扫描的瑞士军刀"。AI 用它来发现目标开放的端口和运行的服务
- masscan — 高速端口扫描器,适合大规模网络的快速扫描
- subfinder — 子域名发现工具,帮助AI找到目标的所有子域名
Web 应用测试类
- sqlmap — SQL 注入检测和利用的自动化工具,是 Web 安全测试的必备利器
- nikto — Web 服务器扫描器,检测服务器配置问题和已知漏洞
- dirb / gobuster — 目录和文件暴力枚举工具,发现隐藏的页面和接口
- whatweb — Web 应用指纹识别工具,检测目标使用的技术栈
漏洞利用框架
- Metasploit Framework — 渗透测试框架之王,拥有海量的漏洞利用模块和载荷
- searchsploit — Exploit-DB 的本地搜索工具,快速查找公开的漏洞利用代码
密码攻击类
- hydra — 网络登录暴力破解工具,支持多种协议
- john — John the Ripper,密码哈希破解工具
网络分析类
- tcpdump — 网络数据包捕获和分析工具
- curl / wget — HTTP 客户端工具,用于发送定制请求
- netcat (nc) — 网络连接的"瑞士军刀",支持各种TCP/UDP操作
4.2 工具自主选择的决策逻辑
PentAGI 中 AI Agent 对工具的选择并非随机的,而是基于一套智能决策逻辑。这套逻辑综合考虑了以下几个因素:
目标特征分析:根据初始侦察获得的目标信息,判断目标的类型(Web 应用、网络服务、数据库等),从而确定适用的工具范围。比如发现目标运行着 Web 服务,系统就会优先调用 nikto、sqlmap 等 Web 测试工具;如果发现的是网络层面的服务(如 SSH、FTP),则优先调用 hydra 等密码攻击工具。
知识库查询:Agent 会查询知识图谱和向量数据库,看看在以往类似的目标上哪些工具和参数组合取得了最好的效果。如果上次对同类型的 Apache 服务器使用了特定的 nmap 扫描参数并成功发现了漏洞,这次面对类似目标时会优先尝试同样的配置。
失败后的策略调整:如果某个工具的执行结果没有达到预期(比如 sqlmap 没有发现 SQL 注入),系统不会简单地放弃,而是会分析失败的原因——是目标确实不存在该漏洞,还是因为 WAF 拦截或参数配置不当?根据分析结果,AI 可能会更换工具、调整参数,或者转向其他攻击方向。
这种"工具选择 → 执行 → 评估 → 调整"的循环,正是 PentAGI 区别于传统自动化扫描器的关键之处。传统工具按照固定的流程走一遍就结束了,而 PentAGI 会根据实时反馈不断迭代优化自己的攻击策略。
4.3 智能 Docker 镜像选择
PentAGI 还有一个巧妙的设计:它不是把所有工具塞进一个大容器里,而是根据具体任务的需求,动态选择合适的 Docker 镜像来执行命令。
在 .env 配置文件中,你可以为不同类型的任务指定不同的 Docker 镜像:
# Docker 镜像配置示例
DOCKER_DEFAULT_IMAGE=vxcontrol/pentagi:latest # 默认镜像
DOCKER_NETWORK_MODE=bridge # 网络模式
系统会根据子任务的类型(是网络扫描、Web 测试还是漏洞利用),自动选择最合适的容器镜像来执行。所有操作都在沙箱环境中进行,不会影响宿主机的安全。
五、知识图谱与记忆系统:让 AI 越用越聪明
PentAGI 最有技术深度的设计之一,是它的 多层记忆系统。传统的 AI 工具每次运行都是"从零开始",但 PentAGI 可以记住之前的攻击经验,在面对类似目标时直接复用成功策略。
5.1 三层记忆架构
PentAGI 的记忆系统分为三个层次,每个层次承担不同的功能:
长期记忆(Long-term Memory)
长期记忆存储在 PostgreSQL(带 pgvector 扩展)中,使用向量嵌入(Vector Embedding)技术将文本信息转化为高维向量。当 AI 需要回忆过去的经验时,通过向量相似度搜索快速找到相关记录。
长期记忆包含三类内容:向量存储(Vector Store,存放所有文本的嵌入表示)、知识库(Knowledge Base,领域专业知识)、工具知识(Tools Knowledge,各种工具的使用模式和最佳实践)。
系统提供了专门的嵌入测试工具 etester,可以用来验证和优化向量搜索的效果:
# 搜索向量存储中的相关记录
docker exec -it pentagi /opt/pentagi/bin/etester search \
-query "SQL injection authentication bypass" \
-doc_type vulnerability \
-limit 5 \
-threshold 0.7
支持的搜索参数包括:
-query:搜索查询文本(必填)-doc_type:按文档类型过滤(answer / memory / guide / code)-answer_type:按答案类型过滤(guide / vulnerability / code / tool / other)-limit:最大返回结果数(默认3)-threshold:相似度阈值,范围 0.0-1.0(默认0.7)
工作记忆(Working Memory)
工作记忆存在于当前会话中,包含当前任务的上下文状态(Context)、活动目标(Goals)和系统状态(State)。工作记忆的内容会随着任务的推进不断更新,Agent 通过工作记忆了解当前的进展和下一步应该做什么。
情节记忆(Episodic Memory)
情节记忆记录了过去执行过的具体动作(Actions)、每个动作的结果(Results)以及从中总结出的成功模式(Patterns)。这些成功模式会被转化为向量嵌入存入长期记忆,形成一个持续学习和积累的闭环。
5.2 Graphiti 知识图谱
在向量存储之上,PentAGI 还集成了 Graphiti 时序知识图谱,这是一套基于 Neo4j 图数据库的高级语义理解系统。
Graphiti 知识图谱能够自动从 Agent 的交互中提取结构化知识,构建实体、关系和时间上下文的图谱。具体来说,它提供了以下能力:
语义记忆:存储和召回工具、目标、漏洞和技术之间的关系。比如"nmap 扫描发现了 Apache 2.4.49 → 该版本存在 CVE-2021-41773 路径穿越漏洞 → 可以使用 curl 构造 exploit"。
上下文理解:追踪不同渗透测试动作之间的时间关系。比如理解"先进行端口扫描,发现 Web 服务后再进行目录枚举"这样的时序逻辑。
知识复用:从过去的渗透测试中学习并将经验应用于新的评估任务。比如上次测试中发现了某类 CMS 的通用漏洞利用方法,下次遇到同类 CMS 可以直接复用。
高级查询:支持复杂的模式搜索,比如"哪些工具对类似的目标最有效?"或者"最近三个月发现最多的漏洞类型是什么?"。
知识图谱的配置启用方法如下:
# 在 .env 文件中启用 Graphiti 知识图谱
GRAPHITI_ENABLED=true
GRAPHITI_TIMEOUT=30
GRAPHITI_URL=http://graphiti:8000
GRAPHITI_MODEL_NAME=gpt-4o-mini
# Neo4j 图数据库配置
NEO4J_USER=neo4j
NEO4J_DATABASE=neo4j
NEO4J_PASSWORD=your_secure_password
NEO4J_URI=bolt://neo4j:7687
需要注意的是,Graphiti 知识图谱目前需要配合 OpenAI 的 API 来进行实体提取,这是它的一个依赖条件。
六、手把手部署指南:从零搭建 PentAGI
接下来是大家最关心的实操部分。莫潇羽@无忆研习社(www.wuyi.wiki)将详细讲解如何从零开始部署 PentAGI。
6.1 环境准备
在开始之前,你需要确保以下环境已经就绪:
硬件要求
- CPU:建议至少 4 核心
- 内存:建议至少 8GB RAM(如果使用本地 Ollama 模型,建议 16GB 以上)
- 磁盘:至少 20GB 可用空间(Docker 镜像和数据存储)
软件要求
- Docker Engine 20.10 或更高版本
- Docker Compose v2.0 或更高版本
- 操作系统:Linux(推荐 Ubuntu 22.04/24.04)、macOS 或 Windows(通过 WSL2)
LLM 提供商(至少配置一个)
PentAGI 支持多种大语言模型提供商,你需要至少配置其中一个:
- OpenAI(GPT-4o 等系列模型)
- Anthropic(Claude 系列模型)
- Google AI/Gemini
- AWS Bedrock(支持多种模型)
- Ollama(本地部署的开源模型,零 API 费用)
- DeepSeek、OpenRouter、Deep Infra 等其他提供商
6.2 快速部署步骤
第一步:下载配置文件
# 下载环境变量模板
curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/.env.example
# 下载 Docker Compose 配置文件
curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose.yml
# 复制环境变量模板为正式配置文件
cp .env.example .env
第二步:配置环境变量
用文本编辑器打开 .env 文件,根据你的实际情况修改以下配置:
# ========== 数据库配置 ==========
PENTAGI_POSTGRES_USER=pentagi
PENTAGI_POSTGRES_PASSWORD=your_secure_db_password # 改成你自己的密码
# ========== LLM 提供商配置(至少配置一个)==========
# 方式一:使用 OpenAI
OPEN_AI_KEY=sk-your-openai-api-key
OPEN_AI_MODEL=gpt-4o
OPEN_AI_FAST_MODEL=gpt-4o-mini
# 方式二:使用 Anthropic Claude
ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
ANTHROPIC_MODEL=claude-sonnet-4-5-20250929
ANTHROPIC_FAST_MODEL=claude-haiku-4-5-20251001
# 方式三:使用本地 Ollama(零API费用)
OLLAMA_SERVER_URL=http://host.docker.internal:11434
OLLAMA_MODEL=qwen3:32b-fp16-tc
OLLAMA_FAST_MODEL=qwen3:32b-fp16-tc
# 方式四:使用 Google Gemini
GOOGLE_AI_KEY=your-google-ai-key
GOOGLE_AI_MODEL=gemini-2.0-flash
GOOGLE_AI_FAST_MODEL=gemini-2.0-flash
# ========== 搜索引擎配置(可选但推荐)==========
TAVILY_API_KEY=your-tavily-key # Tavily 搜索
# 或者
GOOGLE_CX=your-google-cx # Google Custom Search
GOOGLE_API_KEY=your-google-api-key
# ========== 服务器配置 ==========
SERVER_HOST=0.0.0.0
SERVER_PORT=8443
提示:.env 文件中不要保留行内注释(# 后面的内容),某些 IDE 和工具可能无法正确解析。
第三步:启动服务
# 启动所有核心服务
docker compose up -d
首次启动会下载必要的 Docker 镜像,可能需要几分钟时间。启动完成后,你可以通过以下方式访问系统:
- Web UI:
https://localhost:8443 - 默认登录凭据:
admin@pentagi.com/admin
请务必在首次登录后修改默认密码。
第四步:验证安装
# 查看所有容器的运行状态
docker compose ps
# 查看后端日志,确认服务正常启动
docker compose logs pentagi
# 检查数据库连接
docker exec -it pentagi-postgres psql -U pentagi -c "SELECT 1;"
如果一切正常,你应该能看到所有容器都处于 running 状态,并且 Web UI 可以正常打开。
6.3 启用可选组件
PentAGI 还提供了一些可选组件,可以根据你的需求启用。
启用 Langfuse AI 分析平台
Langfuse 可以帮助你监控和分析 AI Agent 的运行情况,包括每次 LLM 调用的 token 消耗、响应时间、Agent 的推理链路等信息。
# 在 .env 中添加 Langfuse 配置
echo "LANGFUSE_BASE_URL=http://langfuse-web:3000" >> .env
# 下载 Langfuse 的 Compose 配置并启动
curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose-langfuse.yml
docker compose -f docker-compose.yml -f docker-compose-langfuse.yml up -d
启动后访问 http://localhost:4000 即可使用 Langfuse 面板。
启用知识图谱(Graphiti + Neo4j)
# 在 .env 中添加 Graphiti 配置
# 需要设置 GRAPHITI_ENABLED=true 以及 Neo4j 和 OpenAI 的相关配置
# 下载 Graphiti 的 Compose 配置并启动
curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose-graphiti.yml
docker compose -f docker-compose.yml -f docker-compose-graphiti.yml up -d
启用完整可观测性监控
# 在 .env 中启用 OpenTelemetry
echo "OTEL_HOST=otelcol:8148" >> .env
# 下载可观测性配置并启动
curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose-observability.yml
docker compose -f docker-compose.yml -f docker-compose-observability.yml up -d
这会启动 Grafana、VictoriaMetrics、Jaeger、Loki 等一整套监控组件。
全部组件一起启动
如果你想同时启用所有组件:
docker compose \
-f docker-compose.yml \
-f docker-compose-langfuse.yml \
-f docker-compose-graphiti.yml \
-f docker-compose-observability.yml \
up -d
6.4 使用 Ollama 进行本地部署
对于不想使用云端 API 的用户,PentAGI 支持通过 Ollama 使用本地部署的大语言模型。不过需要注意的是,PentAGI 对模型的上下文窗口要求较高(建议 110K tokens),因此你需要创建自定义的 Modelfile。
以 Qwen3 32B 为例:
# 创建 Modelfile 文件: Modelfile_qwen3_32b_fp16_tc
FROM qwen3:32b-fp16
PARAMETER num_ctx 110000
PARAMETER temperature 0.3
PARAMETER top_p 0.8
PARAMETER min_p 0.0
PARAMETER top_k 20
PARAMETER repeat_penalty 1.1
然后执行:
# 构建自定义模型
ollama create qwen3:32b-fp16-tc -f Modelfile_qwen3_32b_fp16_tc
# 在 .env 中配置
OLLAMA_SERVER_URL=http://host.docker.internal:11434
OLLAMA_MODEL=qwen3:32b-fp16-tc
OLLAMA_FAST_MODEL=qwen3:32b-fp16-tc
需要特别注意的是,num_ctx 参数只能在模型创建时通过 Modelfile 设置,创建之后无法修改。PentAGI 推荐使用 110K 的上下文大小以应对复杂的渗透测试场景。
七、实战操作:创建你的第一次 AI 渗透测试
部署完成后,就可以开始使用 PentAGI 了。下面以一个典型的 Web 应用渗透测试为例,介绍基本的操作流程。
7.1 通过 Web UI 操作
登录 PentAGI 的 Web 界面后,你会看到一个现代化的管理面板。操作流程大致如下:
创建新的 Flow(渗透测试流程):点击创建按钮,输入目标信息和测试范围描述。
编写任务 Prompt:向 AI 描述你的测试目标。PentAGI 的 GitHub 仓库中提供了一些示例 prompt,位于 examples/prompts/ 目录下。
一个基础的 Web 渗透测试 prompt 示例可能是这样的:
请对目标 Web 应用 http://target-app:8080 进行全面的渗透测试。
测试范围包括:
1. 网络层面:端口扫描,发现所有开放的服务
2. Web 应用层面:目录枚举,参数发现
3. 漏洞检测:SQL注入,XSS,SSRF,认证绕过
4. 如果发现漏洞,尝试进行漏洞利用并获取PoC
5. 最终生成一份完整的渗透测试报告
注意:仅在授权范围内进行测试。
配置 Agent 选项:在创建流程时,可以通过"Use Agents"开关来启用多Agent协同模式。启用后,系统会自动创建多个 Agent 分工协作。这个选项的默认状态可以通过环境变量 ASSISTANT_USE_AGENTS 来控制。
感谢大佬~