model-auto-router-api #8

Closed
opened 2026-09-03 18:27:31 +08:00 by lengxf · 2 comments
lengxf commented 2026-09-03 18:27:31 +08:00 (Migrated from github.com)

pi 0.84 之后,pi.registerProvider() 的 api 字段必须是一个返回 ProviderStreams 的函数,不能是字符串。

pi-model-auto-router 0.3.1 第 1090 行:

api: "model-auto-router-api",

但这个字符串 API 从未注册,导致其他扩展(如 pi-lovely-rename、pi-powerline-footer 的 working-vibes)通过 ctx.modelRegistry.find() 拿到模型后直接抛异常:

Error: No API provider registered for api: model-auto-router-api

复现步骤

  1. 装 pi-model-auto-router 0.3.1 + pi-coding-agent 0.84.4
  2. 把 auto-router 虚拟模型设为 defaultModel(如 glm-gpt)
  3. 等 auto-rename 或其他依赖 model 的扩展触发

影响范围

  • 主请求链路(走自定义 stream 函数,不受影响)
  • 依赖 Phi.modelRegistry.getApiKeyAndHeaders() 或 streamSimple 的扩展会失败(auto-rename、notify、working-vibes 等)
pi 0.84 之后,`pi.registerProvider()` 的 `api` 字段必须是一个返回 `ProviderStreams` 的函数,不能是字符串。 pi-model-auto-router 0.3.1 第 1090 行: ```js api: "model-auto-router-api", ``` 但这个字符串 API 从未注册,导致其他扩展(如 pi-lovely-rename、pi-powerline-footer 的 working-vibes)通过 `ctx.modelRegistry.find()` 拿到模型后直接抛异常: ``` Error: No API provider registered for api: model-auto-router-api ``` **复现步骤** 1. 装 pi-model-auto-router 0.3.1 + pi-coding-agent 0.84.4 2. 把 auto-router 虚拟模型设为 defaultModel(如 glm-gpt) 3. 等 auto-rename 或其他依赖 model 的扩展触发 **影响范围** - 主请求链路(走自定义 stream 函数,不受影响) - 依赖 `Phi.modelRegistry.getApiKeyAndHeaders()` 或 `streamSimple` 的扩展会失败(auto-rename、notify、working-vibes 等)
lengxf commented 2026-09-03 18:29:18 +08:00 (Migrated from github.com)

auto-rename 提示错误如下: Warning: Auto-rename failed: No API provider registered for api: model-auto-router-api

auto-rename 提示错误如下: Warning: Auto-rename failed: No API provider registered for api: model-auto-router-api
lengxf commented 2026-09-03 18:34:09 +08:00 (Migrated from github.com)

更正:此前归因有误。

api: "model-auto-router-api" + streamSimple 的用法是正确的——pi 0.81 起有意把扩展注册的 provider 移出 pi-ai 全局 compat API 表(见 pi-powerline-footer CHANGELOG 中对 #134 同类问题的修复说明)。

真正的问题在调用方(如 @xl0/pi-lovely-rename):它直接调 pi-ai 全局 completeSimple(model, ...),无法解析扩展注册的 provider,从而抛出 No API provider registered for api: model-auto-router-api。正确的修法是调用方改用 modelRegistry 提供的 provider 感知解析路径,而不是改 auto-router。

issue 中的「api 应为函数」建议是错误的,请忽略。关闭本 issue。

更正:此前归因有误。 `api: "model-auto-router-api"` + `streamSimple` 的用法是正确的——pi 0.81 起有意把扩展注册的 provider 移出 pi-ai 全局 compat API 表(见 pi-powerline-footer CHANGELOG 中对 #134 同类问题的修复说明)。 真正的问题在调用方(如 `@xl0/pi-lovely-rename`):它直接调 pi-ai 全局 `completeSimple(model, ...)`,无法解析扩展注册的 provider,从而抛出 `No API provider registered for api: model-auto-router-api`。正确的修法是调用方改用 modelRegistry 提供的 provider 感知解析路径,而不是改 auto-router。 issue 中的「api 应为函数」建议是错误的,请忽略。关闭本 issue。
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
weisanju/pi-plugins#8
No description provided.