PI / OMP 接入:一个 provider 里混用不同协议
PI 与 omp 在 agent 的 models.json 里声明 provider:baseUrl 按协议填 https://api.sagelib.com/openai/v1 或 https://api.sagelib.com/anthropic,密钥写 auth.json;api 可写在 provider 上,也可按模型覆盖。
更新于 2026-11-14 · SageLib 团队 · 标签:pi、omp、agent
结论要点
- OpenAI 协议写 /openai/v1,Anthropic 协议写 /anthropic,不要重复写 /v1
- 同一个 provider 里的模型可以各走不同协议
- 模型字段(上下文、最大输出、是否支持思考)按模型详情页填
PI 与 omp 的配置方式一致,这里以 PI 为例(omp 手写同一份结构即可)。
第 1 步 · 写 models.json
~/.pi/agent/models.json:
{
"providers": {
"sagelib": {
"name": "SageLib AI 边缘网关",
"baseUrl": "https://api.sagelib.com/openai/v1",
"api": "openai-completions",
"models": [
{ "id": "claude-sonnet-5-5", "name": "Claude Sonnet 5.5", "contextWindow": 1000000 },
{ "id": "deepseek-v4.1-flash", "api": "openai-responses", "contextWindow": 1000000 }
]
}
}
}
baseUrl:OpenAI 协议写到https://api.sagelib.com/openai/v1;Anthropic 协议写到https://api.sagelib.com/anthropic;api:写在 provider 上是默认协议,写在单个模型上覆盖;contextWindow/maxTokens/reasoning按模型详情页的「模型限制」填。
第 2 步 · 写 auth.json
~/.pi/agent/auth.json:
{ "sagelib": { "type": "api_key", "key": "sk-你的网关令牌" } }
第 3 步 · 验证
跑 /model 选中配置的模型,发一句话;到控制台「用量日志」确认调用出现,
端点与协议要对得上(/chat/completions、/responses 或 /messages)。
更多客户端见 Agent 客户端接入。
参考来源
常见问题
provider 里的 baseUrl 为什么是 /openai/v1?
PI 的 openai-completions 协议不会自己补版本段,所以这里要写到 /openai/v1;用 Anthropic 协议时改填 /anthropic(它自己会拼 /v1/messages)。
能给同一个网关配多个 provider 吗?
可以,也可只配一个 provider、在单个模型上用 api 字段覆盖协议。