We keep Astra as the primary model for understanding the request, architectural decisions, and final review. Cheaper explore and general subagents handle repository discovery and bounded implementation.
Two pieces make this work: agent definitions specify the models and describe when to use them; AGENTS.md tells the primary agent how to delegate effectively. Below are the actual configuration excerpt and delegation section we use.
Keep Astra selected in the primary session. These entries configure the cheaper workers; substitute model IDs available through your providers.
## Cost-Conscious Delegation
Keep the selected primary model for understanding the user's goal, architectural decisions, ambiguous reasoning, and final review. Model selection belongs in agent configuration; describe capabilities and delegation policy here without duplicating model names.
- For non-trivial tasks, prefer `explore` for repository discovery and caller tracing before the primary agent reads large amounts of source. Keep small or tightly coupled work local.
- Treat `general` as capable of owning a complete, bounded routine implementation segment, not merely research. Delegate implementation, applicable authorized validation, and routine corrections together when this avoids substantial primary-agent execution without excessive coordination, rather than one edit at a time. Give the objective, relevant constraints and skills, exact component scope, and acceptance criteria. Keep ambiguous design decisions with the primary model. Do not assign overlapping edits to concurrent workers.
- Request concise findings, file:line references, changed files, validation results, and unresolved questions rather than full files or raw logs. Supply necessary context, not the entire conversation.
- Do not repeat a worker's investigation by default. Inspect critical evidence and changes to verify its conclusions; the primary agent remains responsible for correctness and completion.
- Prefer one coherent delegation over many small calls. Ask workers to return ambiguity immediately and report a blocker after two unsuccessful attempts rather than continue guessing.
- If a worker cannot start or becomes unavailable, promptly report the failure and explicitly choose an available suitable worker or local completion based on the remaining scope and coordination cost. Do not repeatedly retry an unchanged unavailable model or silently absorb substantial delegated work. A worker-start failure is not a failed code check; report which validation remains unperformed. Changing model configuration still requires authorization.
- Group tasks requiring the same component knowledge with one worker. Continue its existing child session for related follow-up work instead of paying for repeated discovery; use fresh context for a different responsibility or a genuinely independent review. Use background completion notifications, not status polling or transcript dumps.
- Delegation does not expand authorization or bypass repository requirements, including explicit requests for automated tests, specialist triggers, and restrictions on production access, provider calls, task dispatch, and deployment.
{ "$schema": "https://opencode.ai/config.json", "agents": { "explore": { "model": "openai/gpt-5.6-luna#high", "description": "Low-cost, read-only discovery. Use for locating code, tracing callers, and gathering concise file-and-line evidence." }, "general": { "model": "opencode-go/deepseek-v4.1-flash", "description": "Low-cost worker for complete, bounded routine implementation segments, including authorized validation and corrections, or focused investigation. Give an exact scope, constraints, and acceptance criteria." } } }