Skip to content

Framework agents call the OpenAI Responses API regardless of the configured model #482

Description

@ambiorix2099

In short: run one of the *_openai_runner_* examples with an Anthropic model against a server that has no OpenAI key, and it fails — because this code path always calls OpenAI, whatever model you configured. It then prints None and exits 0, so nothing notices.

Files: examples/agents/93_openai_runner_hello_world.py, 94_openai_runner_tools.py, 95_openai_runner_handoffs.py, 96_openai_runner_streaming.py (the conductor.ai Runner / framework-agent path)

Symptom

With no OPENAI_API_KEY in the server process's environment:

$ CONDUCTOR_AGENT_LLM_MODEL=anthropic/claude-sonnet-4-6 python examples/agents/93_openai_runner_hello_world.py
Framework agent 'Assistant' execution FAILED
None

Both 93 and 96 exit 0 despite failing, so exit-code-based tooling — including scripts/run_examples.sh — scores them green.

Cause

The framework-agent path calls the OpenAI Responses API regardless of the configured model. With an Anthropic model and no OpenAI key on the server, the Assistant_llm LLM_CHAT_COMPLETE task sends an empty key to OpenAI instead of routing to Anthropic:

Task execution failed: OpenAI Responses API call failed: Responses API failed with status 401:
{"error": {"message": "Incorrect API key provided: ''. You can find your API key at
https://platform.openai.com/account/api-keys.", "type": "invalid_request_error",
"param": null, "code": "invalid_api_key"}}

Read it back with:

curl -s localhost:8080/api/agent/executions?size=5
curl -s "localhost:8080/api/workflow/<executionId>?includeTasks=true"   # Assistant_llm -> reasonForIncompletion

Confirmed by changing only the server's environment, one server, everything else fixed:

Server env model result
no OPENAI_API_KEY anthropic/claude-sonnet-4-6 FAILED
no OPENAI_API_KEY anthropic/claude-opus-4-6 FAILED
OPENAI_API_KEY present anthropic/claude-sonnet-4-6 pass
OPENAI_API_KEY present anthropic/claude-opus-4-6 pass

Ruled out:

  • the client's environment — fails with the client key set, passes with it unset
  • langchain-anthropic being installed — passes with it uninstalled

Only the server's environment matters.

Fix

Either drop the OpenAI dependency when the target model is not OpenAI, or fail with a message naming the missing key. Silent failure with None and exit 0 is the worst outcome.

Verify

Start the server with no OPENAI_API_KEY, run 93 with an Anthropic model — it should either work or say why, and exit non-zero if it fails.

Note: These examples document CONDUCTOR_AGENT_LLM_MODEL=openai/gpt-4o (or anthropic/claude-opus-4-6), so a user following the Anthropic option with an Anthropic-only server hits this immediately.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions