This commit is contained in:
Max Gorbuk 2026-10-06 15:22:17 +01:00 • committed by GitHub
commit cd11f32ed5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 43 additions and 4 deletions

View file

@ -131,12 +131,16 @@ class A2AConfig(BaseConfig):
return api_base, api_key, headers
def get_supported_openai_params(self, model: str) -> list[str]:
"""Return list of supported OpenAI parameters"""
"""Return list of supported OpenAI parameters.
A2A has no sampling controls. SendMessageConfiguration carries
acceptedOutputModes, taskPushNotificationConfig, historyLength and
returnImmediately, nothing else, because the remote agent owns its own
model config. Only stream is real here: it picks message/stream over
message/send.
"""
return [
"stream",
"temperature",
"max_tokens",
"top_p",
]
def map_openai_params(

View file

@ -128,3 +128,38 @@ def test_a2a_completion_sync_streaming():
pytest.skip(f"A2A agent not reachable at {api_base}: {e}")
except Exception as e:
pytest.fail(f"Error occurred: {e}")
def test_a2a_only_claims_stream():
"""A2A has no sampling params, so it must not advertise any.
Claiming one suppresses the UnsupportedParamsError and the value is
dropped without telling the caller.
"""
from litellm.llms.a2a.chat.transformation import A2AConfig
supported = A2AConfig().get_supported_openai_params("test-agent")
assert "stream" in supported
for param in ("temperature", "max_tokens", "top_p"):
assert param not in supported
@pytest.mark.parametrize("param,value", [("temperature", 0.5), ("max_tokens", 100), ("top_p", 0.9)])
def test_a2a_sampling_params_raise(param, value):
"""Sampling params should surface an error rather than vanish."""
from litellm.utils import get_optional_params
with pytest.raises(litellm.UnsupportedParamsError):
get_optional_params(
model="test-agent", custom_llm_provider="a2a", **{param: value}
)
def test_a2a_stream_still_maps():
"""stream is the one real param, it must survive."""
from litellm.utils import get_optional_params
params = get_optional_params(
model="test-agent", custom_llm_provider="a2a", stream=True
)
assert params["stream"] is True