feat: add optional you.com search integration - #1004
Open
mouse-value-add wants to merge 1 commit into
Open
mouse-value-add wants to merge 1 commit into
mouse-value-add wants to merge 1 commit into
Conversation
13 tasks
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This adds You.com as an optional search engine provider, following the exact same SearchEngine pattern used by Exa, SerpApi, Tavily, and ArXiv.
You.com offers both API-key-authenticated and keyless search — the keyless tier works immediately with no API key or signup, making it the easiest way to get started with a web search backend.
What changed
ms_agent/tools/search/youcom/withsearch.py,schema.py,http.pyfollowing the Tavily provider pattern exactlyYOCOMinSearchEngineTypeenum andENGINE_TOOL_NAMESsearch_engine.py,websearch_tool.py(bothget_search_engine_classandget_search_engine), andsearch_request.py.env.examplewithYDC_API_KEY(documented as optional)projects/deep_research/conf.yamlwith a commented-out youcom config exampleprojects/fin_research/README.mdwith You.com as another search engine optionSetup
Three ways to use it:
engine: youcominconf.yamlYDC_API_KEYin.env(get one at https://you.com/platform/api-keys)get_search_engine('youcom')orYouSearch()Why optional
urllib,json)YDC_API_KEYis unset, it uses the keyless free tier transparentlyValidation
All 4 new files compile cleanly. Unit tests verified:
YouSearchRequest.to_api_body)YouSearchResult.to_listwith empty/valid responses)_search_url,_headers)build_request_from_argsandget_tool_definitionSearchEngineType.YOCOM,ENGINE_TOOL_NAMES['youcom'])I kept this optional, following the existing provider pattern. Happy to adjust the shape if you prefer a different abstraction.