## Recommendation: **Tavily** For this repo specifically — a Python **LangChain** RAG chatbot (`app.py`, `retrieval/rag_retriever.py`, multi-LLM OpenAI/Anthropic/Ollama, Chroma vector store) whose README already lists "add web fallback" as future work — Tavily is the best fit for a citation-critical product. ### Why Tavily 1. **Verifiable citations.** Each result returns an explicit `url`, `title`, relevance `score`, plus optional `include_raw_content` (clean markdown of the source). That last field is the key one for your no-hallucination constraint: the agent can ground each claim against the actual retrieved source text and surface checkable links, rather than trusting a synthesized black-box answer. 2. **Factual accuracy.** Purpose-built for LLM grounding; reports SOTA on OpenAI's SimpleQA (~93%). It's in the same top tier as Exa and Linkup on factuality. 3. **Stack fit (decisive).** First-class, officially maintained `langchain-tavily` package (v0.2.18, Apr 2026) drops straight into your existing LangChain pipeline as a tool — minimal new abstraction, matching the repo's conventions. 4. **Source-quality control.** `include_domains`/`exclude_domains` (up to 300/150) to whitelist authoritative sources, `search_depth=advanced`, and time-range filters — direct levers over source quality. ### Main alternatives considered - **Exa** — Strongest neural/semantic discovery and clean