在网络安全领域,渗透测试一直是保障系统安全的关键环节。传统的人工渗透测试依赖安全专家的经验与手动操作,效率低且成本高昂。随着大语言模型的快速发展,AI 驱动的自动化渗透测试逐渐成为可能。PentAGI(Penetration testing Artificial General Intelligence)正是这一领域的代表性开源项目,它通过多代理协作架构实现了完整的自动化渗透测试流程。本文从工程实现角度,深入解析其核心架构设计。
多代理协调系统的工程设计
PentAGI 的核心在于其多代理协作架构。系统采用四层代理模型:Orchestrator(编排器)负责整体流程控制,Researcher(研究员)执行目标分析与情报收集,Developer(开发者)制定攻击计划,Executor(执行器)负责具体工具调用与结果验证。这种分工模式体现了软件工程中的单一职责原则,每个代理专注于特定任务,通过结构化通信协议协调工作。
从源码实现来看,代理间的交互采用任务队列(Task Queue)进行异步处理。Flow(工作流)包含多个 Task(任务),每个 Task 又可分解为 SubTask(子任务),最终由具体 Action(动作)执行。这种层级结构确保了复杂渗透测试任务的可管理性与可追溯性。值得注意的是,系统支持 Bearer token 认证的 REST 与 GraphQL API,便于与企业现有安全工具链集成。
记忆系统的三层架构
自动化渗透测试需要处理大量历史数据与上下文信息,PentAGI 采用了精心设计的记忆系统架构。长期记忆由 PostgreSQL 与 pgvector 向量存储实现,用于存储研究结果与成功案例;工作记忆维护当前任务的上下文与目标状态;情景记忆记录历史动作与执行结果,供后续类似任务参考。
知识图谱集成是另一亮点。系统通过 Graphiti(基于 Neo4j)实现语义关系追踪,将工具、目标、漏洞、攻击技术等实体建立关联图谱。这使得系统能够从历史渗透测试中学习,记住哪些工具对特定类型目标最有效,从而在后续测试中做出更智能的决策。
上下文管理的链式摘要技术
长上下文处理是 LLM 应用的工程难题。PentAGI 实现了链式摘要(Chain Summarization)机制来控制 token 消耗。系统将对话链转换为 ChainAST 结构,通过分段摘要策略管理对话历史。关键配置参数包括:保留最后部分(Preserve Last)设置为真,最后部分最大字节数为 51200(50KB),单对消息体最大字节数为 16384(16KB),最多保留 10 个问答对 section。
对于 Assistant 实例,系统提供了更宽松的配置:最后部分最大 76800 字节(75KB),最多保留 7 个 QA sections,保留最近的 3 个 QA sections 不做摘要。这种差异化配置确保了不同代理角色可根据任务复杂度灵活调整上下文窗口。
Docker 沙箱的安全约束
自动化渗透测试本质上是在目标系统上执行攻击性操作,安全隔离至关重要。PentAGI 将所有操作限制在 Docker 沙箱环境中,通过容器隔离确保系统安全。生产环境推荐采用双节点架构:主节点负责协调与控制,工作节点专门运行渗透测试工具,两者通过网络隔离防止攻击性操作影响主系统。
系统还提供了 Docker 镜像约束机制。通过 DOCKER_DEFAULT_IMAGE 和 DOCKER_DEFAULT_IMAGE_FOR_PENTEST 环境变量,管理员可以限制代理只能使用预验证的镜像,防止恶意或不稳定镜像注入。默认配置下,一般任务使用 debian:latest,渗透测试任务使用 vxcontrol/kali-linux。
可观测性栈的完整工程配置
企业级系统离不开完善的监控与调试能力。PentAGI 集成了完整的可观测性栈:OpenTelemetry 负责统一数据采集,VictoriaMetrics 存储时序指标,Jaeger 提供分布式追踪,Loki 聚合日志数据,Grafana 呈现可视化仪表板。这套架构使得运维人员能够实时监控系统状态,快速定位代理行为异常或任务执行失败的原因。
LLM 可观测性同样得到重视。Langfuse 与 ClickHouse 的组合提供了 AI 代理的调用追踪、成本分析与性能监控。系统支持 12 种代理类型的精细测试,包括 simple(基础完成)、primary_agent(主推理代理)、pentester(渗透测试专用代理)等,通过 ctester 工具可以验证各代理的能力表现。
生产部署的关键考量
部署 PentAGI 需要注意几个工程要点。首先是 LLM 提供商的选择,系统支持 OpenAI、Anthropic、AWS Bedrock、Ollama(本地推理)等多种方案,需要根据预算、隐私要求与可用性进行权衡。其次是速率限制配置,尤其是 AWS Bedrock 的默认配额较为保守,需要申请配额提升或切换到其他提供商。
内存与存储规划同样重要。系统要求最低 2 vCPU、4GB RAM、20GB 磁盘空间,但实际需求取决于目标复杂度与测试深度。向量数据库需要定期维护,etester 工具提供了 flush(清空)、reindex(重索引)、search(搜索)等管理功能。
综上所述,PentAGI 展示了 AI 自动化渗透测试的工程实现范式。其多代理协作、记忆系统、上下文管理、安全隔离与可观测性栈的设计,为构建生产级安全测试系统提供了有价值的参考。然而,作为新兴项目,其长期稳定性与大规模部署效果仍需实践检验。