PentAGI 手动安装后如何配置 LLM 与 Embedding 并通过 ctester、etester 验证?
PentAGI 手动安装后如何配置 LLM 与 Embedding 并通过 ctester、etester 验证【免费下载链接】pentagiFully autonomous AI Agents system capable of performing complex penetration testing tasks项目地址: https://gitcode.com/GitHub_Trending/pe/pentagiPentAGI 是一个全自动 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 ProviderOpenAI、Anthropic、Gemini、AWS Bedrock 或本地 Ollama / OpenAI 兼容后端——没有可用的 LLM Provider 时 PentAGI 无法运行。手动安装建立可用的 .env 与 docker-compose.yml主路径是在一个 PentAGI 工作目录中操作。该目录里应有仓库根目录自带的 .env.example 和 docker-compose.yml。建立工作目录并生成.envmkdir pentagi cd pentagi cp .env.example .env如果手边没有源码目录README.md 的 Manual Installation 一节给出的是直接从上游下载.env.example和docker-compose.yml的curl命令可按文档中的地址下载后同样落盘为.env和docker-compose.yml。在.env中填写 LLM key 与安全相关变量。本阶段必做项至少一个 LLM Provider 的凭据见下一节COOKIE_SIGNING_SALT改为随机值PENTAGI_POSTGRES_PASSWORD、NEO4J_PASSWORD改为非默认值仅本机访问时PUBLIC_URL保持默认的https://localhost:8443即可PENTAGI_LISTEN_IP维持127.0.0.1默认行为。需要外部访问时再按 README 的 Accessing PentAGI from External Networks 一节配置PENTAGI_LISTEN_IP0.0.0.0、PUBLIC_URL与CORS_ORIGINS。启动并确认容器就绪docker compose up -d docker compose logs -f pentagi日志显示 backend 就绪后即可开始验证。此时先不要急着建 flowProvider 是否可用要用下面的两个测试器确认。配置 LLM Provider.env中按你选用的 Provider 填写。三种典型配置OpenAI主路径示例OPEN_AI_KEY你的OpenAI密钥 OPEN_AI_SERVER_URLhttps://api.openai.com/v1Ollama 本地推理OLLAMA_SERVER_URLhttp://localhost:11434 OLLAMA_SERVER_MODELllama3.1:8b-instruct-q8_0本地 Ollama 若需要自动拉取模型或查询可用模型文档给出的对应开关是OLLAMA_SERVER_PULL_MODELS_ENABLED与OLLAMA_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_URLhttps://your-endpoint/v1 LLM_SERVER_KEY你的key LLM_SERVER_MODEL LLM_SERVER_CONFIG_PATH/opt/pentagi/conf/custom-openai.provider.yml LLM_SERVER_LEGACY_REASONINGtrue其中LLM_SERVER_CONFIG_PATH指向容器内的 agent 级模型配置仓库中 examples/configs/custom-openai.provider.yml 与 examples/configs/ollama-llama318b.provider.yml 是可对照的样例把LLM_SERVER_MODEL留空表示模型由配置文件指定。OpenAI 未认证组织账号需要LLM_SERVER_LEGACY_REASONINGtrue文档强调这是 OpenAI 兼容所必需。README 同时注明LLM_SERVER_*目前是实验性变量未来会变化现阶段用于指定自定义 LLM server 和一个供所有 agent 使用的模型。其他 ProviderAnthropic、Gemini、Bedrock、DeepSeek、GLM、Kimi、Qwen、MiniMax 等在 README.md 的 API Access 一节有各自的变量清单配置方式与上述同构填 key 加可选的 server URL。用 ctester 验证 LLMctester直接驱动各 agent 类型跑真实测试basic、advanced、json、knowledge 四个测试组覆盖 13 种 agentsimple 到 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 callflow 的第一个动作就是用 LLM 工具调用选容器镜像。排查时同时看docker compose logs -f pentagi和后端/代理自己的日志。配置 Embedding ProviderPentAGI 用语义向量做知识存储、记忆与检索。相关变量EMBEDDING_PROVIDERopenai EMBEDDING_MODELtext-embedding-3-small EMBEDDING_URL EMBEDDING_KEY EMBEDDING_BATCH_SIZE100 EMBEDDING_MAX_TEXT_BYTES8192 EMBEDDING_STRIP_NEW_LINEStrue要点均来自 README 的 Embedding Configuration and Testing 一节默认 Provider 是 OpenAI。当EMBEDDING_URL和EMBEDDING_KEY都为空且EMBEDDING_PROVIDERopenai时系统回退使用OPEN_AI_SERVER_URL与OPEN_AI_KEY——所以只配了 LLM 的 OpenAI key 而没配 Embedding 两项时Embedding 实际走的也是这套凭据key 写错同样会拖垮 Embedding支持的 Provideropenai、ollama、mistral、jina、huggingface、googleai、voyageai且各有能力限制Ollama 不支持EMBEDDING_KEY本地模型Mistral 不支持EMBEDDING_MODELHuggingFace 必须提供EMBEDDING_KEYGoogleAI 不支持EMBEDDING_URL且必须有EMBEDDING_KEY任何暴露 OpenAI/embeddings接口的第三方都可以通过EMBEDDING_PROVIDERopenai加自定义EMBEDDING_URL接入出站走代理时确认PROXY_URL调用挂起而不是快速失败时HTTP_CLIENT_TIMEOUT默认 600 秒决定 PentAGI 等多久放弃。用 etester 验证 Embeddingetester的test子命令同时检查 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 flushctester 与 etester 都要过才算完成首次配置examples/guides/installation_configuration.md 的首次运行检查清单把至少一个 LLM Provider 配置且通过 ctester和Embedding Provider 配置且通过 etester列为启动后的必确认项改动过任何 Provider 设置后要重跑这两个测试器。全部验证通过后的收尾访问https://localhost:8443用新安装默认账号adminpentagi.com/admin登录并在首次登录后立即修改密码。此后 Provider 的运行时配置用户级 provider profile、prompt、API token可在 Web 控制台 Settings 页管理而 LLM/搜索凭据、Langfuse、Graphiti 等仍属于服务端.env配置这一划分见 README 的 Current Web Settings Coverage 一节。ctester、etester、ftester三个工具的定位区别模型能力、向量链路、单个系统函数在 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),仅供参考

