Pi
最近更新:2026年8月26日
Pi 编程 Agent 可通过其支持的协议接入 Amux。
Pi 是一个运行在终端中的编程 Agent(@earendil-works/pi-coding-agent),也是 OpenClaw 所使用的底层 Agent 栈,因此两者的供应商配置结构较为接近。
Pi 的自定义供应商支持四种 API,而 Amux 对这四种协议均提供原生兼容,因此可以按实际需要选择其一。
推荐:用 CC Switch 配
CC Switch 支持 Pi,添加一个供应商即可,无需手动编辑 JSON。切换之后开一个新会话。
下面是手动配置的写法。
一、安装
npm i -g @earendil-works/pi-coding-agent装完 CLI 命令是 pi。安装方式以 pi.dev 为准。
二、创建 Amux 密钥
在控制台的密钥页创建密钥。创建后仍可在该页面再次查看,无需重新生成。
export AMUX_API_KEY=你的 Amux 密钥写进 ~/.zshrc 或 ~/.bashrc。
三、配置
编辑 ~/.pi/agent/models.json:
~/.pi/agent/models.json
{
"providers": {
"amux": {
"baseUrl": "https://gateway.amux.ai/v1",
"api": "openai-completions",
"apiKey": "$AMUX_API_KEY",
"models": [
{
"id": "anthropic/claude-opus-5",
"name": "Claude Opus 5"
},
{
"id": "openai/gpt-5.6",
"name": "GPT-5.6"
},
{
"id": "deepseek/deepseek-v3.2",
"name": "DeepSeek V3.2"
}
]
}
}
}| 字段 | 说明 |
|---|---|
baseUrl | 按下面选的 api 决定,形状不同 |
api | 用哪套协议,见下表 |
apiKey | $变量名 会读取环境变量。不要直接写入密钥值,因为该文件仍可能被备份或同步工具带走 |
models | 列在这里的才会出现在 /model 里。id 是规范 ID |
四种 API 各自的地址
api 与 baseUrl 必须配套,写错了报的是连接或鉴权错误,指向完全错的方向:
api | baseUrl |
|---|---|
openai-completions | https://gateway.amux.ai/v1 |
openai-responses | https://gateway.amux.ai/v1 |
anthropic-messages | https://gateway.amux.ai |
google-generative-ai | https://gateway.amux.ai/v1beta |
如果没有明确偏好,可优先使用 openai-completions。它的兼容范围通常最广,也适合多数接入场景。
四、选模型
/model
该文件会在每次打开 /model 时重新读取,因此修改后通常无需重启会话。
看当前可用的模型:
pi --list-models锁定供应商 / 指定路由策略
id 里可以直接带后缀:anthropic/claude-opus-5:anthropic 锁定某一家,:@price、:@reliability 指定排序。见 API 参考。
Pi 往往会频繁使用工具调用。对于长任务,:@reliability 往往是更稳妥的路由策略。
常见问题
/model 里看不到 Amux 的模型
Pi 要求模型「有可用的鉴权」才会列出来。确认 $AMUX_API_KEY 真的导出了:
echo $AMUX_API_KEY如果变量为空,Pi 会加载配置,但会将模型标记为不可用,因此不会出现在列表中。
鉴权失败
请先确认 api 与 baseUrl 是否匹配(见上表)。协议不匹配时也可能表现为鉴权错误。随后再确认密钥是否启用,以及工作区余额是否充足。
JSON 改坏了
models.json 的语法错误会导致整份配置失效,常见表现是模型未出现在列表中。建议使用任意 JSON 校验工具检查一次。
模型报不支持
不是每个模型都支持每种协议。 你在 api 里选了 openai-responses,就得挑上游支持 Responses 的模型;anthropic-messages 同理。模型详情页会列出它实际可用的协议,换一个模型或者改 api。
系统提示词好像没生效
部分 OpenAI 兼容服务不认 developer 角色。Amux 支持该角色,因此接入 Amux 时无需额外配置;但如果你同时在这份文件里配置了其他本地服务(如 Ollama、vLLM),则需给对应供应商加上:
"compat": { "supportsDeveloperRole": false }