Don't search the web. Search the answer space.
Search-box.ai is a multi-step, agentic web research engine. Given a hard question it autonomously forms hypotheses, decomposes uncertainty, runs purposeful searches, opens sources, extracts verbatim evidence, surfaces contradictions, updates beliefs — and streams a fully sourced answer while you watch every step live.
Built on the Anthropic Claude API (reasoning & orchestration) and Firecrawl (web infrastructure). PostgreSQL holds the durable research state; every UI update corresponds to a real backend event.
Screenshots
A completed research session — the question blooms into objectives and claims, every node driven by a real backend event:
Home — ask a question that deserves real research |
Mobile-first, one-handed |
Validated on a real research problem
Benchmark question: "Can transformer KV cache be compressed by an order of magnitude without seriously harming model quality?" — one autonomous session, no human steering:
The engine assigned differentiated confidence per claim (40% / 85% / 90%), and caught a genuine contradiction: a vendor blog presenting 8× compression as "comparable" quality for a method whose peer-reviewed paper only claims lossless behavior up to 4×.
How it works
question → understand objective → form hypotheses → decompose uncertainty
→ decide next action → use web tools → inspect evidence → update beliefs
→ identify gaps/contradictions → repeat → synthesize evidence-backed answer- No fixed pipeline — Claude decides research strategy through tool use; the app enforces safety: hard budgets, zod-validated tool contracts, SSRF guard, prompt-injection defense on all scraped content.
- Claims & evidence are first-class objects — verbatim quotes tied to falsifiable
claims with stances (
supports/contradicts/context) and probabilistic confidence. - Contradictions are a research success, not an error state.
- Provenance is never lost — every answer sentence traces mechanically:
sentence → [n] marker → citation index → source → evidence → claim. - Event-sourced UI — the client replays the persisted event stream (SSE with
Last-Event-IDrecovery); nothing on screen is a fake progress animation.
Quick start
pnpm install
cp .env.example .env # ANTHROPIC_API_KEY, FIRECRAWL_API_KEY, DATABASE_URL
pnpm migrate # apply PostgreSQL schema
pnpm dev # web app on http://localhost:3000Run a session from the terminal:
pnpm research "Your hard question here"Repository structure
apps/web Next.js app (UI + API routes + SSE)
packages/agent orchestrator loop, prompts, tools, session runner
packages/research ResearchState service (claims, evidence, sources, contradictions)
packages/firecrawl Firecrawl v2 adapter (search, scrape) + SSRF guard
packages/anthropic Anthropic Messages API adapter (streaming)
packages/events typed research event protocol
packages/db PostgreSQL schema, migrations, repositories
packages/shared shared types, zod schemas, budgets, ids
deploy/ ngrok config + start script (node m3u96a)
docs/ architecture, agent loop, research state, event protocolFull design notes in docs/architecture.md.
Deployment
Production runs on node m3u96a behind an ngrok tunnel:
https://www.search-box.ai — see deploy/.
Author
Simon-Pierre Boucher 📫 contact@spboucher.ai
© 2026 Simon-Pierre Boucher. All rights reserved.