model-selection
Determines which LLM model to use for each agent spawn
- License 许可
- MIT
- 所属仓库
- github/squad
- 最近更新
- 2026-11-12
- Stars
- ★ 3.4k
- Forks
- 516
01 前言 Front Matter
- name
- model-selection
- domain
- orchestration
- source
- extracted
- confidence
- medium
- description
- Determines which LLM model to use for each agent spawn
03 SKILL.md 正文
Model Selection
Determines which LLM model to use for each agent spawn.
SCOPE
✅ THIS SKILL PRODUCES:
- A resolved
modelparameter for everytasktool call - Persistent model preferences in
.squad/config.json - Spawn acknowledgments that include the resolved model
❌ THIS SKILL DOES NOT PRODUCE:
- Code, tests, or documentation
- Model performance benchmarks
- Cost reports or billing artifacts
Context
Squad supports a curated model catalog across three tiers (premium, standard, fast). The coordinator must select the right model for each agent spawn. Users can set persistent preferences that survive across sessions.
5-Layer Model Resolution Hierarchy
Resolution is first-match-wins — the highest layer with a value wins.
| Layer | Name | Source | Persistence |
|---|---|---|---|
| 0a | Per-Agent Config | .squad/config.json → agentModelOverrides.{name} |
Persistent (survives sessions) |
| 0b | Global Config | .squad/config.json → defaultModel |
Persistent (survives sessions) |
| 1 | Session Directive | User said "use X" in current session | Session-only |
| 2 | Charter Preference | Agent's charter.md → ## Model section |
Persistent (in charter) |
| 3 | Task-Aware Auto | Task type → tier under the active quality profile (default quality-first) |
Computed per-spawn |
| 4 | Default | Head of the standard chain (claude-sonnet-5.5); gpt-5.6-luna under the economy profile |
Hardcoded fallback |
Key principle: Layer 0 (persistent config) beats everything. If the user said "always use opus" and it was saved to config.json, every agent gets opus regardless of role or task type. This is intentional — the user explicitly chose quality over cost.
AGENT WORKFLOW
On Session Start
- READ
.squad/config.json - CHECK for
defaultModelfield — if present, this is the Layer 0 override for all spawns - CHECK for
agentModelOverridesfield — if present, these are per-agent Layer 0a overrides - STORE both values in session context for the duration
On Every Agent Spawn
- CHECK Layer 0a: Is there an
agentModelOverrides.{agentName}in config.json? → Use it. - CHECK Layer 0b: Is there a
defaultModelin config.json? → Use it. - CHECK Layer 1: Did the user give a session directive? → Use it.
- CHECK Layer 2: Does the agent's charter have a
## Modelsection? → Use it. - CHECK Layer 3: Determine task type and use the head of its tier chain for the active profile (
quality-firstunless the session or.squad/config.jsonmodelProfilesaysbalancedoreconomy, oreconomyModeis on):
- Architecture, research, verification, reviewer gates, security, design, visual → premium (
claude-opus-5.5);balancedandeconomymove research down - Code (implementation, tests, refactoring, bug fixes), prompts, agent designs → standard (
claude-sonnet-5.5) - Docs, writing, planning, triage → standard under
quality-first; fast undereconomy(and planning underbalanced) - Mechanical (Scribe, git, release, changelogs, version bumps) → fast (
claude-haiku-5.5) economythen applies the economy map (premium → standard, standard →gpt-5.6-luna) and says so in the rationalehydrafusion(opt-in only) sends architecture, research, verification, reviewer gates, security and design tohydrafusion, then the premium chain; everything else (including visual and Scribe) followsquality-first
- FALLBACK Layer 4: head of the standard chain;
gpt-5.6-lunaundereconomy - INCLUDE model in spawn acknowledgment:
? {Name} ({resolved_model}) — {task}
When User Sets a Preference
Trigger phrases: "always use X", "use X for everything", "switch to X", "default to X"
- VALIDATE the model ID against the catalog
- WRITE
defaultModelto.squad/config.json(merge, don't overwrite) - ACKNOWLEDGE:
✅ Model preference saved: {model} — all future sessions will use this until changed.
Per-agent trigger: "use X for {agent}"
- VALIDATE model ID
- WRITE to
agentModelOverrides.{agent}in.squad/config.json - ACKNOWLEDGE:
✅ {Agent} will always use {model} — saved to config.
Profile trigger: "use the {quality-first|balanced|economy|hydrafusion} profile" / "always use economy"
- WRITE
modelProfileto.squad/config.json(merge, don't overwrite); for "this session" only, keep it in session context instead - ACKNOWLEDGE:
✅ Model profile saved: {profile}
A profile never replaces an explicit model (config, session, charter or per-spawn), including an opt-in model the user chose.
HydraFusion (research preview, opt-in)
hydrafusion and hydrafusion-max are GitHub multi-model orchestration models in research preview. They may be unavailable, for example in corporate environments where preview models are turned off, so Squad never uses them by default: they are in no fallback chain, no GA profile and no example. The runtime runs the orchestration; Squad only passes the model ID.
- Opt in:
modelProfile: "hydrafusion"(or "use the hydrafusion profile for this session"), or pickhydrafusionas the session model,defaultModel, anagentModelOverridesentry or a per-spawn model. A session model is inherited by every sub-agent spawn. hydrafusion-max: only when named explicitly by ID. Never chosen implicitly, even under thehydrafusionprofile.- Fallback: when
hydrafusionis unavailable, fall forward to the head of the premium chain; never back, never over the cost ceiling; omit the model if nothing in the ceiling is left. - Unchanged: Scribe and mechanical ops stay fast; reviewer gates still run.
- VS Code uses the single session model for every agent; per-agent selection applies where Squad passes a model per spawn (Copilot CLI and app).
When User Clears a Preference
Trigger phrases: "switch back to automatic", "clear model preference", "use default models"
- REMOVE
defaultModelfrom.squad/config.json - ACKNOWLEDGE:
✅ Model preference cleared — returning to automatic selection.
STOP
After resolving the model and including it in the spawn template, this skill is done. Do NOT:
- Generate model comparison reports
- Run benchmarks or speed tests
- Create new config files (only modify existing
.squad/config.json) - Change the model after spawn (fallback chains handle runtime failures)
Config Schema
.squad/config.json model-related fields:
{
"version": 1,
"defaultModel": "claude-opus-5.5",
"modelProfile": "balanced",
"agentModelOverrides": {
"agent-alpha": "claude-sonnet-5.5",
"agent-beta": "claude-haiku-5.5"
}
}
defaultModel— applies to ALL agents unless overridden byagentModelOverridesagentModelOverrides— per-agent overrides that take priority overdefaultModelmodelProfile—quality-first(default),balanced,economyorhydrafusion(opt-in research preview); affects only Layers 3-4- All fields are optional. When absent, Layers 1-4 apply normally.
Fallback Chains
If a model is unavailable (rate limit, plan restriction), retry within the same tier:
Premium: claude-opus-5.5 → gpt-6.1-sol → claude-opus-5 → gpt-6-sol → claude-opus-4.8 → gpt-5.6-sol → (omit model param)
Standard: claude-sonnet-5.5 → gpt-5.6-terra → claude-sonnet-5 → gpt-5.5 → gpt-5.4 → gpt-5.3-codex → (omit model param)
Fast: claude-haiku-5.5 → gpt-6-luna → gpt-5.6-luna → gemini-3.8-flash → claude-haiku-4.5 → gpt-5.4-mini → gpt-5-mini → (omit model param)
Chains list only public GA models (https://docs.github.com/en/copilot/reference/ai-models/supported-models, verified 2026-10-14). When the runtime supplies a live model list, it decides availability.
Never fall UP in tier. A fast task won't land on a premium model via fallback.
04 同仓库更多 Skills
gh-aw-enlistment
Enlist a repository into Squad by installing the supported GitHub Agentic Workflows (gh-aw) bootstrap — with strict compilation, an explicit safe-update allowlist, and a human-reviewed bootstrap PR. Never auto-merges.
My Skill
暂无简介
bad-skill
暂无简介
windows-compatibility
Cross-platform path handling and command patterns
versioning-policy
SemVer rules for Squad's stable, preview, insider, and local package versions
tiered-memory
Three-tier agent memory model (hot/cold/wiki) for context reduction per spawn