## Recommendation: Tavily Search API (`langchain-tavily`) **Why Tavily wins for this repo.** This is a LangGraph `create_react_agent` (OpenAI) stock chatbot whose tools are plain `StructuredTool.from_function` entries in `app/tools.py:401`. Tavily ships a first-class `langchain-tavily` package whose `TavilySearch` is already a LangChain tool — it drops straight into the existing `get_tools()` list with no wrapper plumbing, matching the pattern next to `get_news`. It's purpose-built for LLM grounding: returns ranked, de-duplicated, LLM-ready content (not raw HTML) plus an optional `include_answer`, and supports `topic="news"`, `time_range`, and `include_domains` — directly useful for grounding answers in current market/company news (you can scope to Bloomberg/Reuters like the existing GNews filter). Generous free tier (1,000 credits/month, no card) lowers adoption friction, and `search_depth` lets you tune cost (1 credit basic / 2 advanced). **Main alternatives considered.** - **Exa** — excellent neural/semantic retrieval with `ExaSearchRetriever` + highlights, but its LangChain story is a RAG *retriever* pipeline rather than a plug-in agent tool, and search-with-contents (~$7/1k) is costlier per result. Better for deep semantic document recall than quick agent grounding. - **Brave Search API** — cheap, privacy-focused, has an AI-tuned "LLM Context API," but **no native LangChai