Skip to content

feat(providers): add Arcee AI #9274

Closed
arthurbr11 wants to merge 1 commit into
NousResearch:mainfrom
arthurbr11:arcee-as-provider
Closed

feat(providers): add Arcee AI #9274
arthurbr11 wants to merge 1 commit into
NousResearch:mainfrom
arthurbr11:arcee-as-provider

Conversation

@arthurbr11

Copy link
Copy Markdown
Contributor

Summary

Adds Arcee AI as a first-class provider with. One provider ID (arcee) supports either a direct Arcee key or an OpenRouter key, auto-routed at runtime.

Auth path Endpoint Env var Model ID form
Direct api.arcee.ai/api/v1 ARCEEAI_API_KEY bare (trinity-large-thinking)
Via OpenRouter openrouter.ai/api/v1 OPENROUTER_API_KEY prefixed (arcee/trinity-large-thinking)

Aliases: arcee-ai, arceeai. Default model: trinity-large-thinking.

Routing precedence (_resolve_arcee_base_url)

  1. Explicit ARCEE_BASE_URL override wins
  2. Key resolved from ARCEEAI_API_KEY → direct
  3. Key resolved from OPENROUTER_API_KEY → OpenRouter (with arcee/ model-ID transform)
  4. Ambiguous source (config.yaml, shell env): sk-or- prefix → OpenRouter, else direct
  5. Fallback → direct

Interactive onboarding

hermes model → Arcee AI shows a 1/2/3 auth-method menu modeled on the Anthropic OAuth flow at hermes_cli/main.py. Routing logic is provider-specific (not a generic auth_methods field) so it stays consistent with how Anthropic's OAuth menu is hand-coded.

Changes

Follows the provider-addition checklist from #9172 (kimi-coding-cn) and #7702 (xiaomi).

Core provider wiring

  • hermes_cli/auth.pyarcee ProviderConfig, _resolve_arcee_base_url helper, aliases
  • hermes_cli/config.pyARCEEAI_API_KEY + ARCEE_BASE_URL in OPTIONAL_ENV_VARS
  • hermes_cli/models.py — Trinity model list, labels, aliases, provider order
  • hermes_cli/main.py — hand-coded _model_flow_arcee auth-method menu, setup menu entry, CLI choices
  • hermes_cli/runtime_provider.py — arcee branch in explicit-runtime credential resolution
  • hermes_cli/setup.py — model list + setup label
  • hermes_cli/model_normalize.pyarcee/ prefix strip (direct) / inject (OpenRouter) based on env sniff
  • hermes_cli/providers.pyHermesOverlay entry + aliases
  • hermes_cli/doctor.py — health check entry

Agent internals

  • agent/auxiliary_client.pytrinity-mini as aux model, aliases
  • agent/model_metadata.py — provider prefixes, api.arcee.ai URL mapping
  • trajectory_compressor.pyarcee.ai URL detection

Note: agent/models_dev.py is intentionally not touched — Arcee has no models.dev entry.

Docs

  • website/docs/getting-started/quickstart.md — provider table row
  • website/docs/reference/environment-variables.mdARCEEAI_API_KEY + ARCEE_BASE_URL + provider list
  • website/docs/user-guide/configuration.md — auxiliary provider list
  • website/docs/integrations/providers.md — full provider docs + example
  • cli-config.yaml.example — provider enumeration
  • .env.example — commented example with two-endpoint explainer

Test plan

  • New test file tests/hermes_cli/test_arcee_provider.py — 36 tests covering registry, aliases, credential resolution (direct / OpenRouter-only / direct-wins), all 5 base-URL routing precedence rules, model-ID normalization (both directions, env-driven), URL mapping, trajectory compressor detection, providers overlay, auxiliary model routing
  • hermes chat --provider arcee appears in argparse --help choices
  • All touched modules import clean

teknium1 pushed a commit that referenced this pull request Apr 13, 2026
…one provider

Single provider ID (arcee) supports either a direct Arcee key or an
OpenRouter key, auto-routed at runtime. Direct key wins; sk-or- prefix
triggers OpenRouter path.

