1
- from typing import List , Tuple , Union
1
+ from typing import List , Tuple
2
2
3
- from agnext .components import Image , TypeRoutedAgent , message_handler
3
+ from agnext .components import TypeRoutedAgent , message_handler
4
4
from agnext .components .models import (
5
5
AssistantMessage ,
6
6
LLMMessage ,
7
7
UserMessage ,
8
8
)
9
9
from agnext .core import CancellationToken
10
10
11
- from team_one .messages import BroadcastMessage , RequestReplyMessage
12
-
13
- # Convenience type
14
- UserContent = Union [str , List [Union [str , Image ]]]
11
+ from team_one .messages import BroadcastMessage , RequestReplyMessage , UserContent
12
+ from team_one .utils import message_content_to_str
15
13
16
14
17
15
class BaseAgent (TypeRoutedAgent ):
@@ -35,21 +33,7 @@ async def handle_request_reply(self, message: RequestReplyMessage, cancellation_
35
33
"""Respond to a reply request."""
36
34
request_halt , response = await self ._generate_reply (cancellation_token )
37
35
38
- # Convert the response to an acceptable format for the assistant
39
- if isinstance (response , str ):
40
- assistant_message = AssistantMessage (content = response , source = self .metadata ["name" ])
41
- elif isinstance (response , List ):
42
- converted : List [str ] = list ()
43
- for item in response :
44
- if isinstance (item , str ):
45
- converted .append (item .rstrip ())
46
- elif isinstance (item , Image ):
47
- converted .append ("<image>" )
48
- else :
49
- raise AssertionError ("Unexpected response type." )
50
- assistant_message = AssistantMessage (content = "\n " .join (converted ), source = self .metadata ["name" ])
51
- else :
52
- raise AssertionError ("Unexpected response type." )
36
+ assistant_message = AssistantMessage (content = message_content_to_str (response ), source = self .metadata ["name" ])
53
37
self ._chat_history .append (assistant_message )
54
38
55
39
user_message = UserMessage (content = response , source = self .metadata ["name" ])
0 commit comments