A week ago my agent confidently described a treaty that does not exist. It even had a date.
The fix is simple: before the model commits to an answer, make it check the web.
I contributed this to SIMURG
(https://github.com/doofzoff/SIMURG) and it just shipped as v1.0.3.
Free means free
SIMURG web search is a web layer for AI agents powered by TinyFish. 30
requests per minute, $0, no card, no wallet. The package ships a bundled free
key, so it works out of the box:
pip install simurg
python3 -m simurg.websearch "when was the Y2K bug" --json
The part I care about: ground()
Search results are context. Verdicts are decisions:
from simurg import websearch
check = websearch.ground("Y2K bug")
# check["verdict"]: "attested" | "thin" | "no_record"
attested: feed check["evidence"] into your model's context. thin: treat with
caution. no_record: the subject is probably fabricated, abstain instead of
asserting.
One honest detail: "Zorbachian treaty of 1874" returns real 1874 treaties from
any search engine. So ground() requires the subject itself to be echoed in the
evidence, generic hits downgrade to thin.
Stdlib only, zero new dependencies, and it degrades instead of crashing. In
our internal checks on factual prompts, hallucinations dropped to the 1-5%
range.
Code, examples and a 13 page paper: https://github.com/doofzoff/SIMURG
Give your agent an internet. It costs nothing.
Top comments (0)