**Recommendation** Choose **Linkup**. This repo is a small Python LangGraph/LangChain-style product research agent: `search_agent` is currently a stub at [src/nodes/search_agent.py](/home/user/worktrees/attempt-822c4ec7-1eb2-45b1-aa8e-11265b502d86-cap-0/src/nodes/search_agent.py:5), the graph already has a dedicated search node at [src/graph/main_graph.py](/home/user/worktrees/attempt-822c4ec7-1eb2-45b1-aa8e-11265b502d86-cap-0/src/graph/main_graph.py:14), and dependencies already include LangChain/LangGraph at [pyproject.toml](/home/user/worktrees/attempt-822c4ec7-1eb2-45b1-aa8e-11265b502d86-cap-0/pyproject.toml:7). Linkup fits that shape directly via `langchain-linkup`. The decisive reason is source quality. Linkup’s LangChain docs explicitly describe it as connecting LLMs to the web **and Linkup Premium Partner sources**, which is closer to the “licensed/reputable sources, not generic scraped search results” requirement than Tavily, Exa, or Brave. Its own API supports `searchResults`, `sourcedAnswer`, and `structured` outputs, plus `standard`/`deep` retrieval modes, source snippets, inline citations, date controls, and domain include/exclude filters. Sources: [Linkup Search overview](https://docs.linkup.so/pages/documentation/endpoints/search/overview), [Linkup source filtering](https://docs.linkup.so/pages/documentation/tutorials/filtering), [LangChain Linkup integration](ht