diff --git a/litellm/llms/bedrock/chat/converse_transformation.py b/litellm/llms/bedrock/chat/converse_transformation.py index 33a77e8d346..7c2dadbc970 100644 --- a/litellm/llms/bedrock/chat/converse_transformation.py +++ b/litellm/llms/bedrock/chat/converse_transformation.py @@ -228,7 +228,9 @@ class AmazonConverseConfig(BaseConfig): function = tool_call.get("function") or {} name = function.get("name") or "unknown_tool" arguments = function.get("arguments") or "" - return f"[tool call: {name}({arguments})]" + call_id = tool_call.get("id") + label = f"tool call {call_id}" if call_id else "tool call" + return f"[{label}: {name}({arguments})]" def _result_text(message: AllMessageValues) -> str: rendered = convert_content_list_to_str(message).strip() diff --git a/tests/test_litellm/llms/bedrock/chat/test_converse_transformation.py b/tests/test_litellm/llms/bedrock/chat/test_converse_transformation.py index 21e8e94d871..9ecca87134b 100644 --- a/tests/test_litellm/llms/bedrock/chat/test_converse_transformation.py +++ b/tests/test_litellm/llms/bedrock/chat/test_converse_transformation.py @@ -6467,7 +6467,8 @@ def test_neutralize_orphaned_tool_blocks_rewrites_when_no_tools(): # '{"city": "Paris"}' is escaped, so assert on quote-free tokens that survive. assert "city" in serialized and "Paris" in serialized assert "Sunny, 25C" in serialized - assert "call_abc" in serialized # tool_call_id correlation preserved + assert "[tool call call_abc: get_weather(" in result[1]["content"] + assert "[tool result for call_abc: Sunny, 25C]" in result[2]["content"] @pytest.mark.parametrize("tools_value", [[], None])