Skip to content

[DOCS-15584] Add Multimodal Support page for Agent Observability - #39643

Open
ZStriker19 wants to merge 9 commits into
masterfrom
zach.groves/llm-obs-multimodal-docs
Open

[DOCS-15584] Add Multimodal Support page for Agent Observability#39643
ZStriker19 wants to merge 9 commits into
masterfrom
zach.groves/llm-obs-multimodal-docs

Conversation

@ZStriker19

@ZStriker19 ZStriker19 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

What does this PR do? What is the motivation?

Adds a new Multimodal Support page under llm_observability/instrument/, documenting how audio and images are attached to LLM spans and rendered in the trace view.

The audio_parts / image_parts fields are already documented as schema entries in the SDK and HTTP API references, but there was no page explaining which integrations populate them automatically, what formats render, or what the size limits are. This page covers that and links back to the existing references rather than duplicating them.

Content:

  • Requirements — minimum ddtrace / dd-trace versions for audio and image fields.
  • Automatic instrumentation — per-language table of which integrations capture media, with tracer versions.
  • Manual instrumentation — tabbed examples for Python, Node.js, the HTTP API, and OpenTelemetry.
  • Trace view rendering — the image MIME types that render, and guidance to use a browser-decodable audio container.
  • Limits and behavior — the 5 MB span event cap and dropped_io, the per-part cap in automatic instrumentation, and the fact that media is not scanned by Sensitive Data Scanner.

In sdk.md, the two rendered-trace screenshots move to the new page so they live in one place, and the surrounding sentences now link to it. A sentence in the Node.js tab that used "currently" and "planned for a future release" is replaced with a statement of current behavior.

attachment_key is removed from the reference docs. It was documented as a settable field on AudioPart and ImagePart in api.md, and in the input_data / output_data argument descriptions in sdk.md, but there is no customer-facing way to produce one: the only attachments route is a read-only GET, and the ingestion pipeline mints the keys itself from inline content. content is now marked required and is the documented way to attach media.

Reviewer notes

  • Automatic image capture for OpenAI and Anthropic is merged to main in dd-trace-py (DOCS-5949 Saved Views Documentation  #19148, Bump datadog-lambda-python layer to version 80 #19690) and ships in 4.15.0, which the Python automatic-instrumentation table reflects. It is not in a tagged release yet, so those rows describe behavior that lands with that version.
  • Image scoring in managed evaluations is intentionally not documented here. It is not generally available yet, and a docs update for it is expected to come from the evaluations team.
  • Removing attachment_key from the reference tables is intentional and was confirmed as safe: no one was setting it. The SDKs still accept the field, so nothing breaks for anyone who was.

Merge readiness

  • Ready for merge

For Datadog employees:

  • ⚠️ Your branch name MUST follow the <name>/<description> convention and include the forward slash (/). If you've already created your PR with an incorrect branch name, please rename your branch and open a fresh PR.
  • 🤖 New: Comment with /review to run an automated check that catches common issues before a Documentation team member reviews your PR.

AI assistance

Drafted with Claude Code from an existing internal outline, with the SDK behavior, version numbers, and rendering/limit details verified against dd-trace-py, dd-trace-js, and the ingestion and UI source before writing.

Additional notes

ZStriker19 and others added 3 commits August 27, 2026 13:57
Document how audio and images are attached to LLM spans, covering both the
integrations that populate image_parts and audio_parts automatically and the
manual annotation path for Python, Node.js, the HTTP API, and OpenTelemetry.

Also cover the formats the trace view renders, span event and per-part size
limits, and cross-link the new page from the SDK reference.

Co-Authored-By: Claude <noreply@anthropic.com>
@ZStriker19
ZStriker19 requested a review from a team as a code owner September 1, 2026 21:27
@jeff-morgan-dd jeff-morgan-dd self-assigned this Sep 1, 2026
@jeff-morgan-dd

Copy link
Copy Markdown
Contributor

Thanks for the PR! I've created DOCS-15584 for an in-depth review from the docs team.

@jeff-morgan-dd jeff-morgan-dd removed their assignment Sep 1, 2026
@jeff-morgan-dd jeff-morgan-dd added the editorial review Waiting on a more in-depth review label Sep 1, 2026
@ZStriker19
ZStriker19 marked this pull request as draft September 1, 2026 21:50
…-multimodal-docs

# Conflicts:
#	hugo/content/en/llm_observability/instrument/otel_instrumentation.md
@github-actions github-actions Bot added the Architecture Everything related to the Doc backend label Sep 1, 2026
ZStriker19 and others added 2 commits September 2, 2026 13:04
Co-Authored-By: Claude <noreply@anthropic.com>
Incorporate review feedback on the Multimodal Support page: link the
overview to the instrumentation sections, trim the requirements table,
link the HTTP API reference and the OpenTelemetry GenAI message-part
conventions, and tighten the limits and best-practices sections.

Remove attachment_key from the AudioPart and ImagePart schemas in the API
reference and from the SDK reference argument descriptions. The value is
populated by Datadog during ingestion and is not something to set, so
content is now the documented way to attach media.

Co-Authored-By: Claude <noreply@anthropic.com>
@ZStriker19
ZStriker19 marked this pull request as ready for review September 2, 2026 18:40

@CFLJacquet CFLJacquet left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to go after the small changes

Comment thread hugo/content/en/llm_observability/instrument/multimodal.md Outdated
Comment thread hugo/content/en/llm_observability/instrument/multimodal.md Outdated
Add a Multimodal support section to the OpenTelemetry instrumentation
page summarizing which conventions carry audio and images, plus a media
subsection under each convention's message mapping:

- OpenTelemetry 1.37+: blob parts for audio and images, uri parts for
  base64 image data URIs, text references for remote URLs and file IDs.
- OpenInference: ordered image content, images only, base64 data URIs only.
- Langfuse: image_url blocks, images only, base64 data URIs only.
- OpenLLMetry: text content only, no media extracted.

Replace the OpenTelemetry tab on the Multimodal Support page with a
coverage table linking to those sections, and reword the overview to lead
with what the feature lets you do.

Co-Authored-By: Claude <noreply@anthropic.com>
@ZStriker19 ZStriker19 changed the title Add Multimodal Support page for Agent Observability [DOCS-15584] Add Multimodal Support page for Agent Observability Sep 3, 2026
ZStriker19 and others added 2 commits September 3, 2026 12:25
Remove the per-convention media coverage for OpenInference, Langfuse, and
OpenLLMetry. Their extraction behavior is being improved first, and the
docs will follow in a separate PR rather than describing limitations that
are about to change.

Keeps the OpenTelemetry GenAI 1.37+ media mapping, which is unaffected.

Co-Authored-By: Claude <noreply@anthropic.com>

@brett0000FF brett0000FF left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, approved! I added a small review commit with some clarifications and editorial suggestions. Feel free to adjust those if you prefer your original presentation. 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Architecture Everything related to the Doc backend editorial review Waiting on a more in-depth review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants