Exact Web Answer Agent on AMD ROCm
Most web agents return summaries or lists of links. This one returns a single value: a phone number, a version, a price, a date. It also cites the page the value came from, and returns an empty answer instead of guessing when the site does not contain it.
A resident server loads Qwen3-4B-Instruct once onto the AMD GPU (ROCm) at container start. Each question is a fresh app.py process that writes a valid placeholder JSON immediately and then talks to the server over a unix socket, with a hard deadline under the 30-second limit. The agent crawls the start page and same-site links in parallel, ranked by how well each link matches the question. It cleans pages to text (table rows kept), ranks passages with BM25, and has the model extract the value. An answer is only accepted if it literally appears in the cited passage, which removes hallucinations. A rule-based extractor for phones, emails, versions, prices and dates is the fallback when time runs short. No API keys: all inference is local on the AMD GPU.