聚合多个搜索引擎的搜索结果 (Aggregates search results from multiple search engines: Baidu, DuckDuckGo, Bocha, Tavily)
Two tools with significant definition gaps. bocha_search has a complete schema but weak description (67 chars, below 100-char minimum for clarity). web_search_tools has a bilingual description (Chinese/English) that is verbose and confusing for LLM parsing, lacks clear output schema documentation, and has a parameter (search_engines) with a complex constraint ('2-5 engines') that is not enforced in code. Neither tool documents return structure or error recovery paths. No tool annotations (readOnlyHint, etc.) present. Parameter descriptions are present but inconsistent in quality.
Search using Bocha's Search API and return the results as a list of SearchResult objects.
聚合多个搜索引擎 (Baidu, DuckDuckGo, Bocha) 的搜索结果。它会为每个关键词调用指定的搜索引擎,并将结果聚合在一起。(Aggregates search results from multiple search engines based on context and query. Automatically selects 2-5 most suitable search engines from ['baidu', 'duckduckgo', 'bocha', 'tavily'] based on question type.)
web_search_tools has ambiguous naming and conflates two concerns: context-aware search selection AND multi-engine aggregation. Should split into search_with_context and aggregate_search_results.
web_search_tools description is bilingual (Chinese/English) and 300+ chars, making it hard for LLMs to parse intent. Descriptions should be 10-200 chars in a single language, with clear WHAT/WHEN/RETURN structure.
search_engines parameter has constraint '2-5 engines' documented in description but not enforced in code. Code defaults to ['baidu', 'duckduckgo'] if None or <2, silently ignoring the constraint. LLM cannot rely on validation.
Neither tool documents output schema. bocha_search returns a list of dicts with 'title', 'href', 'body' but this is inferred from code, not declared. web_search_tools returns Dict[str, Any] with no field documentation. LLMs cannot plan downstream calls.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
No error handling guidance. bocha_search returns empty list on error; web_search_tools may raise exceptions. No recovery hints (e.g., 'Try with fewer engines' or 'Check API key'). Errors are not actionable for LLM.