|
| 1 | +# Integration Record: tarun7r/deep-research-agent |
| 2 | + |
| 3 | +- Source repo: https://github.com/tarun7r/deep-research-agent |
| 4 | +- Repo stars at evaluation: 166 (<200) |
| 5 | +- Integration type: Optional search provider adapter (`you.com Search API`) in existing provider abstraction |
| 6 | +- Status: Proposed, implementation path validated against current codebase |
| 7 | + |
| 8 | +## Why this repo |
| 9 | + |
| 10 | +This project is an active AI deep-research agent with explicit web-search dependencies and an existing provider abstraction (`duckduckgo` + `tavily`), making You.com a clean optional provider with low integration risk. |
| 11 | + |
| 12 | +## Integration path |
| 13 | + |
| 14 | +Existing extension points: |
| 15 | +- `src/utils/web_utils.py` (search provider classes + fallback handling) |
| 16 | +- `src/utils/tools.py` (`get_search_providers` provider selection) |
| 17 | +- `src/config.py` (`SEARCH_PROVIDER` env config) |
| 18 | + |
| 19 | +Scoped addition: |
| 20 | +1. Add `YouComProvider(SearchProvider)` calling `GET https://api.you.com/v1/agents/search?query=...&count=...`. |
| 21 | +2. Add provider option `SEARCH_PROVIDER=youcom`. |
| 22 | +3. Parse `results.web[]` into existing `SearchResult` shape. |
| 23 | +4. Keep fallback behavior to existing providers if you.com returns empty/error. |
| 24 | + |
| 25 | +## Setup / env vars |
| 26 | + |
| 27 | +- `SEARCH_PROVIDER=youcom` |
| 28 | +- `YOUCOM_API_KEY` (optional; Search API supports free keyless usage up to daily quota) |
| 29 | +- Existing envs remain unchanged. |
| 30 | + |
| 31 | +## Usage example |
| 32 | + |
| 33 | +```bash |
| 34 | +export SEARCH_PROVIDER=youcom |
| 35 | +# optional |
| 36 | +export YOUCOM_API_KEY=your_key_here |
| 37 | +python app.py |
| 38 | +``` |
| 39 | + |
| 40 | +Provider request sketch: |
| 41 | + |
| 42 | +```python |
| 43 | +params = {"query": query, "count": max_results} |
| 44 | +headers = {"X-API-Key": os.getenv("YOUCOM_API_KEY")} if os.getenv("YOUCOM_API_KEY") else {} |
| 45 | +resp = requests.get("https://api.you.com/v1/agents/search", params=params, headers=headers, timeout=20) |
| 46 | +``` |
| 47 | + |
| 48 | +## Fallback and error handling |
| 49 | + |
| 50 | +- Reuse existing circuit breaker + provider fallback orchestration in `WebSearchTool`. |
| 51 | +- On 429/5xx/network error, emit provider error and continue to next configured provider. |
| 52 | +- On empty `results.web`, return empty list without hard failure. |
| 53 | + |
| 54 | +## Validation notes |
| 55 | + |
| 56 | +Validated feasibility by repository inspection: |
| 57 | +- Confirmed provider abstraction and fallback support already exists (`SearchProvider`, `WebSearchTool`). |
| 58 | +- Confirmed config-driven provider selection already exists (`SEARCH_PROVIDER` in `src/config.py`). |
| 59 | +- Confirmed no default You.com integration currently present. |
| 60 | +- Confirmed this is additive and backward-compatible. |
| 61 | + |
| 62 | +Date: 2026-05-23 |
0 commit comments