PentAGI 手动安装后如何配置 LLM 与 Embedding 并通过 ctester、etester 验证?
2026/9/13 17:56:12 网站建设 项目流程

PentAGI 手动安装后如何配置 LLM 与 Embedding 并通过 ctester、etester 验证?

【免费下载链接】pentagiFully autonomous AI Agents system capable of performing complex penetration testing tasks项目地址: https://gitcode.com/GitHub_Trending/pe/pentagi

PentAGI 是一个全自动 AI 渗透测试系统,手动部署(Docker Compose 方式)之后,系统不会替你检查 LLM 与 Embedding 是否真正可用:.env里配了 key 不代表 agent 能正常发起工具调用,也不代表向量库能正常读写。本文覆盖从手动安装到用ctester验证 LLM 各 agent 类型、用etester验证 Embedding 与 pgvector 连接的一条完整路径。适用前提:机器已安装 Docker 和 Docker Compose(或 Podman),满足 2 vCPU、4 GB 内存、20 GB 空闲磁盘的最低要求,并且有外网访问以拉取镜像和调用 LLM 服务;至少拥有一个可认证的 LLM Provider(OpenAI、Anthropic、Gemini、AWS Bedrock 或本地 Ollama / OpenAI 兼容后端)——没有可用的 LLM Provider 时 PentAGI 无法运行。

手动安装:建立可用的 .env 与 docker-compose.yml

主路径是在一个 PentAGI 工作目录中操作。该目录里应有仓库根目录自带的 .env.example 和 docker-compose.yml。

  1. 建立工作目录并生成.env
mkdir pentagi && cd pentagi cp .env.example .env

如果手边没有源码目录,README.md 的 Manual Installation 一节给出的是直接从上游下载.env.exampledocker-compose.ymlcurl命令,可按文档中的地址下载后同样落盘为.envdocker-compose.yml

  1. .env中填写 LLM key 与安全相关变量。本阶段必做项:
  • 至少一个 LLM Provider 的凭据(见下一节);
  • COOKIE_SIGNING_SALT:改为随机值;
  • PENTAGI_POSTGRES_PASSWORDNEO4J_PASSWORD:改为非默认值;
  • 仅本机访问时,PUBLIC_URL保持默认的https://localhost:8443即可,PENTAGI_LISTEN_IP维持127.0.0.1默认行为。需要外部访问时再按 README 的 Accessing PentAGI from External Networks 一节配置PENTAGI_LISTEN_IP=0.0.0.0PUBLIC_URLCORS_ORIGINS
  1. 启动并确认容器就绪:
docker compose up -d docker compose logs -f pentagi

日志显示 backend 就绪后即可开始验证。此时先不要急着建 flow,Provider 是否可用要用下面的两个测试器确认。

配置 LLM Provider

.env中按你选用的 Provider 填写。三种典型配置:

OpenAI(主路径示例):

OPEN_AI_KEY=你的OpenAI密钥 OPEN_AI_SERVER_URL=https://api.openai.com/v1

Ollama 本地推理:

OLLAMA_SERVER_URL=http://localhost:11434 OLLAMA_SERVER_MODEL=llama3.1:8b-instruct-q8_0

本地 Ollama 若需要自动拉取模型或查询可用模型,文档给出的对应开关是OLLAMA_SERVER_PULL_MODELS_ENABLEDOLLAMA_SERVER_LOAD_MODELS_ENABLED(默认均为false);预置的 Ollama 配置可通过OLLAMA_SERVER_CONFIG_PATH=/opt/pentagi/conf/ollama-llama318b.provider.yml等路径指定。注意 Ollama 模型的上下文要求:PentAGI 按 110K context 配置运行,普通 Ollama 模型往往num_ctx不够,README 说明需要通过 Modelfile 在创建模型时设置num_ctx,创建后无法再改。

自定义 OpenAI 兼容端点(LLM_SERVER_*系列):

LLM_SERVER_URL=https://your-endpoint/v1 LLM_SERVER_KEY=你的key LLM_SERVER_MODEL= LLM_SERVER_CONFIG_PATH=/opt/pentagi/conf/custom-openai.provider.yml LLM_SERVER_LEGACY_REASONING=true

其中LLM_SERVER_CONFIG_PATH指向容器内的 agent 级模型配置,仓库中 examples/configs/custom-openai.provider.yml 与 examples/configs/ollama-llama318b.provider.yml 是可对照的样例;把LLM_SERVER_MODEL留空表示模型由配置文件指定。OpenAI 未认证组织账号需要LLM_SERVER_LEGACY_REASONING=true,文档强调这是 OpenAI 兼容所必需。README 同时注明:LLM_SERVER_*目前是实验性变量,未来会变化,现阶段用于指定自定义 LLM server 和一个供所有 agent 使用的模型。

其他 Provider(Anthropic、Gemini、Bedrock、DeepSeek、GLM、Kimi、Qwen、MiniMax 等)在 README.md 的 API Access 一节有各自的变量清单,配置方式与上述同构:填 key 加可选的 server URL。

用 ctester 验证 LLM

ctester直接驱动各 agent 类型跑真实测试(basic、advanced、json、knowledge 四个测试组),覆盖 13 种 agent(simple 到 pentester),并输出成功率与性能指标的报告。它比"打开一个 flow 看能不能跑"更早暴露工具调用问题。

主路径:在运行中的 pentagi 容器内执行(使用容器当前的环境变量):

