@ifi/pi-extension-adaptive-routing
Optional adaptive and delegated routing extension for pi.
Package details
Install @ifi/pi-extension-adaptive-routing from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@ifi/pi-extension-adaptive-routing- Package
@ifi/pi-extension-adaptive-routing- Version
0.5.1- Published
- Apr 28, 2026
- Downloads
- 235/mo · 235/wk
- Author
- ifiokjr
- License
- MIT
- Types
- extension
- Size
- 116.1 KB
- Dependencies
- 1 dependency · 5 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@ifi/pi-extension-adaptive-routing
Optional adaptive routing package for pi.
Install
pi install npm:@ifi/pi-extension-adaptive-routing
This package is intentionally separate from @ifi/oh-pi so users can opt into routing behavior explicitly.
What it does
- adds
/routecontrols for shadow and auto routing - persists local routing telemetry
- exposes delegated routing categories that subagents and ant-colony can read from startup config
- lets you describe provider assignments by category instead of hard-coding Anthropic/OpenAI defaults into agents
Config
Config lives at:
~/.pi/agent/extensions/adaptive-routing/config.json
In addition to prompt routing, the config can declare delegated categories for startup model assignment:
{
"delegatedRouting": {
"enabled": true,
"categories": {
"quick-discovery": {
"preferredProviders": ["google", "openai"],
"fallbackGroup": "cheap-router",
"taskProfile": "planning",
"preferFastModels": true
},
"implementation-default": {
"preferredProviders": ["openai", "google"],
"taskProfile": "coding",
"minContextWindow": 64000
},
"review-critical": {
"preferredProviders": ["openai", "google"],
"fallbackGroup": "peak-reasoning",
"taskProfile": "planning",
"minContextWindow": 128000,
"requireReasoning": true
},
"visual-engineering": {
"preferredProviders": ["google", "openai"],
"fallbackGroup": "design-premium",
"taskProfile": "design",
"minContextWindow": 128000
}
}
},
"delegatedModelSelection": {
"disabledProviders": ["cursor"],
"preferLowerUsage": true,
"allowSmallContextForSmallTasks": true,
"roleOverrides": {
"subagent:planner": {
"preferredModels": ["google/gemini-3.1-pro", "openai/gpt-5.4"]
},
"colony:scout": {
"preferredModels": ["openai/gpt-5-mini"],
"preferFastModels": true
}
}
}
}
Subagents and ant-colony use these categories only when they do not already have an explicit runtime or per-role model override. The delegated selector is runtime-aware: it filters down to currently available models, applies provider/model disable lists, prefers higher-headroom providers when usage data is available, and uses context-fit plus public benchmark metadata to rank candidates.
Use /route why ... to inspect a delegated pick for a specific category or role override and see the ranked reasons plus rejected candidates.
Commands
Primary commands:
/route status/route shadow/route auto/route off/route explain/route assignments/route why <category|role-override> [task text]/route stats
Alias commands are also registered in route:<subcommand> form, for example:
/route:status/route:shadow/route:auto/route:off/route:explain/route:assignments/route:why quick-discovery scan the repo/route:stats