相关新闻

Floyd 多源最短路——O(n³) 也能优雅:三重循环里藏着动态规划(LeetCode 1334 + 1462)

Floyd 多源最短路——O(n³) 也能优雅:三重循环里藏着动态规划(LeetCode 1334 + 1462)

引子:Dijkstra 回答不了一个问题Dijkstra 是单源算法:给我一个起点,我告诉你到所有点的最短距离。但很多问题问的是**"所有点两两之间"——比如 LeetCode 1334:"哪些城市在阈值距离内可达的邻居最少?&q…

2026/9/13 17:56:22 阅读更多 →
Linux s390 vfio_ap 设备驱动锁机制详解:矩阵设备、KVM 与 PQAP Hook 四把锁的职责与加锁顺序

Linux s390 vfio_ap 设备驱动锁机制详解:矩阵设备、KVM 与 PQAP Hook 四把锁的职责与加锁顺序

Linux s390 vfio_ap 设备驱动锁机制详解:矩阵设备、KVM 与 PQAP Hook 四把锁的职责与加锁顺序 【免费下载链接】linux Linux kernel source tree 项目地址: https://gitcode.com/GitHub_Trending/li/linux 导读 本文深入剖析 Linux 内核 s390 架构下 vfio_a…

2026/9/13 17:56:22 阅读更多 →
STM32G431 BLDC六步换相实战:从Hall信号到PWM波形全链路解析

STM32G431 BLDC六步换相实战:从Hall信号到PWM波形全链路解析

1. 这不是“抄代码”,而是让小白真正看懂BLDC换相逻辑的起点你搜“BLDC 6步换相”时,刷出来的要么是晦涩的数学推导,要么是直接甩出一串HAL库函数调用——连main函数里该先初始化哪个外设都得靠猜;你点开CubeMX教程,满…

2026/9/13 17:55:22 阅读更多 →

最新新闻

可编辑生成结果:AI 产出与人工介入协同交互

可编辑生成结果:AI 产出与人工介入协同交互

可编辑生成结果:AI 产出与人工介入协同交互在生成式 AI 工具进入真实企业业务流时,一个普遍的误区是认为“大模型应该一键完成 100% 的工作”。 但在真实的专业创作、代码编写或合同起草场景中,无论模型多么强大,它生成的初稿往往…

2026/9/13 18:52:47 阅读更多 →
UnoCSS Extractors 深入解析:从源码中精确提取工具类用量的配置与原理

UnoCSS Extractors 深入解析:从源码中精确提取工具类用量的配置与原理

UnoCSS Extractors 深入解析:从源码中精确提取工具类用量的配置与原理 【免费下载链接】unocss The instant on-demand atomic CSS engine. 项目地址: https://gitcode.com/GitHub_Trending/un/unocss Extractors(提取器)是 UnoCSS 引…

2026/9/13 18:52:47 阅读更多 →
业务大屏中智能异常指标的告警视觉引导

业务大屏中智能异常指标的告警视觉引导

业务大屏中智能异常指标的告警视觉引导在智慧交通、能源电网与金融风控等数据密集型大屏中,成百上千个指标以秒级频率疯狂刷新。当某个边缘节点的网络丢包率突增、或者核心交易额跌破安全阈值时,大屏的核心职责是在 1 秒钟内让值班调度员的视线精准锁定故…

2026/9/13 18:52:47 阅读更多 →
SpacetimeDB CLI 完全指南:从项目初始化、模块构建发布到数据库运维

SpacetimeDB CLI 完全指南:从项目初始化、模块构建发布到数据库运维

SpacetimeDB CLI 完全指南:从项目初始化、模块构建发布到数据库运维 【免费下载链接】SpacetimeDB Development at the speed of light 项目地址: https://gitcode.com/GitHub_Trending/sp/SpacetimeDB 本文以仓库中的 skills/cli/SKILL.md 为骨架&#xff0c…

2026/9/13 18:52:47 阅读更多 →
Arduino ESP32 电容触摸传感器 API 完全指南:touchRead、触摸中断与深度睡眠唤醒

Arduino ESP32 电容触摸传感器 API 完全指南:touchRead、触摸中断与深度睡眠唤醒

Arduino ESP32 电容触摸传感器 API 完全指南:touchRead、触摸中断与深度睡眠唤醒 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 本指南以 Arduino-ESP32 核心…

2026/9/13 18:52:47 阅读更多 →
计量芯片PCB布局走线错误全解析:提升采样精度的关键设计

计量芯片PCB布局走线错误全解析:提升采样精度的关键设计

干计量、做仪器仪表的朋友应该都有过这种经历:同一批板子,贴片回来后校准,发现一部分精度很好,另一部分偏得离谱,排查芯片、电阻、程序都没问题,最后把PCB翻来覆去比对,才发现是走线差异把性能拉…

2026/9/13 18:51:47 阅读更多 →

日新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/13 16:51:11 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/12 18:29:34 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/12 19:02:44 阅读更多 →