diff --git a/lib/active_agent/providers/common/messages/_types.rb b/lib/active_agent/providers/common/messages/_types.rb index 5c93623a..08724b3e 100644 --- a/lib/active_agent/providers/common/messages/_types.rb +++ b/lib/active_agent/providers/common/messages/_types.rb @@ -37,7 +37,7 @@ def cast_message(value) role = hash[:role]&.to_s case role - when "system" + when "system", "developer" nil # System messages are dropped in common format, replaced by Instructions when "user", nil # Handle both standard format and format with `text` key diff --git a/test/providers/common/messages/types_test.rb b/test/providers/common/messages/types_test.rb index 495b2b6f..a42af8c1 100644 --- a/test/providers/common/messages/types_test.rb +++ b/test/providers/common/messages/types_test.rb @@ -31,6 +31,12 @@ class TypesTest < ActiveSupport::TestCase assert_nil result end + test "MessageType drops developer messages" do + message_type = create_message_type + result = message_type.cast({ role: "developer", content: "Developer prompt" }) + assert_nil result + end + test "MessagesType casts array of Hash messages to Message objects" do messages_type = create_messages_type messages = [