pi-dispatch: запуск кодирующего агента с изоляцией и контролем расходов
pi-dispatch — это инструмент для запуска кодирующего агента pi как самостоятеьного сервиса с полной изолированностью и контролем расходов. Он позволяет автоматизировать выполнение задач из cron, CLI или событий GitHub, GitLab, Forgejo и Azure DevOps, при этом каждый процесс выполняется в защищённом контейнере Docker или Podman.
Основная задача pi-dispatch — устранить недостаток в pi, который использует лишь базовые возможности без очередей, контроля расходов и системы разрешений. Этот проект добавляет необходимые слои управления, обеспечивая безопасность и предсказуемость работы агента. Он пригодится разработчикам, которые хотят запустить автоматизацию задач, не рискуя ресурсами системы и не тратя лишние деньги.
Проект написан на Go и запускается в среде Docker или Podman. Учти, что pi-dispatch фокусируется на улучшении защиты и контроля, но требует предварительной настройки и понимания особенностей работы с pi. Ссылка на сам pi доступна в README.
Проект pi-dispatch предоставляет возможность автоматизировать работу с репозиториями, используя интеллектуального агента программирования pi. Он позволяет запускать агента как фоновый сервис на своем компьютере или сервере, обеспечивая безопасность, так как вам не нужно предоставлять доступ к своей системе.
Агент pi выполняет задачи на основе заданного расписания или по триггерам, таким как создание новых запросов на слияние, комментарии или метки в системе контроля версий (GitHub, GitLab и др.). Каждая задача выполняется в изолированном контейнере, который после завершения работы удаляется. Pi-dispatch добавляет функциональность для управления очередями задач, лимитами расходов и системой разрешений.
Когда стоит использовать pi-dispatch
Этот проект будет полезен, если ты хочешь автоматизировать периодические или триггерные задачи без непосредственного контроля, например:
- Ежедневная проверка новых задач, обновление отчетов или очистка списка задач;
- Автоматическое создание исправлений по метке `ai`;
- Ответы на комментарии в PR, которые были инициированы агентом;
- Организация работы с несколькими репозиториями с общим бюджетом и панелью управления.
Установка и запуск
Для работы pi-dispatch необходимы следующие компоненты:
- Docker или Podman;
- Node.js версии 22.19 или новее;
- API-ключ для провайдера модели, который будет использоваться агентом в каждой задаче;
- Система, которая может постоянно запускать контейнеры.
Установить pi-dispatch можно, если у тебя уже настроен pi:
pi install npm:@edgehero/pi-dispatch-admin # затем внутри pi: /dispatch
Это запустит мастер настройки, который создаст папку развертывания, установит pi-dispatch, запустит его и предложит настройки.
Если ты хочешь запустить его без использования pi, можно использовать следующие команды:
mkdir my-dispatch && cd my-dispatch
npx @edgehero/pi-dispatch up
npx @edgehero/pi-dispatch worker
npx @edgehero/pi-dispatch run ./my-project --task "add type hints" --flow tidy
Что умеет pi-dispatch
Основные возможности проекта включают:
- Задачи выполняются в изолированных контейнерах, что обеспечивает безопасность;
- Установка лимитов на расходы на каждую задачу;
- Гибкая конфигурация изображений задач, включая возможность добавления своей цепочки инструментов;
- Поддержка нескольких типов триггеров для запуска задач.
Ограничения
Существует несколько ограничений, о которых стоит помнить:
- Работающая версия должна находиться на машине с доступом к Docker или Podman;
- Обработка не поддерживается на серверных или приложенческих платформах без контейнерной среды;
- Например, серверы без постоянного хранилища (как Vercel или Netlify) не подойдут.
Важно также помнить о безопасности: каждую работу запускает только авторизованный пользователь, и pi-dispatch не производит автоматического слияния PR.
Открыть на GitHub: edgehero/pi-dispatch →
RepoRadar