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

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:
  • Method Details

    • requireSendableAsInput

      static void requireSendableAsInput(Iterable<? extends MessageContent> contents)
      Validates that every content item may be sent to the model as input.

      Inline byte payloads (MessageContent.DataMessageContent) are only supported as a @FunctionTool return 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