Package akka.javasdk.agent
Interface MessageContent
- All Known Subinterfaces:
MessageContent.DataMessageContent,MessageContent.ImageDataMessageContent,MessageContent.LoadableMessageContent,MessageContent.PdfDataMessageContent
- All Known Implementing Classes:
MessageContent.ImageBytesMessageContent,MessageContent.ImageUrlMessageContent,MessageContent.PdfBytesMessageContent,MessageContent.PdfUrlMessageContent,MessageContent.TextMessageContent
public sealed interface MessageContent
permits MessageContent.LoadableMessageContent, MessageContent.DataMessageContent, MessageContent.TextMessageContent
Represents a piece of content within a multimodal message to an AI model.
Message content can be text, images, or PDFs, allowing agents to send multimodal inputs.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceInline content already loaded as bytes.static final recordImage content carried as inline bytes, for returning binary media from a@FunctionTool.static interfaceImage content carried as inline bytes.static final recordFactory methods for creating image message content.static final recordImage content within a user message, referenced by URI.static interfacestatic final recordPDF content carried as inline bytes, for returning binary media from a@FunctionTool.static interfacePDF content carried as inline bytes.static final recordFactory methods for creating PDF message content.static final recordPDF content within a user message, referenced by URI.static final recordText content within a user message. -
Method Summary
Static MethodsModifier and TypeMethodDescriptionstatic voidrequireSendableAsInput(Iterable<? extends MessageContent> contents) Validates that every content item may be sent to the model as input.
-
Method Details
-
requireSendableAsInput
Validates that every content item may be sent to the model as input.Inline byte payloads (
MessageContent.DataMessageContent) are only supported as a@FunctionToolreturn value; as model input, images and PDFs must be referenced by URI. This is a deliberate, permanent constraint: a user message can travel across the cluster, so it must stay reference-based (a URI) rather than carry potentially large inline bytes.- Throws:
IllegalArgumentException- if any item carries inline bytes
-