feat: add OrcaRouter as a named LLM provider - #1194
Conversation
Signed-off-by: JinhaoSong322 <jinhao.song@myflashcloud.com>
oss-maintainer
left a comment
There was a problem hiding this comment.
Summary
Adds OrcaRouter as a named OpenAI-compatible LLM provider (orcarouter), mirroring the existing qwen/openai-compat wiring across the controller initializer, bootstrap scripts, LLM preflight probe, PowerShell installer, and docs. Overall a clean, consistent addition with no breaking config/env changes or Helm upgrade concerns.
Findings
- [Warning] manager/scripts/init/start-manager-agent.sh:444 — k8s-mode orcarouter branch references
orcarouter.dnswithout registering the DNS service source first (low practical impact, see inline comment).
Suggestions
In the k8s-mode Higress setup branch, register the DNS service source for api.orcarouter.ai before creating the AI provider, mirroring what the controller initializer and setup-higress.sh already do.
Automated review by github-manager-bot
| '{"type":"qwen","name":"qwen","tokens":["'"${AGENTTEAMS_LLM_API_KEY}"'"],"protocol":"openai/v1","tokenFailoverConfig":{"enabled":false},"rawConfigs":{"qwenEnableSearch":false,"qwenEnableCompatible":true,"qwenFileIds":[],"agentteamsMode":true}}' | ||
| ;; | ||
| orcarouter) | ||
| # OrcaRouter: OpenAI-compatible gateway (https://www.orcarouter.ai) |
There was a problem hiding this comment.
The k8s-mode orcarouter branch creates an AI provider that references orcarouter.dns but never registers the DNS service source for api.orcarouter.ai. Mirroring the controller initializer or setup-higress.sh, it should call the Higress service-sources API (or reuse a registered source) before creating the provider. Note: this block is only reached when _HIGRESS_CONSOLE_URL is set, which is empty in standard k8s mode, so the practical impact is low.
Summary
Add OrcaRouter as a named LLM provider option for AgentTeams, mirroring the existing
qwen/openai-compatnamed-provider wiring.OrcaRouter is a unified AI gateway that exposes an OpenAI-compatible API at
https://api.orcarouter.ai/v1. SettingAGENTTEAMS_LLM_PROVIDER=orcarouter(orcredentials.llmProvider=orcarouter) routes the Manager and Workers through a single OrcaRouter API key across models. 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.What changed
manager/scripts/init/setup-higress.sh— neworcarouterprovider branch: registers theapi.orcarouter.aiDNS service source and creates the Higress AI provider (type=openai,openaiCustomUrl=https://api.orcarouter.ai/v1), plus the defaultLLM_API_URL.manager/scripts/init/start-manager-agent.sh— same provider setup for the embedded/K8s bootstrap path.agentteams-controller/internal/initializer/initializer.go— neworcaroutercase that registers the service source and creates the gateway provider.agentteams-controller/cmd/agt/llm_preflight.go—orcarouterresolves tohttps://api.orcarouter.ai/v1by default in the LLM preflight probe.agentteams-controller/cmd/agt/llm_preflight_test.go— test asserting theorcarouterdefault base URL.install/agentteams-install.ps1— third provider option in the interactive installer (OrcaRouter), with default modelorcarouter/auto;New-OpenAICompatProvidernow accepts a provider name.helm/agentteams/values.yaml— updatedllmProvidercomment.README.md/README.zh-CN.md/README.ja-JP.md/install/README.md— OrcaRouter usage documentation.Verification
go build ./cmd/agt/... ./internal/initializer/...— cleango test ./cmd/agt/...— pass (including newTestResolveLLMPreflightConfigDefaultsOrcaRouter)gofmt -l— clean on edited Go filesbash -n— clean on both edited shell scriptshttps://api.orcarouter.ai/v1/chat/completionswithorcarouter/autoreturned HTTP 200Disclosure: I'm an engineer on the OrcaRouter team.