Deterministic input
Make the capture request reproducible
Record the exact request options in the tool trace. Use a stable viewport, explicit format, bounded readiness rule, and an idempotency key tied to the agent action.
Agent tool input
json
{
"url": "https://example.com/pricing",
"viewport": {
"width": 1440,
"height": 900,
"device_scale_factor": 1
},
"full_page": true,
"format": "webp",
"quality": 88,
"wait_until": "networkidle",
"delay_ms": 250,
"block_cookie_banners": true,
"block_chat_widgets": true
}
Provenance
Preserve an evidence envelope
| Field |
Why retain it |
| screenshot id |
Connects the artifact to job state and errors |
| requested URL |
Records the agent input |
| final URL |
Shows the destination after permitted redirects |
| created and completed times |
Places the observation in time |
| width, height, format |
Describes the visual coordinate system |
| SHA-256 |
Allows the consumer to verify exact artifact bytes |
| artifact expiry |
Prevents assuming the evidence is durable forever |
Multimodal handoff
Download bytes, not the promise of bytes
Fetch the short-lived URL, verify success and content type, then pass the actual image bytes to the vision model or store them in an approved trace system. Do not provide an expiring URL to a downstream model and assume it will still resolve later.
Model output is not ground truth
The screenshot preserves what the browser rendered. Any interpretation produced by an AI model still needs confidence handling and, for important actions, independent verification.