UAT: provider.openai.base-url and provider.openai.org-id config keys registered but not wired to OpenAI provider creation #5806

Open
opened 2026-04-09 09:58:09 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Feature Area: LLM Provider Backends
Milestone: v3.6.0
Severity: Priority/Backlog (config keys exist but have no effect)

What Was Tested

Code-level analysis of src/cleveragents/providers/registry.py, src/cleveragents/providers/llm/openai_provider.py, and src/cleveragents/config/settings.py against the specification's provider.* config key table.

Expected Behavior (from spec §provider.* — LLM Provider Credentials, lines 30807-30809)

The spec defines:

  • provider.openai.base-url — Custom base URL for OpenAI-compatible APIs (e.g., a local proxy or alternative provider). When unset, the official OpenAI API URL is used.
  • provider.openai.org-id — OpenAI organization ID. Optional; used when the API key belongs to multiple organizations.

Both keys should be read from config/environment and passed to the OpenAI provider when creating chat models.

Actual Behavior

provider.openai.base-url:

  • Registered in config_service.py (line 1018) with env var OPENAI_BASE_URL
  • NOT present as a field in Settings class (src/cleveragents/config/settings.py)
  • NOT used in ProviderRegistry._create_provider_llm() or ProviderRegistry.create_ai_provider() for OpenAI
  • NOT passed to OpenAIChatProvider or ChatOpenAI

provider.openai.org-id:

  • Registered in config_service.py (line 1009) with env var OPENAI_ORG_ID
  • NOT present as a field in Settings class
  • NOT used in ProviderRegistry.create_ai_provider() for OpenAI
  • NOT passed to OpenAIChatProvider (which does have an organization parameter)

Code Location

  • Config registration: src/cleveragents/application/services/config_service.py lines 1007-1023
  • Settings class: src/cleveragents/config/settings.py (missing openai_base_url and openai_org_id fields)
  • Registry: src/cleveragents/providers/registry.py lines 472-475 and 603-621
  • OpenAI provider: src/cleveragents/providers/llm/openai_provider.py

Steps to Reproduce

  1. Set OPENAI_BASE_URL=http://localhost:11434/v1 (e.g., for Ollama OpenAI-compatible API)
  2. Run agents actor run with an OpenAI actor
  3. Observe: The custom base URL is ignored; requests go to api.openai.com

Impact

  • Users cannot use OpenAI-compatible local proxies (e.g., Ollama, LM Studio, vLLM) via provider.openai.base-url
  • Users with multiple OpenAI organizations cannot specify their org via provider.openai.org-id
  • The agents config set provider.openai.base-url <url> command appears to work but has no effect

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: uat-tester

## Bug Report **Feature Area**: LLM Provider Backends **Milestone**: v3.6.0 **Severity**: Priority/Backlog (config keys exist but have no effect) ## What Was Tested Code-level analysis of `src/cleveragents/providers/registry.py`, `src/cleveragents/providers/llm/openai_provider.py`, and `src/cleveragents/config/settings.py` against the specification's `provider.*` config key table. ## Expected Behavior (from spec §provider.* — LLM Provider Credentials, lines 30807-30809) The spec defines: - `provider.openai.base-url` — Custom base URL for OpenAI-compatible APIs (e.g., a local proxy or alternative provider). When unset, the official OpenAI API URL is used. - `provider.openai.org-id` — OpenAI organization ID. Optional; used when the API key belongs to multiple organizations. Both keys should be read from config/environment and passed to the OpenAI provider when creating chat models. ## Actual Behavior **`provider.openai.base-url`:** - Registered in `config_service.py` (line 1018) with env var `OPENAI_BASE_URL` - **NOT present** as a field in `Settings` class (`src/cleveragents/config/settings.py`) - **NOT used** in `ProviderRegistry._create_provider_llm()` or `ProviderRegistry.create_ai_provider()` for OpenAI - **NOT passed** to `OpenAIChatProvider` or `ChatOpenAI` **`provider.openai.org-id`:** - Registered in `config_service.py` (line 1009) with env var `OPENAI_ORG_ID` - **NOT present** as a field in `Settings` class - **NOT used** in `ProviderRegistry.create_ai_provider()` for OpenAI - **NOT passed** to `OpenAIChatProvider` (which does have an `organization` parameter) ## Code Location - **Config registration**: `src/cleveragents/application/services/config_service.py` lines 1007-1023 - **Settings class**: `src/cleveragents/config/settings.py` (missing `openai_base_url` and `openai_org_id` fields) - **Registry**: `src/cleveragents/providers/registry.py` lines 472-475 and 603-621 - **OpenAI provider**: `src/cleveragents/providers/llm/openai_provider.py` ## Steps to Reproduce 1. Set `OPENAI_BASE_URL=http://localhost:11434/v1` (e.g., for Ollama OpenAI-compatible API) 2. Run `agents actor run` with an OpenAI actor 3. Observe: The custom base URL is ignored; requests go to `api.openai.com` ## Impact - Users cannot use OpenAI-compatible local proxies (e.g., Ollama, LM Studio, vLLM) via `provider.openai.base-url` - Users with multiple OpenAI organizations cannot specify their org via `provider.openai.org-id` - The `agents config set provider.openai.base-url <url>` command appears to work but has no effect --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.6.0 milestone 2026-04-09 10:26:12 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: backlog-groomer

Label compliance fix applied: - Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#5806
No description provided.