@earendil-works/pi-coding-agent предоставляет интерактивный CLI coding agent с рабочими процессами file, shell, edit, write, session, print, JSON, RPC и SDK. Pi может загружать пользовательские provider из ~/.pi/agent/models.json, поэтому вы можете добавить CometAPI как записи OpenAI-compatible provider без изменения исходного кода Pi.
Официальные материалы:
Доступность моделей со временем меняется. Замените
your-model-id на доступный model ID со страницы моделей CometAPI.Предварительные требования
- Node.js
>=22.19.0 - npm
- Аккаунт CometAPI с активным API key из dashboard
- Установленный Pi из официального npm-пакета
Понимание разрешений во время выполнения
Pi работает с разрешениями пользователя и процесса, которые его запускают. Запускайте Pi в директории проекта, с которой он должен работать, сохраняйте возможность отката, например через git, и используйте container или sandbox, если вам нужны более строгие границы для файловой системы, процессов, сети или учетных данных.Настройка провайдера
1
Установите Pi
Установите Pi глобально с помощью npm:Убедитесь, что CLI доступен:
2
Укажите ваш CometAPI API key
Сохраните ваш CometAPI API key в переменной окружения Добавьте команду export в профиль вашей оболочки, если хотите, чтобы она сохранялась между сессиями терминала. Не коммитьте API key в систему контроля версий.
COMETAPI_KEY:3
Добавьте провайдеры CometAPI в models.json
Создайте Используйте
~/.pi/agent/models.json, если он не существует. Если файл уже содержит провайдеры, объедините записи cometapi-responses и cometapi-chat с существующим объектом providers:cometapi-responses для моделей или workflows, которым требуется OpenAI Responses API. Используйте cometapi-chat для моделей, совместимых с OpenAI Chat Completions. Pi разрешает $COMETAPI_KEY во время выполнения запроса. Храните API key в вашем окружении или в собственном процессе управления секретами.4
Проверьте оба провайдера
Выведите список моделей, которые Pi видит для провайдера Responses:Выполните короткий одноразовый Prompt с провайдером Responses:Выведите список моделей, которые Pi видит для провайдера Chat Completions:Выполните короткий одноразовый Prompt с провайдером Chat Completions:Для интерактивного использования запустите Pi в вашем проекте и выберите провайдера CometAPI и модель с помощью
/model. Если вы редактируете models.json во время интерактивной сессии, снова откройте /model, чтобы Pi перезагрузил пользовательские записи моделей.Устранение неполадок
Pi не показывает модель CometAPI
Pi не показывает модель CometAPI
Убедитесь, что
~/.pi/agent/models.json содержит корректный JSON и что каждая запись provider находится внутри объекта верхнего уровня providers. После сохранения файла выполните pi --list-models cometapi-responses или pi --list-models cometapi-chat.Pi сообщает, что API key недоступен
Pi сообщает, что API key недоступен
Убедитесь, что
COMETAPI_KEY задан в той же сессии shell, из которой запускается Pi. Если вы используете профиль shell, откройте новый терминал или загрузите профиль перед запуском Pi.Запросы завершаются ошибкой из-за base URL
Запросы завершаются ошибкой из-за base URL
Используйте
https://api.cometapi.com/v1 в качестве baseUrl в models.json. Не указывайте для Pi URL панели управления и не опускайте суффикс /v1 для OpenAI-совместимых маршрутов.Pi завершается с ошибкой до отправки запроса к модели
Pi завершается с ошибкой до отправки запроса к модели
Проверьте версию Node.js с помощью
node --version. Пакет Pi требует Node.js >=22.19.0.Модель работает на одном маршруте, но не на другом
Модель работает на одном маршруте, но не на другом
Используйте запись provider, у которой поле
api соответствует маршруту, поддерживаемому вашей моделью. openai-responses использует Responses API, а openai-completions использует Chat Completions.У Pi больше доступа, чем ожидалось
У Pi больше доступа, чем ожидалось
Pi работает с разрешениями пользователя и процесса, который его запустил. Запускайте Pi внутри контейнера или песочницы, когда нужны более строгие границы для файлов, процессов, сетевого доступа или учетных данных.