升级
将安装更新到新版本,以及从 2.1.0 迁移到 2.2.0 时需要更改的内容。
更新会替换 PentAGI 镜像,如果发布版本更改了 compose 文件,也会替换它们。您的 .env 和数据卷保持不变,数据库迁移会在 PentAGI 启动时运行。
开始之前
-
阅读您运行版本之后的每个版本的发布说明;自 2.1.0 起,它们包含升级说明。
-
备份数据库。安装程序和 PentAGI 都不会执行此操作,且回滚迁移会导致数据丢失。使用默认的
PENTAGI_和POSTGRES_ USER PENTAGI_:POSTGRES_ DB docker exec pgvector pg_dump -U postgres -Fc pentagidb > pentagi-backup.dump同时保留
.env和 compose 文件的副本:安装程序会在没有备份的情况下替换 compose 文件。 -
完成您不再需要的 flowflow — 流程PentAGI 的一次运行:一个目标、根据您的消息创建的任务,以及智能体在此过程中执行的所有操作。。仍在运行的 sandboxsandbox — 沙箱智能体运行其工具的隔离 Docker 容器。界面中将其显示为 Terminal。 会按其创建时的状态重用,并使用创建它的发布版本的设置。
-
如果从 2.1.0 升级,请在新版本启动之前,按照从 2.1.0 到 2.2.0中的说明对
.env及其旁边的文件进行更改。如果启用了 Google 或 GitHub 登录,请立即清空OAUTH_和GOOGLE_ CLIENT_ ID OAUTH_;该部分解释了原因。GITHUB_ CLIENT_ ID
Docker Compose
-
在您的
.env旁边下载新发布版本的 compose 文件:docker-compose.yml以及您运行的每个可选堆栈的文件。PentAGI 容器仅接收其 compose 文件中列出的变量,因此.env中的新设置在较旧的文件后面不会生效。cd ~/pentagi curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/main/docker-compose.yml # and the file of each optional stack you run, for example: curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/main/docker-compose-langfuse.yml -
拉取镜像并重启,使用您启动堆栈时使用的相同
-f文件。如果没有pull,up -d会保留主机上已有的镜像。docker compose pull && docker compose up -d -
刷新运行 flow 的 Docker 主机上的 sandbox 镜像,
docker compose pull不会执行此操作。之后创建的 flow 将使用它。docker pull vxcontrol/kali-linux
latest 镜像标签跟随主分支。要停留在一个发布版本上,请在 .env 中设置 PENTAGI_。
安装程序
- 从 快速入门 下载新发布版本的安装程序,并使用您的
.env运行它。2.1.0 安装程序无法自我更新。 - 要替换 compose 文件,请更改一个设置以使菜单中出现 Apply Changes,选择它,并在安装程序列出过时的文件时回答
y。 - 在维护菜单中,运行 Update PentAGI 以拉取新镜像,并在提供时运行 Update Worker Image。单独运行 Update PentAGI 会保留旧的 compose 文件。
从 2.1.0 到 2.2.0
文件
- compose 文件在其旁边挂载
example.bedrock.provider.yml。安装程序会创建它;在手动安装时,请自行创建它,空文件即可:touch example.bedrock.provider.yml。 - 如果您运行 Langfuse,请替换
docker-compose-langfuse.yml:2.1.0 文件命名了minio/镜像,该镜像已不再发布,因此minio docker compose pull会与之一起失败。如果您的.env设置了MINIO_,请删除该行。IMAGE=minio/ minio:… - 对于 knowledge graphknowledge graph — 知识图谱启用此可选功能后,PentAGI 在测试期间构建的主机、服务、漏洞及其之间访问关系的图谱。它展示了发现项之间的关联。,请将存储库中的
examples/放在neo4j ./— Graphiti 需要其 APOC plugin — 并查看 记忆与知识 了解模型预设。neo4j GRAPHITI_不再被读取。MODEL_ NAME - 首次启动时会运行八个数据库迁移。
docker compose logs pentagi会在完成后显示“Database schema updated successfully”。
登录和访问
- 所有人都需要重新登录:2.1.0 的会话将被拒绝。API 令牌继续有效,脚本使用
POST /注销。api/ v1/ auth/ logout - API 令牌在 REST
/、users /和roles /路由上会收到 403 错误:请从已登录的浏览器会话管理账户、角色和令牌。tokens - Google 和 GitHub 登录现在会将提供商验证的电子邮件登录到具有该地址的现有账户(包括本地账户),并具有该账户的角色。2.1.0 无法更改账户的电子邮件,因此如果启用了登录,请使用空的
OAUTH_和GOOGLE_ CLIENT_ ID OAUTH_进行升级,在 Settings → Account 下将GITHUB_ CLIENT_ ID [email protected]移动到您控制的地址,然后重新启用登录。安装程序的 Reset Admin Password 仅通过[email protected]查找管理员。 - 在反向代理后面,设置
TRUSTED_,否则所有用户共享代理的地址,一次失败的登录突发会将所有人锁定 15 分钟 — 参见 网络暴露。PROXIES
Sandboxes
- 使用
DOCKER_— 2.1.0INSIDE=true .env模板和安装程序默认值 — 2.1.0 将主机 Docker socket 挂载到每个 sandbox 中。2.2.0 仅从DOCKER_中的单独守护进程集为 agentagent — 智能体PentAGI 的智能体:一种拥有独立提示词、设置和工具的人工智能模型,在流程中执行特定类型的工作,例如测试、编写代码或搜索网络。 提供 Docker;如果没有它,他们什么也得不到,日志会说INSIDE_ HOST sandbox DISABLED。使用DOCKER_时,将INSIDE_ HOST DOCKER_设置为空,否则仍会挂载模板的SOCKET= /。参见 Worker node。var/ run/ docker.sock - 完成在 2.1.0 上启动的 flow:它们的 sandbox 会保留旧的 socket 挂载和功能,直到 flow 完成。
- 将
TENANT_留空:在现有安装上,它将 PentAGI 指向一个新的空模式。ID
模型和提示词
- 自定义 providerprovider — 提供商为 PentAGI 提供语言模型的服务或服务器,例如 OpenAI、Anthropic 或本地 Ollama。 需要
LLM_:使用空密钥会被禁用,因此对于没有身份验证的服务器,设置任何非空值。SERVER_ KEY LLM_已被移除。自定义 provider 发送SERVER_ LEGACY_ REASONING reasoning_并将effort reasoning.max_预算转换为努力级别;在 Kimi K2、5.2 之前的 GLM 和 MiniMax M 模型上,预算现在会导致调用失败,因此请从这些 agent 中移除它。tokens - 在 provider 配置文件中,留下
max_、tokens temperature、top_或p n为空的 agent 条目现在会获取 provider 类型的默认值,而不是发送空值。 - 除 Bedrock 外,每个 provider 的内置默认模型都已更改;保存在 Settings → Providers 中的 provider 保留其模型。镜像中捆绑的五个配置文件更改了模型 —
openrouter、deepinfra、ollama-cloud、moonshot和deepseek。如果LLM_或SERVER_ CONFIG_ PATH OLLAMA_在SERVER_ CONFIG_ PATH /下指向其中之一,请在主机上保留 2.1.0 文件,并将其作为自定义或 Ollama 配置挂载。opt/ pentagi/ conf/ - 在 OpenAI 以外的服务器上使用
EMBEDDING_时,设置URL EMBEDDING_:KEY OPEN_不再发送到那里。AI_ KEY - Agent 通过一个
web_tooltool — 工具智能体执行操作所用的手段:终端、隔离浏览器或网络搜索等内置功能,或沙箱中的程序,例如 nmap、metasploit 或 sqlmap。 进行搜索。带有search {{.GoogleToolName}}和其他每个引擎变量的自定义提示词将被忽略,并在日志中发出警告,直到它们使用{{.WebSearchToolName}};基于新的默认值重新制定自定义 searcher 和 pentester 提示词。
其他更改
- 在启动后两分钟内以及之后每三小时,PentAGI 会向
update.pentagi.com报告其版本和安装摘要;更新检查 列出了它发送的内容,UPDATE_将其关闭。CHECK_ INTERVAL=0 - 除非设置了
PPROF_,否则 profiler 不再监听端口 7777。ADDR - 新的可选设置包括带有
LLM_的 provider 故障转移、用于 多个实例 的FALLBACK_ PROVIDER DOCKER_、PORTS_ BASE DOCKER_和IMAGE_ SELECTION_ MODE DOCKER_、内部 search enginesearch engine — 搜索引擎智能体用于收集最新信息的网络搜索服务,例如 DuckDuckGo、Google 或 Tavily。ALLOWED_ IMAGES WEB_,以及 Mistral、xAI、MiniMax 和 Firecrawl 密钥。SEARCH_ INTERNAL_ ENABLED
备份和回滚
PentAGI 永远不会反向运行迁移,手动运行它们会删除数据,因此回到 2.1.0 的方法是使用备份。停止使用数据库的服务,重新创建它并恢复转储:
docker compose stop pentagi pgexporter
docker exec pgvector dropdb -U postgres pentagidb
docker exec pgvector createdb -U postgres pentagidb
docker exec -i pgvector pg_restore -U postgres -d pentagidb < pentagi-backup.dump然后恢复保存的 .env 和 compose 文件,设置 PENTAGI_ 并启动栈。保留新的 docker-compose-langfuse.yml:2.1.0 文件中的 MinIO 镜像已无法拉取。
最后更新于