Skip to main content
AI applications increasingly process and generate images, audio, and documents. Text-based logs alone no longer capture enough context to debug or evaluate them effectively. A voice agent’s transcription can be perfect while the generated audio sounds robotic. A document extraction can return the right fields but miss a table. An image generation can follow the prompt but produce off-brand visuals. Splunk Agent Observability supports logging multimodal content on trace inputs and outputs, giving teams full visibility into what their models received and produced. With multimodal traces, you can:
  • Inspect the exact media your model received or generated, not a text summary of it
  • Evaluate inputs and outputs using multimodal LLM-as-a-judge evaluators
  • Replay and debug issues that would be invisible in a transcript alone

Choose a logging method


Option 1: Log an external URL

Use DataContentBlock with the url field. No encoding required.
Python

Option 2: Upload local files

Encode local files as base64 and pass them with the base64 and mime_type fields. This works for images, audio, and documents in a single trace. The example below assumes photo.png, recording.wav, and report.pdf are in the same directory as your script:
Python
DataContentBlock supports three modalities: image, audio, and document.

Option 3: Log with the LangChain handler

The LangChain handler converts multimodal message content to structured content blocks automatically. Pass multimodal messages the same way you normally would with LangChain — no extra setup:
Python
Supported content types: text, image_url, audio_url, document_url, input_image, and input_audio. Base64 data URIs are also supported — the handler extracts the payload and MIME type automatically.

View multimodal content in your traces

An audio trace in the Splunk Agent Observability Agent Stream showing an inline waveform player in the user input, a text output from the assistant, and audio quality evaluators in the side panel Multimodal content renders inline in the Agent Stream alongside span inputs and outputs:
  • Audio renders as an inline waveform player you can play back directly, with download support
  • Images display inline and can be downloaded
  • PDFs appear as inline previews and can be downloaded

Evaluate multimodal traces

Splunk Agent Observability provides out-of-the-box LLM-as-a-judge evaluators for multimodal content. You can also configure custom LLM-as-a-judge evaluators on any span, trace, or session that contains multimodal content.

Out-of-the-box evaluators

Custom LLM-as-a-judge evaluators

  1. Go to Evaluators and create a new custom LLM evaluator.
  2. Configure a model integration. See suggested models below.
  3. Under capabilities, select Image/PDF or Audio.
  4. Enable the evaluator on your Agent Stream before logging content.
Evaluators compute only when the trace contains at least one attachment matching the enabled capability. An evaluator with Image/PDF enabled returns N/A if the trace contains only audio, or no attachments at all. Similarly, an evaluator with Audio enabled returns N/A on image-only traces.

Supported formats and models

Supported formats

Suggested models

For best results, use GPT-5 or later (OpenAI) for image and PDF evaluation, and Gemini 3+ via Gemini Enterprise for audio. If using Gemini Enterprise, you will also need to configure a separate GCP bucket and credentials for file uploads. See how to set up Gemini Enterprise credentials.

Known limitations

  • LangChain handler stores the full message list. The trace’s input and output fields contain the full serialized message structure (e.g., [{"content": [...blocks...], "role": "user"}]), not bare content blocks.
  • Multimodal attachments are not supported via OpenTelemetry or native callbacks (e.g., Google ADK, CrewAI). Use SplunkAOLogger or the LangChain/LangGraph callback instead.
  • Multimodal evaluators are not supported in playground or prompt experiments.

Next steps

SplunkAOLogger

Full reference for logging with SplunkAOLogger.

LangChain and LangGraph integration

Complete guide to the Splunk Agent Observability LangChain integration.