From 1b05ecb842b0cb793baa0e99cc4d7e9f1cafade8 Mon Sep 17 00:00:00 2001 From: cthomas Date: Wed, 19 Nov 2025 21:26:49 -0800 Subject: [PATCH] fix: invalid role error in agent step (#6288) --- letta/helpers/message_helper.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/letta/helpers/message_helper.py b/letta/helpers/message_helper.py index c2e6a630..6d6bdeaf 100644 --- a/letta/helpers/message_helper.py +++ b/letta/helpers/message_helper.py @@ -51,10 +51,16 @@ def _convert_message_create_to_message( else: raise ValueError("Message content is empty or invalid") - assert message_create.role in {MessageRole.user, MessageRole.system}, f"Invalid message role: {message_create.role}" + # Validate message role (assistant messages are allowed but won't be wrapped) + assert message_create.role in { + MessageRole.user, + MessageRole.system, + MessageRole.assistant, + }, f"Invalid message role: {message_create.role}" + for content in message_content: if isinstance(content, TextContent): - # Apply wrapping if needed + # Apply wrapping only to user and system messages if message_create.role == MessageRole.user and wrap_user_message: content.text = system.package_user_message(user_message=content.text, timezone=timezone) elif message_create.role == MessageRole.system and wrap_system_message: