Веб-поиск
Qwen Code поддерживает веб-поиск двумя способами:
- Встроенный инструмент
web_search— работает на основе серверного поиска через DashScope Responses API или, для сессий подписки Qwen, через сервис поиска Qwen MCP. Включается после входа в аккаунт Plus/Pro и по умолчанию активен при запуске для поддерживаемых конфигураций ModelStudio и OpenAI-совместимого DashScope; не требует настройки дополнительного провайдера или MCP. - Интеграции через MCP (Model Context Protocol) — подключите любой внешний поисковый сервис (Tavily, GLM и другие). Используйте этот вариант, если ваш провайдер не может обслуживать встроенный инструмент.
Встроенный web_search
Для DashScope встроенный инструмент отправляет автономный поисковый запрос вспомогательной модели малого размера с серверными инструментами web_search (и web_extractor) и возвращает изложенные результаты вместе с URL источников. При использовании аккаунта Qwen с подпиской применяется сервис поиска Qwen MCP и ваши текущие учетные данные для входа. Отдельный ключ API для поиска, вспомогательная модель или настройка mcpServers не требуются. webExtractor относится только к поиску DashScope.
Когда он включается автоматически
Если вы ничего не настраивали в tools.webSearch, инструмент регистрируется, когда модель, которую вы используете, может обслуживать поисковый запрос с теми же учётными данными:
| Способ входа | Встроенный поиск |
|---|---|
| Аккаунт Qwen с подпиской — Plus или Pro | включено |
| Alibaba ModelStudio → Standard API Key | включён |
| Alibaba ModelStudio → Token Plan | включён |
| Alibaba ModelStudio → Coding Plan | выключен — его эндпоинт не проверен для этого API |
| QwenCloud → Стандартный ключ API | включено |
| QwenCloud → Тариф Token Plan | включено |
OpenAI-совместимая запись modelProviders или Custom Provider на известном хосте DashScope Responses с прямым ключом | включён |
| Сторонние провайдеры (OpenRouter, DeepSeek, ModelScope, …), пользовательские эндпоинты на других хостах, локальные модели | выключен |
Поиск через DashScope тарифицируется тем же ключом, что и основная модель; поиск по подписке использует ваши учетные данные для входа в Qwen. Обработка разрешений следует активному режиму одобрения и правилам; в режиме одобрения default первый запрос на поиск требует подтверждения. Если ваш провайдер не может обеспечить работу инструмента, он просто не появляется при запуске — без предупреждения при старте.
Чтобы выключить:
{ "tools": { "webSearch": { "enabled": false } } }или ENABLE_WEB_SEARCH=false. Bare mode и safe mode всегда его отключают.
Явная настройка
Этот раздел описывает настройку поиска DashScope. Поиск по подписке повторно использует учетные данные вашего членства и не требует дополнительной настройки. Явные настройки поиска имеют приоритет над автоматическим поиском по подписке.
Укажите инструменту ModelStudio Standard/Token Plan или другую проверенную запись DashScope Responses. Это полезно, когда ваша основная модель работает на другом провайдере, а у вас есть отдельный поддерживаемый ключ DashScope. Хосты Coding Plan исключены из автоматической активации, потому что поисковые инструменты Responses там не проверены. Вы можете явно подключить их через tools.webSearch.model; если эндпоинт их не обслуживает, первый поиск выдаст ошибку. Используйте MCP-провайдер поиска, если не хотите полагаться на этот непроверенный путь.
{
"modelProviders": {
"openai": [
{
"id": "qwen3.8-flash",
"envKey": "DASHSCOPE_API_KEY",
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1"
}
]
},
"tools": {
"webSearch": {
"enabled": true,
"model": "qwen3.8-flash"
}
}
}| Настройка | Переопределение через env | Назначение |
|---|---|---|
tools.webSearch.enabled | ENABLE_WEB_SEARCH | Установите false, чтобы выключить инструмент. Неявная активация при запуске требует, чтобы enabled, model и бэкенд только через env были не установлены. Установка true разрешает автоматическое определение только когда бэкенд только через env также не установлен; иначе требуется model. |
tools.webSearch.model | WEB_SEARCH_MODEL | Селектор модели поиска для явного пути (modelId или authType:modelId). С WEB_SEARCH_BASE_URL — это простой id модели для этого эндпоинта; иначе он должен совпадать с объявленной записью modelProviders, совместимой с DashScope. Автоматический путь использует qwen3.8-flash. |
tools.webSearch.webExtractor | WEB_SEARCH_EXTRACTOR | Позволяет поисковому агенту открывать страницы результатов для более обоснованных ответов (по умолчанию true; тарифицируется DashScope отдельно). |
tools.webSearch.timeoutMs | WEB_SEARCH_TIMEOUT_MS | Общий бюджет времени на один поиск в миллисекундах (по умолчанию 120000, максимум 600000; остальные значения возвращаются к значению по умолчанию). Поиск, у которого закончилось время, возвращает полученные данные как частичный результат, если хотя бы один поисковый вызов завершился; если бюджет истекает до завершения первого поискового вызова, инструмент сообщает об ошибке таймаута, потому что наррация без выполненного поиска не является аудируемым доказательством. Исполнительный лимит на инструмент (QWEN_CODE_TOOL_EXECUTION_TIMEOUT_MS) ниже этого бюджета срабатывает первым и отбрасывает частичный результат; держите его выше timeoutMs. |
tools.webSearch.allowedHosts | WEB_SEARCH_ALLOWED_HOSTS | Дополнительные суффиксы хостов, которым доверяется для явно настроенного поискового бэкенда — точное имя хоста или любой поддомен указанного суффикса (разделенные запятыми в переменной окружения). По умолчанию пусто, поэтому поведение не меняется, если не задано. Только бэкенд WEB_SEARCH_BASE_URL и путь modelProviders обращаются к нему; автоматическое определение никогда его не использует, поэтому пользовательский хост применяется только там, где это указано в вашей собственной конфигурации. Настроенный хост получает ключ API. Записи обрезаются и приводятся к нижнему регистру, а записи без точки игнорируются. |
tools.webSearch.maxPerSession | WEB_SEARCH_MAX_PER_SESSION | Максимальное количество вызовов web_search за одну сессию (по умолчанию 200, максимум 10000; остальные значения возвращаются к значению по умолчанию). Счётчик общий с субагентами и сбрасывается при смене сессии (/clear, /resume, ветвление). После достижения лимита дальнейшие поиски пропускаются, и модели предлагается продолжать с тем, что уже собрано. |
Конфигурация только через env (без settings.json)
Для сред, где нельзя записать файл настроек (закрытые контейнеры, CI с инъекцией переменных окружения), инструмент можно настроить полностью через переменные окружения — запись в modelProviders не требуется:
export ENABLE_WEB_SEARCH=true
export WEB_SEARCH_MODEL=qwen3.8-flash
export WEB_SEARCH_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
export WEB_SEARCH_ALLOWED_HOSTS=llm-gw.example.com # only for a gateway host
export DASHSCOPE_API_KEY=sk-... # or set WEB_SEARCH_API_KEY insteadWEB_SEARCH_BASE_URL отражает поля baseUrl и modelProviders из записи; это должен быть эндпоинт, совместимый с DashScope. При его задании он имеет приоритет над разрешением modelProviders, а WEB_SEARCH_MODEL используется как обычный идентификатор модели DashScope. Ключ API берётся из WEB_SEARCH_API_KEY, если задан, иначе из DASHSCOPE_API_KEY. Если эндпоинт — это шлюз на вашем домене, добавьте этот хост в WEB_SEARCH_ALLOWED_HOSTS (или tools.webSearch.allowedHosts) — иначе проверка принимает только встроенный список. Ошибки конфигурации по-прежнему отображаются как уведомление при запуске.
Примечания:
- Для явного поиска DashScope селектор должен указывать на запись
modelProviders, совместимую с DashScope, содержащую прямой ключ API черезenvKey. Ваша основная модель может быть от любого провайдера. Устаревший бесплатный провайдер Qwen OAuth не может обеспечить эту возможность; поиск по подписке Qwen использует отдельный сервис MCP, описанный выше. - Регистрация поиска переоценивается после успешных изменений аутентификации. Вход в подписку Qwen включает поиск в текущей сессии без перезапуска. Явное отключение, безопасный режим и правила разрешений инструментов все еще применяются.
- Автоматическое определение хоста намеренно принимает только известные региональные хосты DashScope, Model Studio и MaaS-хосты QwenCloud (включая их подписочные поддомены
token-plan.) и внутренние хосты Alibaba. Универсальные шлюзы*.alicloudapi.com,DASHSCOPE_PROXY_BASE_URLи любые хосты, добавленные вами только вallowedHosts, исключены из этого автоматического пути, так как он работает без вашего участия и иначе передал бы ключ основного провайдера хосту, который никто не объявлял. Для шлюза, который вы явно указываете, перечислите его вtools.webSearch.allowedHostsи направьте на негоWEB_SEARCH_BASE_URL(или записьmodelProviders). - Если инструмент включён явно, но неправильно настроен, он остаётся выключенным, а уведомление при запуске объясняет, какое условие не выполнено. Автоматическая активация никогда не выдаёт уведомление.
- Поиск через DashScope тарифицируется по вашему ключу DashScope (учитывается
usage.x_tools). Режим автоматического одобрения (по умолчанию) позволяет классификатору одобрять поисковые запросы без подтверждения; в режиме одобренияdefaultинструмент запрашивает подтверждение, а выбор «разрешить всегда» сохраняет стандартное правило разрешенияWebSearch, как и для других инструментов. - Клиентского белого списка моделей нет; модель, которую не обслуживает эндпоинт Responses, выдаст ошибку при первом использовании.
- Поиск, превысивший бюджет времени, возвращает полученные данные как частичный результат, если хотя бы один поисковый вызов завершился; если бюджет истекает до завершения первого поискового вызова, инструмент сообщает об ошибке таймаута, потому что наррация без выполненного поиска не является аудируемым доказательством. Когда поисковый вызов завершился, но нарративный ответ так и не поступил, результат содержит не более 6000 символов текста страницы, прочитанного агентом, помеченных как необработанное содержимое страницы.
- Лимит на сессию считает вызовы инструмента
web_search, а не поиски, которые один вызов выполняет внутри себя, и вызов, который завершился ошибкой, всё равно считается, потому что запрос был отправлен. Пропущенный вызов — не ошибка: он сообщает модели, что бюджет исчерпан, и предлагает попросить вас увеличитьtools.webSearch.maxPerSession, если дополнительные поиски действительно необходимы.
Альтернативы через MCP
Если ваш провайдер не может обслуживать встроенный инструмент, веб-поиск доступен через подключение внешнего MCP-сервера — см. сервисы ниже.
⚠️ Историческое критическое изменение: оригинальный встроенный web_search удалён
Затронутые версии: с
V0.0.7+до последнего релиза с поддержкой встроенного веб-поиска.
Оригинальный встроенный инструмент web_search (мультипровайдерный: Tavily/Google/GLM/DashScope) и его конфигурация были удалены. Встроенный инструмент, описанный выше, — это другая реализация с другой конфигурацией. Если вы использовали что-либо из перечисленного, перейдите на новый встроенный инструмент (DashScope) или на MCP:
| Удалено | Что делать |
|---|---|
Блок webSearch в settings.json | Вместо этого настройте MCP-сервер в mcpServers (см. ниже) |
advanced.tavilyApiKey в settings.json | Используйте MCP-сервер Tavily |
Переменная окружения TAVILY_API_KEY | Используйте MCP-сервер Tavily |
DASHSCOPE_API_KEY для веб-поиска | Используйте встроенный инструмент web_search |
GLM_API_KEY для веб-поиска | Используйте GLM WebSearch Prime MCP |
Флаги CLI --tavily-api-key / --glm-api-key / --dashscope-api-key | Настройте через mcpServers в settings.json |
Примеры миграции
До (Tavily через встроенный инструмент):
{
"webSearch": {
"provider": [{ "type": "tavily", "apiKey": "tvly-xxx" }],
"default": "tavily"
}
}После (Tavily через MCP):
{
"mcpServers": {
"tavily": {
"httpUrl": "https://mcp.tavily.com/mcp/?tavilyApiKey=tvly-xxx"
}
}
}До (DashScope через встроенный инструмент):
{
"webSearch": {
"provider": [{ "type": "dashscope", "apiKey": "sk-xxx" }],
"default": "dashscope"
}
}После (Alibaba Cloud Bailian WebSearch через MCP):
{
"mcpServers": {
"WebSearch": {
"httpUrl": "https://dashscope.aliyuncs.com/api/v1/mcps/WebSearch/mcp",
"headers": {
"Authorization": "Bearer sk-xxx"
}
}
}
}Поддерживаемые MCP-сервисы веб-поиска
Alibaba Cloud Bailian WebSearch
Официальный MCP-сервис веб-поиска, предоставляемый платформой Alibaba Cloud Bailian на базе DashScope. Если у вас есть ключ DashScope, предпочтите встроенный инструмент web_search выше — он использует более мощный путь поиска, чем этот MCP-сервис.
- Маркетплейс MCP: https://bailian.console.aliyun.com/cn-beijing?tab=mcp#/mcp-market/detail/WebSearch
- Стоимость: платная (тарификация через Alibaba Cloud DashScope)
- Получить API-ключ: https://help.aliyun.com/zh/model-studio/get-api-key
- Подходит для: запросов на китайском языке, доступа к китайскому веб-контенту, интеграции с экосистемой Alibaba Cloud
Настройка
Способ 1: команда CLI
qwen mcp add WebSearch \
-t http \
"https://dashscope.aliyuncs.com/api/v1/mcps/WebSearch/mcp" \
-H "Authorization: Bearer ${DASHSCOPE_API_KEY}"Способ 2: settings.json
{
"mcpServers": {
"WebSearch": {
"httpUrl": "https://dashscope.aliyuncs.com/api/v1/mcps/WebSearch/mcp",
"headers": {
"Authorization": "Bearer ${DASHSCOPE_API_KEY}"
}
}
}
}Замените ${DASHSCOPE_API_KEY} на ваш реальный API-ключ или установите его как переменную окружения, чтобы Qwen Code автоматически его подхватывал.
Tavily WebSearch
Готовый к использованию MCP-сервер с возможностями веб-поиска в реальном времени, извлечения данных, построения карт сайтов и сканирования.
- Репозиторий: https://github.com/tavily-ai/tavily-mcp
- Стоимость: платная (доступен бесплатный тариф)
- Получить API-ключ: https://app.tavily.com/home
- Подходит для: универсального веб-поиска с высококачественными ответами на основе AI
Доступные инструменты
tavily_search— Поиск в реальном времени в интернетеtavily_extract— Интеллектуальное извлечение данных из веб-страницtavily_map— Создание структурированной карты веб-сайтаtavily_crawl— Систематическое исследование веб-сайтов
Настройка
Способ 1: команда CLI (удалённый MCP)
qwen mcp add tavily \
-t http \
"https://mcp.tavily.com/mcp/?tavilyApiKey=${TAVILY_API_KEY}"Способ 2: settings.json (удалённый MCP)
{
"mcpServers": {
"tavily": {
"httpUrl": "https://mcp.tavily.com/mcp/?tavilyApiKey=${TAVILY_API_KEY}"
}
}
}Замените ${TAVILY_API_KEY} на ваш реальный API-ключ или установите его как переменную окружения.
Способ 3: settings.json (локальный NPX)
{
"mcpServers": {
"tavily-mcp": {
"command": "npx",
"args": ["-y", "tavily-mcp@latest"],
"env": {
"TAVILY_API_KEY": "your-api-key-here"
}
}
}
}GLM WebSearch Prime (ZhipuAI)
Официальная служба удаленного поиска в интернете на базе MCP от ZhipuAI (智谱AI), предназначенная для пользователей GLM Coding Plan. Предоставляет поиск в реальном времени, включая новости, цены акций, погоду и другое.
- Документация: https://docs.bigmodel.cn/cn/coding-plan/mcp/search-mcp-server
- Стоимость: включена в подписку GLM Coding Plan (Lite: 100 вызовов/мес, Pro: 1,000/мес, Max: 4,000/мес)
- Получить API-ключ: https://open.bigmodel.cn/apikey/platform
- Подходит для: запросов на китайском языке, получения информации в реальном времени
Доступные инструменты
webSearchPrime— Веб-поиск, возвращающий заголовок страницы, URL, краткое описание, название сайта и иконку
Настройка
Способ 1: команда CLI
qwen mcp add web-search-prime \
-t http \
"https://open.bigmodel.cn/api/mcp/web_search_prime/mcp" \
-H "Authorization: Bearer ${GLM_API_KEY}"Способ 2: settings.json
{
"mcpServers": {
"web-search-prime": {
"httpUrl": "https://open.bigmodel.cn/api/mcp/web_search_prime/mcp",
"headers": {
"Authorization": "Bearer ${GLM_API_KEY}"
}
}
}
}Замените ${GLM_API_KEY} на ваш реальный API-ключ ZhipuAI или установите его как переменную окружения.
Firecrawl
Официальный размещаемый сервер MCP от Firecrawl, предоставляющий поиск в интернете, скрейпинг страниц, обход и картирование сайтов, взаимодействие с браузером и анализ файлов. Результаты поиска могут включать содержимое каждой страницы в формате Markdown, чтобы модель могла читать источники без отдельного шага загрузки. Размещаемый сервер работает без API-ключа для поиска, скрейпинга и анализа. Поисковые запросы, URL-адреса, которые вы просите прочитать, и любые анализируемые файлы отправляются в Firecrawl.
- Документация: https://docs.firecrawl.dev/mcp-server
- Стоимость: Не требуется API-ключ для поиска, скрейпинга и анализа (суточный лимит на IP); платные тарифы для более высоких лимитов
- Получить API-ключ: https://www.firecrawl.dev/app/api-keys
- Лучше всего подходит для: Поиска в интернете, когда модели также нужно читать найденные страницы, и тестирования веб-поиска через MCP без API-ключа
Доступные инструменты
firecrawl_search— Поиск в интернете, опционально возвращает содержимое страницы каждого результата в формате Markdownfirecrawl_scrape— Получить одну страницу в чистом виде Markdownfirecrawl_parse— Преобразовать локальный файл (PDF, Word, электронную таблицу и др.) в Markdown
С API-ключом сервер также предлагает инструменты для картирования и обхода сайтов, взаимодействия со страницами (нажатие, ввод, навигация) и поиска по источникам для разработчиков, таким как задачи GitHub и документация.
Настройка
Способ 1: команда CLI (удалённый MCP)
qwen mcp add firecrawl \
-t http \
"https://mcp.firecrawl.dev/v2/mcp" \
-H "Authorization: Bearer ${FIRECRAWL_API_KEY}"Чтобы попробовать без ключа, уберите строку -H. Вы получите firecrawl_search, firecrawl_scrape и firecrawl_parse в рамках суточного лимита на IP.
Способ 2: settings.json (удалённый MCP)
{
"mcpServers": {
"firecrawl": {
"httpUrl": "https://mcp.firecrawl.dev/v2/mcp",
"headers": {
"Authorization": "Bearer ${FIRECRAWL_API_KEY}"
}
}
}
}Замените ${FIRECRAWL_API_KEY} на ваш фактический API-ключ или установите его как переменную окружения. Если ключ пустой, сервер все равно подключается, но предлагает только три инструмента без ключа.
Способ 3: settings.json (локальный NPX)
{
"mcpServers": {
"firecrawl-mcp": {
"command": "npx",
"args": ["-y", "firecrawl-mcp@latest"],
"env": {
"FIRECRAWL_API_KEY": "your-api-key-here"
}
}
}
}SerpApi
Официальный размещаемый сервер MCP от SerpApi, предоставляющий структурированные результаты поиска в реальном времени из Google, Baidu, Bing и других поисковых систем через один инструмент. Поисковые запросы и их параметры отправляются в SerpApi.
- Документация: https://serpapi.com/integrations/mcp
- Стоимость: Платно (доступен бесплатный тариф)
- Получить API-ключ: https://serpapi.com/manage-api-key
- Лучше всего подходит для: Структурированных результатов из широкого выбора поисковых систем
Доступные инструменты
search— Поиск в интернете, опционально возвращает результаты в формате Markdown
Настройка
Способ 1: команда CLI
qwen mcp add serpapi \
-t http \
"https://mcp.serpapi.com/mcp" \
-H "Authorization: Bearer ${SERPAPI_API_KEY}"Способ 2: settings.json
{
"mcpServers": {
"serpapi": {
"httpUrl": "https://mcp.serpapi.com/mcp",
"headers": {
"Authorization": "Bearer ${SERPAPI_API_KEY}"
}
}
}
}Замените ${SERPAPI_API_KEY} на ваш фактический API-ключ или установите его как переменную окружения. Ключ нужен только для поиска. Без действительного API-ключа сервер все равно подключается и перечисляет свои инструменты, но search возвращает ошибку.
looot
Размещаемый сервер MCP от looot с поиском в интернете, результатами Google SERP, новостным поиском и чтением веб-страниц. Поисковые запросы и URL-адреса, которые вы просите прочитать, отправляются в looot.
- Документация: https://docs.looot.ai
- Стоимость: Платно (предоплаченный баланс, нет бесплатного тарифа)
- Получить API-ключ: https://looot.ai
- Лучше всего подходит для: Поиска в интернете, результатов Google SERP и новостей, а также чтения страницы как текста
Доступные инструменты
web_search— Поиск в интернетеgoogle_search_results— Результаты Google SERPnews_search— Новостной поискread_web_page— Прочитать одну страницу как текст
Сервер также предоставляет функции поиска по компаниям и электронной почте.
Настройка
Способ 1: команда CLI (удалённый MCP)
qwen mcp add looot \
-t http \
"https://api.looot.ai/mcp" \
-H "Authorization: Bearer ${LOOOT_API_KEY}"Способ 2: settings.json (удалённый MCP)
{
"mcpServers": {
"looot": {
"httpUrl": "https://api.looot.ai/mcp",
"headers": {
"Authorization": "Bearer ${LOOOT_API_KEY}"
}
}
}
}Замените ${LOOOT_API_KEY} на ваш фактический API-ключ или установите его в качестве переменной окружения.