@earendil-works/pi-coding-agent fornece uma CLI interativa de agente de programação com fluxos de trabalho de arquivo, shell, edit, write, session, print, JSON, RPC e SDK. O Pi pode carregar providers personalizados de ~/.pi/agent/models.json, para que você possa adicionar o CometAPI como entradas de provider compatíveis com OpenAI sem alterar o código-fonte do Pi.
Referências oficiais:
- Repositório do Pi
- Guia de início rápido do Pi
- Providers do Pi
- Models personalizados do Pi
- Uso da CLI do Pi
A disponibilidade dos models muda com o tempo. Substitua
your-model-id por um model ID disponível na página de Models do CometAPI.Pré-requisitos
- Node.js
>=22.19.0 - npm
- Uma conta CometAPI com uma chave de API ativa do painel
- Pi instalado a partir do pacote npm oficial
Entenda as permissões de runtime
O Pi é executado com as permissões do usuário e do processo que o iniciam. Inicie o Pi no diretório do projeto em que deseja que ele trabalhe, mantenha um caminho de reversão como o git e use um contêiner ou sandbox se precisar de limites mais fortes para sistema de arquivos, processos, rede ou credenciais.Configurar o provider
1
Instalar o Pi
Instale o Pi globalmente com npm:Confirme que a CLI está disponível:
2
Defina sua chave de API da CometAPI
Armazene sua chave de API da CometAPI na variável de ambiente Adicione o comando de exportação ao perfil do seu shell se quiser que ele persista entre sessões de terminal. Não faça commit de chaves de API no controle de versão.
COMETAPI_KEY:3
Adicione providers da CometAPI ao models.json
Crie Use
~/.pi/agent/models.json se ele não existir. Se o arquivo já contiver providers, mescle as entradas cometapi-responses e cometapi-chat no objeto providers existente:cometapi-responses para modelos ou fluxos de trabalho que exigem a API OpenAI Responses. Use cometapi-chat para modelos compatíveis com OpenAI Chat Completions. O Pi resolve $COMETAPI_KEY no momento da requisição. Mantenha a chave de API no seu ambiente ou no seu próprio fluxo de gerenciamento de segredos.4
Verifique ambos os providers
Liste os modelos que o Pi consegue ver para o provider Responses:Execute um Prompt curto de uso único com o provider Responses:Liste os modelos que o Pi consegue ver para o provider Chat Completions:Execute um Prompt curto de uso único com o provider Chat Completions:Para uso interativo, inicie o Pi no seu projeto e selecione o provider e o modelo da CometAPI com
/model. Se você editar models.json durante uma sessão interativa, abra /model novamente para que o Pi recarregue as entradas de modelo personalizadas.Solução de problemas
Pi não mostra o modelo da CometAPI
Pi não mostra o modelo da CometAPI
Confirme que
~/.pi/agent/models.json é um JSON válido e que cada entrada de provider está dentro do objeto providers de nível superior. Execute pi --list-models cometapi-responses ou pi --list-models cometapi-chat após salvar o arquivo.Pi informa que nenhuma chave de API está disponível
Pi informa que nenhuma chave de API está disponível
Confirme que
COMETAPI_KEY está definida na mesma sessão de shell que inicia o Pi. Se você usar um perfil de shell, abra um novo terminal ou recarregue o perfil antes de executar o Pi.As solicitações falham por causa da URL base
As solicitações falham por causa da URL base
Use
https://api.cometapi.com/v1 como baseUrl em models.json. Não aponte o Pi para a URL do dashboard nem omita o sufixo /v1 para rotas compatíveis com OpenAI.Pi falha antes de enviar uma solicitação ao modelo
Pi falha antes de enviar uma solicitação ao modelo
Verifique sua versão do Node.js com
node --version. O pacote Pi requer Node.js >=22.19.0.O modelo funciona em uma rota, mas não na outra
O modelo funciona em uma rota, mas não na outra
Use a entrada de provider cujo campo
api corresponde à rota compatível com seu modelo. openai-responses usa a API Responses, enquanto openai-completions usa Chat Completions.Pi tem mais acesso do que o esperado
Pi tem mais acesso do que o esperado
O Pi é executado com as permissões do usuário e do processo que o iniciaram. Execute o Pi dentro de um contêiner ou sandbox quando precisar de limites mais rígidos em torno de arquivos, processos, acesso à rede ou credenciais.