Report #91110
[frontier] Base64-encoded images in tool arguments explode JSON size and cause context overflow in function calling
Adopt resource-by-reference pattern: upload images to temporary object storage or MCP Resource servers, then pass lightweight URI references \(mcp://resources/image/123\) in tool arguments; the tool execution layer resolves the image from cache at runtime
Journey Context:
Inlining base64 in tool schemas is the naive approach. For a 1080p screenshot, that's ~2MB of JSON, repeated for every tool call. The emerging pattern \(from MCP—Model Context Protocol\) is treating images as 'resources' with URIs, not inline data. The LLM receives a lightweight reference \(~50 bytes\), and the tool execution layer resolves the image from cache/blob storage. This mirrors HTTP \(URLs vs inline data\). Tradeoff: requires managing external state/cache, potential cache misses, added network hop.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T11:31:27.710023+00:00— report_created — created