1
1
Fork
You've already forked nibble
0

feat: allow specifying the model for subagent tasks inline #10

Open
opened 2026年07月10日 14:01:18 +02:00 by andeerc · 0 comments

Summary

Allow users to specify which LLM model a subagent or task should use directly in the prompt, without having to change global configuration.

Motivation

Currently, all agents/tasks run using the globally configured model. There is no way to mix models within a single session or workflow. Being able to target specific models per task opens up powerful patterns:

  • Use a cheaper/faster model for simple subtasks (e.g. writing docs, summarizing)
  • Use a more capable model for complex reasoning or analysis
  • Experiment with different models side-by-side within the same session

Proposed UX

The user should be able to express model selection naturally in the prompt, for example:

Do task X using model Y. Analyze X using model Y and use model Z to write the documentation.

Nibble should parse the model hint and route the subagent or task to the specified model.

Proposed Behavior

  • When a user specifies a model in a task description (e.g. "using model Y"), Nibble (or the coordinator) should honour that hint when spawning the subagent for that task
  • The model name/alias should match the same identifiers used in nibble.json / models config (e.g. claude-sonnet-4-5, gpt-4o, gemini-2.5-pro)
  • If the specified model is not found or unavailable, fall back to the default model and warn the user
  • The feature should work both for:
    • Coordinator-spawned subagents (task agent)
    • Explicit user prompts directing a subtask to a specific model

Examples

`

Single model override

Refactor internal/agent/agent.go using claude-opus-4-5.

Multiple model overrides in one prompt

Analyze the performance bottlenecks using gemini-2.5-pro and use gpt-4o-mini to write the summary.

Named model alias

Write the unit tests for internal/hooks using the fast model.
`

Open Questions

  • Should model hints be parsed by the coder agent's LLM (semantic parsing) or via explicit syntax (e.g. @model:name)?
  • Should there be a shorthand syntax in addition to natural language (e.g. [model=claude-opus])?
  • How should this interact with provider authentication — skip the task if the model's provider is not configured?
## Summary Allow users to specify which LLM model a subagent or task should use directly in the prompt, without having to change global configuration. ## Motivation Currently, all agents/tasks run using the globally configured model. There is no way to mix models within a single session or workflow. Being able to target specific models per task opens up powerful patterns: - Use a cheaper/faster model for simple subtasks (e.g. writing docs, summarizing) - Use a more capable model for complex reasoning or analysis - Experiment with different models side-by-side within the same session ## Proposed UX The user should be able to express model selection naturally in the prompt, for example: ` Do task X using model Y. Analyze X using model Y and use model Z to write the documentation. ` Nibble should parse the model hint and route the subagent or task to the specified model. ## Proposed Behavior - When a user specifies a model in a task description (e.g. "using model Y"), Nibble (or the coordinator) should honour that hint when spawning the subagent for that task - The model name/alias should match the same identifiers used in `nibble.json` / `models` config (e.g. `claude-sonnet-4-5`, `gpt-4o`, `gemini-2.5-pro`) - If the specified model is not found or unavailable, fall back to the default model and warn the user - The feature should work both for: - Coordinator-spawned subagents (task agent) - Explicit user prompts directing a subtask to a specific model ## Examples ` # Single model override Refactor internal/agent/agent.go using claude-opus-4-5. # Multiple model overrides in one prompt Analyze the performance bottlenecks using gemini-2.5-pro and use gpt-4o-mini to write the summary. # Named model alias Write the unit tests for internal/hooks using the fast model. ` ## Open Questions - Should model hints be parsed by the coder agent's LLM (semantic parsing) or via explicit syntax (e.g. `@model:name`)? - Should there be a shorthand syntax in addition to natural language (e.g. `[model=claude-opus]`)? - How should this interact with provider authentication — skip the task if the model's provider is not configured?
Sign in to join this conversation.
No Branch/Tag specified
main
v0.1.4
v0.1.3
v0.1.2
v0.1.1
v0.0.3
v0.0.2
v0.0.1
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
andeerc/nibble#10
Reference in a new issue
andeerc/nibble
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?