本地模型
在由您自有硬件提供的模型上运行 PentAGI,确保 prompt、tool 输出和 finding 均保留在您的服务器上。
PentAGI 可以完全在您自行托管的模型上运行。此时,agentagent — 智能体PentAGI 的智能体:一种拥有独立提示词、设置和工具的人工智能模型,在流程中执行特定类型的工作,例如测试、编写代码或搜索网络。 的提示词、它们读取的 tooltool — 工具智能体执行操作所用的手段:终端、隔离浏览器或网络搜索等内置功能,或沙箱中的程序,例如 nmap、metasploit 或 sqlmap。 输出以及它们报告的 findingfinding — 发现项测试中发现并记录的内容,例如主机、正在运行的服务或漏洞。 都会保留在您的服务器上,而一个长 flowflow — 流程PentAGI 的一次运行:一个目标、根据您的消息创建的任务,以及智能体在此过程中执行的所有操作。 消耗的是 GPU 时间而非 token。支持两类 model server:Ollama(设置最快)以及 vLLM 或任何其他具有 OpenAI 兼容 API 的 server(吞吐量更高)。
Ollama
在 .env 中将 PentAGI 指向 Ollama server:
OLLAMA_SERVER_URL=http://ollama-server:11434
OLLAMA_SERVER_CONFIG_PATH=/opt/pentagi/conf/ollama-qwen332b-fp16-tc.provider.yml
OLLAMA_SERVER_PULL_MODELS_ENABLED=false # true downloads missing models at startup
OLLAMA_SERVER_LOAD_MODELS_ENABLED=false # true lists the models the server already has配置文件为每个 agent typeagent type — 智能体类型智能体扮演的角色,例如 pentester、coder 或 searcher。模型设置按智能体类型进行选择。 分配一个模型及其参数;如果没有配置文件,OLLAMA_ 会设置默认模型。镜像在 / 中提供了现成的配置,其中包括 ollama-qwen332b-fp16-tc.provider.yml 和 ollama-qwq32b-fp16-tc.provider.yml。
Ollama 的默认上下文窗口远小于 flow 所需的大小:agent 通常使用约 64K token,而 PentAGI 设置为 110K。Ollama 仅在创建模型时设置上下文大小,因此请从 Modelfile 构建变体:
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.1ollama create qwen3:32b-fp16-tc -f ModelfilevLLM 和其他 OpenAI 兼容的 server
vLLM、LocalAI 以及其他具有 OpenAI 兼容 API 的 server 作为 custom provider 连接:
LLM_SERVER_URL=http://vllm-server:8000/v1
LLM_SERVER_KEY=local # any non-empty value when the server has no key
LLM_SERVER_MODEL=Qwen/Qwen3.6-27B-FP8
LLM_SERVER_CONFIG_PATH=/opt/pentagi/conf/vllm-qwen3.6-27b-fp8.provider.yml镜像提供了 vLLM 上多个 Qwen 版本的配置;-no-think 变体会关闭 reasoning。agent 通过 tool calltool call — 工具调用模型发出的运行智能体某个工具的请求,例如终端命令或网络搜索。 工作,因此请使用为您的模型推荐的 tool-call parser 和 chat templatetemplate — 模板PentAGI 可重复使用的已保存文本。保存在 Templates 中的模板会填入新流程的第一条消息;在 Enterprise 中,报告模板规定报告的章节及其顺序,因此不同的模板为客户、工程师和管理层生成不同的文档。 启动 server:如果 parser 错误,tool call 参数会损坏,导致 flow 在几步后停止。
选择模型
- 在配置文件中,将您最强的模型分配给
primary_、agent pentester和adviser;较轻的模型可以用于searcher、enricher和摘要。 - 对于参数量低于 32B 的模型,请启用 execution monitoring and task planning。这会使结果质量大致翻倍,但代价是 token 和时间增加两到三倍。
- 规划内存:例如,FP16 格式的 QwQ 32B 需要约 71 GB 的 GPU 内存。
保持其余栈本地化
| 部分 | 设置 |
|---|---|
| Embeddings | EMBEDDING_ 配合 EMBEDDING_ 中的 embedding model 使用相同的 Ollama server;本地 OpenAI 兼容 server 可与 EMBEDDING_ 配合使用,其地址在 EMBEDDING_ 中,且 EMBEDDING_ 为非空值 |
| Web search | Search 会将 agent 的查询发送到互联网。默认启用 DuckDuckGo;使用 DUCKDUCKGO_ 将其关闭,并仅保留您接受的 engines,例如您自己的 SearXNG |
| Knowledge graphknowledge graph — 知识图谱启用此可选功能后,PentAGI 在测试期间构建的主机、服务、漏洞及其之间访问关系的图谱。它展示了发现项之间的关联。 | 默认关闭。启用时,除非 GRAPHITI_ 将其发送到 LLM_ 中的 server(随后也会使用 EMBEDDING_ 中命名的 model,若该值为空则使用 text-embedding-3-small,向该 server 请求 embeddings),否则 Graphiti 会调用 OpenAI。如果该 server 不提供该 model,请设置 GRAPHITI_:Graphiti 将采用 PentAGI 所用的值 EMBEDDING_、EMBEDDING_ 和 EMBEDDING_,且这些值必须指向一个 OpenAI-compatible server — 请参阅 Knowledge graph |
| Observability | 捆绑的 Langfuse 和 Grafana 栈在您的主机上运行 — 请参阅 Observability |
| Update check | UPDATE_ 可将其关闭;Security 列出了它发送的内容 |
| Images | Docker 会使用其自身设置从 Docker Hub 拉取 sandboxsandbox — 沙箱智能体运行其工具的隔离 Docker 容器。界面中将其显示为 Terminal。 镜像;在封闭网络中,请将 Docker daemon 指向 registry mirror |
最后更新于