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

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

Tip

Аутентификация / ключи API: Аутентификация (Qwen OAuth и OpenAI-совместимый API) и переменные среды, связанные с аутентификацией (например, 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, например:

Доступные настройки в settings.json

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

general

ПараметрТипОписаниеПо умолчанию
general.preferredEditorstringПредпочтительный редактор для открытия файлов.undefined
general.vimModebooleanВключить привязки клавиш Vim.false
general.disableAutoUpdatebooleanОтключить автоматические обновления.false
general.disableUpdateNagbooleanОтключить уведомления о доступных обновлениях.false
general.checkpointing.enabledbooleanВключить контрольные точки сессии для восстановления.false

output

ПараметрТипОписаниеПо умолчаниюВозможные значения
output.formatstringФормат вывода CLI."text""text", "json"

ui

ПараметрТипОписаниеПо умолчанию
ui.themestringЦветовая тема интерфейса. См. Темы для доступных вариантов.undefined
ui.customThemesobjectПользовательские определения тем.{}
ui.hideWindowTitlebooleanСкрыть строку заголовка окна.false
ui.hideTipsbooleanСкрыть полезные подсказки в интерфейсе.false
ui.hideBannerbooleanСкрыть баннер приложения.false
ui.hideFooterbooleanСкрыть нижний колонтитул в интерфейсе.false
ui.showMemoryUsagebooleanОтображать информацию об использовании памяти в интерфейсе.false
ui.showLineNumbersbooleanПоказывать номера строк в блоках кода в выводе CLI.true
ui.showCitationsbooleanПоказывать цитаты для сгенерированного текста в чате.true
enableWelcomeBackbooleanПоказывать диалог приветствия при возвращении к проекту с историей разговора. Если включено, Qwen Code автоматически определит, возвращаетесь ли вы к проекту с ранее сгенерированным сводным описанием проекта (.qwen/PROJECT_SUMMARY.md), и покажет диалог, позволяющий продолжить предыдущий разговор или начать заново. Эта функция интегрируется с командой /summary и диалогом подтверждения выхода.true
ui.accessibility.disableLoadingPhrasesbooleanОтключить фразы загрузки для обеспечения доступности.false
ui.accessibility.screenReaderbooleanВключает режим экранного диктора, который настраивает TUI для лучшей совместимости с программами чтения с экрана.false
ui.customWittyPhrasesarray of stringsСписок пользовательских фраз для отображения во время состояний загрузки. При наличии CLI будет циклически переключаться между этими фразами вместо стандартных.[]

ide

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

privacy

ПараметрТипОписаниеПо умолчанию
privacy.usageStatisticsEnabledbooleanВключить сбор статистики использования.true

model

ПараметрТипОписаниеПо умолчанию
model.namestringМодель Qwen, используемая для ведения диалога.undefined
model.maxSessionTurnsnumberМаксимальное количество ходов пользователя/модели/инструментов, сохраняемых в сессии. Значение -1 означает неограниченное количество.-1
model.summarizeToolOutputobjectВключает или отключает суммаризацию вывода инструментов. Вы можете указать бюджет токенов для суммаризации с помощью параметра tokenBudget. Примечание: На данный момент поддерживается только инструмент run_shell_command. Например: {"run_shell_command": {"tokenBudget": 2000}}undefined
model.generationConfigobjectРасширенные переопределения, передаваемые базовому генератору контента. Поддерживает параметры управления запросами, такие как timeout, maxRetries и disableCacheControl, а также настройки тонкой настройки в разделе samplingParams (например, temperature, top_p, max_tokens). Оставьте пустым, чтобы использовать значения по умолчанию провайдера.undefined
model.chatCompression.contextPercentageThresholdnumberУстанавливает порог сжатия истории чата в процентах от общего лимита токенов модели. Это значение от 0 до 1 применяется как к автоматическому сжатию, так и к ручной команде /compress. Например, значение 0.6 активирует сжатие, когда история чата превышает 60% лимита токенов. Используйте 0, чтобы полностью отключить сжатие.0.7
model.skipNextSpeakerCheckbooleanПропуск проверки следующего говорящего.false
model.skipLoopDetectionbooleanОтключает проверку обнаружения циклов. Обнаружение циклов предотвращает бесконечные циклы в ответах ИИ, но может вызывать ложные срабатывания, нарушающие нормальную работу. Включите эту опцию, если сталкиваетесь с частыми ложными срабатываниями обнаружения циклов.false
model.skipStartupContextbooleanПропускает отправку стартового контекста рабочей области (сводка окружения и подтверждение) в начале каждой сессии. Включите, если предпочитаете предоставлять контекст вручную или хотите сэкономить токены при запуске.false
model.enableOpenAILoggingbooleanВключает логирование вызовов OpenAI API для отладки и анализа. При включении запросы и ответы API записываются в файлы JSON.false
model.openAILoggingDirstringПользовательский путь к каталогу журналов OpenAI API. Если не указан, по умолчанию используется logs/openai в текущем рабочем каталоге. Поддерживаются абсолютные пути, относительные пути (относительно текущего рабочего каталога) и расширение ~ (домашний каталог).undefined

Пример model.generationConfig:

{ "model": { "generationConfig": { "timeout": 60000, "disableCacheControl": false, "samplingParams": { "temperature": 0.2, "top_p": 0.8, "max_tokens": 1024 } } } }

Примеры model.openAILoggingDir:

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

контекст

ПараметрТипОписаниеПо умолчанию
context.fileNameстрока или массив строкИмя файла(ов) контекста.undefined
context.importFormatстрокаФормат, используемый при импорте памяти.undefined
context.discoveryMaxDirsчислоМаксимальное количество директорий для поиска памяти.200
context.includeDirectoriesмассивДополнительные директории, включаемые в контекст рабочей области. Указывает массив дополнительных абсолютных или относительных путей, которые будут включены в контекст рабочей области. Отсутствующие директории будут пропущены с предупреждением по умолчанию. В путях можно использовать ~ для обозначения домашней директории пользователя. Этот параметр можно комбинировать с флагом командной строки --include-directories.[]
context.loadFromIncludeDirectoriesбулевоУправляет поведением команды /memory refresh. Если установлено значение true, файлы QWEN.md должны загружаться из всех добавленных директорий. Если установлено значение false, QWEN.md должен загружаться только из текущей директории.false
context.fileFiltering.respectGitIgnoreбулевоУчитывать файлы .gitignore при поиске.true
context.fileFiltering.respectQwenIgnoreбулевоУчитывать файлы .qwenignore при поиске.true
context.fileFiltering.enableRecursiveFileSearchбулевоРазрешить рекурсивный поиск имен файлов в текущем дереве при автодополнении префиксов @ в запросе.true
context.fileFiltering.disableFuzzySearchбулевоЕсли true, отключает нечеткий поиск при поиске файлов, что может повысить производительность в проектах с большим количеством файлов.false

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

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

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

tools

ПараметрТипОписаниеПо умолчаниюПримечания
tools.sandboxboolean или stringПесочница для выполнения (может быть булевым значением или строкой пути).undefined
tools.shell.enableInteractiveShellbooleanИспользовать node-pty для интерактивного использования оболочки. Резервный вариант с child_process всё ещё применяется.false
tools.coreмассив строкМожет использоваться для ограничения набора встроенных инструментов с помощью белого списка. Также можно указать ограничения для конкретных команд для инструментов, которые это поддерживают, например, для инструмента run_shell_command. Например, "tools.core": ["run_shell_command(ls -l)"] разрешит выполнение только команды ls -l.undefined
tools.excludeмассив строкИмена инструментов, которые следует исключить из поиска. Также можно указать ограничения для конкретных команд для инструментов, которые это поддерживают, например, для инструмента run_shell_command. Например, "tools.exclude": ["run_shell_command(rm -rf)"] заблокирует команду rm -rf. Примечание по безопасности: Ограничения для конкретных команд в tools.exclude для run_shell_command основаны на простом сопоставлении строк и могут быть легко обойдены. Эта функция не является механизмом безопасности и не должна использоваться для безопасного выполнения недоверенного кода. Рекомендуется использовать tools.core для явного выбора команд, которые могут быть выполнены.undefined
tools.allowedмассив строкСписок имён инструментов, для которых будет пропущено диалоговое окно подтверждения. Это полезно для инструментов, которым вы доверяете и часто используете. Например, ["run_shell_command(git)", "run_shell_command(npm test)"] пропустит диалоговое окно подтверждения при запуске любых команд git и npm test.undefined
tools.approvalModestringУстанавливает режим одобрения по умолчанию для использования инструментов.defaultВозможные значения: plan (только анализировать, не изменять файлы и не выполнять команды), default (требовать одобрение перед редактированием файлов или выполнением команд оболочки), auto-edit (автоматически одобрять редактирование файлов), 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.enableToolOutputTruncationbooleanВключить усечение больших выходных данных инструментов.trueТребуется перезапуск: Да
tools.truncateToolOutputThresholdnumberУсекать выходные данные инструмента, если они превышают указанное количество символов. Применяется к инструментам Shell, Grep, Glob, ReadFile и ReadManyFiles.25000Требуется перезапуск: Да
tools.truncateToolOutputLinesnumberМаксимальное количество строк или записей, сохраняемых при усечении выходных данных инструмента. Применяется к инструментам Shell, Grep, Glob, ReadFile и ReadManyFiles.1000Требуется перезапуск: Да
tools.autoAcceptbooleanКонтролирует, будет ли CLI автоматически принимать и выполнять вызовы инструментов, считающиеся безопасными (например, операции только для чтения), без явного подтверждения пользователя. Если установлено значение true, CLI пропустит запрос подтверждения для инструментов, считающихся безопасными.false

mcp

ПараметрТипОписаниеПо умолчанию
mcp.serverCommandстрокаКоманда для запуска сервера MCP.undefined
mcp.allowedмассив строкСписок разрешённых серверов MCP. Позволяет указать список имён серверов MCP, которые должны быть доступны модели. Может использоваться для ограничения набора серверов MCP, к которым можно подключиться. Обратите внимание, что этот параметр будет проигнорирован, если задан --allowed-mcp-server-names.undefined
mcp.excludedмассив строкСписок запрещённых серверов MCP. Сервер, указанный и в mcp.excluded, и в mcp.allowed, будет исключён. Обратите внимание, что этот параметр будет проигнорирован, если задан --allowed-mcp-server-names.undefined
Note

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

безопасность

ПараметрТипОписаниеПо умолчанию
security.folderTrust.enabledbooleanПараметр для отслеживания, включено ли доверие к папкам.false
security.auth.selectedTypestringТекущий выбранный тип аутентификации.undefined
security.auth.enforcedTypestringОбязательный тип аутентификации (полезно для предприятий).undefined
security.auth.useExternalbooleanИспользовать ли внешний поток аутентификации.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 (строка): URL, который может содержать заполнители {title} и {info}. Пример: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" }undefined
advanced.tavilyApiKeystringКлюч API для веб-поисковой службы Tavily. Используется для включения функциональности инструмента web_search.undefined
Note

Примечание о advanced.tavilyApiKey: Это устаревший формат конфигурации. Для пользователей Qwen OAuth провайдер DashScope доступен автоматически без какой-либо дополнительной настройки. Для других типов аутентификации настройте провайдеры Tavily или Google с использованием нового формата конфигурации webSearch.

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 для связи.Да
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. Если указано, то только перечисленные здесь инструменты будут доступны с этого сервера (поведение allowlist). Если не указано, по умолчанию включаются все инструменты с сервера.Да
mcpServers.<SERVER_NAME>.excludeToolsarray of stringsСписок имен инструментов, которые следует исключить с этого сервера MCP. Перечисленные здесь инструменты не будут доступны модели, даже если они предоставлены сервером. Примечание: excludeTools имеет приоритет над includeTools — если инструмент есть в обоих списках, он будет исключен.Да

telemetry

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

ПараметрТипОписаниеПо умолчанию
telemetry.enabledbooleanВключена ли телеметрия.
telemetry.targetstringНазначение для собранной телеметрии. Поддерживаемые значения: local и gcp.
telemetry.otlpEndpointstringКонечная точка для экспортера OTLP.
telemetry.otlpProtocolstringПротокол для экспортера OTLP (grpc или http).
telemetry.logPromptsbooleanВключать ли содержимое пользовательских запросов в логи.
telemetry.outfilestringФайл для записи телеметрии, когда target равен local.
telemetry.useCollectorbooleanИспользовать ли внешний коллектор OTLP.

Пример settings.json

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

{ "general": { "vimMode": true, "preferredEditor": "code" }, "ui": { "theme": "GitHub", "hideBanner": true, "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", "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 }, "privacy": { "usageStatisticsEnabled": true }, "model": { "name": "qwen3-coder-plus", "maxSessionTurns": 10, "enableOpenAILogging": false, "openAILoggingDir": "~/qwen-logs", "summarizeToolOutput": { "run_shell_command": { "tokenBudget": 100 } } }, "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"] } }

История командной строки

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

  • Расположение: ~/.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.

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

ПеременнаяОписаниеПримечания
GEMINI_TELEMETRY_ENABLEDУстановите значение true или 1, чтобы включить телеметрию. Любое другое значение отключает её.Переопределяет настройку telemetry.enabled.
GEMINI_TELEMETRY_TARGETЗадаёт цель телеметрии (local или gcp).Переопределяет настройку telemetry.target.
GEMINI_TELEMETRY_OTLP_ENDPOINTЗадаёт конечную точку OTLP для телеметрии.Переопределяет настройку telemetry.otlpEndpoint.
GEMINI_TELEMETRY_OTLP_PROTOCOLЗадаёт протокол OTLP (grpc или http).Переопределяет настройку telemetry.otlpProtocol.
GEMINI_TELEMETRY_LOG_PROMPTSУстановите значение true или 1, чтобы включить или отключить логирование пользовательских запросов. Любое другое значение отключает его.Переопределяет настройку telemetry.logPrompts.
GEMINI_TELEMETRY_OUTFILEЗадаёт путь к файлу для записи телеметрии, когда цель — local.Переопределяет настройку telemetry.outfile.
GEMINI_TELEMETRY_USE_COLLECTORУстановите значение true или 1, чтобы включить или отключить использование внешнего OTLP-коллектора. Любое другое значение отключает его.Переопределяет настройку telemetry.useCollector.
GEMINI_SANDBOXАльтернатива настройке sandbox в settings.json.Принимает значения true, false, docker, podman или строку с пользовательской командой.
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 Code, используйте файлы .qwen/.env.
NO_COLORУстановите любое значение, чтобы отключить цветной вывод в CLI.
CLI_TITLEУстановите строку, чтобы изменить заголовок CLI.
CODE_ASSIST_ENDPOINTУказывает конечную точку сервера помощи по коду.Полезно при разработке и тестировании.
TAVILY_API_KEYВаш API-ключ для сервиса веб-поиска Tavily.Используется для включения функциональности инструмента web_search. Пример: export TAVILY_API_KEY="tvly-your-api-key-here"

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

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

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

АргументПсевдонимОписаниеВозможные значенияПримечания
--model-mУказывает модель Qwen для использования в текущей сессии.Имя моделиПример: npm start -- --model qwen3-coder-plus
--prompt-pИспользуется для передачи подсказки непосредственно в команду. Это запускает Qwen Code в неинтерактивном режиме.Текст вашей подсказкиДля примеров скриптов используйте флаг --output-format json, чтобы получить структурированный вывод.
--prompt-interactive-iЗапускает интерактивную сессию с указанной подсказкой в качестве начального ввода.Текст вашей подсказкиПодсказка обрабатывается внутри интерактивной сессии, а не до её начала. Нельзя использовать при передаче ввода из stdin через pipe. Пример: qwen -i "explain this code"
--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Включает режим отладки для текущей сессии, обеспечивая более подробный вывод.
--all-files-aЕсли установлен, рекурсивно включает все файлы в текущем каталоге в качестве контекста для подсказки.
--help-hОтображает справочную информацию об аргументах командной строки.
--show-memory-usageОтображает текущее использование памяти.
--yoloВключает режим YOLO, который автоматически одобряет все вызовы инструментов.
--approval-modeУстанавливает режим одобрения для вызовов инструментов.plan, default, auto-edit, yoloПоддерживаемые режимы: plan: Только анализ — файлы не изменяются и команды не выполняются. default: Требуется одобрение для редактирования файлов или выполнения команд оболочки (поведение по умолчанию). auto-edit: Автоматически одобряются инструменты редактирования (edit, write_file), остальные требуют подтверждения. yolo: Автоматически одобряются все вызовы инструментов (эквивалент --yolo). Нельзя использовать вместе с --yolo. Используйте --approval-mode=yolo вместо --yolo для нового унифицированного подхода. Пример: qwen --approval-mode auto-edit
Подробнее см. в разделе Approval Mode.
--allowed-toolsСписок имён инструментов, разделённых запятыми, которые будут пропущены без диалога подтверждения.Имена инструментовПример: qwen --allowed-tools "Shell(git status)"
--telemetryВключает телеметрию.
--telemetry-targetУстанавливает цель телеметрии.Подробнее см. в разделе телеметрия.
--telemetry-otlp-endpointУстанавливает конечную точку OTLP для телеметрии.Подробнее см. в разделе телеметрия.
--telemetry-otlp-protocolУстанавливает протокол OTLP для телеметрии (grpc или http).По умолчанию grpc. Подробнее см. в разделе телеметрия.
--telemetry-log-promptsВключает логирование подсказок для телеметрии.Подробнее см. в разделе телеметрия.
--checkpointingВключает контрольные точки.
--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
--tavily-api-keyУстанавливает ключ API Tavily для функции веб-поиска в текущей сессии.Ключ APIПример: qwen --tavily-api-key tvly-your-api-key-here

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

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

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

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

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

# Проект: Моя потрясающая библиотека на TypeScript ## Общие инструкции: - При генерации нового кода на TypeScript следуйте существующему стилю кодирования. - Убедитесь, что все новые функции и классы сопровождаются комментариями JSDoc. - Предпочтение отдавайте парадигмам функционального программирования, где это уместно. - Весь код должен быть совместим с TypeScript 5.0 и Node.js 20+. ## Стиль кодирования: - Используйте 2 пробела для отступов. - Имена интерфейсов должны начинаться с префикса `I` (например, `IUserService`). - Частные члены классов должны начинаться с символа подчеркивания (`_`). - Всегда используйте строгое равенство (`===` и `!==`). ## Конкретный компонент: `src/api/client.ts` - Этот файл обрабатывает все исходящие запросы к API. - При добавлении новых функций вызова API убедитесь, что они включают надежную обработку ошибок и ведение журнала. - Используйте существующую утилиту `fetchWithRetry` для всех запросов GET.

Относительно зависимостей:

  • Избегайте добавления новых внешних зависимостей, если в этом нет крайней необходимости.
  • Если требуется новая зависимость, пожалуйста, укажите причину.
Этот пример демонстрирует, как можно предоставить общий контекст проекта, конкретные соглашения о кодировании и даже заметки о конкретных файлах или компонентах. Чем более релевантны и точны ваши файлы контекста, тем лучше ИИ сможет вам помочь. Файлы контекста, специфичные для проекта, настоятельно рекомендуются для установления соглашений и контекста. - **Иерархическая загрузка и приоритет:** CLI реализует сложную иерархическую систему памяти, загружая файлы контекста (например, `QWEN.md`) из нескольких мест. Содержимое файлов, расположенных ниже в этом списке (более специфичные), обычно переопределяет или дополняет содержимое файлов выше (более общие). Точный порядок объединения и финальный контекст можно проверить с помощью команды `/memory show`. Типичный порядок загрузки следующий: 1. **Глобальный файл контекста:** - Расположение: `~/.qwen/<configured-context-filename>` (например, `~/.qwen/QWEN.md` в вашем домашнем каталоге пользователя). - Область применения: Предоставляет стандартные инструкции для всех ваших проектов. 2. **Файлы контекста корня проекта и его предков:** - Расположение: CLI ищет настроенный файл контекста в текущем рабочем каталоге, а затем в каждом родительском каталоге до корня проекта (определяется по папке `.git`) или вашего домашнего каталога. - Область применения: Предоставляет контекст, относящийся ко всему проекту или значительной его части. 3. **Файлы контекста подкаталогов (контекстуальные/локальные):** - Расположение: CLI также сканирует наличие настроенного файла контекста в подкаталогах _ниже_ текущего рабочего каталога (с учетом распространенных шаблонов игнорирования, таких как `node_modules`, `.git` и т. д.). По умолчанию глубина этого поиска ограничена 200 каталогами, но может быть изменена с помощью параметра `context.discoveryMaxDirs` в вашем файле `settings.json`. - Область применения: Позволяет задать очень специфичные инструкции, относящиеся к конкретному компоненту, модулю или разделу вашего проекта. - **Объединение и отображение в интерфейсе:** Содержимое всех найденных файлов контекста объединяется (с разделителями, указывающими их происхождение и путь) и предоставляется как часть системного запроса. В нижнем колонтитуле CLI отображается количество загруженных файлов контекста, что дает вам быстрый визуальный сигнал об активном инструкционном контексте. - **Импорт содержимого:** Вы можете модульно организовать свои файлы контекста, импортируя другие Markdown-файлы с помощью синтаксиса `@path/to/file.md`. Для получения дополнительной информации см. [Документацию по процессору импорта памяти](../configuration/memory). - **Команды управления памятью:** - Используйте `/memory refresh`, чтобы принудительно пересканировать и перезагрузить все файлы контекста из всех настроенных местоположений. Это обновляет инструкционный контекст ИИ. - Используйте `/memory show`, чтобы отобразить объединённый инструкционный контекст, который в данный момент загружен, позволяя вам проверить иерархию и содержимое, используемое ИИ. - Смотрите [Документацию по командам](../features/commands) для полной информации о команде `/memory` и её подкомандах (`show` и `refresh`). Понимая и используя эти уровни конфигурации и иерархическую природу файлов контекста, вы сможете эффективно управлять памятью ИИ и адаптировать ответы Qwen Code под ваши конкретные нужды и проекты. ## Песочница Qwen Code может выполнять потенциально небезопасные операции (например, команды оболочки и изменения файлов) в изолированной среде (песочнице), чтобы защитить вашу систему. [Песочница](../features/sandbox) отключена по умолчанию, но вы можете включить её несколькими способами: - Используя флаг `--sandbox` или `-s`. - Установив переменную окружения `GEMINI_SANDBOX`. - Песочница включается по умолчанию при использовании `--yolo` или `--approval-mode=yolo`. По умолчанию используется предварительно собранный Docker-образ `qwen-code-sandbox`. Для удовлетворения специфических потребностей проекта вы можете создать собственный Dockerfile по пути `.qwen/sandbox.Dockerfile` в корневой директории вашего проекта. Этот Dockerfile может быть основан на базовом образе песочницы:

FROM qwen-code-sandbox

Добавьте сюда ваши пользовательские зависимости или конфигурации

Например:

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

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

Last updated on