Repository navigation
Model identity vs execution ID: what is the smartest long-term compatibility architecture? #2835
RaviTharuma
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
@code-yeongyu I wanted to ask for your architectural take on the cleanest long-term direction here.
Context:
#2829moved model capability handling toward runtime metadata +models.devinstead of broad hardcoded family logic.#2834adds guardrails because the remaining alias layer can silently drift over time.models.devmodel IDsMy current view is that the smartest long-term shape is probably not “canonical IDs everywhere, full stop”. I think it is closer to this:
Proposed direction
1. Keep the execution model ID
This is the exact provider-facing string that must be sent to the upstream/provider/proxy.
Examples:
google/antigravity-claude-opus-4-5-thinkingclaude-opus-4-6-thinkingThis preserves compatibility with all the weird real-world setups users actually have.
2. Add a separate canonical capability ID
This is the internal capability lookup key used for:
models.devExamples:
claude-opus-4-6gemini-3.1-pro-previewkimi-k2.53. Normalize only at the edge
If a user/provider/proxy gives us a decorated or legacy model name, we should normalize it to a canonical capability ID for internal reasoning, without necessarily changing the execution model ID.
That means a structure more like:
requestedModelIDexecutionModelIDcanonicalModelIDvariant,thinking,reasoningEffort4. Treat aliases as compatibility-only
Aliases should stay small, explicit, and tested.
Not a general strategy.
Just a bridge for:
5. Keep canonical IDs as the rule for built-in defaults
For shipped OmO defaults / requirements, my bias is still:
Why I think this is the elegant middle ground
It seems to preserve both goals:
It avoids two bad extremes:
Question
Do you think the right long-term architecture is also this kind of split:
Or do you prefer a different center of gravity?
In particular, I would love your take on what you think is the most elegant solution that still preserves compatibility for users coming through Antigravity, Copilot, CLIProxyAPI/Quotio, and similar setups.
If you have a stronger simpler model in mind, I would rather align to that now than keep hardening the wrong abstraction.
All reactions