diff --git a/python/packages/core/agent_framework/_evaluation.py b/python/packages/core/agent_framework/_evaluation.py index cac000ca0b2..ab71d84a15c 100644 --- a/python/packages/core/agent_framework/_evaluation.py +++ b/python/packages/core/agent_framework/_evaluation.py @@ -797,8 +797,7 @@ def convert_message(message: Message) -> list[dict[str, Any]]: "tool_call_id": c.call_id or "", "name": c.name or "", } - if args: - tc["arguments"] = args + tc["arguments"] = args if args is not None else {} content_items.append(tc) elif c.type == "function_result": result_val = c.result diff --git a/python/packages/foundry/tests/test_foundry_evals.py b/python/packages/foundry/tests/test_foundry_evals.py index 575a5976bbf..f2b015e04c4 100644 --- a/python/packages/foundry/tests/test_foundry_evals.py +++ b/python/packages/foundry/tests/test_foundry_evals.py @@ -153,6 +153,23 @@ def test_assistant_with_tool_call(self) -> None: assert tc["name"] == "get_weather" assert tc["arguments"] == {"location": "Seattle"} + def test_assistant_with_zero_argument_tool_call(self) -> None: + msg = Message( + "assistant", + [ + Content.from_function_call( + call_id="call_3", + name="get_site_summary", + arguments=None, + ), + ], + ) + result = AgentEvalConverter.convert_message(msg) + tc = result[0]["content"][0] + assert tc["type"] == "tool_call" + assert "arguments" in tc + assert tc["arguments"] == {} + def test_assistant_text_and_tool_call(self) -> None: msg = Message( "assistant",