Source Repo
https://github.com/modelscope/ms-agent
Why Selected
Queue B (Tavily-parity), Tier B3. 4.4k★, active (pushed 2026-09-21, very active), Python, Apache-2.0. ModelScope's agent framework with MCP Playground and a clean SearchEngine abstraction that already has Exa, SerpApi, Tavily, and ArXiv providers. Tavily PR is open here — maintainer appetite for provider additions. 2000★+ rule applies: dead-clean surface via existing SearchEngine provider pattern.
Candidate Evaluation Summary
- Stars: 4,399 (2000★+ rule: dead-clean surface via existing provider pattern)
- Activity: Pushed 2026-09-21 (5 days ago), very active
- Language: Python
- Distribution Surface: SearchEngine provider abstraction (SearchEngine base class + search_engine.py factory + websearch_tool.py dispatch + search_request.py generator)
- Existing Providers: Exa, SerpApi, ArXiv, Tavily
- Implementation Path: Clean — single youcom/ directory following TavilySearch pattern exactly
Integration Type
Search engine provider (SearchEngine subclass) — following the repo's existing provider pattern
Distribution Surface Leveraged
The SearchEngine base class (search_base.py), search_engine.py factory, websearch_tool.py dispatch, and search_request.py generator. You.com is registered alongside Exa, SerpApi, Tavily, and ArXiv as a pickable search engine.
Env Vars and Setup
Usage Example
Set YDC_API_KEY in .env, then:
# conf.yaml
SEARCH_ENGINE:
engine: youcom
Or use programmatically:
from ms_agent.tools.search.youcom import YouSearch
engine = YouSearch()
results = engine.search(YouSearchRequest(query='AI agents', num_results=5))
Fallback/Error Handling
- Missing YDC_API_KEY uses the keyless free tier (no error, no config needed)
- API errors (HTTP 429/401/403) raise YouHTTPError with structured fields (status, code, retry_after)
- Used through get_web_search_tool() or get_search_engine(), not directly — all existing error paths handle failures
Validation
Status
Source Repo
https://github.com/modelscope/ms-agent
Why Selected
Queue B (Tavily-parity), Tier B3. 4.4k★, active (pushed 2026-09-21, very active), Python, Apache-2.0. ModelScope's agent framework with MCP Playground and a clean SearchEngine abstraction that already has Exa, SerpApi, Tavily, and ArXiv providers. Tavily PR is open here — maintainer appetite for provider additions. 2000★+ rule applies: dead-clean surface via existing SearchEngine provider pattern.
Candidate Evaluation Summary
Integration Type
Search engine provider (SearchEngine subclass) — following the repo's existing provider pattern
Distribution Surface Leveraged
The SearchEngine base class (search_base.py), search_engine.py factory, websearch_tool.py dispatch, and search_request.py generator. You.com is registered alongside Exa, SerpApi, Tavily, and ArXiv as a pickable search engine.
Env Vars and Setup
YDC_API_KEY(optional) — You.com API key. When unset, uses the keyless free tier at https://api.you.com/v1/agents/search. Get a key at https://you.com/platform/api-keysengine: youcomin projects/deep_research/conf.yaml (commented-out example provided)Usage Example
Set YDC_API_KEY in .env, then:
Or use programmatically:
Fallback/Error Handling
Validation
Status