mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
83e6229c11
* ported Content to a new model * fixed linting * fixes * fixed data format handling * fix for 3.10 mypy * fix * fix int test
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
# Copyright (c) Microsoft. All rights reserved.
|
|
|
|
from agent_framework import ChatMessage, Content
|
|
|
|
from agent_framework_ag_ui._message_adapters import _deduplicate_messages, _sanitize_tool_history
|
|
|
|
|
|
def test_sanitize_tool_history_injects_confirm_changes_result() -> None:
|
|
messages = [
|
|
ChatMessage(
|
|
role="assistant",
|
|
contents=[
|
|
Content.from_function_call(
|
|
name="confirm_changes",
|
|
call_id="call_confirm_123",
|
|
arguments='{"changes": "test"}',
|
|
)
|
|
],
|
|
),
|
|
ChatMessage(
|
|
role="user",
|
|
contents=[Content.from_text(text='{"accepted": true}')],
|
|
),
|
|
]
|
|
|
|
sanitized = _sanitize_tool_history(messages)
|
|
|
|
tool_messages = [
|
|
msg for msg in sanitized if (msg.role.value if hasattr(msg.role, "value") else str(msg.role)) == "tool"
|
|
]
|
|
assert len(tool_messages) == 1
|
|
assert str(tool_messages[0].contents[0].call_id) == "call_confirm_123"
|
|
assert tool_messages[0].contents[0].result == "Confirmed"
|
|
|
|
|
|
def test_deduplicate_messages_prefers_non_empty_tool_results() -> None:
|
|
messages = [
|
|
ChatMessage(
|
|
role="tool",
|
|
contents=[Content.from_function_result(call_id="call1", result="")],
|
|
),
|
|
ChatMessage(
|
|
role="tool",
|
|
contents=[Content.from_function_result(call_id="call1", result="result data")],
|
|
),
|
|
]
|
|
|
|
deduped = _deduplicate_messages(messages)
|
|
assert len(deduped) == 1
|
|
assert deduped[0].contents[0].result == "result data"
|