跳到主要内容
PentAGI
部署

本地模型

在由您自有硬件提供的模型上运行 PentAGI,确保 prompt、tool 输出和 finding 均保留在您的服务器上。

PentAGI 可以完全在您自行托管的模型上运行。此时,agent 的提示词、它们读取的 tool 输出以及它们报告的 finding 都会保留在您的服务器上,而一个长 flow 消耗的是 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 type 分配一个模型及其参数;如果没有配置文件,OLLAMA_SERVER_MODEL 会设置默认模型。镜像在 /opt/pentagi/conf/ 中提供了现成的配置,其中包括 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.1
ollama create qwen3:32b-fp16-tc -f Modelfile

vLLM 和其他 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 call 工作,因此请使用为您的模型推荐的 tool-call parser 和 chat template 启动 server:如果 parser 错误,tool call 参数会损坏,导致 flow 在几步后停止。

选择模型

  • 在配置文件中,将您最强的模型分配给 primary_agent、pentester 和 adviser;较轻的模型可以用于 searcher、enricher 和摘要。
  • 对于参数量低于 32B 的模型,请启用 execution monitoring and task planning。这会使结果质量大致翻倍,但代价是 token 和时间增加两到三倍。
  • 规划内存:例如,FP16 格式的 QwQ 32B 需要约 71 GB 的 GPU 内存。

保持其余栈本地化

部分设置
EmbeddingsEMBEDDING_PROVIDER=ollama 配合 EMBEDDING_MODEL 中的 embedding model 使用相同的 Ollama server;本地 OpenAI 兼容 server 可与 EMBEDDING_PROVIDER=openai 配合使用,其地址在 EMBEDDING_URL 中,且 EMBEDDING_KEY 为非空值
Web searchSearch 会将 agent 的查询发送到互联网。默认启用 DuckDuckGo;使用 DUCKDUCKGO_ENABLED=false 将其关闭,并仅保留您接受的 engines,例如您自己的 SearXNG
Knowledge graph默认关闭。启用时,除非 GRAPHITI_LLM_CLIENT_TYPE=custom 将其发送到 LLM_SERVER_URL 中的 server(随后也会使用 EMBEDDING_MODEL 中命名的 model,若该值为空则使用 text-embedding-3-small,向该 server 请求 embeddings),否则 Graphiti 会调用 OpenAI。如果该 server 不提供该 model,请设置 GRAPHITI_SEPARATE_EMBEDDING=true:Graphiti 将采用 PentAGI 所用的值 EMBEDDING_URL、EMBEDDING_KEY 和 EMBEDDING_MODEL,且这些值必须指向一个 OpenAI-compatible server — 请参阅 Knowledge graph
Observability捆绑的 Langfuse 和 Grafana 栈在您的主机上运行 — 请参阅 Observability
Update checkUPDATE_CHECK_INTERVAL=0 可将其关闭;Security 列出了它发送的内容
ImagesDocker 会使用其自身设置从 Docker Hub 拉取 sandbox 镜像;在封闭网络中,请将 Docker daemon 指向 registry mirror

最后更新于