Answer on an OpenAI key from the Agno Bot, not only on Anthropic or an endpoint - #609
Merged
davidmckayv merged 1 commit intoSep 19, 2026
Merged
Conversation
…n endpoint Agno's LiteLLM model sends `temperature=0.7` and `top_p=1.0` with every request. LiteLLM refuses both for a reasoning model, and `gpt-5.5` is one: it is the model Compose passes to the harness when the setup screen names none, which is what the OpenAI key choice does. So with an OpenAI key every run of the Agno Bot ended in `UnsupportedParamsError` before a request left the container. The model is now built with `drop_params`, scoped to this one client, so a parameter the model does not take is dropped instead of refused. That is how the LlamaIndex Bot already handles the temperature LlamaIndex sends, for the same reason. A model that takes both, such as the one behind an OpenAI-compatible endpoint, still receives them. The new test follows the LlamaIndex Bot's: a local fake provider, the environment the desktop writes for each of the three choices, and an AG-UI run through `/agui`. Before this change the OpenAI key choice fails and the other two pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
kevin9327
requested review from
MikeRyanDev,
davidmckayv,
guidovizoso,
mxmzb and
tylerslaton
as code owners
September 18, 2026 22:22
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This was referenced Sep 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Picked with an OpenAI key, the Agno Bot fails every run before a request leaves the container.
Agno's
LiteLLMmodel sendstemperature=0.7andtop_p=1.0with every request (agno/models/litellm/chat.py,get_request_params). LiteLLM refuses both for a reasoning model, andgpt-5.5is one. It is also what the harness gets on that choice: the desktop removesBOT_MODELfor an OpenAI key, so Compose passes its default,gpt-5.5. The run then ends in:With only the temperature, LiteLLM refuses that too (
gpt-5.5 doesn't support temperature=0.7 while reasoning is active).The model is now built with
request_params={"drop_params": True}, set on this one client only, so LiteLLM drops a parameter the model does not take instead of refusing the run. #533 fixed the LlamaIndex Bot the same way, for the temperature LlamaIndex sends. Measured against the fake provider below, the request forgpt-5.5now carries neither parameter. A compatible endpoint'slocal-modelstill gets both, because LiteLLM does not know that model and drops nothing.Left alone: the Anthropic key and OpenAI-compatible endpoint choices already worked, and every other harness.
Where it runs
python-harness.Boundary and audit
Changelog
CHANGELOG.mdunderUnreleased.Proof
agent-agno/tests/test_main.pyfollowsagent-llamaindex/tests/test_main.py. It starts a local fake provider serving/v1/chat/completionsand/v1/messages, imports the harness under the environment the desktop writes for each of the three choices, and posts an AG-UI run to/agui. It asserts HTTP 200,RUN_FINISHED, noRUN_ERROR, and that the provider got the chosen model on the chosen route.ubuntu-latest, Python 3.12, a throwaway workflow on my fork running the same commands as the new CI step). This branch:3 passed. Withagent-agno/srcchecked out frommain(2d09a08):1 failed, 2 passed. The failure is[an OpenAI key], with theUnsupportedParamsErrorabove in the stream.agno3.0.10,litellm1.101.0.This adds a step at the end of
python-harnessand an entry at the top ofUnreleased, the same places other open PRs touch. If one of them lands first this will need a rebase, and I'll do it.🤖 Generated with Claude Code