Skip to content

fix: respect config.yaml model.base_url for Anthropic provider#1949

Closed
rivercrab26 wants to merge 1 commit into
NousResearch:mainfrom
rivercrab26:fix/anthropic-base-url-config
Closed

fix: respect config.yaml model.base_url for Anthropic provider#1949
rivercrab26 wants to merge 1 commit into
NousResearch:mainfrom
rivercrab26:fix/anthropic-base-url-config

Conversation

@rivercrab26

Copy link
Copy Markdown
Contributor

Summary

Fixes #1948 — Anthropic provider base URL is hardcoded after #1675 removed ANTHROPIC_BASE_URL env var.

Problem

After #1675, the Anthropic provider always uses https://api.anthropic.com regardless of config.yaml settings. Users who need Anthropic-compatible proxies (Sub2API, LiteLLM, etc.) have no configuration path.

Changes

hermes_cli/runtime_provider.py

  • Read model.base_url from config.yaml when resolving the Anthropic provider
  • Fall back to https://api.anthropic.com when not set (zero behavior change for default users)

agent/auxiliary_client.py

  • Same change in _try_anthropic() for auxiliary client (vision, compression, etc.)
  • Wrapped in try/except to avoid breaking if config loading fails

Usage

# config.yaml
model:
  default: anthropic/claude-opus-4.6
  provider: anthropic
  base_url: http://localhost:8080  # now respected

Testing

  • 106 auxiliary-related tests pass
  • No behavior change when model.base_url is not set
  • Consistent with how alibaba and other providers already handle base URL overrides

The Anthropic provider base URL was hardcoded to https://api.anthropic.com
in both runtime_provider.py and auxiliary_client.py after ANTHROPIC_BASE_URL
env var was removed in NousResearch#1675.

This makes it impossible to use Anthropic-compatible proxies (e.g. Sub2API,
LiteLLM proxy) without modifying source code. Other providers (alibaba,
custom, etc.) already read base_url from config or env vars.

Fix: read model.base_url from config.yaml as an override, falling back to
the default https://api.anthropic.com when not set. This is consistent with
how other providers handle base URL configuration.

Closes NousResearch#1948
teknium1 pushed a commit that referenced this pull request Mar 18, 2026
After #1675 removed ANTHROPIC_BASE_URL env var support, the Anthropic
provider base URL was hardcoded to https://api.anthropic.com. Now reads
model.base_url from config.yaml as an override, falling back to the
default when not set. Also applies to the auxiliary client.

Cherry-picked from PR #1949 by @rivercrab26.
teknium1 added a commit that referenced this pull request Mar 18, 2026
#1998)

After #1675 removed ANTHROPIC_BASE_URL env var support, the Anthropic
provider base URL was hardcoded to https://api.anthropic.com. Now reads
model.base_url from config.yaml as an override, falling back to the
default when not set. Also applies to the auxiliary client.

Cherry-picked from PR #1949 by @rivercrab26.

Co-authored-by: rivercrab26 <rivercrab26@users.noreply.github.com>
@teknium1

Copy link
Copy Markdown
Contributor

Merged via PR #1998. Cherry-picked onto current main with authorship preserved. Thanks @rivercrab26!

@teknium1 teknium1 closed this Mar 18, 2026
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 27, 2026
…esearch#1948) (NousResearch#1998)

After NousResearch#1675 removed ANTHROPIC_BASE_URL env var support, the Anthropic
provider base URL was hardcoded to https://api.anthropic.com. Now reads
model.base_url from config.yaml as an override, falling back to the
default when not set. Also applies to the auxiliary client.

Cherry-picked from PR NousResearch#1949 by @rivercrab26.

Co-authored-by: rivercrab26 <rivercrab26@users.noreply.github.com>
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…esearch#1948) (NousResearch#1998)

After NousResearch#1675 removed ANTHROPIC_BASE_URL env var support, the Anthropic
provider base URL was hardcoded to https://api.anthropic.com. Now reads
model.base_url from config.yaml as an override, falling back to the
default when not set. Also applies to the auxiliary client.

Cherry-picked from PR NousResearch#1949 by @rivercrab26.

Co-authored-by: rivercrab26 <rivercrab26@users.noreply.github.com>
olympus-terminal pushed a commit to olympus-terminal/hermes-agent that referenced this pull request May 16, 2026
…esearch#1948) (NousResearch#1998)

After NousResearch#1675 removed ANTHROPIC_BASE_URL env var support, the Anthropic
provider base URL was hardcoded to https://api.anthropic.com. Now reads
model.base_url from config.yaml as an override, falling back to the
default when not set. Also applies to the auxiliary client.

Cherry-picked from PR NousResearch#1949 by @rivercrab26.

Co-authored-by: rivercrab26 <rivercrab26@users.noreply.github.com>
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…esearch#1948) (NousResearch#1998)

After NousResearch#1675 removed ANTHROPIC_BASE_URL env var support, the Anthropic
provider base URL was hardcoded to https://api.anthropic.com. Now reads
model.base_url from config.yaml as an override, falling back to the
default when not set. Also applies to the auxiliary client.

Cherry-picked from PR NousResearch#1949 by @rivercrab26.

Co-authored-by: rivercrab26 <rivercrab26@users.noreply.github.com>
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
…esearch#1948) (NousResearch#1998)

After NousResearch#1675 removed ANTHROPIC_BASE_URL env var support, the Anthropic
provider base URL was hardcoded to https://api.anthropic.com. Now reads
model.base_url from config.yaml as an override, falling back to the
default when not set. Also applies to the auxiliary client.

Cherry-picked from PR NousResearch#1949 by @rivercrab26.

Co-authored-by: rivercrab26 <rivercrab26@users.noreply.github.com>
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.

Anthropic provider ignores config.yaml model.base_url — base URL hardcoded after #1675

2 participants