Skip to Content
Руководство для пользователейКонфигурацияНастройки

Конфигурация Qwen Code

Tip

Аутентификация / API-ключи: Аутентификация (API-ключ, Alibaba Cloud Coding Plan) и связанные с ней переменные окружения (например, OPENAI_API_KEY) описаны в разделе Аутентификация.

Note

Примечание о новом формате конфигурации: Формат файла settings.json обновлен до новой, более структурированной версии. Старый формат будет перенесен автоматически. Qwen Code предлагает несколько способов настройки поведения, включая переменные окружения, аргументы командной строки и файлы настроек. В этом документе описаны различные методы конфигурации и доступные параметры.

Уровни конфигурации

Конфигурация применяется в следующем порядке приоритета (меньшие номера переопределяются старшими):

УровеньИсточник конфигурацииОписание
1Значения по умолчаниюЖестко заданные значения по умолчанию в приложении
2Системный файл настроек по умолчаниюОбщесистемные настройки по умолчанию, которые могут быть переопределены другими файлами настроек
3Файл настроек пользователяГлобальные настройки для текущего пользователя
4Файл настроек проектаНастройки, специфичные для проекта
5Системный файл настроекОбщесистемные настройки, переопределяющие все остальные файлы настроек
6Переменные окруженияОбщесистемные или специфичные для сессии переменные, которые могут загружаться из файлов .env
7Аргументы командной строкиЗначения, передаваемые при запуске CLI

Файлы настроек

Qwen Code использует JSON-файлы настроек для постоянного хранения конфигурации. Предусмотрено четыре расположения для этих файлов:

Тип файлаРасположениеОбласть действия
Системный файл настроек по умолчаниюLinux: /etc/qwen-code/system-defaults.json
Windows: C:\ProgramData\qwen-code\system-defaults.json
macOS: /Library/Application Support/QwenCode/system-defaults.json
Путь можно переопределить с помощью переменной окружения QWEN_CODE_SYSTEM_DEFAULTS_PATH.
Задает базовый уровень общесистемных настроек по умолчанию. Эти настройки имеют наименьший приоритет и предназначены для переопределения пользовательскими, проектными или системными настройками.
Файл настроек пользователя~/.qwen/settings.json (где ~ — ваша домашняя директория).Применяется ко всем сессиям Qwen Code для текущего пользователя.
Файл настроек проекта.qwen/settings.json в корневой директории вашего проекта.Применяется только при запуске Qwen Code из этого конкретного проекта. Настройки проекта переопределяют настройки пользователя.
Системный файл настроекLinux: /etc/qwen-code/settings.json
Windows: C:\ProgramData\qwen-code\settings.json
macOS: /Library/Application Support/QwenCode/settings.json
Путь можно переопределить с помощью переменной окружения QWEN_CODE_SYSTEM_SETTINGS_PATH.
Применяется ко всем сессиям Qwen Code в системе для всех пользователей. Системные настройки переопределяют пользовательские и проектные настройки. Может быть полезно системным администраторам на предприятиях для контроля над настройками Qwen Code у пользователей.
Note

Примечание о переменных окружения в настройках: Строковые значения в файлах settings.json могут ссылаться на переменные окружения с использованием синтаксиса $VAR_NAME или ${VAR_NAME}. Эти переменные будут автоматически разрешены при загрузке настроек. Например, если у вас есть переменная окружения MY_API_TOKEN, вы можете использовать её в settings.json так: "apiKey": "$MY_API_TOKEN".

Директория .qwen в вашем проекте

Помимо файла настроек проекта, директория .qwen проекта может содержать другие специфичные для проекта файлы, связанные с работой Qwen Code, такие как:

Миграция конфигурации

Qwen Code автоматически переносит устаревшие параметры конфигурации в новый формат. Перед миграцией старые файлы настроек резервируются. Следующие параметры были переименованы из негативных (disable*) в позитивные (enable*):

Старый параметрНовый параметрПримечания
disableAutoUpdate + disableUpdateNaggeneral.enableAutoUpdateОбъединены в один параметр
disableLoadingPhrasesui.accessibility.enableLoadingPhrases
disableFuzzySearchcontext.fileFiltering.enableFuzzySearch
disableCacheControlmodel.generationConfig.enableCacheControl
Note

Инверсия булевых значений: При миграции булевы значения инвертируются (например, disableAutoUpdate: true становится enableAutoUpdate: false).

Политика объединения для disableAutoUpdate и disableUpdateNag

Если оба устаревших параметра присутствуют с разными значениями, миграция выполняется по следующему правилу: если либо disableAutoUpdate, либо disableUpdateNag равен true, то enableAutoUpdate становится false:

disableAutoUpdatedisableUpdateNagМигрированный enableAutoUpdate
falsefalsetrue
falsetruefalse
truefalsefalse
truetruefalse

Доступные параметры в settings.json

Параметры организованы по категориям. Большинство параметров следует размещать внутри соответствующего объекта категории верхнего уровня в файле settings.json. Некоторые параметры верхнего уровня, такие как proxy и plansDirectory, остаются прямыми корневыми ключами для обеспечения совместимости.

general

ПараметрТипОписаниеПо умолчанию
general.preferredEditorstringПредпочитаемый редактор для открытия файлов.undefined
general.vimModebooleanВключить горячие клавиши Vim.false
general.enableAutoUpdatebooleanВключить автоматическую проверку обновлений и их установку при запуске.true
general.showSessionRecapbooleanАвтоматически показывать краткую сводку «где вы остановились» при возвращении в терминал после отсутствия. По умолчанию выключено. Используйте /recap для ручного вызова независимо от этой настройки.false
general.sessionRecapAwayThresholdMinutesnumberКоличество минут, в течение которых терминал должен быть неактивен, чтобы при получении фокуса сработала автоматическая сводка. Используется только при включенном showSessionRecap.5
general.gitCoAuthor.commitbooleanДобавлять трейлер Co-authored-by в сообщения коммитов git И прикреплять пофайловую git-заметку об AI-авторстве (refs/notes/ai-attribution) для коммитов, сделанных через Qwen Code. Отключение пропускает оба действия.true
general.gitCoAuthor.prbooleanДобавлять строку с указанием авторства Qwen Code в описания pull request при выполнении gh pr create.true
general.defaultFileEncodingenumКодировка по умолчанию для новых файлов. Используйте "utf-8" (по умолчанию) для UTF-8 без BOM или "utf-8-bom" для UTF-8 с BOM. Изменяйте только если вашему проекту специально требуется BOM."utf-8"
general.voice.enabledbooleanВключить голосовой ввод в поле промпта. Также переключается командой /voice. Требуется настройка модели транскрибации (voiceModel).false
general.voice.modeenumПоведение push-to-talk: "hold" — говорить, пока удерживается клавиша, или "tap" — начать и нажать (или поставить на паузу), чтобы остановить и отправить."hold"
general.voice.languagestringПредпочитаемый разговорный язык для голосовой транскрибации (например, "english", "chinese"). Оставьте пустым для автоопределения.""
general.voice.keytermsFilestringПуть к пользовательскому файлу ключевых терминов (один термин на строку, # для комментариев), который смещает голосовую транскрибацию в сторону предметных терминов. Относительные пути разрешаются от корня рабочей директории; по умолчанию используется .qwen/voice-keyterms.txt, если он присутствует. Читается только в доверенных рабочих директориях. Применяется только к моделям Qwen ASR (qwen3-asr-*).""
general.voice.refineTranscriptbooleanОчищать голосовые транскрипты с помощью быстрой модели перед их вставкой — удаляет слова-паразиты и исправляет ошибки распознавания, сохраняя смысл. При сбое возвращается к исходному транскрипту и пропускается, если быстрая модель не настроена.true
general.cleanupPeriodDaysnumberКоличество дней для хранения резервных копий сессий в ~/.qwen/file-history/, используемых командой /rewind. Более старые резервные копии удаляются фоновым процессом, который запускается не чаще одного раза в день. 0 = минимальное хранение (~1 час): сохраняются сессии, затронутые за последний час, плюс текущая активная. Изменения вступают в силу после перезапуска.30
general.languageenumЯзык пользовательского интерфейса. Используйте "auto" для определения из системных настроек или код языка (например, "zh-CN", "fr"). Пользовательские коды можно добавить, поместив JS-файлы локализации в ~/.qwen/locales/. См. i18n. Требуется перезапуск."auto"
general.outputLanguagestringЯзык вывода модели. Используйте "auto" для определения из системных настроек или задайте конкретный язык. Требуется перезапуск."auto"
general.dynamicCommandTranslationbooleanВключить AI-перевод описаний динамических слэш-команд. При отключении динамические команды сохраняют свои исходные описания и пропускают вызовы модели перевода.false
general.terminalBellbooleanВоспроизводить звук терминального звонка при завершении ответа или запросе подтверждения.true
general.preventSystemSleepbooleanЗапретить переход системы в спящий режим, пока Qwen Code транслирует ответ модели или выполняет инструменты. Время простоя промпта и запросы разрешений не препятствуют спящему режиму. Считывается один раз при запуске, поэтому изменения вступают в силу после перезапуска.true
general.chatRecordingbooleanСохранять историю чата на диск. Отключение также предотвращает работу --continue и --resume. Требуется перезапуск.true

output

ПараметрТипОписаниеПо умолчаниюВозможные значения
output.formatstringФормат вывода CLI."text""text", "json"
output.showTimestampsbooleanПоказывать метку времени [HH:MM:SS] перед каждым ответом ассистента.false

ui

ПараметрТипОписаниеПо умолчанию
ui.themestringЦветовая тема для UI. Доступные варианты см. в разделе Themes."Qwen Dark"
ui.customThemesobjectОпределения пользовательских тем.{}
ui.statusLineobjectКонфигурация пользовательской строки состояния. Поддерживает опции command, refreshInterval, respectUserColors и hideContextIndicator. См. Status Line.undefined
ui.hideWindowTitlebooleanСкрыть заголовок окна.false
ui.hideTipsbooleanСкрыть все подсказки (при запуске и после ответа) в UI. См. Contextual Tips.false
ui.hideBannerbooleanСкрыть ASCII-логотип и информационную панель при запуске. Подсказки и поле ввода чата продолжат отображаться, если только не установлен ui.hideTips.false
ui.customBannerTitlestringЗаменить заголовок >_ Qwen Code по умолчанию в информационной панели баннера. Суффикс версии (vX.Y.Z) всегда добавляется; строки аутентификации, модели и пути не затрагиваются. Очищается; ограничение — 80 символов.""
ui.customBannerSubtitlestringНеобязательная строка подзаголовка, отображаемая между заголовком баннера и строкой аутентификации/модели вместо пустой строки-разделителя. Очищается; ограничение — 160 символов. Пустое значение (по умолчанию) сохраняет исходный пустой разделитель.""
ui.customAsciiArtstring | objectЗаменить ASCII-логотип QWEN в баннере. Принимает встроенную строку (используется для обоих уровней ширины), { "path": "./brand.txt" } (относительные пути разрешаются относительно каталога файла настроек; читается один раз при запуске с флагом O_NOFOLLOW в POSIX, ограничение — 64 КБ) или { "small": ..., "large": ... } для выбора в зависимости от ширины. Очищается; ограничение — 200 строк × 200 столбцов на уровень.undefined
ui.showLineNumbersbooleanПоказывать номера строк в блоках кода в выводе CLI.true
ui.renderModestringРежим отображения Markdown по умолчанию. Используйте "render" для богатого визуального предпросмотра или "raw" для отображения исходного Markdown по умолчанию. Переключается во время сессии с помощью Alt/Option+M; в macOS терминал должен отправлять Option как Meta. См. Markdown Rendering."render"
ui.showCitationsbooleanПоказывать цитаты для сгенерированного текста в чате.false
ui.history.collapseOnResumebooleanСворачивать ли историю по умолчанию при возобновлении сессии. Можно переключить с помощью /history collapse-on-resume и /history expand-on-resume.false
ui.history.collapsePreviewCountnumberКоличество последних реплик пользователя, которые остаются видимыми, когда включен ui.history.collapseOnResume. 0 сворачивает всю восстановленную историю по умолчанию; -1 показывает всю восстановленную историю.0
ui.compactModebooleanСкрыть вывод инструментов и процесс размышлений для более чистого интерфейса. Переключается с помощью Ctrl+O во время сессии или через диалог настроек. Запросы на подтверждение инструментов никогда не скрываются, даже в компактном режиме. Настройка сохраняется между сессиями.false
ui.shellOutputMaxLinesnumberМаксимальное количество строк вывода shell, отображаемых встроенно. Установите 0, чтобы отключить ограничение и показывать полный вывод. Скрытые строки отображаются с помощью индикатора +N lines. Ошибки, пользовательские команды с префиксом !, подтверждение инструментов и сфокусированные встроенные shell всегда показывают полный вывод.5
ui.enableWelcomeBackbooleanПоказывать диалог приветствия при возвращении в проект с историей диалогов. При включении Qwen Code автоматически определит, возвращаетесь ли вы в проект с ранее созданным резюме проекта (.qwen/PROJECT_SUMMARY.md), и покажет диалог, позволяющий продолжить предыдущий разговор или начать заново. Если вы выберете Начать новую сессию чата, этот выбор будет запомнен для текущего проекта до изменения резюме проекта. Эта функция интегрируется с командой /summary и диалогом подтверждения выхода.true
ui.accessibility.enableLoadingPhrasesbooleanВключить фразы при загрузке (отключите для улучшения доступности).true
ui.accessibility.screenReaderbooleanВключает режим экранного чтеца, который адаптирует TUI для лучшей совместимости с программами экранного доступа.false
ui.customWittyPhrasesarray of stringsСписок пользовательских фраз для отображения во время загрузки. Если указан, CLI будет циклически отображать эти фразы вместо стандартных.[]
ui.showResponseTokensPerSecondbooleanПоказывать оценку токенов/сек в реальном времени рядом со счетчиком токенов ответа во время потоковой генерации модели. Это индикатор скорости генерации, а не расчетное время или процент выполнения. Вступает в силу в следующей сессии.false
ui.enableFollowupSuggestionsbooleanВключить followup suggestions, которые предсказывают, что вы хотите ввести следующим после ответа модели. Подсказки появляются как текст-заполнитель и принимаются с помощью Tab, Enter или стрелки вправо (которые заполняют поле ввода — они не отправляют его автоматически). Включено по умолчанию; установите false, чтобы отключить.true
ui.enableCacheSharingbooleanИспользовать кэш-ориентированные разветвленные запросы для генерации подсказок. Снижает затраты у провайдеров, поддерживающих кэширование префиксов (экспериментально).true
ui.enableSpeculationbooleanСпекулятивно выполнять принятые подсказки до отправки. Результаты появляются мгновенно при принятии (экспериментально).false
ui.showStatusInTitlebooleanПоказывать имя сессии Qwen Code и статус в заголовке окна терминала.true
ui.disableWorkflowKeywordTriggerbooleanЕсли true, упоминание слова workflow в промпте больше не направляет запрос к инструменту Workflow (и индикатор workflow active в нижней панели скрывается). Применяется только при включенных рабочих процессах.false
ui.enableUserFeedbackbooleanПоказывать необязательный диалог обратной связи после общения, чтобы помочь улучшить работу Qwen.true
ui.compactInlinebooleanКомпактное отображение инструментов внутри каждой группы вместо объединения по группам. Требуется включение ui.compactMode. Требуется перезапуск.false
ui.useTerminalBufferbooleanОтображать историю диалога во встроенном прокручиваемом окне приложения вместо буфера прокрутки терминала. Рекомендуется, если вы замечаете мерцание, лавину прокрутки или зависание интерфейса в длинных сессиях. Прокручивайте с помощью Shift+↑/↓ (строка), PgUp/PgDn (страница), Ctrl+Home/End (начало/конец) или колеса мыши. При включении не использует буфер прокрутки хост-терминала; удерживайте Shift (или Option в macOS) при перетаскивании для нативного выделения текста.false
ui.hideBuiltinWorktreeIndicatorbooleanСкрыть встроенную строку ⎇ worktree-<branch> (<slug>) в нижней панели. Состояние worktree по-прежнему передается в скрипты пользовательской строки состояния через payload stdin. Оставьте по умолчанию, если только ваша пользовательская строка состояния не отображает worktree самостоятельно.false

ide

SettingTypeDescriptionDefault
ide.enabledbooleanВключить режим интеграции с IDE.false
ide.hasSeenNudgebooleanПоказывает, видел ли пользователь уведомление об интеграции с IDE.false

privacy

SettingTypeDescriptionDefault
privacy.usageStatisticsEnabledbooleanВключить сбор статистики использования.true

model

SettingTypeDescriptionDefault
model.namestringМодель Qwen, используемая для диалогов.undefined
model.reasoningEffortenumНасколько интенсивно думают модели, поддерживающие рассуждения (применяется ко всем провайдерам). Задается командой /effort (low, medium, high, xhigh, max). Каждый провайдер сопоставляет и ограничивает это значение в соответствии с возможностями активной модели (например, Gemini ограничивает на уровне high; Anthropic ограничивает уровни, которых нет у модели). Оставьте пустым, чтобы использовать значения по умолчанию для модели/провайдера.undefined
model.baseUrlstringАвтоматически сохраняется средством выбора модели для устранения неоднозначности, когда несколько записей modelProviders имеют одинаковый идентификатор модели. Не предназначено для ручной установки — используйте селектор /model или запись modelProviders; устаревшее значение, измененное вручную, может незаметно перенаправить запросы к другому провайдеру с тем же идентификатором.undefined
model.sessionTokenLimitnumberМаксимальное разрешенное количество записанных токенов в промпте перед отправкой следующего сообщения. -1 означает без ограничений; 0 также трактуется как без ограничений (в отличие от model.maxToolCalls, где 0 запрещает все вызовы). Если записанное количество токенов превышает лимит, следующая отправка отклоняется (сессия не прерывается).-1
model.maxSessionTurnsnumberМаксимальное количество ходов пользователя/модели/инструмента, сохраняемых в сессии. -1 означает без ограничений.-1
model.maxWallTimeSecondsnumberБюджет реального времени для автономных / неконтролируемых запусков, в секундах. -1 означает без ограничений. Может быть переопределен для каждого вызова с помощью флага --max-wall-time, который требует положительной длительности (90, 30s, 5m, 1h, 1.5h); минимум — 1 секунда, значения меньше секунды (500ms, 0.5) отклоняются как опечатки. Опустите флаг, чтобы вернуться к этой настройке. Прерывает выполнение с кодом выхода 55 при превышении.-1
model.maxToolCallsnumberСуммарный бюджет вызовов инструментов для запуска (считает каждый выполненный инструмент, успешно или с ошибкой; structured_output при использовании --json-schema не учитывается). -1 означает без ограничений; 0 означает “вызовы инструментов запрещены”. Ограничено 1 000 000 для отлова опечаток. Может быть переопределено через --max-tool-calls. Прерывает выполнение с кодом выхода 55 при превышении.-1
model.maxSubagentDepthnumberМаксимальная глубина вложенности подагентов (уровни начинаются с 1: подагент верхнего уровня — это уровень 1). 1 оставляет подагентов доступными, но отключает вложенность — поведение до введения вложенности. Значения ограничиваются диапазоном 1–100; нефинитные значения возвращаются к значению по умолчанию. Тиммейты, форки и агенты, созданные рабочим процессом, никогда не вкладываются друг в друга независимо от этой настройки. Может быть переопределено через --max-subagent-depth.5
model.generationConfigobjectРасширенные переопределения, передаваемые базовому генератору контента. Поддерживает параметры управления запросами, такие как timeout, maxRetries, enableCacheControl, splitToolMedia (по умолчанию true; разделяет медиафайлы, возвращенные инструментами — включая изображения, прочитанные встроенным read_file — на последующее сообщение пользователя вместо нарушающего спецификацию сообщения role: "tool", чтобы строгие OpenAI-совместимые серверы, такие как doubao / new-api / LM Studio, могли их распознать; установите false, чтобы вернуть устаревшее поведение встраивания в инструмент), toolResultContentFormat (по умолчанию "parts"; установите "string" только для устаревших OpenAI-совместимых сред выполнения, шаблоны инструментов которых игнорируют текстовые части контента), contextWindowSize (переопределение размера контекстного окна модели), modalities (переопределение автоматически определенных входных модальностей), customHeaders (пользовательские HTTP-заголовки для API-запросов) и extra_body (дополнительные параметры тела только для OpenAI-совместимых API-запросов), а также тонкие настройки в samplingParams (например, temperature, top_p, max_tokens). Оставьте пустым, чтобы использовать значения по умолчанию провайдера.undefined
model.chatCompression.contextPercentageThresholdnumberУДАЛЕНО. Заменено на context.autoCompactThreshold (см. раздел #### context ниже). Автоматическое сжатие теперь использует трехуровневую лестницу порогов (предупреждение / авто / жесткий), вычисляемую внутренне из контекстного окна модели с помощью функции computeThresholds(). Старая настройка тихо игнорируется (без предупреждения при запуске). См. PR #4345 / docs/design/auto-compaction-threshold-redesign.md для обоснования редизайна.N/A
model.chatCompression.maxRecentFilesToRetainnumberКоличество самых последних измененных файлов, текущее содержимое которых восстанавливается (встраивается, если они маленькие, иначе ссылаются по пути) в историю после автоматического сжатия. 0 не восстанавливает ничего. Переопределение через переменную окружения: QWEN_COMPACT_MAX_RECENT_FILES.5
model.chatCompression.maxRecentImagesToRetainnumberКоличество самых последних изображений (скриншоты инструментов / вставки пользователя), восстанавливаемых в истории после автоматического сжатия. 0 не восстанавливает ничего. Переопределение через переменную окружения: QWEN_COMPACT_MAX_RECENT_IMAGES.3
model.chatCompression.enableScreenshotTriggerbooleanЕсли true, автоматическое сжатие также срабатывает, как только количество изображений, возвращенных инструментами и накопленных в истории, достигает screenshotTriggerThreshold, независимо от использования токенов — предназначено для сессий computer-use, где частые скриншоты рассеивают внимание модели. Учитываются только изображения, возвращенные в результатах работы инструментов, а не вставленные пользователем. Переопределение через переменную окружения: QWEN_COMPACT_SCREENSHOT_TRIGGER (1/true/0/false).true
model.chatCompression.screenshotTriggerThresholdnumberКоличество изображений, возвращенных инструментами, при котором или выше которого срабатывает триггер скриншотов (только если включен enableScreenshotTrigger). Сжатие сбрасывает счетчик — уцелевшие изображения повторно встраиваются как части верхнего уровня, которые триггер не учитывает, поэтому он не сработает повторно сразу же. Переопределение через переменную окружения: QWEN_COMPACT_SCREENSHOT_THRESHOLD.50
model.skipNextSpeakerCheckbooleanПропустить проверку следующего говорящего.true
model.skipLoopDetectionbooleanОтключает проверки обнаружения циклов при стриминге. По умолчанию true (обнаружение циклов пропущено), чтобы избежать ложных срабатываний, прерывающих легитимные рабочие процессы. Установите false, чтобы повторно включить обнаружение циклов при стриминге — полезно как защитный механизм в автономных / неинтерактивных запусках, где зацикливание может впустую тратить бюджет.true
model.maxToolCallsPerTurnnumberЖесткий лимит на вызовы инструментов в рамках одного хода (один ход модели плюс его продолжения с результатами инструментов; блокирующие продолжения Stop-хуков, такие как итерации /goal, начинают новый бюджет). Всегда включенный прерыватель против “убегающих” ходов, независимый от model.skipLoopDetection; детекторы циклов на основе паттернов срабатывают задолго до этого лимита, который только ограничивает общий объем. Установите 0 или отрицательное значение, чтобы отключить лимит. Выбор “Отключить обнаружение циклов для этой сессии” в диалоговом окне обнаружения цикла также подавляет его до конца сессии.100
model.skipStartupContextbooleanПропускает отправку контекста рабочего пространства при запуске (сводка по окружению и подтверждение) в начале каждой сессии. Включите это, если предпочитаете предоставлять контекст вручную или хотите сэкономить токены при запуске.false
model.enableOpenAILoggingbooleanВключает логирование вызовов OpenAI API для отладки и анализа. Если включено, API-запросы и ответы записываются в JSON-файлы.false
model.openAILoggingDirstringПуть к пользовательской директории для логов OpenAI API. Если не указано, по умолчанию используется logs/openai в текущей рабочей директории. Поддерживаются абсолютные пути, относительные пути (разрешаются от текущей рабочей директории) и расширение ~ (домашняя директория).undefined
Пример model.generationConfig:
{ "model": { "generationConfig": { "timeout": 60000, "contextWindowSize": 128000, "modalities": { "image": true }, "enableCacheControl": true, "toolResultContentFormat": "parts", "customHeaders": { "X-Client-Request-ID": "req-123" }, "extra_body": { "enable_thinking": true }, "samplingParams": { "temperature": 0.2, "top_p": 0.8, "max_tokens": 1024 } } } }

timeout (таймаут запроса):

timeout — это таймаут для каждого запроса в миллисекундах (по умолчанию 120000). Установите значение 0, чтобы отключить таймаут запроса (согласно соглашению QWEN_STREAM_IDLE_TIMEOUT_MS=0), вместо прерывания запроса. Также его можно задать через переменную окружения QWEN_CODE_API_TIMEOUT_MS. Это отличается от QWEN_STREAM_IDLE_TIMEOUT_MS, который ограничивает время неактивности между потоковыми чанками.

max_tokens (лимит токенов на вывод):

Если не заданы ни samplingParams.max_tokens, ни QWEN_CODE_MAX_OUTPUT_TOKENS, Qwen Code обычно использует заявленный лимит вывода выбранной модели в качестве лимита по умолчанию для запроса. Если ответ всё равно достигает этого лимита, Qwen Code может повторить попытку с повышенным лимитом (с нижним порогом 64K) и затем продолжить работу в следующих итерациях.

Для OpenAI-совместимых провайдеров samplingParams также служит обходным путём для передачи параметров «как есть»: если он задан, его ключи передаются дословно, и Qwen Code не генерирует значение max_tokens по умолчанию. Используйте это для специфичных для провайдера параметров, таких как max_completion_tokens.

Чтобы принудительно установить фиксированный лимит вывода, задайте samplingParams.max_tokens в настройках или используйте переменную окружения QWEN_CODE_MAX_OUTPUT_TOKENS. Явно заданные лимиты отключают автоматическое повышение лимита токенов вывода.

toolResultContentFormat:

Управляет сериализацией текстовых результатов работы инструментов в OpenAI-совместимых запросах. Значение по умолчанию "parts" сохраняет стандартную структуру массива частей контента. Устанавливайте "string" только для устаревших OpenAI-совместимых сред выполнения, шаблоны инструментов которых игнорируют текстовые части контента, например, старые шаблоны GLM-5.1 vLLM/SGLang. Медиафайлы, возвращаемые инструментами, по-прежнему контролируются параметром splitToolMedia.

contextWindowSize:

Переопределяет размер контекстного окна по умолчанию для выбранной модели. Qwen Code определяет контекстное окно, используя встроенные значения по умолчанию на основе сопоставления имени модели, с постоянным резервным значением. Используйте эту настройку, если фактический лимит контекста провайдера отличается от значения по умолчанию в Qwen Code. Это значение определяет предполагаемую максимальную ёмкость контекста модели, а не лимит токенов на один запрос.

Если выбранная модель определена в modelProviders, задайте contextWindowSize в generationConfig этой записи провайдера, а не в model.generationConfig верхнего уровня. Записи моделей провайдеров изолированы, поэтому настройки генерации верхнего уровня не заполняют отсутствующие поля провайдера.

modalities:

Переопределяет автоматически определённые входные модальности для выбранной модели. Qwen Code автоматически определяет поддерживаемые модальности (изображения, PDF, аудио, видео) на основе сопоставления паттернов имени модели. Используйте эту настройку, если автоопределение работает некорректно — например, чтобы включить pdf для модели, которая его поддерживает, но не была распознана. Формат: { "image": true, "pdf": true, "audio": true, "video": true }. Пропустите ключ или установите для него значение false для неподдерживаемых типов.

customHeaders:

Позволяет добавлять пользовательские HTTP-заголовки ко всем API-запросам. Это полезно для трассировки запросов, мониторинга, маршрутизации через API-шлюз или когда разным моделям требуются разные заголовки. Для моделей провайдеров определяйте customHeaders в modelProviders[].generationConfig.customHeaders. Для моделей среды выполнения без соответствующей записи провайдера определяйте их в model.generationConfig.customHeaders. Слияние между этими двумя уровнями не происходит.

Поле extra_body позволяет добавлять пользовательские параметры в тело запроса, отправляемого в API. Это полезно для специфичных для провайдера опций, которые не покрываются стандартными полями конфигурации. Примечание: это поле поддерживается только для OpenAI-совместимых провайдеров (openai, qwen-oauth). Оно игнорируется для провайдеров Anthropic и Gemini. Для моделей провайдеров определяйте extra_body в modelProviders[].generationConfig.extra_body. Для моделей среды выполнения без соответствующей записи провайдера определяйте его в model.generationConfig.extra_body.

Примеры model.openAILoggingDir:

  • "~/qwen-logs" - Логирование в директорию ~/qwen-logs
  • "./custom-logs" - Логирование в ./custom-logs относительно текущей директории
  • "/tmp/openai-logs" - Логирование по абсолютному пути /tmp/openai-logs

fastModel

НастройкаТипОписаниеПо умолчанию
fastModelstringМодель, используемая для генерации предложений промптов и спекулятивного выполнения. Оставьте пустым, чтобы использовать основную модель. Меньшая/более быстрая модель (например, qwen3-coder-flash) снижает задержку и стоимость. Также можно задать через /model --fast.""

visionModel

НастройкаТипОписаниеПо умолчанию
visionModelstringМодель с поддержкой изображений, используемая как vision-мост: когда основная модель, работающая только с текстом, получает изображение, оно сначала обрабатывается этой моделью. Оставьте пустым для автоматического выбора vision-модели того же провайдера. Также можно задать через /model --vision.""

voiceModel

НастройкаТипОписаниеПо умолчанию
voiceModelstringМодель, используемая для транскрибации голоса. Оставьте пустым, чтобы голосовой ввод оставался отключенным до выбора голосовой модели. Также можно задать через /model --voice.""

modelFallbacks

НастройкаТипОписаниеПо умолчанию
modelFallbacksstringУпорядоченный список ID резервных моделей (через запятую, макс. 3), которые будут использоваться, если основная модель сталкивается с ошибками нехватки ресурсов (429/503/529). Пример: "qwen-plus,qwen-turbo". Также можно задать через CLI-флаг --fallback-model. Требуется перезапуск.""

modelPricing

НастройкаТипОписаниеПо умолчанию
modelPricingobjectОпциональные цены для каждой модели для оценки стоимости в /stats model. Пример: { "qwen3-coder": { "inputPerMillionTokens": 0.30, "outputPerMillionTokens": 1.20 } }.undefined

context

НастройкаТипОписаниеПо умолчанию
context.fileNamestring или массив строкИмя файла(ов) контекста.undefined
context.autoCompactThresholdnumberДоля контекстного окна, при которой срабатывает автоматическое уплотнение. Должна быть больше 0 и не более 1. По умолчанию 0.7 (70%). Для больших контекстных окон (>110K токенов) доминирует абсолютная ветвь трехуровневой системы порогов, поэтому значения ниже ~0.7 могут не иметь видимого эффекта. Пользовательские пороги в основном влияют на модели с небольшим окном (≤128K). Заменяет старый model.chatCompression.contextPercentageThreshold.undefined (использует внутреннее 0.7)
context.importFormatstringФормат, используемый при импорте памяти.undefined
context.includeDirectoriesarrayДополнительные директории для включения в контекст рабочего пространства. Задает массив дополнительных абсолютных или относительных путей для включения в контекст рабочего пространства. Отсутствующие директории по умолчанию пропускаются с предупреждением. В путях можно использовать ~ для ссылки на домашнюю директорию пользователя. Эту настройку можно комбинировать с флагом командной строки --include-directories.[]
context.loadFromIncludeDirectoriesbooleanУправляет поведением команды /memory refresh. Если установлено в true, файлы QWEN.md должны загружаться из всех добавленных директорий. Если установлено в false, QWEN.md должен загружаться только из текущей директории.false
context.fileFiltering.respectGitIgnorebooleanУчитывать файлы .gitignore при поиске.true
context.fileFiltering.respectQwenIgnorebooleanУчитывать .qwenignore и настроенные пользовательские файлы игнорирования при поиске.true
context.fileFiltering.customIgnoreFilesarrayФайлы игнорирования относительно корня проекта, которые будут использоваться вместо файлов совместимости по умолчанию (.agentignore, .aiignore), когда включен respectQwenIgnore. .qwenignore включается всегда.[".agentignore", ".aiignore"]
context.fileFiltering.enableRecursiveFileSearchbooleanВключить ли рекурсивный поиск имен файлов в текущем дереве при автодополнении префиксов @ в промпте.true
context.fileFiltering.enableFuzzySearchbooleanЕсли true, включает возможности нечеткого поиска при поиске файлов. Установите false, чтобы повысить производительность в проектах с большим количеством файлов.true
context.clearContextOnIdle.toolResultsThresholdMinutesnumberМинуты неактивности перед очисткой старого содержимого результатов работы инструментов. Используйте -1, чтобы отключить триггер простоя.60
context.clearContextOnIdle.toolResultsNumToKeepintegerЦелое число самых последних уплотняемых результатов работы инструментов, которые нужно сохранить при очистке. Значения меньше 1 округляются до 1.5
context.clearContextOnIdle.toolResultsTotalCharsThresholdnumberОбщее количество символов вывода уплотняемых результатов работы инструментов, допустимое в истории перед очисткой самых старых результатов. Используйте -1, чтобы отключить триггер по размеру. Это мягкий порог: защищенные недавние результаты работы инструментов могут удерживать общее значение выше него.500000

Устранение проблем с производительностью поиска файлов

Если вы столкнулись с проблемами производительности при поиске файлов (например, при автодополнении с помощью @), особенно в проектах с очень большим количеством файлов, вот несколько рекомендаций, которые можно попробовать в рекомендуемом порядке:

  1. Используйте файл игнорирования: Создайте .qwenignore или настроенный пользовательский файл игнорирования в корне вашего проекта, чтобы исключить каталоги, содержащие большое количество файлов, на которые вам не нужно ссылаться (например, артефакты сборки, логи, node_modules). Снижение общего количества сканируемых файлов — самый эффективный способ повысить производительность.
  2. Отключите нечеткий поиск: Если игнорирования файлов недостаточно, вы можете отключить нечеткий поиск, установив для параметра enableFuzzySearch значение false в файле settings.json. При этом будет использоваться более простой алгоритм сопоставления без нечеткого поиска, что может работать быстрее.
  3. Отключите рекурсивный поиск файлов: В крайнем случае вы можете полностью отключить рекурсивный поиск файлов, установив для параметра enableRecursiveFileSearch значение false. Это будет самым быстрым вариантом, так как позволяет избежать рекурсивного сканирования проекта. Однако это означает, что вам придется вводить полный путь к файлам при использовании автодополнения @.

tools

ПараметрТипОписаниеПо умолчаниюПримечания
tools.sandboxboolean или stringСреда выполнения в песочнице (может быть логическим значением или строкой пути).undefined
tools.sandboxImagestringURI образа песочницы, используемый Docker/Podman, если не заданы --sandbox-image и QWEN_SANDBOX_IMAGE.undefined
tools.shell.enableInteractiveShellbooleanИспользовать node-pty для интерактивной работы с оболочкой. Резервный вариант с child_process по-прежнему применяется.true
tools.corearray of stringsУстарело. Будет удалено в следующей версии. Вместо этого используйте permissions.allow + permissions.deny. Ограничивает встроенные инструменты белым списком. Все инструменты, не входящие в список, отключаются.undefined
tools.excludearray of stringsУстарело. Вместо этого используйте permissions.deny. Имена инструментов, которые следует исключить из обнаружения. При первой загрузке автоматически мигрирует в формат permissions.undefined
tools.allowedarray of stringsУстарело. Вместо этого используйте permissions.allow. Имена инструментов, которые обходят диалог подтверждения. При первой загрузке автоматически мигрирует в формат permissions.undefined
tools.approvalModestringУстанавливает режим подтверждения по умолчанию для использования инструментов.defaultВозможные значения: plan (только анализ, без изменения файлов или выполнения команд), default (требовать подтверждения перед редактированием файлов или выполнением команд оболочки), auto-edit (автоматически подтверждать редактирование файлов), auto (классификатор LLM автоматически подтверждает безопасные действия и блокирует рискованные), yolo (автоматически подтверждать все вызовы инструментов)
tools.discoveryCommandstringКоманда, выполняемая для обнаружения инструментов.undefined
tools.callCommandstringОпределяет пользовательскую команду оболочки для вызова конкретного инструмента, обнаруженного с помощью tools.discoveryCommand. Команда оболочки должна соответствовать следующим критериям: она должна принимать имя функции (точно так же, как в объявлении функции ) в качестве первого аргумента командной строки. Она должна читать аргументы функции в формате JSON из stdin, аналогично functionCall.args. Она должна возвращать вывод функции в формате JSON в stdout, аналогично functionResponse.response.content.undefined
tools.useRipgrepbooleanИспользовать ripgrep для поиска по содержимому файлов вместо резервной реализации. Обеспечивает более высокую скорость поиска.true
tools.useBuiltinRipgrepbooleanИспользовать поставляемый в комплекте бинарный файл ripgrep. Если установлено значение false, вместо него будет использоваться системная команда rg. Этот параметр действует только если tools.useRipgrep имеет значение true.true
tools.truncateToolOutputThresholdnumberОбрезать вывод инструмента, если он превышает указанное количество символов. Применяется к инструментам Shell, Grep, Glob, ReadFile и ReadManyFiles.25000Требуется перезапуск: Да
tools.truncateToolOutputLinesnumberМаксимальное количество строк или записей, сохраняемых при обрезке вывода инструмента. Применяется к инструментам Shell, Grep, Glob, ReadFile и ReadManyFiles.1000Требуется перезапуск: Да
tools.computerUse.enabledbooleanВключить встроенные инструменты Computer Use (нативная автоматизация рабочего стола cua-driver). Если установлено значение true (по умолчанию), инструменты computer_use__* регистрируются как отложенные встроенные; при первом вызове загружается закрепленный, подписанный бинарный файл cua-driver в ~/.qwen/computer-use/ и выполняется настройка разрешений macOS Accessibility / Screen Recording.trueТребуется перезапуск: Да
tools.computerUse.maxImageDimensionnumberМаксимальное количество пикселей по длинной стороне, применяемое к скриншотам cua-driver (через max_image_dimension в set_config). -1 (по умолчанию) сохраняет встроенное значение по умолчанию cua-driver (1568); 0 отключает изменение размера (полное разрешение); положительное значение ограничивает длинную сторону. Более низкие ограничения снижают стоимость vision-токенов за счет потери мелких деталей.-1Требуется перезапуск: Да. Переопределение через переменную окружения: QWEN_COMPUTER_USE_MAX_IMAGE_DIMENSION (неотрицательное целое число; имеет приоритет над этим параметром)
tools.computerUse.idleTimeoutMsnumberВремя в миллисекундах, в течение которого процесс cua-driver остается активным после последнего вызова computer_use__*. По умолчанию 300000 (5 минут). Установите значение 0, чтобы процесс работал до выхода из Qwen Code.300000Требуется перезапуск: Да
tools.toolSearch.enabledbooleanЗагружать инструменты MCP по требованию через ToolSearch для уменьшения размера промпта. Отключите эту функцию для моделей, которые полагаются на кэширование KV на основе префикса (например, DeepSeek), чтобы префикс промпта оставался стабильным и максимизировать частоту попаданий в кэш.trueТребуется перезапуск: Да
Note

Миграция с tools.core / tools.exclude / tools.allowed: Эти настройки устарели и автоматически мигрируют в новый формат permissions при первой загрузке. Рекомендуется настраивать permissions.allow / permissions.deny напрямую. Используйте /permissions для интерактивного управления правилами.

memory

SettingTypeDescriptionDefault
memory.enableManagedAutoMemorybooleanВключить фоновое извлечение записей памяти из диалогов.true
memory.enableManagedAutoDreambooleanВключить автоматическую консолидацию (дедупликацию и очистку) собранной памяти.true
memory.enableAutoSkillbooleanВключить фоновый анализ для создания переиспользуемых навыков (skills) проекта после сессий с активным использованием инструментов.true
memory.autoSkillConfirmbooleanЗапрашивать подтверждение перед добавлением автоматически созданных навыков в библиотеку навыков. Если выключено, авто-навыки сохраняются сразу.true
memory.enableTeamMemorybooleanВключить уровень памяти проекта, общий для соавторов через отслеживаемую git-ом директорию .qwen/team-memory/. Запись в неё проверяется на наличие секретов и доступна для ревью в git diff.false
memory.enableTeamMemorySyncbooleanЕсли память команды включена, автоматически делать commit, fast-forward pull и push директории .qwen/team-memory/ при начале сессии, чтобы соавторы оставались синхронизированными. Требуется настроенный git upstream.false

Подробнее о том, как работает авто-память и как использовать команды /memory, /remember и /dream, см. в разделе Memory.

permissions

Система разрешений (permissions) предоставляет детальный контроль над тем, какие инструменты могут запускаться, какие требуют подтверждения, а какие заблокированы.

Приоритет принятия решений (по убыванию): deny > ask > allow > (режим по умолчанию/интерактивный режим)

Применяется первое совпавшее правило. Правила используют формат "ToolName" или "ToolName(specifier)".

SettingTypeDescriptionDefault
permissions.allowarray of stringsПравила для автоматически одобренных вызовов инструментов (подтверждение не требуется). Объединяются для всех областей действия (пользователь + проект + система).undefined
permissions.askarray of stringsПравила для вызовов инструментов, которые всегда требуют подтверждения пользователя. Имеют приоритет над allow.undefined
permissions.denyarray of stringsПравила для заблокированных вызовов инструментов. Наивысший приоритет — переопределяют как allow, так и ask.undefined

Псевдонимы имен инструментов (в правилах работает любой из вариантов):

AliasCanonical toolNotes
Bash, Shellrun_shell_command
Read, ReadFileread_fileМета-категория — см. ниже
Edit, EditFileeditМета-категория — см. ниже
Write, WriteFilewrite_file
NotebookEditnotebook_edit
NotebookEditToolnotebook_edit
Grep, SearchFilesgrep_search
Glob, FindFilesglob
ListFileslist_directory
WebFetchweb_fetch
Agenttask
Skillskill

Мета-категории:

Некоторые имена правил автоматически охватывают несколько инструментов:

Rule nameTools covered
Readread_file, grep_search, glob, list_directory
Editedit, write_file, notebook_edit

[!important] Read(/path/**) соответствует всем четырем инструментам чтения (чтение файла, grep, glob и список директорий). Чтобы ограничить только чтение файлов, используйте ReadFile(/path/**) или read_file(/path/**).

Примеры синтаксиса правил:

RuleMeaning
"Bash"Все команды оболочки
"Bash(git *)"Команды оболочки, начинающиеся с git (граница слова: НЕ gitk)
"Bash(git push *)"Команды оболочки вроде git push origin main
"Bash(npm run *)"Любой скрипт npm run
"Read"Все операции чтения файлов (read, grep, glob, list)
"Read(./secrets/**)"Рекурсивное чтение любого файла в ./secrets/
"Edit(/src/**/*.ts)"Редактирование TypeScript файлов в /src/ относительно корня проекта
"WebFetch(api.example.com)"Загрузка с api.example.com и всех его поддоменов
"mcp__puppeteer"Все инструменты с MCP-сервера puppeteer

Префиксы шаблонов путей:

PrefixMeaningExample
//Абсолютный путь от корня файловой системы//etc/passwd
~/Относительно домашней директории~/Documents/*.pdf
/Относительно корня проекта/src/**/*.ts
./Относительно текущей рабочей директории./secrets/**
(none)Аналогично ./secrets/**

Предотвращение обхода команд оболочки:

Правила разрешений для Read, Edit и WebFetch также применяются, когда агент выполняет эквивалентные команды оболочки. Например, если Read(./.env) находится в deny, агент не сможет обойти это с помощью cat .env в команде оболочки. Поддерживаемые команды оболочки включают cat, grep, curl, wget, cp, mv, rm, chmod и многие другие. Неизвестные/безопасные команды (например, git) не подпадают под действие правил для файлов/сети.

Миграция с устаревших настроек:

Legacy settingEquivalent permissions ruleNotes
tools.allowedpermissions.allowАвтоматически мигрирует при первой загрузке
tools.excludepermissions.denyАвтоматически мигрирует при первой загрузке
tools.corepermissions.allow (allowlist)Автоматически мигрирует; не указанные в списке инструменты отключаются на уровне реестра

Пример конфигурации:

{ "permissions": { "allow": ["Bash(git *)", "Bash(npm run *)", "Read(//Users/alice/code/**)"], "ask": ["Bash(git push *)", "Edit"], "deny": ["Bash(rm -rf *)", "Read(.env)", "WebFetch(malicious.com)"] } }

[!tip] Используйте /permissions в интерактивном CLI для просмотра, добавления и удаления правил без прямого редактирования settings.json.

slashCommands

Управляет тем, какие slash-команды доступны в CLI. Полезно для ограничения набора команд в мультитенантных или корпоративных развертываниях.

SettingTypeDescriptionDefault
slashCommands.disabledarray of stringsИмена slash-команд, которые нужно скрыть и отказаться выполнять. Сопоставление с итоговым именем команды происходит без учета регистра (для команд расширений это уточненная форма, например, myext.deploy). Объединяются как объединение множеств во всех областях действия, поэтому настройки рабочего пространства могут добавлять, но не удалять записи, определенные в настройках пользователя или системы.undefined

Тот же самый список блокировок (denylist) можно передать через флаг CLI --disabled-slash-commands (через запятую или повторно) и переменную окружения QWEN_DISABLED_SLASH_COMMANDS; значения из всех трех источников объединяются.

Пример — блокировка встроенных команд для изолированного развертывания:

{ "slashCommands": { "disabled": ["auth", "mcp", "extensions", "ide", "quit"] } }

Если эти значения указаны в системном settings.json (/etc/qwen-code/settings.json или QWEN_CODE_SYSTEM_SETTINGS_PATH), пользователи не смогут уменьшить список блокировок в своей области действия, а отключенные команды не будут появляться в автодополнении или выполняться при вводе.

[!note] Эта настройка управляет только slash-командами (например, /auth, /mcp). Она не влияет на разрешения инструментов — для этого см. permissions.deny. Она также не перехватывает сочетания клавиш, такие как Ctrl+C или Esc.

skills

Управляет тем, какие навыки (Skills) доступны модели.

SettingTypeDescriptionDefault
skills.disabledarray of stringsИмена навыков, которые нужно скрыть. Сопоставление с именем навыка происходит без учета регистра. Скрытые навыки не отображаются в <available_skills> и не доступны как slash-команды /<name>. Объединяются как объединение множеств в областях действия пользователь/проект/система, поэтому проект не может удалить записи, определенные в настройках пользователя или системы.undefined

mcp

SettingTypeDescriptionDefault
mcp.serverCommandstringКоманда для запуска MCP-сервера.undefined
mcp.allowedarray of stringsБелый список (allowlist) разрешенных MCP-серверов. Позволяет указать список имен MCP-серверов, которые должны быть доступны модели. Это можно использовать для ограничения набора подключаемых MCP-серверов. Поддерживаются glob-шаблоны (* соответствует любой последовательности, ? — одному символу, например, "*puppeteer*"); записи без glob-символов сопоставляются точно. Обратите внимание, что этот параметр будет проигнорирован, если установлен --allowed-mcp-server-names.undefined
mcp.excludedarray of stringsЧерный список (denylist) исключаемых MCP-серверов. Сервер, указанный как в mcp.excluded, так и в mcp.allowed, будет исключен. Поддерживаются glob-шаблоны (*, ?) так же, как и в mcp.allowed. Обратите внимание, что этот параметр будет проигнорирован, если установлен --allowed-mcp-server-names.undefined
mcp.toolIdleTimeoutMsnumberТаймаут простоя в миллисекундах для вызовов инструментов MCP. Если MCP-сервер не выдает никакого ответа или обновления прогресса в течение этого времени, вызов прерывается. Должен быть в диапазоне от 10000 до 3600000. Может быть переопределен через переменную окружения QWEN_CODE_MCP_TOOL_IDLE_TIMEOUT_MS.300000
Note

Примечание по безопасности для MCP-серверов: Эти настройки используют простое сопоставление строк с именами MCP-серверов, которые могут быть изменены. Если вы системный администратор и хотите предотвратить обход этого ограничения пользователями, рассмотрите возможность настройки mcpServers на уровне системных настроек, чтобы пользователь не мог конфигурировать собственные MCP-серверы. Это не следует использовать как абсолютно надежный механизм безопасности.

lsp

[!warning] Экспериментальная функция: Поддержка LSP в настоящее время является экспериментальной и отключена по умолчанию. Включите её с помощью флага командной строки --experimental-lsp.

Language Server Protocol (LSP) предоставляет функции интеллектуального анализа кода, такие как переход к определению, поиск ссылок и диагностика.

Конфигурация LSP-сервера выполняется через файлы .lsp.json в корневом каталоге вашего проекта, а не через settings.json. Подробности и примеры конфигурации см. в документации по LSP.

security

НастройкаТипОписаниеПо умолчанию
security.folderTrust.enabledbooleanНастройка для отслеживания того, включено ли доверие к папке (Folder trust).false
security.auth.selectedTypestringТекущий выбранный тип аутентификации.undefined
security.auth.enforcedTypestringТребуемый тип аутентификации (полезно для корпоративных сред).undefined
security.auth.useExternalbooleanИспользовать ли внешний поток аутентификации.undefined
security.auth.apiKeystringУстарело. API-ключ для аутентификации, совместимой с OpenAI. Вместо этого перейдите на modelProviders с envKey — см. Провайдеры моделей.undefined
security.auth.baseUrlstringУстарело. Базовый URL для API, совместимого с OpenAI. Вместо этого перейдите на modelProviders — см. Провайдеры моделей.undefined

advanced

НастройкаТипОписаниеПо умолчанию
advanced.autoConfigureMemorybooleanАвтоматически настраивать ограничения памяти Node.js.false
advanced.dnsResolutionOrderstringПорядок разрешения DNS.undefined
advanced.excludedEnvVarsarray of stringsПеременные окружения, которые следует исключить из контекста проекта. Указывает переменные окружения, которые не должны загружаться из файлов .env проекта. Это предотвращает вмешательство специфичных для проекта переменных окружения (например, DEBUG=true) в поведение CLI. Переменные из файлов .qwen/.env никогда не исключаются.["DEBUG","DEBUG_MODE"]
advanced.bugCommandobjectКонфигурация для команды отчета об ошибке. Переопределяет URL по умолчанию для команды /bug. Свойства: urlTemplate (string): URL, который может содержать плейсхолдеры {title} и {info}. Пример: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" }undefined
plansDirectorystringПользовательский каталог для одобренных файлов Plan Mode. Относительные пути разрешаются от корневого каталога проекта, и разрешенный путь должен оставаться в пределах корневого каталога проекта. Если не задано, файлы планов сохраняются в ~/.qwen/plans. Требуется перезапуск. Если каталог находится внутри корневого каталога проекта, добавьте его в .gitignore, чтобы избежать коммита файлов планов.undefined

experimental

Warning

Экспериментальные функции. Эти переключатели управляют возможностями, находящимися в разработке, и могут быть изменены или удалены в будущих релизах.

НастройкаТипОписаниеПо умолчанию
experimental.cronbooleanВключить инструменты cron/loop в рамках сессии (cron_create, cron_list, cron_delete), чтобы модель могла создавать повторяющиеся промпты. Можно отключить с помощью переменной окружения QWEN_CODE_DISABLE_CRON=1. Требуется перезапуск.true
experimental.cronRecurringMaxAgeDaysnumberКоличество дней, в течение которых повторяющаяся задача cron/loop существует до автоматического истечения срока действия (она выполняется последний раз, а затем удаляется). Установите 0, чтобы отключить истечение срока, чтобы задачи выполнялись до удаления — полезно для долгоживущих демон-развертываний. Можно переопределить с помощью переменной окружения QWEN_CODE_CRON_MAX_AGE_DAYS. Требуется перезапуск.7
experimental.agentTeambooleanВключить инструменты совместной работы команды агентов (team_create, task_create, task_update, send_message и т.д.) для координации мультиагентной работы. Также можно включить через QWEN_CODE_ENABLE_AGENT_TEAM=1. Требуется перезапуск.false
experimental.artifactbooleanВключить инструмент Artifact, позволяющий модели публиковать самодостаточную HTML-страницу и открывать её в браузере. Только для интерактивных сессий, не относящихся к SDK. QWEN_CODE_ENABLE_ARTIFACT=1 включает только метаданные record_artifact для демон-сессий, не относящихся к SDK, а также включает инструмент Artifact в интерактивных сессиях; QWEN_CODE_DISABLE_ARTIFACT=1 отключает и то, и другое. Требуется перезапуск.false
experimental.emitToolUseSummariesbooleanГенерировать короткую метку на основе LLM после завершения каждого пакета вызовов инструментов. См. Сводки по использованию инструментов. Требуется настройка быстрой модели (fastModel); в противном случае пропускается без уведомления. Можно переопределить для каждой сессии с помощью QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0 или =1.true

mcpServers

Настраивает подключения к одному или нескольким серверам Model-Context Protocol (MCP) для обнаружения и использования пользовательских инструментов. Qwen Code пытается подключиться к каждому настроенному MCP-серверу для обнаружения доступных инструментов. Если несколько MCP-серверов предоставляют инструмент с одинаковым именем, к именам инструментов будет добавлен префикс в виде псевдонима сервера, определенного вами в конфигурации (например, serverAlias__actualToolName), чтобы избежать конфликтов. Обратите внимание, что система может удалять некоторые свойства схемы из определений инструментов MCP для обеспечения совместимости. Необходимо указать хотя бы одно из значений: command, url или httpUrl. Если указано несколько значений, порядок приоритета следующий: httpUrl, затем url, затем command.

СвойствоТипОписаниеНеобязательно
mcpServers.<SERVER_NAME>.commandstringКоманда для запуска MCP-сервера через стандартный ввод-вывод.Да
mcpServers.<SERVER_NAME>.argsarray of stringsАргументы, передаваемые команде.Да
mcpServers.<SERVER_NAME>.envobjectПеременные окружения, устанавливаемые для процесса сервера.Да
mcpServers.<SERVER_NAME>.cwdstringРабочий каталог, в котором запускается сервер.Да
mcpServers.<SERVER_NAME>.urlstringURL MCP-сервера, использующего Server-Sent Events (SSE) для связи.Да
mcpServers.<SERVER_NAME>.httpUrlstringURL MCP-сервера, использующего потоковый HTTP (streamable HTTP) для связи.Да
mcpServers.<SERVER_NAME>.headersobjectКарта HTTP-заголовков, отправляемых с запросами к url или httpUrl.Да
mcpServers.<SERVER_NAME>.timeoutnumberТаймаут в миллисекундах для запросов к этому MCP-серверу.Да
mcpServers.<SERVER_NAME>.trustbooleanДоверять этому серверу и обходить все подтверждения вызова инструментов.Да
mcpServers.<SERVER_NAME>.descriptionstringКраткое описание сервера, которое может использоваться для отображения.Да
mcpServers.<SERVER_NAME>.includeToolsarray of stringsСписок имен инструментов, которые следует включить из этого MCP-сервера. Если указано, только инструменты из этого списка будут доступны с данного сервера (поведение белого списка). Если не указано, все инструменты сервера включены по умолчанию.Да
mcpServers.<SERVER_NAME>.excludeToolsarray of stringsСписок имен инструментов, которые следует исключить из этого MCP-сервера. Инструменты из этого списка не будут доступны модели, даже если они предоставляются сервером. Примечание: excludeTools имеет приоритет над includeTools — если инструмент есть в обоих списках, он будет исключен.Да

Телеметрия

Настраивает логирование и сбор метрик для Qwen Code. Дополнительную информацию см. в разделе telemetry.

ПараметрТипОписаниеПо умолчанию
telemetry.enabledbooleanВключена ли телеметрия.
telemetry.targetstringИнформационная метка для назначения телеметрии (local или gcp). Не управляет маршрутизацией экспортера; для настройки места отправки данных установите telemetry.otlpEndpoint или telemetry.outfile.
telemetry.otlpEndpointstringЭндпоинт для OTLP Exporter.
telemetry.otlpProtocolstringПротокол для OTLP Exporter (grpc или http).
telemetry.logPromptsbooleanВключать ли содержимое пользовательских промптов в логи.
telemetry.includeSensitiveSpanAttributesbooleanЕсли включено, присоединяет дословные пользовательские промпты, системные промпты, входные/выходные данные инструментов и ответы модели к нативным атрибутам спанов OTel (в дополнение к спанам моста log-to-span). ⚠️ Передает конфиденциальные данные — содержимое файлов, команды оболочки, историю диалогов — в ваш OTLP-бэкенд.false
telemetry.sensitiveSpanAttributeMaxLengthnumberМаксимальная длина строки JavaScript для содержимого каждого конфиденциального нативного атрибута спана OTel. Должно быть в диапазоне от 1 до 104857600 (100 МиБ). Уменьшите значение, если ваш коллектор или бэкенд отклоняет большие атрибуты.1048576
telemetry.outfilestringПуть для записи телеметрии в файл. Если задан, переопределяет экспорт OTLP.

Пример settings.json

Вот пример файла settings.json с вложенной структурой, новой начиная с версии 0.3.0:

{ "proxy": "http://localhost:7890", "plansDirectory": "./.qwen/plans", "general": { "vimMode": true, "preferredEditor": "code" }, "ui": { "theme": "GitHub", "hideTips": false, "customWittyPhrases": [ "You forget a thousand things every day. Make sure this is one of 'em", "Connecting to AGI" ] }, "tools": { "approvalMode": "yolo", "sandbox": "docker", "sandboxImage": "ghcr.io/qwenlm/qwen-code:0.14.1", "discoveryCommand": "bin/get_tools", "callCommand": "bin/call_tool", "exclude": ["write_file"] }, "mcpServers": { "mainServer": { "command": "bin/mcp_server.py" }, "anotherServer": { "command": "node", "args": ["mcp_server.js", "--verbose"] } }, "telemetry": { "enabled": true, "target": "local", "otlpEndpoint": "http://localhost:4317", "logPrompts": true, "includeSensitiveSpanAttributes": false, "sensitiveSpanAttributeMaxLength": 1048576 }, "privacy": { "usageStatisticsEnabled": true }, "model": { "name": "qwen3-coder-plus", "maxSessionTurns": 10, "enableOpenAILogging": false, "openAILoggingDir": "~/qwen-logs", }, "context": { "fileName": ["CONTEXT.md", "QWEN.md"], "includeDirectories": ["path/to/dir1", "~/path/to/dir2", "../path/to/dir3"], "loadFromIncludeDirectories": true, "fileFiltering": { "respectGitIgnore": false } }, "advanced": { "excludedEnvVars": ["DEBUG", "DEBUG_MODE", "NODE_ENV"] } }

История оболочки

CLI хранит историю запускаемых вами команд оболочки. Чтобы избежать конфликтов между различными проектами, эта история сохраняется в каталоге, специфичном для проекта, внутри вашей домашней папки пользователя.

  • Расположение: ~/.qwen/tmp/<project_hash>/shell_history
    • <project_hash> — это уникальный идентификатор, сгенерированный из корневого пути вашего проекта.
    • История хранится в файле с именем shell_history.

Переменные окружения и файлы .env

Переменные окружения — это распространенный способ настройки приложений, особенно для конфиденциальной информации (например, токенов) или для параметров, которые могут меняться в зависимости от окружения.

Qwen Code может автоматически загружать переменные окружения из файлов .env. Информацию о переменных, связанных с аутентификацией (например, OPENAI_*), и рекомендуемом подходе с использованием .qwen/.env см. в разделе Аутентификация.

Tip

Исключение переменных окружения: Некоторые переменные окружения (например, DEBUG и DEBUG_MODE) по умолчанию автоматически исключаются из файлов .env проекта, чтобы предотвратить вмешательство в поведение CLI. Переменные из файлов .qwen/.env никогда не исключаются. Вы можете настроить это поведение с помощью параметра advanced.excludedEnvVars в вашем файле settings.json.

Таблица переменных окружения

ПеременнаяОписаниеПримечания
QWEN_HOMEНастраивает глобальный каталог конфигурации (по умолчанию: ~/.qwen). Принимает абсолютный или относительный путь (относительные пути разрешаются от текущего рабочего каталога). Символ ~ в начале расширяется до домашнего каталога пользователя.Хранит учетные данные, настройки, память, навыки и другое глобальное состояние. При установке каталоги .qwen/ на уровне проекта не затрагиваются. Пустая строка считается неустановленной.
QWEN_RUNTIME_DIRПереопределяет выходной каталог среды выполнения (диалоги, логи, задачи). Если не задан, по умолчанию используется каталог QWEN_HOME.Используйте это для разделения эфемерных данных среды выполнения и постоянной конфигурации. Полезно, если QWEN_HOME находится в общей или медленной файловой системе.
QWEN_TELEMETRY_ENABLEDУстановите значение true или 1, чтобы включить телеметрию. Любое другое значение считается отключением.Переопределяет настройку telemetry.enabled.
QWEN_TELEMETRY_TARGETУстанавливает информационную метку для назначения телеметрии (local или gcp). Не управляет маршрутизацией; используйте QWEN_TELEMETRY_OTLP_ENDPOINT или QWEN_TELEMETRY_OUTFILE для настройки места отправки данных.Переопределяет настройку telemetry.target.
QWEN_TELEMETRY_OTLP_ENDPOINTУстанавливает эндпоинт OTLP для телеметрии.Переопределяет настройку telemetry.otlpEndpoint.
QWEN_TELEMETRY_OTLP_PROTOCOLУстанавливает протокол OTLP (grpc или http).Переопределяет настройку telemetry.otlpProtocol.
QWEN_TELEMETRY_LOG_PROMPTSУстановите значение true или 1, чтобы включить или отключить логирование пользовательских промптов. Любое другое значение считается отключением.Переопределяет настройку telemetry.logPrompts.
QWEN_TELEMETRY_INCLUDE_SENSITIVE_SPAN_ATTRIBUTESУстановите значение true или 1, чтобы присоединять дословные пользовательские промпты, системные промпты, ввод/вывод инструментов и ответы модели к нативным атрибутам спанов OTel (и сохранять prompt / function_args / response_text в спанах моста log-to-span). Любое другое значение отключает это.Переопределяет настройку telemetry.includeSensitiveSpanAttributes. ⚠️ Передает конфиденциальные данные в ваш OTLP-бэкенд.
QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTHУстанавливает максимальную длину строки JavaScript для содержимого каждого конфиденциального нативного атрибута спана OTel. Должно быть положительным целым числом, не превышающим 104857600 (100 МиБ).Переопределяет настройку telemetry.sensitiveSpanAttributeMaxLength. По умолчанию равно 1048576 (1 МиБ); уменьшите значение, если ваш коллектор или бэкенд отклоняет большие атрибуты спанов.
QWEN_TELEMETRY_OUTFILEУстанавливает путь к файлу для записи телеметрии. Если задан, переопределяет экспорт OTLP.Переопределяет настройку telemetry.outfile.
QWEN_SANDBOXАльтернатива настройке sandbox в settings.json.Принимает значения true, false, docker, podman или пользовательскую строку команды.
QWEN_SANDBOX_IMAGEПереопределяет выбор образа песочницы для Docker/Podman.Имеет приоритет над tools.sandboxImage.
SEATBELT_PROFILE(Специфично для macOS) Переключает профиль Seatbelt (sandbox-exec) в macOS.permissive-open: (По умолчанию) Ограничивает запись в папку проекта (и несколько других папок, см. packages/cli/src/utils/sandbox-macos-permissive-open.sb), но разрешает другие операции. strict: Использует строгий профиль, который по умолчанию отклоняет операции. <profile_name>: Использует пользовательский профиль. Чтобы определить пользовательский профиль, создайте файл с именем sandbox-macos-<profile_name>.sb в каталоге .qwen/ вашего проекта (например, my-project/.qwen/sandbox-macos-custom.sb).
DEBUG или DEBUG_MODE(часто используются базовыми библиотеками или самим CLI) Установите значение true или 1, чтобы включить подробное логирование отладки, что может быть полезно для устранения неполадок.Примечание: Эти переменные по умолчанию автоматически исключаются из файлов .env проекта, чтобы предотвратить вмешательство в поведение CLI. Используйте файлы .qwen/.env, если вам нужно установить их специально для Qwen Code.
NO_COLORУстановите любое значение, чтобы отключить весь цветной вывод в CLI.
FORCE_HYPERLINKПереопределяет обнаружение кликабельных ссылок OSC 8 в рендерере markdown. Установите значение 1 (или любое ненулевое целое число, или пустую строку) для принудительного включения; установите 0 или нечисловое значение, такое как false / off, для принудительного отключения. Учитывает отказы от NO_COLOR / QWEN_DISABLE_HYPERLINKS, установленные выше.Используйте это для включения OSC 8 внутри tmux / GNU screen (автоопределение по умолчанию отказывается, поскольку возможности хостового терминала скрыты за мультиплексором). Требуется set -g allow-passthrough on в tmux 3.3+. Также включает Hyper, который не определяется автоматически.
QWEN_DISABLE_HYPERLINKSУстановите значение 1, чтобы жестко отключить кликабельные гиперссылки OSC 8 в рендерере markdown даже на терминалах, которые автоматически определяются как поддерживающие их.Полезно, когда терминал заявляет о поддержке, но ломается на длинных URL-адресах, или при передаче вывода через посредника, который искажает escape-последовательности. Рендерер переключается на простое отображение label (url).
CLI_TITLEУстановите строку для настройки заголовка CLI.
CODE_ASSIST_ENDPOINTУказывает эндпоинт для сервера помощи в написании кода.Это полезно для разработки и тестирования.
QWEN_CODE_MAX_OUTPUT_TOKENSПереопределяет максимальное количество выходных токенов по умолчанию для одного ответа. Если не задано, Qwen Code использует заявленный моделью лимит вывода, и если ответ обрезается, автоматически увеличивает его (минимум 64K) и восстанавливает работу между ходами. Установите конкретное значение (например, 16000), чтобы использовать фиксированный лимит — полезно для самодельных бэкендов с ограниченными ресурсами, которым требуется меньшее резервирование слотов на запрос.Имеет приоритет над лимитом модели по умолчанию, но переопределяется параметром samplingParams.max_tokens в настройках. Отключает автоматическое увеличение при установке. Пример: export QWEN_CODE_MAX_OUTPUT_TOKENS=16000
QWEN_CODE_UNATTENDED_RETRYУстановите значение true или 1, чтобы включить режим постоянных повторных попыток. Если включено, временные ошибки нехватки мощности API (HTTP 429 Rate Limit и 529 Overloaded) повторяются бесконечно с экспоненциальной задержкой (максимум 5 минут на попытку) и heartbeat-сигналами каждые 30 секунд в stderr.Предназначен для CI/CD пайплайнов и фоновой автоматизации, где длительные задачи должны переживать временные сбои API. Должно быть установлено явно — одного CI=true недостаточно для активации этого режима. Подробности см. в разделе Headless Mode. Пример: export QWEN_CODE_UNATTENDED_RETRY=1
QWEN_CODE_PROFILE_STARTUPУстановите значение 1, чтобы включить профилирование производительности при запуске. Записывает JSON-отчет о времени в ~/.qwen/startup-perf/ с длительностью каждой фазы.Активно только внутри дочернего процесса песочницы (или с QWEN_CODE_PROFILE_STARTUP_OUTER=1). Нулевые накладные расходы, если не задано. Пример: export QWEN_CODE_PROFILE_STARTUP=1
QWEN_CODE_PROFILE_STARTUP_OUTERУстановите значение 1 вместе с QWEN_CODE_PROFILE_STARTUP=1, чтобы также собирать профиль запуска во внешнем (до песочницы) процессе. Отчеты внешнего процесса получают префикс имени файла outer-, чтобы отличать их от отчета дочернего процесса песочницы.По умолчанию выключено — собирает только дочерний процесс песочницы, чтобы избежать дублирования отчетов. Полезно для локальной разработки, где CLI не перезапускается в песочницу.
QWEN_CODE_PROFILE_STARTUP_NO_HEAPУстановите значение 1 вместе с QWEN_CODE_PROFILE_STARTUP=1, чтобы пропустить снимки process.memoryUsage() для каждой контрольной точки. Полезно при измерении собственных накладных расходов профайлера (эффект наблюдателя).По умолчанию выключено. Снимки кучи занимают около 50 мкс каждый (значительно менее 1% от общего времени запуска), поэтому большинству пользователей не стоит это менять.
QWEN_CODE_LEGACY_MCP_BLOCKINGУстановите значение 1, чтобы восстановить поведение до progressive-MCP, при котором Config.initialize() синхронно ожидает рукопожатия discover от каждого настроенного MCP-сервера перед возвратом.По умолчанию выключено. Современный qwen-code позволяет MCP-серверам подключаться в фоновом режиме, пока UI уже интерактивен; модель видит каждую новую партию инструментов в течение ~16 мс после стабилизации сервера. Этот флаг сохранен как запасной вариант для отката на ≥ 1 релиз. Пример: export QWEN_CODE_LEGACY_MCP_BLOCKING=1
Если оба пользовательских файла .env определяют одну и ту же переменную, приоритет имеет файл, специфичный для Qwen: <QWEN_HOME>/.env (или ~/.qwen/.env, если QWEN_HOME не задан) загружается раньше ~/.env, и существующие значения переменных окружения не перезаписываются.

Аргументы командной строки

Аргументы, переданные непосредственно при запуске CLI, могут переопределять другие конфигурации для данного сеанса.

При выборе образа песочницы приоритет следующий: --sandbox-image > QWEN_SANDBOX_IMAGE > tools.sandboxImage > встроенный образ по умолчанию.

Таблица аргументов командной строки

АргументАлиасОписаниеВозможные значенияПримечания
--model-mУказывает модель Qwen, используемую в данном сеансе.Имя моделиПример: npm start -- --model qwen3-coder-plus
--prompt-pИспользуется для прямой передачи промпта в команду. Запускает Qwen Code в неинтерактивном режиме.Текст промптаДля примеров скриптов используйте флаг --output-format json, чтобы получить структурированный вывод.
--prompt-interactive-iЗапускает интерактивный сеанс, используя указанный промпт в качестве начального ввода.Текст промптаПромпт обрабатывается внутри интерактивного сеанса, а не до его начала. Нельзя использовать при передаче ввода через stdin. Пример: qwen -i "explain this code"
--system-promptПереопределяет встроенный системный промпт основного сеанса для данного запуска.Текст промптаЗагруженные файлы контекста, такие как QWEN.md, по-прежнему добавляются после этого переопределения. Можно комбинировать с --append-system-prompt.
--append-system-promptДобавляет дополнительные инструкции к системному промпту основного сеанса для данного запуска.Текст промптаПрименяется после встроенного промпта и загруженных файлов контекста. Можно комбинировать с --system-prompt. Примеры см. в разделе Headless Mode.
--output-format-oЗадает формат вывода CLI для неинтерактивного режима.text, json, stream-jsontext: (По умолчанию) Стандартный читаемый человеком вывод. json: Машиночитаемый JSON-вывод, выдаваемый в конце выполнения. stream-json: Потоковые JSON-сообщения, выдаваемые по мере их появления во время выполнения. Для структурированного вывода и скриптов используйте флаг --output-format json или --output-format stream-json. Подробную информацию см. в разделе Headless Mode.
--input-formatЗадает формат, считываемый из стандартного ввода.text, stream-jsontext: (По умолчанию) Стандартный текстовый ввод из stdin или аргументов командной строки. stream-json: Протокол JSON-сообщений через stdin для двусторонней связи. Требование: для --input-format stream-json необходимо установить --output-format stream-json. При использовании stream-json stdin резервируется для сообщений протокола. Подробную информацию см. в разделе Headless Mode.
--include-partial-messagesВключает частичные сообщения ассистента при использовании формата вывода stream-json. Если включено, события потока (message_start, content_block_delta и т. д.) выдаются по мере их появления во время стриминга.По умолчанию: false. Требование: необходимо установить --output-format stream-json. Подробную информацию о событиях потока см. в разделе Headless Mode.
--sandbox-sВключает режим песочницы для данного сеанса.
--sandbox-imageЗадает URI образа песочницы.
--debug-dВключает режим отладки для данного сеанса, обеспечивая более подробный вывод.
--help-hОтображает справочную информацию об аргументах командной строки.
--yoloВключает режим YOLO, который автоматически одобряет все вызовы инструментов.
--approval-modeЗадает режим одобрения для вызовов инструментов.plan, default, auto-edit, auto, yoloПоддерживаемые режимы: plan: Только анализ — не изменять файлы и не выполнять команды. default: Требовать одобрения для редактирования файлов или shell-команд (поведение по умолчанию). auto-edit: Автоматически одобрять инструменты редактирования (edit, write_file, notebook_edit), запрашивая подтверждение для остальных. auto: Классификатор LLM автоматически одобряет безопасные действия и блокирует рискованные. yolo: Автоматически одобрять все вызовы инструментов (эквивалентно --yolo). Нельзя использовать вместе с --yolo. Используйте --approval-mode=yolo вместо --yolo для нового унифицированного подхода. Пример: qwen --approval-mode auto-edit
Подробнее см. в разделе Approval Mode.
--allowed-toolsРазделенный запятыми список имен инструментов, которые будут обходить диалог подтверждения.Имена инструментовПример: qwen --allowed-tools "Shell(git status)"
--disabled-slash-commandsИмена slash-команд для скрытия/отключения (через запятую или повторением). Объединяется с настройкой slashCommands.disabled и переменной окружения QWEN_DISABLED_SLASH_COMMANDS. Сопоставление с итоговым именем команды происходит без учета регистра.Имена командПример: qwen --disabled-slash-commands "auth,mcp,extensions"
--telemetryВключает телеметрию.
--telemetry-targetЗадает цель телеметрии.Дополнительную информацию см. в разделе телеметрия.
--telemetry-otlp-endpointЗадает OTLP-эндпоинт для телеметрии.Дополнительную информацию см. в разделе телеметрия.
--telemetry-otlp-protocolЗадает протокол OTLP для телеметрии (grpc или http).По умолчанию используется grpc. Дополнительную информацию см. в разделе телеметрия.
--telemetry-log-promptsВключает логирование промптов для телеметрии.Дополнительную информацию см. в разделе телеметрия.
--acpВключает режим ACP (Agent Client Protocol). Полезно для интеграции с IDE/редакторами, такими как Zed.Стабильная функция. Заменяет устаревший флаг --experimental-acp.
--experimental-lspВключает экспериментальную функцию LSP (Language Server Protocol) для интеллектуального анализа кода (переход к определению, поиск ссылок, диагностика и т. д.).Экспериментальная функция. Требуется установка языковых серверов.
--extensions-eЗадает список расширений, используемых в данном сеансе.Имена расширенийЕсли не указано, используются все доступные расширения. Используйте специальную команду qwen -e none, чтобы отключить все расширения. Пример: qwen -e my-extension -e my-other-extension
--list-extensions-lВыводит список всех доступных расширений и завершает работу.
--proxyЗадает прокси для CLI.URL проксиПример: --proxy http://localhost:7890.
--include-directoriesДобавляет дополнительные каталоги в рабочее пространство для поддержки нескольких каталогов.Пути к каталогамМожно указывать несколько раз или в виде значений, разделенных запятыми. Максимально можно добавить 5 каталогов. Пример: --include-directories /path/to/project1,/path/to/project2 или --include-directories /path/to/project1 --include-directories /path/to/project2
--screen-readerВключает режим экранного чтеца, который настраивает TUI для лучшей совместимости с программами экранного доступа.
--versionОтображает версию CLI.
--openai-loggingВключает логирование вызовов OpenAI API для отладки и анализа.Этот флаг переопределяет настройку enableOpenAILogging в settings.json.
--openai-logging-dirЗадает пользовательский путь к каталогу для логов OpenAI API.Путь к каталогуЭтот флаг переопределяет настройку openAILoggingDir в settings.json. Поддерживаются абсолютные пути, относительные пути и раскрытие ~. Пример: qwen --openai-logging-dir "~/qwen-logs" --openai-logging

Контекстные файлы (Иерархический контекст инструкций)

Хотя контекстные файлы (по умолчанию QWEN.md, но настраивается через параметр context.fileName) не являются строгой конфигурацией поведения CLI, они критически важны для настройки контекста инструкций (также называемого “памятью”). Эта мощная функция позволяет передавать ИИ специфичные для проекта инструкции, руководства по стилю кода или любую другую важную справочную информацию, делая его ответы более точными и адаптированными под ваши задачи. CLI включает элементы интерфейса, например, индикатор в футере, показывающий количество загруженных контекстных файлов, чтобы вы всегда были в курсе активного контекста.

  • Назначение: Эти Markdown-файлы содержат инструкции, рекомендации или контекст, о которых модель Qwen должна знать во время взаимодействия. Система разработана для управления этим контекстом инструкций иерархически.

Пример содержимого контекстного файла (например, QWEN.md)

Вот концептуальный пример того, что может содержать контекстный файл в корне TypeScript-проекта:

# Project: My Awesome TypeScript Library ## General Instructions: - When generating new TypeScript code, please follow the existing coding style. - Ensure all new functions and classes have JSDoc comments. - Prefer functional programming paradigms where appropriate. - All code should be compatible with TypeScript 5.0 and Node.js 22+. ## Coding Style: - Use 2 spaces for indentation. - Interface names should be prefixed with `I` (e.g., `IUserService`). - Private class members should be prefixed with an underscore (`_`). - Always use strict equality (`===` and `!==`). ## Specific Component: `src/api/client.ts` - This file handles all outbound API requests. - When adding new API call functions, ensure they include robust error handling and logging. - Use the existing `fetchWithRetry` utility for all GET requests. ## Regarding Dependencies: - Avoid introducing new external dependencies unless absolutely necessary. - If a new dependency is required, please state the reason.

Этот пример демонстрирует, как можно предоставить общий контекст проекта, специфичные соглашения по написанию кода и даже заметки о конкретных файлах или компонентах. Чем более релевантными и точными будут ваши контекстные файлы, тем лучше ИИ сможет вам помочь. Настоятельно рекомендуется использовать контекстные файлы для конкретного проекта, чтобы установить соглашения и контекст.

  • Иерархическая загрузка и приоритеты: CLI реализует иерархическую систему памяти, загружая контекстные файлы (например, QWEN.md) из нескольких мест. Содержимое файлов, находящихся ниже в этом списке (более специфичных), обычно переопределяет или дополняет содержимое файлов, находящихся выше (более общих). Точный порядок конкатенации и итоговый контекст можно проверить в диалоговом окне /memory. Типичный порядок загрузки:
    1. Глобальный контекстный файл:
      • Расположение: ~/.qwen/<configured-context-filename> (например, ~/.qwen/QWEN.md в домашней директории пользователя).
      • Область действия: Предоставляет инструкции по умолчанию для всех ваших проектов.
    2. Контекстные файлы корня проекта и родительских директорий:
      • Расположение: CLI ищет настроенный контекстный файл в текущей рабочей директории, а затем в каждой родительской директории вплоть до корня проекта (определяется по наличию папки .git) или вашей домашней директории.
      • Область действия: Предоставляет контекст, относящийся ко всему проекту или его значительной части.
  • Конкатенация и индикация в UI: Содержимое всех найденных контекстных файлов объединяется (с разделителями, указывающими на их происхождение и путь) и передается как часть системного промпта. В футере CLI отображается количество загруженных контекстных файлов, что дает быстрое визуальное представление об активном контексте инструкций.
  • Импорт содержимого: Вы можете модуляризовать свои контекстные файлы, импортируя другие Markdown-файлы с помощью синтаксиса @path/to/file.md. Подробнее см. в документации по памяти.
  • Команды для управления памятью:
    • Используйте /memory для открытия диалогового окна управления памятью.
    • Обновите память из диалогового окна, чтобы повторно сканировать и перезагрузить контекстные файлы из всех настроенных мест.
    • См. документацию по командам для получения полной информации о команде /memory.

Понимая и используя эти уровни конфигурации и иерархическую природу контекстных файлов, вы можете эффективно управлять памятью ИИ и адаптировать ответы Qwen Code под ваши конкретные задачи и проекты.

Песочница

Qwen Code может выполнять потенциально небезопасные операции (например, shell-команды и изменение файлов) в изолированной среде (песочнице) для защиты вашей системы.

Песочница отключена по умолчанию, но вы можете включить её несколькими способами:

  • Используя флаг --sandbox или -s.
  • Установив переменную окружения QWEN_SANDBOX.
  • Указав tools.sandbox в настройках.

⚠️ --yolo не включает песочницу автоматически. Режим YOLO только автоматически одобряет вызовы инструментов; песочницу всё равно нужно явно включить через --sandbox, QWEN_SANDBOX или tools.sandbox. При запуске в headless / неинтерактивном режиме с --yolo (или --approval-mode=yolo) и без песочницы модель может выполнять shell, write и edit инструменты с правами текущего процесса — в этом случае Qwen Code выводит предупреждение в stderr. После оценки рисков вы можете подавить его с помощью QWEN_CODE_SUPPRESS_YOLO_WARNING=1.

По умолчанию используется предварительно собранный Docker-образ qwen-code-sandbox.

Для специфичных для проекта требований к песочнице вы можете создать собственный Dockerfile по пути .qwen/sandbox.Dockerfile в корневой директории вашего проекта. Этот Dockerfile может быть основан на базовом образе песочницы:

FROM qwen-code-sandbox # Add your custom dependencies or configurations here # For example: # RUN apt-get update && apt-get install -y some-package # COPY ./my-config /app/my-config

Если файл .qwen/sandbox.Dockerfile существует, вы можете использовать переменную окружения BUILD_SANDBOX при запуске Qwen Code для автоматической сборки пользовательского образа песочницы:

BUILD_SANDBOX=1 qwen -s

Статистика использования

Чтобы помочь нам улучшить Qwen Code, мы собираем анонимную статистику использования. Эти данные помогают нам понять, как используется CLI, выявить типичные проблемы и определить приоритеты для новых функций.

Что мы собираем:

  • Вызовы инструментов: Мы логируем названия вызываемых инструментов, успешность их выполнения и время работы. Мы не собираем аргументы, передаваемые инструментам, или любые данные, которые они возвращают.
  • API-запросы: Мы логируем модель, использованную для каждого запроса, длительность запроса и его успешность. Мы не собираем содержимое промптов или ответов.
  • Информация о сессии: Мы собираем информацию о конфигурации CLI, такую как включенные инструменты и режим подтверждения.

Что мы НЕ собираем:

  • Личная информация (PII): Мы не собираем никаких личных данных, таких как ваше имя, адрес электронной почты или API-ключи.
  • Содержимое промптов и ответов: Мы не логируем содержимое ваших промптов или ответы модели.
  • Содержимое файлов: Мы не логируем содержимое никаких файлов, которые читаются или записываются CLI.

Как отказаться:

Вы можете отказаться от сбора статистики использования в любое время, установив для свойства usageStatisticsEnabled значение false в категории privacy в вашем файле settings.json:

{ "privacy": { "usageStatisticsEnabled": false } }
Note

Когда статистика использования включена, события отправляются на эндпоинт сбора RUM Alibaba Cloud.

Last updated on