.png&w=828&q=75)
Ask a question in plain English and the agent returns one exact value plus the page it came from: a phone number, a release version, the name of a current office holder. The rule that shapes everything else: an answer is only returned if it appears on a page the agent actually fetched. A value the model remembers but cannot find on the web is thrown away. Each question gets two model calls. First, Qwen3-4B-Instruct plans the search: the answer type, the entity, two queries. Then keyless search (Brave, DuckDuckGo and Seznam, with Bing as a fallback) runs alongside a Wikidata lookup of the entity's official website. "Latest version" questions also go straight to endoflife.date, PyPI, npm and the project's own GitHub releases. The agent fetches the top pages, puts the official domain first, and follows contact or release links one hop. Typed extractors pull candidate values from text, tel: links and JSON-LD. The second model call reads the best excerpts and picks a value. The code then checks every candidate against the fetched pages and scores it by source, official domain, nearby question words and agreement between independent sites. Confidence is computed, not generated. On 16 held-out questions (software versions, official phone numbers, current CEOs, answers checked by hand), the agent answered 11 correctly. The same model with no web access answered 0: outdated versions, invented phone numbers. Those numbers come from Qwen3-1.7B on a laptop GPU; the 4B model in the container has not been measured yet, and nothing has been measured on AMD hardware. The container is built on the mandated ROCm base and keeps the model resident in a local server, so each per-question process is a thin client. No API keys anywhere. Mini Challenge 4 Image: the submission form has no Mini Challenge 4 Image field yet, so the image is listed here: ghcr.io/stuartyo/amd-match4:latest (public).
1 Dec 2026