@monopi/adaptive-routing

extensionmaintained

Optional adaptive and delegated routing extension for pi.

by — · v0.6.1 · published 4w ago

$ pi install npm:@monopi/adaptive-routing
downloads/mo
227
stars
157
last push
2d ago
open issues
1

Signals

license: MITtestspi manifest: missinginstall size: —deps: 0peer deps: 0

Download trend

No downloads in the last 12 weeks.

README

@monopi/adaptive-routing

Optional adaptive routing package for pi.

Install

pi install npm:@monopi/adaptive-routing

This package is intentionally separate from @monopi/monopi so users can opt into routing behavior explicitly.

What it does

  • adds /route controls for shadow and auto routing
  • persists local routing telemetry
  • exposes delegated routing categories that subagents 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"]
			},
			"subagent:scout": {
				"preferredModels": ["openai/gpt-5-mini"],
				"preferFastModels": true
			}
		}
	}
}

Subagents 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