Skip to content

feat: add OrcaRouter as a named LLM provider - #42

Open
XiaoHuo888-hue wants to merge 1 commit into
e2b-dev:masterfrom
XiaoHuo888-hue:add-orcarouter-provider
Open

feat: add OrcaRouter as a named LLM provider#42
XiaoHuo888-hue wants to merge 1 commit into
e2b-dev:masterfrom
XiaoHuo888-hue:add-orcarouter-provider

Conversation

@XiaoHuo888-hue

Copy link
Copy Markdown

Summary

Adds OrcaRouter as a named provider. With one API key, users get 150+ models from OpenAI, Anthropic, Google, DeepSeek, Qwen, MiniMax and xAI behind a single endpoint. Because the provider layer here is a thin base-URL swap, any computer-use agent that uses it also inherits OrcaRouter's gateway-level, zero-trust security controls for AI agents — with no application code changes. The gateway screens every prompt and response and governs every tool call on a default-deny basis, across four layers:

  • Scoped keys — bind a key to specific models, IPs, spend caps, and expiry.
  • Guardrails — screen for PII, secret leakage, prompt injection, and unsafe output.
  • Agent firewall — tool allow-lists with per-argument validation.
  • Audit trail — a record of every match, verdict, and approval decision.

I'm an engineer on the OrcaRouter team.

What's added

  • os_computer_use/providers.py: new OrcaRouterProvider(OpenAIBaseProvider) mirroring the existing OpenRouterProviderbase_url=https://api.orcarouter.ai/v1, auth via ORCAROUTER_API_KEY, and aliases mapping short names to provider-prefixed OrcaRouter model IDs (gpt-5.5openai/gpt-5.5, claude-sonnetanthropic/claude-sonnet-5, gemini-flashgoogle/gemini-3.5-flash).
  • os_computer_use/config.py: commented option showing how to select it (vision_model = providers.OrcaRouterProvider("gpt-5.5")).
  • README.md: OrcaRouter added to the LLM support list and ORCAROUTER_API_KEY added to the env var list.

Why a named provider

This mirrors how the existing OpenRouterProvider is wired in this repo, so the config reference and docs stay consistent for users, and the README already invites provider PRs.

How to use it

  1. Get an API key at https://www.orcarouter.ai/console (keys start with sk-orca-).

  2. Set ORCAROUTER_API_KEY in .env.

  3. In os_computer_use/config.py:

    vision_model = providers.OrcaRouterProvider("gpt-5.5")

    Other catalog model IDs (e.g. anthropic/claude-opus-4.8, google/gemini-3.5-flash) work the same way. The full catalog is at https://www.orcarouter.ai/models.

Verification

  • Live API (real key, exercised through the new OrcaRouterProvider class):
    • text: providers.OrcaRouterProvider("gpt-5.5").call(...)ORCA-OK
    • vision (inline image): returned the correct color (Blue)
    • tool calling (the agent's real flow, click_item tool): returned a valid tool call click_item{"description": "submit button"}
    • Direct openai/gpt-5.5, anthropic/claude-sonnet-5, google/gemini-3.5-flash, deepseek/deepseek-v4-flash completions all HTTP 200.
  • Compile: python -m py_compile os_computer_use/providers.py passes.

Adds a named OrcaRouterProvider (OpenAI-compatible, base_url
https://api.orcarouter.ai/v1, ORCAROUTER_API_KEY) mirroring the existing
OpenRouterProvider, plus config and README docs. OrcaRouter model IDs are
provider-prefixed (openai/gpt-5.5, anthropic/claude-sonnet-5,
google/gemini-3.5-flash); aliases map short names to those IDs.

Co-Authored-By: Claude <noreply@anthropic.com>
@cla-bot

cla-bot Bot commented Aug 13, 2026

Copy link
Copy Markdown

We require contributors to sign our Contributor License Agreement, and we don't have @XiaoHuo888-hue on file. You can sign our CLA at https://e2b.dev/docs/cla . Once you've signed, post a comment here that says '@cla-bot check'

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant