Research Brief — sourced answers with citations
Under maintenancePricing
Pay per usage
Research Brief — sourced answers with citations
Under maintenanceResearches a question from public web sources and supplied URLs, then produces a concise, citation-backed markdown brief plus machine-readable source records.
Research Brief
Turn a research question into a concise, citation-backed Markdown brief. The Actor discovers public web sources (or uses URLs you provide), extracts readable evidence, and asks an OpenAI-compatible model to synthesize only from that evidence.
Input
{"question": "What are the strongest current arguments for and against small language models at the edge?","context": "For a product strategy review; focus on 2025–2026 evidence.","depth": "standard","sourceUrls": [],"search": true}
question(required): the question to answer.context(optional): audience, constraints, or decision context.depth:quick(up to 3 sources),standard(up to 6), ordeep(up to 10).sourceUrls(optional): URLs to prioritize.search: discover additional sources via DuckDuckGo (defaulttrue).llm(optional):{ "baseUrl", "model", "apiKey" }for an OpenAI-compatible/v1/chat/completionsendpoint.
Output
RESEARCH_BRIEF.md: structured brief with inline citations such as[S1].- Dataset: one row per fetched or failed source, including citation ID, URL, excerpt, and status.
RUN_SUMMARY.json: depth, model, source counts, timestamps, and any search/synthesis errors.
If model synthesis fails, the run stores an explicitly labeled evidence-only brief rather than inventing an answer. Pay-per-event charging occurs only after a fully synthesized, citation-validated brief.
Local development
python -m venv .venv.venv/bin/pip install -r requirements.txt pytest pytest-asyncio.venv/bin/python -m pytest -qmkdir -p storage/key_value_stores/defaultcat > storage/key_value_stores/default/INPUT.json <<'JSON'{"question":"What is this page about?","depth":"quick","sourceUrls":["https://example.com"],"search":false}JSONAPIFY_LOCAL_STORAGE_DIR="$PWD/storage" CRAWLEE_STORAGE_DIR="$PWD/storage" LLM_FAKE=1 .venv/bin/python -m src
LLM_FAKE=1 is deterministic and intended only for local pipeline verification. Remove it for real synthesis.