feat: add OrcaRouter as a first-class model provider - #2624
Open
clementguarino06510-glitch wants to merge 1 commit into
Open
feat: add OrcaRouter as a first-class model provider#2624clementguarino06510-glitch wants to merge 1 commit into
clementguarino06510-glitch wants to merge 1 commit into
Conversation
Add OrcaRouter (an OpenAI-compatible AI gateway) as a named ModelConfig provider, mirroring how the OpenAI provider is wired end to end: - ModelConfig CRD (v1alpha2/v1alpha3): new OrcaRouter enum value, OrcaRouterConfig block, and CEL XValidation for the orcaRouter spec field. - ModelProviderConfig: default endpoint https://api.orcarouter.ai/v1. - Go ADK: new adk.OrcaRouter wire type, dispatch in CreateLLM, and NewOrcaRouterModelWithLogger reading ORCAROUTER_API_KEY. - v2 compiler: translate ModelProviderOrcaRouter into adk.OrcaRouter, mount the API key secret, and allowlist api.orcarouter.ai for egress. - Controller/UI: provider in the discovery catalog with curated models, provider definition, UI icon, provider info links, and mock fixtures. - Python ADK: OrcaRouter model type wired through to the OpenAI-compatible client. - Regenerated CRD manifests (go/api/config/crd + helm) and deepcopy. Signed-off-by: clementguarino06510-glitch <clementguarino06510-glitch@users.noreply.github.com>
clementguarino06510-glitch
requested review from
a team,
Charlesthebird,
peterj and
supreme-gg-gg
as code owners
August 29, 2026 05:25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR makes OrcaRouter a first-class model provider in kagent's
ModelConfig, so kagent users can point their agents at OrcaRouter's gateway from the model form andkubectlthe same way they already do for OpenAI or Anthropic. OrcaRouter is an OpenAI-compatible AI gateway built for both models and agents: like OpenRouter, it exposes a provider/model namespace across many models, but it also combines adaptive routing, automatic failover, zero-markup inference, observability, guardrails, and agent-tool governance behind the same endpoint. AddingOrcaRouteras a named provider means kagent users can use that stack directly, without treating OrcaRouter as an anonymous custom base URL. It also runs gateway-level, zero-trust security for AI agents on the same endpoint — screening every prompt/response and governing every tool call on a default-deny basis, with no application code changes.The wiring mirrors the existing OpenAI provider end to end, since OrcaRouter speaks the OpenAI chat-completions wire format:
ModelConfigCRD (v1alpha2/v1alpha3): newOrcaRouterenum value, anOrcaRouterConfigblock (base URL, temperature, maxTokens/maxCompletionTokens, topP, reasoningEffort, apiFormat, timeout), and the matching CEL XValidation sospec.orcaRouteris only accepted whenprovider: OrcaRouter.ModelProviderConfig: default endpointhttps://api.orcarouter.ai/v1.adk.OrcaRouterwire type, dispatch inCreateLLM, andNewOrcaRouterModelWithLoggerwhich readsORCAROUTER_API_KEY(or forwards the caller's bearer token underapiKeyPassthrough).provider: OrcaRouterinto the ADK model, mounts the API-key Secret, and addsapi.orcarouter.aito the agent's network allowlist.orcarouter/autoand a few flagship models — the full catalog lives at https://www.orcarouter.ai/models).kagent-adk): anorcaroutermodel type wired through the OpenAI-compatible client.Validation:
go build ./...for the touched packages,go vet, and unit tests pass forgo/api/adk,go/api/client,go/core/internal/service/model(discovery catalog/provider list updated to 11 providers),go/core/v2/translator/..., andgo/core/pkg/env.yarn typecheckandyarn lintpass (0 errors).NewOrcaRouterModelWithLoggeragainst the real gateway withORCAROUTER_API_KEY—POST https://api.orcarouter.ai/v1/chat/completionswithorcarouter/autoreturned a 200 completion.Discord: discord.gg/YEubt8enRA · X: https://x.com/OrcaRouter
I'm an engineer on the OrcaRouter team.