Retrieval layer between agents and search APIs. Decides when to search, when to answer, and logs every decision.
// for teams with customer-facing agents on paid search APIs // legal, compliance, support workflows
{
"allow_answer": false,
"audit_id": "99c08409-28ec-4427-...",
"policy": {
"profile": "legal",
"action": "block",
"reasons": ["only 2 qualifying sources; minimum is 3"]
},
"overall_confidence": 0.80
}
Not another search API. A gate before the agent speaks.
allow_answer under legal, support, research policies.
20 production-style tasks. Governance first; cost second.
audit_id + compliance exportDrop in before Tavily. One call from your agent loop.
from query_fanout import RetrievalClient
client = RetrievalClient(preset="tavily", policy="legal", agent_id="support-bot")
report = await client.retrieve("How do refund policies work?")
if report.allow_answer:
answer(report.synthesis)
else:
escalate(report.audit_id, report.policy.reasons)
Send 3-7 days of search logs (query + searches per step). Before/after report in 48h. See the submission guide for format and data handling.