Продакшн
Запуск PentAGI для команды — харденинг, изоляция, Podman и несколько инстансов.
Контрольный список
- Задайте все учётные данные, включая
COOKIE_, перед первым запуском — см. Безопасность. Установщик генерирует соль и пароли сервисов, но не пароли администраторов Langfuse и Grafana: задайтеSIGNING_ SALT LANGFUSE_иINIT_ USER_ PASSWORD passwordв шаблоне до первого запуска Langfuse и измените стандартныеadmin/adminGrafana после его первого запуска. На работающей установке измените пароли PostgreSQL и Neo4j внутри баз данных прежде, чем менять их в.env. - Используйте настоящий сертификат и стабильный
PUBLIC_.URL - За обратным прокси задайте
TRUSTED_как адрес или CIDR прокси. В противном случае все пользователи будут использовать один и тот же адрес прокси, и 30 неудачных попыток входа в течение 5 минут заблокируют доступ для всех на 15 минут.PROXIES - Перенесите выполнение tool callstool call — вызов инструментаЗапрос модели на выполнение одного из инструментов агента, например команды терминала или веб-поиска. на выделенный worker node.
- Включите наблюдаемость, чтобы отслеживать затраты и сбои.
- Разместите knowledge graphknowledge graph — граф знанийГраф хостов, сервисов, уязвимостей и доступа между ними, который PentAGI строит во время теста при включении этой опциональной функции. Он показывает связи между находками. и Langfuse в частной сети.
Podman
PentAGI работает как на Podman, так и на Docker. В безрутовом режиме сервису scraper требуется дополнительная настройка, поскольку контейнеры без прав root не могут привязываться к привилегированным портам; в README репозитория описаны варианты развёртывания с правами root и без них.
Несколько экземпляров (TENANT_ ID)
Оставьте TENANT_ пустым при установке единственного экземпляра и не меняйте это значение на уже развёрнутом: установка этого параметра позже перенесёт экземпляр в новую, пустую схему, которая начинается с учётной записи [email protected] по умолчанию, и его flowflow — флоуОдин запуск PentAGI: цель, задачи, созданные на основе ваших сообщений, и все действия агентов в процессе., пользователи и настройки больше не будут отображаться. Задайте это значение для добавляемых экземпляров, если несколько экземпляров PentAGI используют общие внешние ресурсы, такие как один сервер PostgreSQL, один worker nodeworker node — рабочий узелОтдельный сервер, который запускает контейнеры с инструментами агентов, чтобы выполняемые команды не затрагивали основной хост PentAGI., один экземпляр Neo4j или Langfuse:
| Область | Влияние TENANT_ |
|---|---|
| PostgreSQL | Работает в схеме acme вместо public |
| Контейнеры worker node | Именуются как acme-pentagi-terminal-<flow> |
| Knowledge graph | Идентификаторы групп принимают вид acme-flow-<id> |
| Аутентификация | Ключи cookie и токенов включают идентификатор tenanttenant — экземплярОдин экземпляр PentAGI. Когда несколько установок используют общие внешние ресурсы, например одну базу данных PostgreSQL, каждая добавляемая установка получает свой идентификатор экземпляра; в существующей установке это поле остаётся пустым. |
| Телеметрия | Данные Langfuse и OpenTelemetry помечаются идентификатором tenant |
Значение должно совпадать с ^[a-z][a-z0-9_. Ресурсы хоста не изолированы по пространствам имён. Экземплярам на одном сервере нужны собственные DATA_ и опубликованные порты. Экземплярам, чьи sandboxsandbox — песочницаИзолированный Docker-контейнер, в котором агенты запускают свои инструменты. В интерфейсе он отображается как Terminal. работают на одном Docker-хосте, на одном сервере или общем worker node, нужны собственные DOCKER_ и, если он задан, собственный DOCKER_; в противном случае их sandbox займут одни и те же порты, и flow не смогут запуститься. Каждое base задаёт диапазон из 2000 портов, по умолчанию начиная с 28000, поэтому используйте, например, 28000 и 30000.
Последнее обновление: