在渗透测试领域,自动化工具的发展经历了从简单脚本到复杂框架的演进。然而,传统自动化工具往往受限于预定义的攻击路径,难以应对目标系统的复杂性和多样性。PentAGI(Penetration testing Artificial General Intelligence)的出现标志着渗透测试进入了一个新的阶段 —— 基于大语言模型的全自主智能体系统。该项目通过多智能体协调架构、知识图谱集成与智能上下文管理,为安全研究人员提供了一个强大的自动化渗透测试平台。本文将从系统架构、智能体设计、任务规划与上下文管理四个维度,深入解析 PentAGI 的工程实现。
容器化隔离架构与安全边界
PentAGI 的核心设计理念之一是安全隔离。所有渗透测试操作均在 Docker 沙箱环境中执行,确保测试过程不会影响宿主机或其他服务。这种架构设计不仅提供了安全保障,还为不同类型的任务提供了灵活的容器选择机制。
系统采用多层次的网络隔离策略,将核心服务、监控系统和分析平台分别部署在不同的 Docker 网络中。核心服务网络运行前端 UI(React + TypeScript)、后端 API(Go + GraphQL)、向量数据库(PostgreSQL + pgvector)和任务队列;监控系统网络承载 Grafana、VictoriaMetrics、Jaeger、Loki 和 OpenTelemetry;分析平台网络则运行 Langfuse、ClickHouse、Redis 和 MinIO。这种网络分离确保了即使在渗透测试过程中出现意外情况,也不会直接影响监控和日志系统的可用性。
在容器镜像选择方面,PentAGI 提供了智能的自动选择机制。系统会根据任务类型自动选择最合适的 Docker 镜像:通用任务使用 debian:latest,而渗透测试任务默认使用 vxcontrol/kali-linux。通过环境变量 DOCKER_DEFAULT_IMAGE 和 DOCKER_DEFAULT_IMAGE_FOR_PENTEST,运维人员可以约束系统只能使用经过验证的镜像列表,这对于企业环境中严格的安全合规要求尤为重要。
多智能体协调系统设计
PentAGI 采用了一种层次化的多智能体架构,将复杂的渗透测试任务分解为多个专门的子任务,由不同类型的智能体协同完成。这种设计借鉴了软件工程中的分治思想,使每个智能体专注于特定领域的能力提升,同时通过协调机制保证整体任务的一致性。
智能体类型与职责划分
系统的核心智能体包括四种类型,每种类型承担不同的角色。Orchestrator(编排器) 是整个系统的控制中心,负责接收用户请求、分解任务、管理智能体之间的通信以及整合最终结果。当用户发起一个渗透测试任务时,编排器首先查询向量存储获取类似任务的执行经验,然后从知识库加载相关领域知识,最后根据任务特点制定执行计划。
Researcher(研究员) 负责信息收集与分析阶段。在这一阶段,研究员智能体会对目标系统进行全面的信息收集,包括端口扫描、指纹识别、服务版本探测等。研究员会查询向量数据库中存储的历史案例和成功模式,结合知识图谱中的漏洞知识,生成目标系统的初步分析报告。研究成果会被存储到向量数据库中,供后续智能体参考使用。
Developer(开发者) 负责攻击规划阶段。基于研究员提供的分析结果,开发者智能体会评估可行的攻击向量,选择合适的漏洞利用工具,并制定详细的攻击步骤。这一阶段会大量依赖知识库中存储的工具使用模式和成功案例。开发者还需要考虑攻击的隐蔽性和持久性,制定在真实渗透测试场景中可行的方案。
Executor(执行器) 是最终执行攻击计划的智能体。它会按照开发者制定的计划,依次调用各种渗透测试工具,包括 nmap、metasploit、sqlmap 等专业工具。执行器在执行过程中会实时记录所有输出和结果,并将这些信息存储到向量数据库中,形成新的经验记忆。执行完成后,执行器会生成详细的漏洞报告和利用指南。
智能体交互流程
智能体之间的协作遵循严格的时序逻辑。编排器首先向研究员发送分析目标的请求,研究员完成分析后将结果返回给编排器;随后编排器将分析结果传递给开发者,开发者制定攻击计划后返回给编排器;最后编排器将攻击计划交给执行器执行,执行器完成后将执行状态报告给编排器。在这个过程中,每个智能体都可以独立访问向量数据库和知识库,获取完成任务所需的上下文信息。
这种架构设计使得系统具有良好的可扩展性。当需要添加新的智能体类型时,只需实现相应的接口并在编排器中注册即可。同样,对于特定领域的渗透测试需求,可以针对某类智能体进行专门的优化和定制。
知识图谱与记忆系统
PentAGI 的记忆系统是其区别于传统渗透测试工具的核心创新之一。传统的自动化工具每次执行都是独立的,没有从历史任务中学习的能力。而 PentAGI 通过向量数据库与知识图谱的结合,构建了一个具有长期记忆能力的智能系统。
三层记忆架构
系统的记忆功能分为三个层次:长期记忆、工作记忆和情景记忆。长期记忆存储在向量数据库和知识库中,包含领域专业知识、工具使用模式、成功攻击案例等相对稳定的信息。知识库中的信息具有高度的结构化特性,包含了工具能力描述、漏洞分类、攻击技术分类等静态知识。向量数据库则存储了非结构化的经验数据,如历史任务的执行记录、成功的攻击路径、遇到的问题及解决方案等。
工作记忆保存当前任务的执行状态,包括目标系统的上下文信息、当前活跃的目标列表、系统资源状态等。工作记忆是动态变化的,随着任务执行进展而不断更新。编排器在工作记忆中维护任务的分解结构,确保各个子任务之间的状态一致性。
情景记忆记录了智能体在执行任务过程中的具体行为和结果。每一次工具调用、每一次搜索操作、每一次分析决策都会被记录下来,形成完整的执行轨迹。这些情景记忆经过一段时间后会进行压缩处理,提取出有价值的模式并合并到长期记忆中,而低价值的细节信息则会被丢弃以节省存储空间。
Graphiti 知识图谱集成
PentAGI 可选地集成 Graphiti 知识图谱系统,基于 Neo4j 图数据库实现语义关系的存储和查询。Graphiti 能够自动从智能体的交互中提取实体和关系,构建目标系统、漏洞、工具、技术之间的复杂关联网络。
启用知识图谱后,系统会自动捕获以下信息:智能体的所有响应和推理过程、工具执行记录和结果、任务流中的上下文信息。这些信息被存储为图结构中的节点和边,节点代表实体(如目标主机、漏洞类型、工具名称),边代表关系(如「某主机存在某漏洞」「某工具可用于利用某漏洞」)。通过图查询语言,可以发现一些隐藏的关联,例如「过去在类似配置的系统上,哪些工具取得了成功」。
知识图谱的集成是可选功能,默认情况下处于关闭状态。启用需要在 .env 文件中配置 Graphiti 相关参数,并运行 docker-compose-graphiti.yml 扩展栈。由于 Graphiti 使用 OpenAI API 进行实体提取,需要额外配置 OPEN_AI_KEY。
上下文管理与链式摘要
在使用大语言模型进行长时序任务时,上下文窗口的限制是一个重要的工程挑战。PentAGI 通过智能的上下文管理机制来解决这一问题,确保即使面对复杂的渗透测试任务,智能体也能保持清晰的推理能力。
链式摘要算法
PentAGI 实现了名为「Chain Summarization」的上下文压缩算法。该算法将对话链转换为一种名为 ChainAST 的结构化表示,然后对不同部分应用不同的摘要策略。当系统判断当前上下文超过了预设的阈值时,会触发摘要过程:首先将对话链转换为 ChainAST 格式,然后对中间部分应用区域摘要,接着处理过大的消息对,最后应用问答对摘要来压缩重复的交互模式。摘要完成后,系统会重建优化后的对话链并评估其大小是否满足要求。
这种分层处理的方式保留了对话的关键信息,尤其是最近的交互内容(最后一部分消息保持完整),同时大幅减少了历史信息的冗余。系统区分了全局摘要器和助手摘要器两种配置:全局摘要器使用 50KB 的最后区域大小限制,而助手摘要器则预留了 75KB 的空间以保持更多对话上下文。
可配置参数与性能调优
对于复杂的渗透测试任务,上下文管理参数的合理配置至关重要。全局摘要器配置中,SUMMARIZER_PRESERVE_LAST 控制是否保留最后部分的消息完整(默认开启),SUMMARIZER_USE_QA 决定是否使用问答对摘要策略,SUMMARIZER_LAST_SEC_BYTES 设置最后区域的最大字节数(默认 51200,即 50KB),SUMMARIZER_MAX_BP_BYTES 设置单个消息对的最大字节数(默认 16384,即 16KB),SUMMARIZER_MAX_QA_SECTIONS 限制保留的问答对部分数量(默认 10)。
助手摘要器配置提供了更宽松的设置:ASSISTANT_SUMMARIZER_PRESERVE_LAST 默认为 true,ASSISTANT_SUMMARIZER_LAST_SEC_BYTES 为 76800(75KB),ASSISTANT_SUMMARIZER_MAX_QA_SECTIONS 为 7,ASSISTANT_SUMMARIZER_KEEP_QA_SECTIONS 为 3。这些参数的调整需要根据具体的 LLM 提供商上下文窗口大小和任务复杂度来决定。例如,当使用支持 110K 上下文的本地模型时,可以适当增加这些阈值以保留更多信息。
LLM 提供商集成与模型选择
PentAGI 的一个重要优势是对多种 LLM 提供商的支持,这使得用户可以根据性能、成本和隐私需求灵活选择合适的模型。
系统支持的 LLM 提供商包括:OpenAI(GPT-4.1 系列及 o 系列推理模型)、Anthropic(Claude 4 系列)、Google AI(Gemini 2.5 系列,支持 2M 上下文)、AWS Bedrock(Anthropic、Cohere、Meta、Amazon Nova 等多模型)、Ollama(本地推理)、Deep Infra、OpenRouter、DeepSeek 和 Moonshot。这种多提供商支持不仅提供了灵活性,还允许用户在不同任务类型中使用不同的模型。
对于渗透测试这类复杂推理任务,推理能力较强的模型通常表现更好。OpenAI 的 o 系列模型、Anthropic 的 Claude 4 系列和 Google 的 Gemini 2.5 系列都提供了出色的推理能力。对于成本敏感的场景,可以考虑使用较小的模型处理简单任务,仅在需要深度分析时切换到大型模型。Ollama 支持下的本地模型(如 Qwen3 32B 或 QwQ 32B)则提供了零成本推理的可能性,但需要强大的 GPU 资源支持。
部署实践与监控集成
PentAGI 提供了完整的容器化部署方案,通过 Docker Compose 可以快速启动整个系统。推荐的部署流程是使用交互式安装器,它会引导用户完成系统检查、LLM 提供商配置、搜索引擎配置和安全加固等步骤。
对于生产环境,官方建议采用双节点架构:将 PentAGI 核心服务部署在主服务器上,而将执行渗透测试的 Worker 节点部署在独立的服务器上。这种架构提供了更强的安全隔离:Worker 容器运行在专用硬件上,使用独立的网络边界,并通过 Docker-in-Docker 和 TLS 认证进行安全通信。
监控集成是 PentAGI 的另一个亮点。系统原生支持与 Grafana 和 Prometheus 的集成,通过 OpenTelemetry 进行统一的可观测性数据收集。运维人员可以实时监控智能体的决策过程、工具执行状态、API 调用延迟等关键指标。Langfuse 提供了 LLM 层面的可观测性,包括 token 使用量、推理延迟、提示词和响应追踪等功能,这对于优化模型选择和成本控制非常有价值。
PentAGI 代表了渗透测试自动化领域的重要进步。它将大语言模型的推理能力与专业的安全工具相结合,通过多智能体协作和知识图谱记忆,实现了真正意义上的自主渗透测试。虽然当前系统仍需要在授权范围内使用,但其架构设计和工程实践为安全工具的智能化发展提供了有价值的参考。随着 AI 能力的持续提升,这类系统有望在安全研究和漏洞发现中发挥越来越重要的作用。
资料来源:PentAGI GitHub 仓库(https://github.com/vxcontrol/pentagi)