pi-model-routing

Model routing rules and an explicit-model subagent executor for pi coding agent — pick the right model and reasoning strength, then delegate with evidence-based verification.

Packages

Package details

extensionskill

Install pi-model-routing from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-model-routing
Package
pi-model-routing
Version
0.1.0
Published
Nov 1, 2026
Downloads
340/mo · 340/wk
Author
rex_young
License
MIT
Types
extension, skill
Size
81.6 KB
Dependencies
0 dependencies · 5 peers
Pi manifest JSON
{
  "skills": [
    "skills/model-routing"
  ],
  "extensions": [
    "extensions/model-routing"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-model-routing

给 pi coding agent 的模型路由包:一份路由规则 skill,加一个强制显式模型的 subagent 执行器。

解决的问题很具体 —— 模型和推理强度应该按任务类型选,而不是一路用同一个;以及子任务必须显式指定模型和强度,不能靠继承或"扮演某个模型"。

能解决什么

  • 正式规划、架构决策前先核对当前轮实际运行的模型和强度,不匹配就说明并暂停规划。
  • 按任务类型选择模型和强度:规划用最强推理模型,常规实现用通用模型,文书与视觉用专长模型。
  • 委派子任务时强制写清目标、上下文、允许写入的绝对路径、验收标准和已有证据。
  • 子代理必须显式声明 provider/model:thinking,否则直接拒绝执行。
  • 主代理必须独立复核子代理的结果,不接受"已完成"作为证据。
  • 可选额度守卫:共享额度池接近耗尽时自动改道到备用模型。

安装

pi install npm:pi-model-routing

本地开发阶段使用绝对路径安装:

pi install "/path/to/pi-model-routing"

Pi 已运行时,安装后执行:

/reload

安装后检查:

bash scripts/check-install.sh

路由规则

包内的 model-routing skill 提供完整规则表。核心映射:

工作类型 模型 强度
正式规划、架构、产品决策 可用的最强推理模型 最高档
常规实现、边界清楚的局部修改、检索整理 强通用模型 中到高档
复杂实现、跨模块依赖、困难根因排查 强通用模型,比常规更高一档 高到最高档
文书、文档、视觉理解、电脑操作 该场景的专长模型 明确任务用中档,多源综合用高档,视觉含糊用最高档

几条容易做错的:

  • 路由是能力判断,不是省钱判断。选能稳定完成任务的最低档模型,遇到证据再升级。
  • 专长分支不是阶梯。文书任务不会因为提高强度就变成实现任务。
  • 弱模型多试几次不等于强模型少试几次。
  • 额度或服务故障可以回退,但要说明实际跑的是哪个模型。质量问题不能靠换模型掩盖。

subagent 工具

安装后 Pi 提供 subagent 工具,三种模式:

// 单个
{ "agent": "reviewer", "task": "审查 X 模块的错误处理" }

// 并行
{ "tasks": [{ "agent": "a", "task": "..." }, { "agent": "b", "task": "..." }] }

// 串行,上一步输出注入下一步
{ "chain": [{ "agent": "a", "task": "..." }, { "agent": "b", "task": "参考 {previous} 继续" }] }

关键约束:

  • Agent 必须显式声明模型。~/.pi/agent/agents/*.md 的 frontmatter 缺少 model: provider/model:thinking 会被拒绝。
  • 子代理不能再次委派,也不能自行 commit / push。
  • 默认并发 2,硬上限 4。同一轮里的多次并行调用共享这个额度。
  • 项目内 Agent 需要确认。.pi/agents 下的定义由仓库控制,默认弹窗确认后才执行。
  • 输出上限 50KB / 2000 行,超出的完整内容写入临时文件并在结果中给出路径。

并发上限用环境变量调整:

PI_MODEL_ROUTING_CONCURRENCY=3

取值必须是 1 到 4 的整数,其他值直接报错。

额度守卫(可选)

默认不启用。只有配置了共享额度池时才介入。

配置文件:~/.pi/agent/model-routing.json

{
  "quota": {
    "endpoint": "http://127.0.0.1:8080/v1/quota",
    "managedModels": ["vendor/team/shared:max"],
    "fallbackModel": "vendor/team/worker:max",
    "cachePath": "~/.config/provider/quotas.json",
    "plan": {
      "provider": "acme",
      "plan": "SHARED",
      "windows": ["5 hours", "Weekly", "Credits"],
      "threshold": 80
    }
  }
}

字段说明:

字段 作用
endpoint 返回额度数据的 HTTP 接口
managedModels 受这个额度池计费的模型,其余模型不受影响
fallbackModel 额度不足时改道到的模型
cachePath 可选。本地额度缓存,用于接口缺少读取时间时补齐
plan.provider / plan.plan 在返回数据里定位受管套餐,可省略表示不限定
plan.windows 需要检查的额度窗口名称
plan.threshold 触发改道的百分比,默认 80

行为约定:

  • 读不到额度就按不足处理,改道到备用模型。不会因为接口故障就放行高额度请求。
  • 过期读数视为不足,未来时间戳同样视为无效。
  • 额度守卫是失败防护,不是绕过限额的手段,也不会购买额外额度。
  • 配置文件缺失、JSON 非法或字段不全时,守卫整体不启用,不影响子代理正常执行。

不包含什么

  • 不含任何供应商账号、模型组名、凭据或运行记录。
  • 不含实时路由状态面板(/routing),也不含本地安装脚本和回滚快照。
  • 不会修改你的全局 settings.json、Agent 定义或指令。

许可

MIT