Visual Lookup
GeoGuessr agent that looks up places from text or GPS data in your photos.
·
·
·
✗
~
·
✓
·
photoGPS 35.0029, 135.74631/8
in
kyoto-actual-cafe.jpg
out
{
"coordinates": {
"latitude": 35.0029323,
"longitude": 135.7463441
}
}action: the model calls a tool
nearbySearch({ placeTypes: ["cafe"] })result: what the tool returns (JSON)
{
"places": [
{
"name": "ACTUAL KYOTO",
"distanceFromPhoto": 36.39,
"types": ["cafe", "bar", "coffee_shop", "…"]
},
{
"name": "イノダコーヒー",
"distanceFromPhoto": 83.24,
"types": ["coffee_shop", "food_store", "cafe", "…"]
}
]
}update: stateₙ → stateₙ₊₁ (JSON diff)
↓ the middleware renders the state into the next prompt; the model sees only this
view(stateₙ₊₁): the prompt the model is given (text)
CONTEXT: Current Candidate Summaries: - Candidate: ACTUAL KYOTO (ID: 9ab7aa8b…) - Proximity: 36.39m - Found in 1 search (Recent queries: 'cafe') - Latest Evaluation: None yet - Candidate: イノダコーヒー (ID: cb9271d4…) - Proximity: 83.24m - Found in 1 search (Recent queries: 'cafe') - Latest Evaluation: None yet Now I need to evaluate the places I've just found using filterPlaces. Remember to ALWAYS follow the search -> evaluate pattern… Before calling 'filterPlaces', use the 'thought' tool… REQUIRED EVIDENCE (Item 1): "SEARCH ENGINE MATCH: Google Maps returned this place for query 'cafe'. This provides MODERATE initial evidence of relevance."
·
✗
✓
·
✓
·
nearbySearch1/6
The agent95.0%209/220
Extract a name, then geocode93.6%206/220
One dot per photo; ○ is a miss. Highlighted: resolved by that side only.
The agent also returns no place for the 2 photos that show none.