问题描述
目前 Claude Code 的 WebSearchTool 在第三方 API 代理环境下存在以下问题:
- 云端搜索受限:当
ANTHROPIC_BASE_URL 指向第三方代理(如 http://localhost:3456)时,isFirstPartyAnthropicBaseUrl() 返回 false,导致 WebSearchTool 的云端搜索适配器无法正常工作
- Exa 适配器埋得太深:虽然 WebSearchTool 内部有 Exa 适配器,但作为 fallback 路径存在,模型无法明确感知和优先选择
- 模型选择权不足:没有独立的搜索工具让模型根据任务需求自主选择搜索源
方案
添加 ExaSearchTool 作为独立的内置工具,直接调用 Exa AI 的公开 MCP 端点:
优势
- ✅ 独立于 API 提供商:不依赖 Anthropic 官方 API,适用于任意第三方代理
- ✅ 模型可明确感知:工具描述清晰,模型可在 Exa Search 和 Web Search 之间智能选择
- ✅ 优先级更高:注册在
WebSearchTool 之前,工具排序更靠前
- ✅ 功能完整:支持查询、结果数量、实时抓取模式、搜索深度等参数
实现变更
-
新工具目录
packages/builtin-tools/src/tools/ExaSearchTool/ExaSearchTool.ts — 工具主体实现
packages/builtin-tools/src/tools/ExaSearchTool/prompt.ts — 工具描述与常量
packages/builtin-tools/src/tools/ExaSearchTool/UI.tsx — 工具使用/结果渲染
-
工具注册(src/tools.ts)
- 添加 import:
import { ExaSearchTool } from '@claude-code-best/builtin-tools/tools/ExaSearchTool/ExaSearchTool.js'
- 在
getAllBaseTools() 中注册于 WebSearchTool 之前
-
Barrel 导出(packages/builtin-tools/src/index.ts)
- 添加导出:
export { ExaSearchTool } from './tools/ExaSearchTool/ExaSearchTool.js'
API 来源
ExaSearchTool 调用 https://mcp.exa.ai/mcp(公开端点),无需额外 API Key。
相关文件
已实现的文件已在本地的 packages/builtin-tools/src/tools/ExaSearchTool/ 目录中,可以协助提交。
问题描述
目前 Claude Code 的
WebSearchTool在第三方 API 代理环境下存在以下问题:ANTHROPIC_BASE_URL指向第三方代理(如http://localhost:3456)时,isFirstPartyAnthropicBaseUrl()返回false,导致 WebSearchTool 的云端搜索适配器无法正常工作方案
添加
ExaSearchTool作为独立的内置工具,直接调用 Exa AI 的公开 MCP 端点:优势
WebSearchTool之前,工具排序更靠前实现变更
新工具目录
packages/builtin-tools/src/tools/ExaSearchTool/ExaSearchTool.ts— 工具主体实现packages/builtin-tools/src/tools/ExaSearchTool/prompt.ts— 工具描述与常量packages/builtin-tools/src/tools/ExaSearchTool/UI.tsx— 工具使用/结果渲染工具注册(
src/tools.ts)import { ExaSearchTool } from '@claude-code-best/builtin-tools/tools/ExaSearchTool/ExaSearchTool.js'getAllBaseTools()中注册于WebSearchTool之前Barrel 导出(
packages/builtin-tools/src/index.ts)export { ExaSearchTool } from './tools/ExaSearchTool/ExaSearchTool.js'API 来源
ExaSearchTool 调用
https://mcp.exa.ai/mcp(公开端点),无需额外 API Key。相关文件
已实现的文件已在本地的
packages/builtin-tools/src/tools/ExaSearchTool/目录中,可以协助提交。