Pi Agent 支持的 AI 提供商
以下是 Pi Agent 支持的所有 AI 提供商的完整列表。
支持订阅登录的提供商
通过 /login 命令进行 OAuth 登录:
| 提供商 | 要求 | 说明 |
|---|---|---|
| Claude Pro/Max | Anthropic 订阅 | 使用额外用量,按 token 计费 |
| ChatGPT Plus/Pro (Codex) | OpenAI 订阅 | OpenAI 官方认可 |
| GitHub Copilot | GitHub Copilot 订阅 | 支持企业服务器 |
| xAI (Grok) | X Premium 订阅 | 使用 Grok 模型 |
| OpenRouter | OpenRouter 账户 | OAuth 创建 API Key |
| Radius | Radius 账户 | 动态 pi-messages 网关 |
订阅类入口以 Pi Agent /login 菜单实际显示为准,不同版本可能略有差异。
支持 API Key 的提供商
通过环境变量或 ~/.pi/agent/auth.json 配置 API Key:
$ export ANTHROPIC_API_KEY=sk-ant-api03-xxxx
| 提供商 | 环境变量 | auth.json 键 |
|---|---|---|
| Anthropic | ANTHROPIC_API_KEY | anthropic |
| Ant Ling | ANT_LING_API_KEY | ant-ling |
| Azure OpenAI Responses | AZURE_OPENAI_API_KEY | azure-openai-responses |
| OpenAI | OPENAI_API_KEY | openai |
| DeepSeek | DEEPSEEK_API_KEY | deepseek |
| NVIDIA NIM | NVIDIA_API_KEY | nvidia |
| Google Gemini | GEMINI_API_KEY | |
| Amazon Bedrock | AWS_BEARER_TOKEN_BEDROCK | amazon-bedrock |
| Mistral | MISTRAL_API_KEY | mistral |
| Groq | GROQ_API_KEY | groq |
| Cerebras | CEREBRAS_API_KEY | cerebras |
| Cloudflare AI Gateway | CLOUDFLARE_API_KEY(另需 CLOUDFLARE_ACCOUNT_ID 与 CLOUDFLARE_GATEWAY_ID) | cloudflare-ai-gateway |
| Cloudflare Workers AI | CLOUDFLARE_API_KEY(另需 CLOUDFLARE_ACCOUNT_ID) | cloudflare-workers-ai |
| xAI | XAI_API_KEY | xai |
| OpenRouter | OPENROUTER_API_KEY | openrouter |
| Vercel AI Gateway | AI_GATEWAY_API_KEY | vercel-ai-gateway |
| ZAI Coding Plan | ZAI_API_KEY | zai |
| ZAI Coding Plan(中国) | ZAI_CODING_CN_API_KEY | zai-coding-cn |
| OpenCode Zen | OPENCODE_API_KEY | opencode |
| OpenCode Go | OPENCODE_API_KEY | opencode-go |
| Radius | RADIUS_API_KEY | radius |
| Hugging Face | HF_TOKEN | huggingface |
| Fireworks | FIREWORKS_API_KEY | fireworks |
| Together AI | TOGETHER_API_KEY | together |
| Baseten | BASETEN_API_KEY | baseten |
| Kimi For Coding | KIMI_API_KEY | kimi-coding |
| MiniMax | MINIMAX_API_KEY | minimax |
| MiniMax(中国) | MINIMAX_CN_API_KEY | minimax-cn |
| Qwen Token Plan | QWEN_TOKEN_PLAN_API_KEY | qwen-token-plan |
| Qwen Token Plan(Individual) | QWEN_TOKEN_PLAN_API_KEY | qwen-token-plan-individual |
| Qwen Token Plan(中国) | QWEN_TOKEN_PLAN_CN_API_KEY | qwen-token-plan-cn |
| Xiaomi MiMo | XIAOMI_API_KEY | xiaomi |
| Xiaomi MiMo Token Plan(中国) | XIAOMI_TOKEN_PLAN_CN_API_KEY | xiaomi-token-plan-cn |
| Xiaomi MiMo Token Plan(阿姆斯特丹) | XIAOMI_TOKEN_PLAN_AMS_API_KEY | xiaomi-token-plan-ams |
| Xiaomi MiMo Token Plan(新加坡) | XIAOMI_TOKEN_PLAN_SGP_API_KEY | xiaomi-token-plan-sgp |
API Key 提供商共 35 个,与官方 providers.md 的环境变量清单一一对应。
其中 Qwen Token Plan(Individual)与 Qwen Token Plan 共用同一个环境变量 QWEN_TOKEN_PLAN_API_KEY,区别在于 auth.json 键名以及可选模型范围。
Cloudflare 两项的账号与网关 ID 既可以作为环境变量设置,也可以写进 auth.json 凭证的 env 对象。
本地与自定义提供商
本地推理后端通过配置文件接入,自定义接口则可以用扩展方式注册。
| 提供商 | 说明 | 配置方式 |
|---|---|---|
| llama.cpp | 本地开源模型推理 | /login llama.cpp,模型通过 /llama 管理 |
| 自定义 API | Extensions 开发 | 通过 pi.registerProvider() 注册 |
扩展方式注册提供商的完整示例见《与 llama.cpp 本地模型》一章。
以下三个本地后端都通过 OpenAI Compatible API 接入:
| 后端 | 默认端口 | 说明 |
|---|---|---|
| Ollama | 11434 | 开箱即用,一条命令即可拉取并运行模型 |
| LM Studio | 1234 | 提供图形界面,适合在桌面端管理本地模型 |
| vLLM | 8000 | 面向高吞吐的服务化部署 |
把以下最小示例写入 ~/.pi/agent/models.json,以 Ollama 为例,LM Studio 与 vLLM 只需替换名称和 baseUrl:
实例
{
"providers": {
"ollama": {
"baseUrl": "http://127.0.0.1:11434/v1",
"api": "openai-completions",
"apiKey": "ollama",
"models": [
{
"id": "qwen3-coder-30b",
"name": "Qwen3 Coder 30B",
"contextWindow": 131072,
"maxTokens": 8192,
"input": ["text"]
}
]
}
}
}
"providers": {
"ollama": {
"baseUrl": "http://127.0.0.1:11434/v1",
"api": "openai-completions",
"apiKey": "ollama",
"models": [
{
"id": "qwen3-coder-30b",
"name": "Qwen3 Coder 30B",
"contextWindow": 131072,
"maxTokens": 8192,
"input": ["text"]
}
]
}
}
}
示例中的 apiKey 取值 ollama 只是占位符,本地服务端会直接忽略它。
但不能因此把它删掉:没有配置任何鉴权字段时模型会正常加载,却不会出现在 /model 选择器里,官方也建议保留占位值。
除 apiKey 外的各字段含义如下:
| 字段 | 说明 |
|---|---|
| baseUrl | OpenAI Compatible 接口地址,LM Studio 为 http://127.0.0.1:1234/v1,vLLM 按实际服务地址填写 |
| api | 使用 OpenAI 兼容协议,固定写 openai-completions |
| apiKey | 占位值,本地无鉴权服务也要保留,否则模型不会出现在 /model 中 |
| models[].id | 调用时使用的模型 ID,需与本地已拉取的模型名一致 |
| models[].name | 选择器中显示的名称 |
| models[].contextWindow | 上下文窗口大小(tokens) |
| models[].maxTokens | 单次最大输出长度(tokens) |
| models[].input | 支持的输入类型 |
