How to Configure GSD Model Profiles for Quality vs Token Budget Trade-offs
I was burning through my API budget way too fast. My GSD agent sessions were racking up hundreds of thousands of tokens, and I couldn’t figure out why. Then I discovered the model profile system - it turns out I was using Opus for everything, even simple verification tasks where Haiku would have been plenty.
The Problem: Wrong Model for the Wrong Task
GSD uses different agents for different phases: planning, execution, and verification. Each phase has different complexity requirements:
- Planning needs deep reasoning to understand requirements and design solutions
- Execution needs solid coding skills but not maximum intelligence
- Verification just needs to check if things work - fast and cheap is fine
By default, GSD uses a “balanced” profile that puts Opus on planning and Sonnet on execution. But I didn’t know this. I also didn’t know I could change it.
Understanding the Four Profiles
GSD offers four model profiles to balance quality against token cost:
| Profile | Planning | Execution | Verification |
|---|---|---|---|
quality | Opus | Opus | Sonnet |
balanced (default) | Opus | Sonnet | Sonnet |
budget | Sonnet | Sonnet | Haiku |
inherit | Inherit | Inherit | Inherit |
Quality gives you maximum reasoning everywhere. Opus plans and Opus executes. This is overkill for most tasks but perfect for complex architectural decisions.
Balanced is the default. Opus plans, Sonnet executes and verifies. Good quality at moderate cost.
Budget uses Sonnet for heavy lifting and Haiku for verification. Lower quality, but significantly cheaper.
Inherit follows whatever model your runtime is currently using. This is essential for non-Anthropic providers like OpenRouter or local models.
Switching Profiles
I switched to budget mode with a simple command:
/gsd-set-profile budgetTo go back to quality mode:
/gsd-set-profile qualityFor interactive configuration where you can see all options:
/gsd-settingsThe interactive mode shows you the current profile and lets you change it along with other GSD settings.
When to Use Each Profile
After experimenting, I found these use cases work best:
Quality profile:
- Complex architectural decisions
- Research-heavy planning phases
- Projects where correctness is critical
Balanced profile (default):
- Most development work
- Good balance of quality and cost
- When you’re not sure, stick with this
Budget profile:
- Quick prototyping
- Simple, well-defined tasks
- Running out of API budget
- CI/CD pipelines where cost matters
Inherit profile:
- Using OpenRouter with various models
- Running local LLMs (Ollama, LM Studio)
- When your runtime handles model selection
Per-Agent Overrides
Sometimes you want more granular control. Through /gsd-settings, you can override individual agents:
# Example: Use Haiku for code-reviewer (fast checking)# Use Opus for planner (complex reasoning)# Custom model assignments per agent typeThis is useful when you know certain agents in your workflow don’t need expensive models. My code-reviewer agent just checks style and basic issues - Haiku handles that perfectly.
Adaptive Model Preset
GSD v1.34.0 introduced an adaptive model preset that dynamically adjusts based on task complexity:
Simple tasks -> Lower tier modelComplex tasks -> Higher tier modelThe system detects complexity automatically. I haven’t tested this extensively yet, but it sounds like a smarter approach than manually switching profiles.
Non-Anthropic Providers
If you’re using OpenRouter or local models, the inherit profile is your only option. GSD will follow your runtime’s current model choice:
/gsd-set-profile inheritThis works with:
- OpenRouter (multiple model providers)
- Local models (Ollama, LM Studio, vLLM)
- Runtime model selection (OpenCode
/model)
The inherit profile ensures GSD plays nice with whatever model your runtime has active.
Summary
GSD model profiles solved my budget problem. I was using quality mode by accident, burning tokens on simple verification tasks. Now I switch profiles based on the work:
- Quality for complex planning
- Balanced for normal development
- Budget for prototyping and CI/CD
- Inherit for non-Anthropic providers
The /gsd-set-profile command is my new best friend. Quick switch, immediate cost impact.
Final Words + More Resources
My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me
Here are also the most important links from this article along with some further resources that will help you in this scope:
Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!
Comments