Python: [BREAKING] Fix #3613 chat/agent message typing alignment (#3920)

* Fix #3613 message typing across chat and agents

* Address #3613 review feedback and sample input style

* refactor: use shared AgentRunMessages aliases (#3613)

* refactor: rename agent run input aliases for #3613

* samples: inline image content in run calls

* core: export AgentRunInputs from package init

* core: use explicit init re-exports without __all__

* updated logging and inits

* Fix core mypy export and samples XML note

* Remove AgentRunInputsOrNone and dedupe loggers

* Remove prepare_messages helper

* fix integration tests
This commit is contained in:
Eduard van Valkenburg
2026-02-16 16:27:25 +01:00
committed by GitHub
Unverified
parent 503eb10fdd
commit dc9439a75a
87 changed files with 422 additions and 578 deletions
@@ -11,7 +11,7 @@ import asyncio
import os
from typing import cast
from agent_framework import ChatResponse, ChatResponseUpdate, ResponseStream
from agent_framework import ChatResponse, ChatResponseUpdate, Message, ResponseStream
from agent_framework.ag_ui import AGUIChatClient
@@ -44,7 +44,7 @@ async def main():
metadata = {"thread_id": thread_id} if thread_id else None
stream = client.get_response(
message,
[Message(role="user", text=message)],
stream=True,
options={"metadata": metadata} if metadata else None,
)
@@ -15,7 +15,7 @@ import asyncio
import os
from typing import cast
from agent_framework import ChatResponse, ChatResponseUpdate, ResponseStream, tool
from agent_framework import ChatResponse, ChatResponseUpdate, Message, ResponseStream, tool
from agent_framework.ag_ui import AGUIChatClient
@@ -73,7 +73,7 @@ async def streaming_example(client: AGUIChatClient, thread_id: str | None = None
print("Assistant: ", end="", flush=True)
stream = client.get_response(
"Tell me a short joke",
[Message(role="user", text="Tell me a short joke")],
stream=True,
options={"metadata": metadata} if metadata else None,
)
@@ -100,7 +100,7 @@ async def non_streaming_example(client: AGUIChatClient, thread_id: str | None =
print("\nUser: What is 2 + 2?\n")
response = await client.get_response("What is 2 + 2?", metadata=metadata)
response = await client.get_response([Message(role="user", text="What is 2 + 2?")], metadata=metadata)
print(f"Assistant: {response.text}")
@@ -139,7 +139,7 @@ async def tool_example(client: AGUIChatClient, thread_id: str | None = None):
print("(Server must be configured with matching tools to execute them)\n")
response = await client.get_response(
"What's the weather in Seattle?", tools=[get_weather, calculate], metadata=metadata
[Message(role="user", text="What's the weather in Seattle?")], tools=[get_weather, calculate], metadata=metadata
)
print(f"Assistant: {response.text}")
@@ -174,14 +174,16 @@ async def conversation_example(client: AGUIChatClient):
# First turn
print("User: My name is Alice\n")
response1 = await client.get_response("My name is Alice")
response1 = await client.get_response([Message(role="user", text="My name is Alice")])
print(f"Assistant: {response1.text}")
thread_id = response1.additional_properties.get("thread_id")
print(f"\n[Thread: {thread_id}]")
# Second turn - using same thread
print("\nUser: What's my name?\n")
response2 = await client.get_response("What's my name?", options={"metadata": {"thread_id": thread_id}})
response2 = await client.get_response(
[Message(role="user", text="What's my name?")], options={"metadata": {"thread_id": thread_id}}
)
print(f"Assistant: {response2.text}")
# Check if context was maintained
@@ -191,7 +193,9 @@ async def conversation_example(client: AGUIChatClient):
# Third turn
print("\nUser: Can you also tell me what 10 * 5 is?\n")
response3 = await client.get_response(
"Can you also tell me what 10 * 5 is?", options={"metadata": {"thread_id": thread_id}}, tools=[calculate]
[Message(role="user", text="Can you also tell me what 10 * 5 is?")],
options={"metadata": {"thread_id": thread_id}},
tools=[calculate],
)
print(f"Assistant: {response3.text}")