Feature Request: Support per-worker model in swarm spawn
Open
Nobody has claimed this yet.
question
- Dominant language
- Rust
- Stars
- 19.9k
- Forks
- 2.3k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 30
Description
Problem
Current behavior:
/swarm spawn "agent" model=some-modelignores themodel=parameter- All spawned workers use
swarm_modelfrom config.toml - This makes it impossible to assign different models to different agents
Expected behavior:
/swarm spawn "agent" model=some-modelshould usesome-modelfor that workerswarm_modelshould only be used as fallback whenmodel=is not specified
Use Case
We have 6 agents with different model requirements (v6.2 binding table):
| Agent | Required Model | Provider |
|---|---|---|
| 明镜 (coordinator) | agnes-2.5-flash | agnes-ai-direct |
| 明德 | agnes-2.5-flash | agnes-ai-direct |
| 明品 | agnes-2.5-flash | agnes-ai-direct |
| 明码 | cohere/north-mini-code:free | openrouter |
| 明真 | nvidia/nemotron-3-ultra-550b-a55b:free | openrouter |
| 明察 | nvidia/nemotron-3-ultra-550b-a55b:free | openrouter |
Current limitation forces all agents to use agnes-2.5-flash, wasting free models and reducing quality for code/review tasks.
Proposed Solution
Modify resolve_swarm_spawn_selection to:
- Check if
model=parameter is explicitly provided - If yes, use the provided model
- If no, fallback to
swarm_modelfrom config
References
- Issue #1156: "model= parameter being ignored is expected"
- Commit b76f96561: fix(swarm): make worker model operator-controlled
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Locate resolve_swarm_spawn_selection and the /swarm spawn entry point, then inspect how config.toml supplies swarm_model. Verify that an explicit model= value is used for that worker while swarm_model remains the fallback when model= is omitted; run the relevant existing swarm tests if present.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- ai, cli
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100