# 全量测试,详细输出 docker exec -it pentagi /opt/pentagi/bin/ctester -verbose # 生成 Markdown 报告文件并取回宿主机 docker exec -it pentagi /opt/pentagi/bin/ctester -report /opt/pentagi/data/agent-test-report.md docker cp pentagi:/opt/pentagi/data/agent-test-report.md ./

可选:本地 Go 环境(已克隆仓库且安装 Go,在backend目录下):

cd backend go run cmd/ctester/*.go -verbose

结果怎么判断:

  • 报告按 agent 给出成功率,-verbose时每个 agent 的逐条测试细节都会打印,用于定位是哪类 agent 失败;
  • 只测部分 agent 或测试组时用-agents simple,primary_agent-groups basic,knowledge筛选;
  • 如果失败集中在工具调用(function-call)类测试,且你用的是 custom、llama.cpp、vLLM 或 SGLang 后端,文档给出的结论是:问题在该后端的 tool-call parser / chat template 配置,而不是 PentAGI 本身。常见症状包括Failed to parse tool call arguments as JSON、flow 跑几步后无响应、工具调用反复循环不收敛,以及一开始就报failed to select primary docker image via llm call(flow 的第一个动作就是用 LLM 工具调用选容器镜像)。排查时同时看docker compose logs -f pentagi和后端/代理自己的日志。

配置 Embedding Provider

PentAGI 用语义向量做知识存储、记忆与检索。相关变量:

EMBEDDING_PROVIDER=openai EMBEDDING_MODEL=text-embedding-3-small EMBEDDING_URL= EMBEDDING_KEY= EMBEDDING_BATCH_SIZE=100 EMBEDDING_MAX_TEXT_BYTES=8192 EMBEDDING_STRIP_NEW_LINES=true

要点(均来自 README 的 Embedding Configuration and Testing 一节):

  • 默认 Provider 是 OpenAI。当EMBEDDING_URLEMBEDDING_KEY都为空且EMBEDDING_PROVIDER=openai时,系统回退使用OPEN_AI_SERVER_URLOPEN_AI_KEY——所以只配了 LLM 的 OpenAI key 而没配 Embedding 两项时,Embedding 实际走的也是这套凭据,key 写错同样会拖垮 Embedding;
  • 支持的 Provider:openai、ollama、mistral、jina、huggingface、googleai、voyageai,且各有能力限制:Ollama 不支持EMBEDDING_KEY(本地模型);Mistral 不支持EMBEDDING_MODEL;HuggingFace 必须提供EMBEDDING_KEY;GoogleAI 不支持EMBEDDING_URL且必须有EMBEDDING_KEY
  • 任何暴露 OpenAI/embeddings接口的第三方都可以通过EMBEDDING_PROVIDER=openai加自定义EMBEDDING_URL接入;
  • 出站走代理时确认PROXY_URL;调用挂起而不是快速失败时,HTTP_CLIENT_TIMEOUT(默认 600 秒)决定 PentAGI 等多久放弃。

用 etester 验证 Embedding

etestertest子命令同时检查 Embedding Provider 和 pgvector 数据库连接,且不需要启动任何 flow:

# 主路径:运行中的容器内 docker exec -it pentagi /opt/pentagi/bin/etester test -verbose # 可选:本地 Go 环境(backend 目录) cd backend go run cmd/etester/main.go test -verbose # 查看向量库统计 docker exec -it pentagi /opt/pentagi/bin/etester info -verbose

文档给出的判定逻辑是:test失败即说明问题出在 Embedding 配置而非 flow 本身。test通过之后,如果想确认检索链路,可以补一条只读搜索(文档示例命令):

docker exec -it pentagi /opt/pentagi/bin/etester search -query "How to install PostgreSQL" -limit 5

失败现象、边界与后续操作

  • flow 启动后卡住不推进:文档指出的常见原因是 Embedding Provider 配置错误或不可达——flow 运行中每次存取向量记忆都要调 Embedding。先docker logs pentagi找认证错误(401/403)、模型不存在(404)、连接超时或 TLS 证书错误,再跑etester test -verbose复核。
  • 更换 Embedding Provider 或模型之后:必须重新生成向量,避免新旧向量混库:
# 重新计算全部文档的嵌入(推荐在换 Provider 后使用) docker exec -it pentagi /opt/pentagi/bin/etester reindex # 注意副作用:flush 会删除向量库中全部文档,仅在确认可接受数据丢失时执行 docker exec -it pentagi /opt/pentagi/bin/etester flush
  • ctester 与 etester 都要过才算完成首次配置:examples/guides/installation_configuration.md 的首次运行检查清单把"至少一个 LLM Provider 配置且通过 ctester"和"Embedding Provider 配置且通过 etester"列为启动后的必确认项;改动过任何 Provider 设置后要重跑这两个测试器。
  • 全部验证通过后的收尾:访问https://localhost:8443,用新安装默认账号admin@pentagi.com/admin登录,并在首次登录后立即修改密码。此后 Provider 的运行时配置(用户级 provider profile、prompt、API token)可在 Web 控制台 Settings 页管理,而 LLM/搜索凭据、Langfuse、Graphiti 等仍属于服务端.env配置,这一划分见 README 的 Current Web Settings Coverage 一节。

ctesteretesterftester三个工具的定位区别(模型能力、向量链路、单个系统函数)在 README 的 Testing LLM Agents / Embedding Configuration and Testing / Function Testing with ftester 三节有完整说明,需要调试单个 agent 行为时可继续深入。

【免费下载链接】pentagiFully autonomous AI Agents system capable of performing complex penetration testing tasks项目地址: https://gitcode.com/GitHub_Trending/pe/pentagi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询