I am looking at a common failure mode in Gemini applications that call tools to retrieve public web data: the tool call succeeds, but the returned content is stale, localized for the wrong region, or structurally incomplete.
For each tool result, I am considering storing:
- source URL
- retrieved_at timestamp
- requested and observed language/location
- content hash
- parser or extractor version
- required-field validation result
- cache age
The application could then reject stale records or explicitly tell Gemini that a source could not be refreshed instead of silently using old context.
For people running this in production, where do you enforce freshness: inside the retrieval tool, in the orchestration layer, or before building the Gemini prompt? I would also be interested in how you test regional variants of the same source.