引言
PentAGI = P enetration testing A rtificial G eneral Intelligence
这是「每日一个开源项目」系列的第 236 篇 。今天的项目是 PentAGI ------ 一个开源、可自托管的全自主渗透测试多智能体系统,由安全工程公司 VXControl 开发,28,770 颗 Star,MIT 许可证,Trendshift 日榜/周榜/月榜三线趋势仓库。
渗透测试这件事一直有个尴尬的现实:真正懂行的安全工程师供不应求,而大量重复性的侦察、工具调用、报告整理工作消耗了他们大部分精力。PentAGI 的思路是让 AI Agent 团队去承担这些重复劳动------你用自然语言描述目标系统和测试目的,一组角色分工明确的专业 Agent(研究员、开发者、执行者)会自己规划任务、在隔离的 Docker Sandbox 里调用 20+ 专业安全工具完成实际测试,并把过程中学到的经验存进向量数据库供后续复用,最终产出一份带利用指引的漏洞报告。
提醒 :PentAGI 明确面向安全工程师、渗透测试人员、研究者和红队,仅用于已获授权的测试场景。请遵守项目的使用边界,不要将其用于未授权的攻击行为。
你会学到什么
- PentAGI 的多智能体分工架构:Orchestrator 调度 Researcher / Developer / Executor
- 三层记忆系统(长期/工作/情景记忆)如何让 Agent "记住"攻击经验
- 执行监控与智能任务规划:如何让 32B 以下的小模型也能稳定完成复杂渗透任务
- 快速上手:从交互式安装器到首次登录
- Agent 访问 Docker 的两种方式及其安全边界取舍
前提知识
- 了解渗透测试的基本流程(侦察、漏洞发现、利用、报告)
- 熟悉 Docker / Docker Compose 的基本概念
- 对 LLM Agent 的工作方式有基础认识会更容易理解架构设计
项目背景
概述
PentAGI 不是又一个"调用 LLM 生成攻击脚本"的工具,而是一整套面向生产环境的自主渗透测试基础设施:自己的服务器、自己选择的模型、持久化的记忆系统、完整的监控可观测性栈,以及可以自动化集成的 REST/GraphQL API。项目同时提供企业版(Enterprise),增加了 Agent Profile、插件、MCP 服务器支持、客户可读报告和实时攻击链视图等能力,但开源核心本身已经是一个功能完整的系统。
作者 / 团队
- 开发方 : VXControl,一家总部位于迪拜的安全工程公司
- 主要语言: Go(后端)+ React/TypeScript(前端)
- 许可证: MIT License
- 创建时间: 2025-01-06
- 当前状态: 活跃开发中,Trendshift 日/周/月三线趋势仓库
项目数据
- ⭐ GitHub Stars: 28,770+
- 🍴 Forks: 4,325+
- 📄 许可证: MIT
- 📅 创建时间: 2025-01-06
- 👥 核心贡献者:sirozha(615 次提交)领衔,asdek(204 次)、mason5052(93 次)等多名活跃贡献者,加上 dependabot 的常规依赖更新
- 🏷️ Topics: ai-agents, ai-security-tool, autonomous-agents, golang, multi-agent-system, offensive-security, penetration-testing, security-automation, self-hosted
快速上手
系统要求
- Docker 和 Docker Compose(或 Podman)
- 至少 2 vCPU、4GB 内存、20GB 可用磁盘空间
- 可访问互联网以拉取镜像和更新
使用交互式安装器(推荐)
PentAGI 提供了带终端 UI 的交互式安装器,支持 Linux、macOS、Windows,会引导你完成系统检查、LLM 提供商配置、搜索引擎配置和安全加固。
bash
# 创建安装目录
mkdir -p pentagi && cd pentagi
# 下载安装器(以 Linux amd64 为例)
wget -O installer.zip https://pentagi.com/downloads/linux/amd64/installer-latest.zip
unzip installer.zip
# 运行交互式安装器
./installer
安装器需要访问 Docker API 的权限,生产环境建议用 sudo ./installer 运行;开发环境可以把当前用户加入 docker 组,但要注意这等同于赋予 root 级权限。
安装器会自动完成:系统检查 → 生成 .env 配置 → 配置 LLM 提供商(支持 OpenAI、Anthropic、Gemini、Bedrock、Ollama、DeepSeek、GLM、Kimi、Qwen、MiniMax、Mistral、xAI、自定义端点等 10+ 种)→ 配置搜索引擎(DuckDuckGo、Google、Tavily、Firecrawl、Perplexity、SearXNG 等)→ 生成安全凭证和 SSL 证书 → 用 docker-compose 启动服务。
生产环境:双节点架构
对于生产部署或安全敏感场景,官方强烈建议使用分布式双节点架构------把 Worker 的实际执行操作隔离到独立服务器上,避免不可信代码执行和网络访问问题影响主系统。双节点架构提供隔离执行、网络隔离、带 TLS 认证的 Docker-in-Docker 安全边界,以及支持带外攻击技术(OOB)的专用端口范围。
核心剖析:多智能体分工与分层记忆系统
Orchestrator 调度下的角色分工
PentAGI 的核心是一个由 Orchestrator(协调者)统筹的多 Agent 团队,README 里的序列图清晰展示了这个流程:
- 初始化阶段:Orchestrator 向向量库查询相似任务的历史经验,向知识库加载相关上下文
- 研究阶段:Researcher 分析目标,在向量库里搜索相似案例,向知识库查询已知漏洞,并把新发现存回向量库
- 规划阶段:Developer 规划攻击路径,查询可用的利用技术和工具能力
- 执行阶段:Executor 执行计划,加载工具使用指南,把执行结果存回向量库
这种"研究员-开发者-执行者"的三段式分工,本质上是把渗透测试的标准流程(侦察 → 规划 → 执行)映射成了专门化的 Agent 角色,而不是让一个通用 Agent 从头到尾大包大揽。每个角色只专注自己的子任务,上下文更干净,出错时也更容易定位是哪个环节的问题。
三层记忆系统:长期、工作、情景
PentAGI 的记忆架构分成三层,这是它区别于"一次性对话式"渗透测试工具的关键设计:
- 长期记忆(Long-term Memory):用 PostgreSQL + pgvector 存储的向量库记录成功的攻击模式,用知识库记录领域专业知识和工具使用模式------这些经验可以跨 Flow(任务)复用,意味着 Agent 在测试过程中积累的经验不会随着一次任务结束而丢失
- 工作记忆(Working Memory):当前任务的上下文状态、活跃目标、系统资源,支撑单次任务执行期间的连续性
- 情景记忆(Episodic Memory):历史操作记录、执行结果、成功模式------这一层记录"发生过什么",供后续模式提炼使用
此外还有可选的 Graphiti + Neo4j 知识图谱集成,用于语义关系追踪和更深层的上下文理解,自动捕获 Agent 的响应和工具执行记录,构建一个限定在单次 Flow 范围内的知识库。
链路摘要系统:对抗上下文窗口膨胀
渗透测试任务往往需要多轮工具调用和推理,对话上下文很容易爆掉 Token 限制。PentAGI 为此设计了一套链路摘要(Chain Summarization)系统:把对话链转换成结构化的 ChainAST 表示(保留工具调用和响应的类型信息),对超大的消息对做分段摘要,同时保证最后一段的完整上下文不被压缩。全局摘要器和 Assistant 专用摘要器可以独立配置参数(比如最后一段保留的字节数、QA 对保留数量),Assistant 模式默认分配了更多上下文余量,优先保留最近的对话历史。
执行监控与智能任务规划:专门为小模型设计的"保险"
这是 PentAGI 最值得关注的工程细节之一。项目明确指出:对于 32B 参数以下的开源模型,同时开启执行监控(Execution Monitoring)和任务规划(Task Planning)是必需的,而不是可选优化:
- 执行监控:Adviser Agent(导师角色)会在检测到异常执行模式时自动介入------比如连续 5 次相同工具调用,或总调用次数超过 10 次(阈值可配置)------分析 Agent 是否真的在朝子任务目标推进,发现循环和低效后给出替代策略建议
- 智能任务规划 :Planner 在专业 Agent 开始工作前,先把原始请求拆解成 3-7 个具体可执行的步骤,用
<task_assignment>结构包装,防止范围蔓延,让 Agent 始终聚焦在当前子任务上
官方用 Qwen3.5-27B-FP8 做的测试显示:同时开启这两项能力后,结果质量提升 2 倍,但代价是 Token 消耗和执行时间增加 2-3 倍。这组数据背后的工程判断很诚实------小模型容易陷入单一思路反复试错,用显式的监督机制换质量,这个权衡对"离线/气隔离环境下跑本地模型"的场景(比如企业内网渗透测试,不能联网调用云端大模型)尤其有意义。
Agent 访问 Docker 的两种方式:安全边界的真实取舍
PentAGI 很多渗透测试工作流需要 Agent 的 Sandbox 内部能跑 docker 命令,README 对此给出了两种方案,并直接点明了风险差异:
- 推荐方案 :让 Sandbox 通过 TLS 连接一个独立加固的 dind(Docker-in-Docker)守护进程,设置
DOCKER_INSIDE=true,不挂载任何 socket,只配置远程 TLS 端点 - 不推荐方案 :直接 Bind-mount 一个 Docker socket(
DOCKER_SOCKET)------这里存在两个实际问题:一是容器重启时的"启动顺序竞态",一个还不存在的挂载源会被 Docker 当成目录创建,dind 重建 socket 之前容器可能已经启动,导致 socket 位置被目录占用;二是如果挂载的是宿主机 的 Docker socket,就等于把宿主机级别的 Docker API 完全交给一个自主 Agent------它可以启动特权容器、挂载/,直接攻陷整个节点,包括 PentAGI 自身
这段文档的坦诚程度值得称赞:它没有简单地说"用 Docker socket 很方便",而是把两种方案的具体失败模式和攻击面讲清楚,让使用者自己判断该在什么环境下用什么方案。
项目地址与资源
- 🌟 GitHub : vxcontrol/pentagi
- 🌐 官网 : pentagi.com
- 📺 概览视频 : PentAGI Overview
- 💬 Discord : discord.gg/2xrMh7qX6m
- 💬 Telegram : t.me/+Ka9i6CNwe7...
- 📖 双节点部署指南 : Worker Node Setup
- 🏢 开发方 : VXControl
总结
PentAGI 回答了一个关于"AI + 渗透测试"的实际问题:自主 Agent 跑攻击工具这件事技术上不难,难的是让它在生产环境里稳定、可控、可审计地跑下去,而不是一个只能在 Demo 里炫技的玩具。
三点值得注意:
三段式角色分工 + 三层记忆系统,是把"渗透测试的标准方法论"显式编码进了系统架构。 很多 AI 安全工具只是把 LLM 包了一层壳去调用工具,PentAGI 把 Researcher/Developer/Executor 的分工和长期/工作/情景记忆都做成了架构里的一等概念,这意味着系统的行为模式更接近一个真实的安全团队协作流程,而不是单个 Agent 的自由发挥。
执行监控和任务规划"专门为小模型设计"的坦诚态度,是这个项目最值得学习的工程判断。 很多开源 AI 项目默认假设你用的是顶级闭源模型,PentAGI 明确给出了"32B 以下模型必须开启监督机制"的具体建议和实测数据,这对希望在气隔离或内网环境里跑本地模型的企业用户是非常实用的指引。
对 Docker 访问方式的风险披露,展示了一个安全工具该有的自我审视。 一个渗透测试工具如果自己给 Agent 的沙箱逃逸留了后门,是很讽刺的事。PentAGI 没有回避"Bind-mount Docker socket 等于把主机权限交给自主 Agent"这个事实,而是直接给出推荐方案和不推荐方案的具体失败场景------这种透明度在安全工具里并不常见。
如果你所在的团队正在为渗透测试积累下的重复性工作寻找自动化方案,并且能接受"仅用于授权测试"这个前提,PentAGI 的架构设计值得认真研究一遍。
探索 PrimeSkills ------ 精选 AI agent 和技能工具,每一个都经过真实工作流验证。没有炒作,只有真正好用的工具。
访问我的个人主页,获取更多见解和有趣的产品。