Class MultimodalToolCallResultConverter

java.lang.Object
com.alibaba.cloud.ai.graph.agent.tool.multimodal.MultimodalToolCallResultConverter
All Implemented Interfaces:
org.springframework.ai.tool.execution.ToolCallResultConverter
Direct Known Subclasses:
MultimodalBase64ToolCallResultConverter

public class MultimodalToolCallResultConverter extends Object implements org.springframework.ai.tool.execution.ToolCallResultConverter
ToolCallResultConverter that handles ToolMultimodalResult for image/audio and other multimodal tool outputs.

Tools return ToolMultimodalResult with Media (URI or bytes) without caring about output format. This converter serializes based on OutputFormat:

  • url (default): Prefer url when available; Media(bytes) → save to temp file
  • base64: Prefer base64 when available; Media(URI) → fetch and encode if needed

When both url and base64 are available (ToolMultimodalResult.mediaFromUrlAndBase64(java.lang.String, java.lang.String, org.springframework.util.MimeType)), the converter uses the format matching OutputFormat without unnecessary fetch or encode.

Usage: configure at instantiation. For @Tool(resultConverter = X.class), use default (url) or MultimodalBase64ToolCallResultConverter for base64.

  • Constructor Details

    • MultimodalToolCallResultConverter

      public MultimodalToolCallResultConverter()
      Default constructor for @Tool(resultConverter = MultimodalToolCallResultConverter.class). Uses OutputFormat.url.
    • MultimodalToolCallResultConverter

      public MultimodalToolCallResultConverter(OutputFormat outputFormat)
      Constructor with configurable output format.
      Parameters:
      outputFormat - url (model-friendly) or base64 (inline for client)
  • Method Details

    • convert

      public String convert(@Nullable Object result, @Nullable Type returnType)
      Specified by:
      convert in interface org.springframework.ai.tool.execution.ToolCallResultConverter