-
Notifications
You must be signed in to change notification settings - Fork 1.3k
chore: Web Search Tool Refactoring with Multi-Provider Support #885
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📋 Review SummaryThis PR introduces a significant refactoring of the web search tool to support multiple providers (DashScope, Tavily, and Google Custom Search) with a flexible configuration system. The changes are well-structured with a modular design that separates provider implementations while maintaining backward compatibility. 🔍 General Feedback
🎯 Specific Feedback🟡 High
🟢 Medium
🔵 Low
✅ Highlights
|
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
- Add quota information (200 requests/minute, 2000 requests/day) to DashScope provider description - Update provider details section with quota limits
Overview
This PR refactors the
web_searchtool to implement a flexible multi-provider architecture, offering users more search options and better configurability.✨ Key Improvements
1. Multi-Provider Support
2. Flexible Configuration System
Three configuration methods supported:
Method 1: Settings File (Recommended)
{ "webSearch": { "provider": [ { "type": "dashscope" }, { "type": "tavily", "apiKey": "tvly-xxxxx" }, { "type": "google", "apiKey": "xxx", "searchEngineId": "xxx" } ], "default": "dashscope" } }Method 2: Environment Variables
Method 3: Command Line Arguments
3. Architecture Improvements
4. Backward Compatibility
Maintains support for legacy
tavilyApiKeyconfiguration (marked as deprecated) to ensure smooth migration.💡 Usage Examples
via CLI
No breaking changes. All legacy configurations continue to work, but users are encouraged to migrate to the new configuration format.