Tools provided
Tools the agent exposes — your AI client calls them automatically when it needs them.
- plan_inputs — Use this when you do not know what the agent needs. It lists the inputs for a photo location run (ownership, the photo, optional facts) and marks each as missing or given. It never invents a photo or an ownership value.
- open_form — Use this when you want the input form for a photo location run. It returns the questions to ask: whose photo it is (with the declaration wording), the photo, optional known facts, an optional claimed place and the report language.
- run_form — Use this when the form from open_form is filled. It takes the same fields and runs the full photo location report; a missing required field comes back as a question, never a guess.
- run_full — Use this when you want the full photo-location report. Needs ownership and the photo: ask the user, never fill ownership yourself. Optional background_only (true or false): never set this yourself; pass it only with the user's answer to the background-only question, together with the requestState of that question. Returns ranked location hypotheses with an evidence-capped radius, the evidence ledger, what was not checked and a privacy check.
- list_capabilities — Use this when you want the limits, tables and protections of this agent: evidence classes, the confidence ceilings, what is out of scope and which protections the server enforces versus which your model checks.
- discover_intent — Use this when you have a free-text goal. It shows the goal back, lists the inputs still missing and names the tool to call. Values are taken only from provided, never from the sentence.
- inspect_metadata — Use this when you only want what the file metadata says: capture time, offset, camera model, edit traces and whether GPS is present and how precise. It never returns a position; the rounded position is part of run_full. Needs ownership and image_base64 or exif_json.
- observe_clues — Use this when you want your own model to list what is visible in the photo (scripts, signs, plate shapes, driving side, vegetation, shadows). It returns a task card; answer it and call again with requestState and answer. Normally part of run_full. Never returns a hypothesis or a position.
- check_text_clues — Do not call directly; use run_full. Reads back the country candidates that run_full resolved from the texts in the photo, from the pipeline_state it returned. Works only from that state and never takes texts or evidence from the caller.
- rank_hypotheses — Do not call directly; use run_full. Hands out the ranking task card for your model from a run_full pipeline_state, and with requestState and answer returns the ranked hypotheses, capped by their evidence and cut to the privacy floor.
- check_sun — Do not call directly; use run_full. Checks whether the shadow length class and the capture time fit the sun at each hypothesis held in a run_full pipeline_state. The shadow direction is never compared: camera heading unknown.
- privacy_preview — Use this when you want to see what your own photo leaks before you post it: a leak grade (low, medium or high) and a fixed piece of advice for each item. Works only when ownership is own. Takes one task card for your model, then returns the report; it writes no position.
- get_flow_status — Use this when you want the step status of the last run. Panel-only status probe: it carries no photo data, no coordinates and no text. Hosted sandboxes are per call, so it may answer pending.