Cherry-picked from PR #9274.
teknium1 pushed a commit that referenced this pull request Apr 14, 2026
Adds Arcee AI as a standard direct provider (ARCEEAI_API_KEY) with
Trinity models: trinity-large-thinking, trinity-large-preview, trinity-mini.

Standard OpenAI-compatible provider checklist: auth.py, config.py,
models.py, main.py, providers.py, doctor.py, model_normalize.py,
model_metadata.py, setup.py, trajectory_compressor.py.

Based on PR #9274 by arthurbr11, simplified to a standard direct
provider without dual-endpoint OpenRouter routing.
teknium1 pushed a commit that referenced this pull request Apr 14, 2026
Adds Arcee AI as a standard direct provider (ARCEEAI_API_KEY) with
Trinity models: trinity-large-thinking, trinity-large-preview, trinity-mini.

Standard OpenAI-compatible provider checklist: auth.py, config.py,
models.py, main.py, providers.py, doctor.py, model_normalize.py,
model_metadata.py, setup.py, trajectory_compressor.py.

Based on PR #9274 by arthurbr11, simplified to a standard direct
provider without dual-endpoint OpenRouter routing.
@teknium1

Copy link
Copy Markdown
Contributor

Merged via PR #9276. Your Arcee AI provider work was cherry-picked onto current main with your authorship preserved in git log. Simplified from dual-endpoint routing to a standard direct provider — Arcee models via OpenRouter are already available in the OpenRouter model list. Thanks for the contribution!

@teknium1 teknium1 closed this Apr 14, 2026
ulasbilgen pushed a commit to ulasbilgen/hermes-adhd-agent that referenced this pull request May 1, 2026
Adds Arcee AI as a standard direct provider (ARCEEAI_API_KEY) with
Trinity models: trinity-large-thinking, trinity-large-preview, trinity-mini.

Standard OpenAI-compatible provider checklist: auth.py, config.py,
models.py, main.py, providers.py, doctor.py, model_normalize.py,
model_metadata.py, setup.py, trajectory_compressor.py.

Based on PR NousResearch#9274 by arthurbr11, simplified to a standard direct
provider without dual-endpoint OpenRouter routing.
aj-nt pushed a commit to aj-nt/hermes-agent that referenced this pull request May 1, 2026
Adds Arcee AI as a standard direct provider (ARCEEAI_API_KEY) with
Trinity models: trinity-large-thinking, trinity-large-preview, trinity-mini.

Standard OpenAI-compatible provider checklist: auth.py, config.py,
models.py, main.py, providers.py, doctor.py, model_normalize.py,
model_metadata.py, setup.py, trajectory_compressor.py.

Based on PR NousResearch#9274 by arthurbr11, simplified to a standard direct
provider without dual-endpoint OpenRouter routing.
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
Adds Arcee AI as a standard direct provider (ARCEEAI_API_KEY) with
Trinity models: trinity-large-thinking, trinity-large-preview, trinity-mini.

Standard OpenAI-compatible provider checklist: auth.py, config.py,
models.py, main.py, providers.py, doctor.py, model_normalize.py,
model_metadata.py, setup.py, trajectory_compressor.py.

Based on PR NousResearch#9274 by arthurbr11, simplified to a standard direct
provider without dual-endpoint OpenRouter routing.
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
Adds Arcee AI as a standard direct provider (ARCEEAI_API_KEY) with
Trinity models: trinity-large-thinking, trinity-large-preview, trinity-mini.

Standard OpenAI-compatible provider checklist: auth.py, config.py,
models.py, main.py, providers.py, doctor.py, model_normalize.py,
model_metadata.py, setup.py, trajectory_compressor.py.

Based on PR NousResearch#9274 by arthurbr11, simplified to a standard direct
provider without dual-endpoint OpenRouter routing.
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
Adds Arcee AI as a standard direct provider (ARCEEAI_API_KEY) with
Trinity models: trinity-large-thinking, trinity-large-preview, trinity-mini.

Standard OpenAI-compatible provider checklist: auth.py, config.py,
models.py, main.py, providers.py, doctor.py, model_normalize.py,
model_metadata.py, setup.py, trajectory_compressor.py.

Based on PR NousResearch#9274 by arthurbr11, simplified to a standard direct
provider without dual-endpoint OpenRouter routing.
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.

2 participants