Brian Hung
Visual Lookup
GeoGuessr agent that looks up places from text or GPS data in your photos.
Architect and editor
Editorsearches through the candidatesimageplaces to look forcandidatesno match:search againa strong matchmore than one placePhotocaption, signage, GPSArchitectreads the imagesearchPlacesa name or descriptionnearbySearcha place type, in the areafilterPlacesevidence, and how stronganswerthe place, and whythoughtbefore trying againfilterPlacesVisuallycompares their photos
·
·
·
✗
~
·
✓
·
photoGPS 35.0029, 135.74631/8
in
kyoto-actual-cafe.jpg
out
{
  "coordinates": {
    "latitude": 35.0029323,
    "longitude": 135.7463441
  }
}
The loop every harness runs
viewmodeltoolupdatestateeverything rememberedpromptwhat the model seesactiona tool callresultwhat the tool returnsThe model draws one arrow. The harness draws the other three.
The same run, one call at a time
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
Against extracting a name and geocoding it
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.