t1k:model-router:delegate
| Field | Value |
|---|---|
| Module | model-router |
| Version | 3.47.4 |
| Effort | low |
| Tools | — |
Keywords: cheap model, delegate, glm, intercept, kimi, model-mapping, opencode, route, route to cheap, subagent, swap model
How to invoke
Section titled “How to invoke”/t1k:model-router:delegate<agent-name> "<task>" --provider <provider> --model <model>How v2 Works
Section titled “How v2 Works”The kit no longer ships shim agents. The delegation contract is:
bash .claude/scripts/mr-delegate.sh <agent-name> "<task>" --provider <provider> --model <model>The script:
- Discovers
.claude/agents/<agent-name>.md(cwd →CLAUDE_PROJECT_DIR→~/.claude/agents). - Reads frontmatter for
permissionMode/maxTurns/maxBudgetUsd(fallback:plan/ 25 / $5). - Runs
claude -p --agent <name> --model <chosen-cheap-model>against the chosen provider. - Returns the agent’s text output.
Primary call path is the Task interceptor (hooks/mr-task-interceptor.cjs), not this skill. The flow:
main session → Task(subagent_type="t1k-unity-dots-core-implementer", prompt="...") ↓ PreToolUse hook reads the agent's `model:` frontmatter ↓ matches modelMapping["claude-sonnet-4-6"] → { opencode-go, deepseek-v4-flash } (opus-family keys never get here — they hit the kit passthrough floor first) ↓ hook denies the Task, runs mr-delegate.sh, returns output as systemMessage ↓main session sees the cheap result as if Task had succeededEngine-kit specialization is preserved: the Unity DOTS agent’s full prompt + tools run, just on Kimi instead of Opus.
When to Use the Explicit Form (this skill)
Section titled “When to Use the Explicit Form (this skill)”Most delegation happens automatically via the Task interceptor. Call /t1k:model-router:delegate explicitly only when:
- You’re outside a Task spawn (e.g. running mechanical work from a Bash hook script).
- You want to force a specific (provider, model) that overrides
modelMapping. - You’re debugging — explicit invocation surfaces the full mr-delegate.sh output.
# Force an explicit provider/model, bypassing selection. NOTE: the named model must be# enabled in providers-config.json — since 2026-08-29 only deepseek-v4-flash is enabled for text.bash .claude/scripts/mr-delegate.sh t1k-code-reviewer \ "audit src/auth/ for OWASP Top 10" \ --provider opencode-go --model deepseek-v4-flashModel + Provider Selection
Section titled “Model + Provider Selection”When you call the explicit form, YOU pick (provider, model). When the interceptor fires, the mapping picks for you.
- Read
.claude/model-capabilities.mdfor model strengths/costs. - Read
.claude/providers-config.jsonfor available providers. - Choose the best (provider, model) for task complexity.
Pass via --provider <provider> --model <model> flags. Both required — no defaults.
Model Quick Reference
Section titled “Model Quick Reference”| Need | Model | Provider | Why |
|---|---|---|---|
| Cheapest possible | deepseek-v4-flash | opencode-go | Only enabled budget tier; the shipped modelMapping default |
| Best balance | deepseek-v4-flash | opencode-go | Sole enabled text target since 2026-08-29 |
| Best reasoning | deepseek-v4-flash | opencode-go | Same model as “Cheapest possible” — the studio narrowed all routing to flash alone (2026-08-25), reasoning capability included |
| Long context | deepseek-v4-flash | opencode-go | Declares long-context, but 128K — the 1M option went away 2026-08-29 |
| Vision (image blocks) | gpt-5.4-mini | kimi | Head of the vision capability pipe |
Every model here is enabled: true in .claude/providers-config.json. Older names still seen in issues
and archived design docs — qwen3.5-plus, kimi-k2.5, glm-5.1, glm-5.2, kimi-for-coding, kimi-k2.6, deepseek-v4-pro, minimax-m2.7, the
mimo-* family — ship disabled and are not valid --model targets unless a consumer
re-enables them locally.
Full details: read .claude/model-capabilities.md.
Safety
Section titled “Safety”Every delegation enforces:
- Tool whitelist from the agent’s own frontmatter (Claude Code respects
tools:/disallowedTools:). - Permission mode read from agent frontmatter; safe fallback (
plan) if missing. - Max turns from agent frontmatter; default 25 if missing.
- Budget cap from agent frontmatter; default $5 if missing.
- Timeout (5 minutes default).
- No nested delegation (
MR_SPAWNEDguard at both the script and the interceptor). - Write lock (single write-capable agent at a time when
mode=acceptEdits). - Telemetry (events sent to T1K cloud for monitoring).
excludeAgentslist int1k-config-mr.json— any agent here is never intercepted (e.g.t1k-architect,t1k-plannerfor tasks that genuinely need Opus).
Logs & Telemetry
Section titled “Logs & Telemetry”- Local logs:
~/.model-router/calls.jsonl(carries the agent name). - Tool usage:
~/.model-router/tool-usage.jsonl. - Worker schema: the existing
rolecolumn carries the agent name (no migration).
See The1Studio/theonekit-model-router#42 for the v2 design rationale and #54 for the v3.3.0 kit-enforced Opus-family passthrough policy.