From aad71c96e5379a1a8be1a141d0b29f32cc9a4dca Mon Sep 17 00:00:00 2001 From: saschabuehrle Date: Tue, 7 Apr 2026 18:12:39 +0200 Subject: [PATCH] fix: stop forwarding function config to agent constructor --- python/packages/core/agent_framework/_clients.py | 6 ++++-- python/packages/core/tests/core/test_clients.py | 8 ++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/python/packages/core/agent_framework/_clients.py b/python/packages/core/agent_framework/_clients.py index ddd765e654..39c4a39277 100644 --- a/python/packages/core/agent_framework/_clients.py +++ b/python/packages/core/agent_framework/_clients.py @@ -646,8 +646,10 @@ def as_agent( "tokenizer": tokenizer, "additional_properties": dict(additional_properties) if additional_properties is not None else None, } - if function_invocation_configuration is not None: - agent_kwargs["function_invocation_configuration"] = function_invocation_configuration + if function_invocation_configuration is not None and hasattr(self, "function_invocation_configuration"): + client_function_invocation_configuration = getattr(self, "function_invocation_configuration") + if isinstance(client_function_invocation_configuration, dict): + client_function_invocation_configuration.update(function_invocation_configuration) return Agent(**agent_kwargs) diff --git a/python/packages/core/tests/core/test_clients.py b/python/packages/core/tests/core/test_clients.py index 7657993d56..d7f2ec0945 100644 --- a/python/packages/core/tests/core/test_clients.py +++ b/python/packages/core/tests/core/test_clients.py @@ -58,6 +58,14 @@ def test_base_client_as_agent_uses_explicit_additional_properties(chat_client_ba assert agent.additional_properties == {"team": "core"} +def test_base_client_as_agent_applies_function_invocation_configuration( + chat_client_base: SupportsChatGetResponse, +) -> None: + chat_client_base.as_agent(function_invocation_configuration={"max_iterations": 8}) # type: ignore[attr-defined] + + assert chat_client_base.function_invocation_configuration["max_iterations"] == 8 # type: ignore[attr-defined] + + async def test_base_client_get_response_uses_explicit_client_kwargs(chat_client_base: SupportsChatGetResponse) -> None: async def fake_inner_get_response(**kwargs): assert kwargs["trace_id"] == "trace-123"