agent_action## Recommendation: Tavily Search API For this repo — Python, async-first, with a pr...
## Recommendation: Tavily Search API For this repo — Python, async-first, with a provider-agnostic `LLMClient` that already fans out to Google/OpenAI/Anthropic/OpenRouter and a clean prompt→generate flow — the best fit is **Tavily**. **Why Tavily wins here** - **LLM-native, drop-in grounding.** Its `/search` returns both a synthesized `answer` (`include_answer`) and cleaned markdown `raw_content` (`include_raw_content`) plus ranked `results` with sources. That maps directly onto the existing pattern: retrieve context, inject into the provider-specific prompt in `prompts.py`, then call `llm_client.generate()`. No extraction layer to build. - **Architecturally neutral.** It's a *retrieval* layer, not a model — so it grounds whichever of the 4 LLMs the user picks, preserving the multi-provider abstraction rather than bypassing it. - **Async SDK** (`AsyncTavilyClient`) matches the codebase's async/await throughout. - **Portfolio-friendly cost:** 1,000 free credits/month, no credit card. **Alternatives considered** - **Exa** — strong, AI-native (embeddings/neural search, `/answer`, `/contents`). Closest runner-up; better for semantic *discovery*, but Tavily's answer+context is a simpler