From aa8512f575aade92cb904dd462bbded6c05d0cb3 Mon Sep 17 00:00:00 2001 From: cthomas Date: Mon, 17 Mar 2025 13:32:04 -0700 Subject: [PATCH] fix: handle text content in MessageCreate (#1316) --- letta/server/server.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/letta/server/server.py b/letta/server/server.py index 4faabd67..fd417f19 100644 --- a/letta/server/server.py +++ b/letta/server/server.py @@ -723,10 +723,17 @@ class SyncServer(Server): assert isinstance(message, MessageCreate) # If wrapping is enabled, wrap with metadata before placing content inside the Message object + if isinstance(message.content, str): + message_content = message.content + elif message.content and len(message.content) > 0 and isinstance(message.content[0], TextContent): + message_content = message.content[0].text + else: + assert message_content is not None, "Message content is empty" + if message.role == MessageRole.user and wrap_user_message: - message.content = system.package_user_message(user_message=message.content) + message_content = system.package_user_message(user_message=message_content) elif message.role == MessageRole.system and wrap_system_message: - message.content = system.package_system_message(system_message=message.content) + message_content = system.package_system_message(system_message=message_content) else: raise ValueError(f"Invalid message role: {message.role}") @@ -735,7 +742,7 @@ class SyncServer(Server): Message( agent_id=agent_id, role=message.role, - content=[TextContent(text=message.content)] if message.content else [], + content=[TextContent(text=message_content)] if message_content else [], name=message.name, # assigned later? model=None,