- Frames from a video pipeline.
- Screenshots from a browser agent.
- Images a model wrote to S3.
This is a Weave feature and is separate from platform BYOB (secure storage connector), which backs W&B artifact and run storage. Reference media buckets are configured per team and only need read access.
How it works
Reference media rendering works in three steps:- You store a media object in your bucket, for example
s3://[YOUR-BUCKET]/frames/000123.png. - You log that URI as a string value anywhere in a trace: an Op input or output, or an agent tool result. The field name does not matter.
- When you open the trace, Weave resolves the URI to a short-lived presigned URL and renders it inline. The file extension decides how it renders. Common image formats (such as
.png,.jpg,.gif) and video formats (such as.mp4,.mov,.webm) render inline. Other formats render as a download link.
s3:// and gs://.
Prerequisites
- This feature is supported only in W&B Multi-tenant Cloud.
- A W&B account and API key.
- A cloud storage bucket you control (S3 or GCS), containing at least one object.
- Organization admin permissions. Adding a reference bucket requires the same permission as creating a team in the organization.
Configure your bucket
Grant W&B read access to the bucket and allow the browser to fetch objects with CORS. When you view a trace, W&B presigns a short-lived download URL for each referenced object. Grant the W&B integration principal read access on the bucket so presigning can succeed. This is read-only access for inline rendering.- AWS S3
- Google Cloud Storage
-
Apply a bucket policy that grants the W&B integration principal
s3:GetObject. Save the following asbucket-policy.json, replacing[YOUR-BUCKET]with your bucket name:Then apply it to your bucket: -
Apply a CORS configuration so the app can fetch objects in the browser. Save the following as
cors.json:Then apply it to your bucket:
If an object is encrypted with a customer-managed KMS key, its key policy must also grant
arn:aws:iam::725579432336:role/WandbIntegration kms:Decrypt. The bucket policy alone is not sufficient.Register the reference bucket
Register the bucket in your team settings so Weave can presign and display referenced URIs.- Go to your team settings page (
https://wandb.ai/[YOUR-TEAM]/settings). - In the Reference buckets section, select Add bucket.
- Select your cloud provider (AWS or Google Cloud).
- For the bucket name, enter
[YOUR-BUCKET]only — without thes3://orgs://prefix. - For the object key, enter the key of an existing object in the bucket, for example
photos/cat.png(the object key only, not a full URL). W&B reads this one object to confirm it has read access and that CORS is configured correctly. This checks access only; once verified, presigning works for any object in the bucket. - Optionally, select Test connection to validate the configuration without saving.
- Select Add bucket to save.

Log a media reference using agent spans
Return a bucket URI as an agent tool result and Weave renders it inline in the Agents view, on the tool call that produced it. The following example opens a conversation, a turn, and a tool span, and sets a bucket URI as the tool’s result. Replace[YOUR-TEAM], [YOUR-PROJECT], and [YOUR-BUCKET] with your own values.
- Python
- TypeScript
This example uses Weave agent spans. For the full multi-turn setup, including LLM calls and a complete agent loop, see the custom agents quickstart.
View the reference in Weave Agents
Open the conversation from the link thatweave.init() prints. The referenced image or video renders inline in the Agents view, on the tool call that returned the URI. If Weave can’t resolve a URI, for example because the object is missing or the bucket isn’t registered, it shows the plain URI string.
