Skip to content

[FEATURE]: Auto model selector for OpenCode Go (route among Go-eligible models per task) #51362

Closed as not planned

Description

@apoorvdarshan

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

Plan: OpenCode Go

Summary

Add a first-class auto model selector for the OpenCode Go subscription: a single selectable entry (for example opencode/auto or an "Auto" row in /models) that automatically chooses among the Go-eligible models for each request, instead of requiring the user to hand-pick one model and stick with it.

Problem

On the Go plan, /models exposes a large catalog of Go-eligible models, but selection is entirely manual and static per session. In practice this means:

Existing coverage is adjacent but not this:

So there is currently no built-in auto selector for OpenCode Go.

What I'm asking for

  1. An "Auto" choice in /models for the Go provider that is a real routing entry, not a static model.
  2. Routing restricted to the Go-eligible catalog and aware of Go plan usage/limits, so it never silently drains quota on an out-of-plan model.
  3. Task-aware tiers, e.g. a fast/cheap tier for simple edits and tool calls, a stronger tier for planning/architecture/reasoning, and vision delegation when images appear ([FEATURE]: Auto-switch to vision model when images enter the agent loop (incl. tool-produced) #46794). The exact policy can borrow from [FEATURE] Multi-model orchestration: intent-based routing, vision delegation, turn-level advisor #34370's intent-based routing.
  4. User rules: a config block to shape the policy, such as preferred/denied models, an allowlist (ties into [FEATURE]: Allow Go plan users to restrict which models the client can enable #41357), and a cost/quota ceiling, with automation that pauses rather than overrunning the plan.
  5. Transparency: surface which model handled each turn (flat cost per turn is not enough — I want to see the routing decision, cf. [FEATURE]: Improve Auto Router Error Messaging and Model Status Indicators #47893).

Benefits

  • Best model for each task without manual switching, at lower Go quota burn.
  • Fewer accidental out-of-plan or overly expensive selections.
  • Makes the Go subscription competitive with tools that already auto-route per task.

References

Activity

  1. github-actions commented on Sep 25, 2026

    @github-actions
    Contributor

    This issue might overlap with existing feature requests. Please check:

    • #8456: Automatically use different models based on task type.
    • #34370: Intent-based model routing and vision-model delegation.
  2. Atroci commented on Sep 29, 2026

    @Atroci

    One design point that might be worth building in from the start: an auto that resolves the model once per session behaves very differently from one that resolves it per request.

    Within a single coding task the right model changes as the work unfolds: cheap for reads and mechanical edits, stronger after repeated test failures, back down once things pass. If opencode/auto is a resolution point that runs for every request (a provider or plugin hook that sees the request and the recent turn history, and returns a Go-eligible model), the routing policy can use what actually happened in the task, not just the first prompt. It would also let different policies plug in without OpenCode owning one fixed heuristic.

    Two details that matter for the quota problem you describe (#44327, #46894):

    • the selector should only ever choose models the Go plan actually includes (catalogue listing is not entitlement), and
    • each turn should record which model actually served, so you can check the selector saved quota rather than trusting it.

    Disclosure: I work on Sabi (github.com/vizuh/sabi), a per-round scheduler that keeps the harness's own loop and credentials. It does not do in-session switching inside OpenCode today, so I'm interested in whether this lands as a hook rather than a built-in rule.

  3. mixxermannipro commented on Oct 2, 2026

    @mixxermannipro

    I opened #52743 as a broader extension of the Auto model selector proposed here.

    Instead of limiting Auto routing to Go-eligible models, the proposal explores a provider-agnostic routing layer that could select provider + model + reasoning effort based on the task, current subscriptions/quotas, API and cache pricing, capabilities, quality signals, latency, and user-defined priorities.

    It also covers quota conservation, confidence-based decisions, automatic escalation/fallback, routing transparency, and eventually OpenCode-specific performance telemetry.

    I think the Go Auto selector proposed here could be an excellent first implementation step toward that architecture.

    Detailed proposal: #52743

  4. neriousy commented on Oct 21, 2026

    @neriousy
    Member

    Thanks for the detailed write-up. We're not planning an Auto entry for Go right now. You can get part of the way there today by giving agents their own models, for example a cheaper Go model for the explore subagent and a stronger one for your main agent: https://opencode.ai/v2/docs/agents#model. The broader discussion of task-based model routing is in #34370. Closing as not planned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions