Конфигурация Qwen Code
Authentication / API keys: Информация об аутентификации (API Key, Alibaba Cloud Coding Plan) и связанных с аутентификацией переменных окружения (например, OPENAI_API_KEY) описана в разделе Authentication.
Примечание о новом формате конфигурации: Формат файла settings.json был обновлен до новой, более организованной структуры. Старый формат будет автоматически перенесен.
Qwen Code предлагает несколько способов настройки своего поведения, включая переменные окружения, аргументы командной строки и файлы настроек. В этом документе описаны различные методы конфигурации и доступные параметры.
Уровни конфигурации
Конфигурация применяется в следующем порядке приоритетов (нижние номера переопределяются верхними):
| Уровень | Источник конфигурации | Описание |
|---|---|---|
| 1 | Значения по умолчанию | Жестко заданные значения по умолчанию в приложении |
| 2 | Системный файл значений по умолчанию | Системные настройки по умолчанию, которые могут быть переопределены другими файлами настроек |
| 3 | Файл настроек пользователя | Глобальные настройки для текущего пользователя |
| 4 | Файл настроек проекта | Настройки, специфичные для проекта |
| 5 | Системный файл настроек | Системные настройки, переопределяющие все остальные файлы настроек |
| 6 | Переменные окружения | Системные или сессионные переменные, потенциально загружаемые из файлов .env |
| 7 | Аргументы командной строки | Значения, передаваемые при запуске CLI |
Файлы настроек
Qwen Code использует JSON-файлы настроек для постоянной конфигурации. Существует четыре расположения этих файлов:
| Тип файла | Расположение | Область действия |
|---|---|---|
| Системный файл значений по умолчанию | Linux: /etc/qwen-code/system-defaults.jsonWindows: C:\ProgramData\qwen-code\system-defaults.jsonmacOS: /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 пользователей. |
Примечание о переменных окружения в настройках: Строковые значения в ваших файлах settings.json могут ссылаться на переменные окружения с помощью синтаксиса $VAR_NAME или ${VAR_NAME}. Эти переменные будут автоматически разрешены при загрузке настроек. Например, если у вас есть переменная окружения MY_API_TOKEN, вы можете использовать её в settings.json так: "apiKey": "$MY_API_TOKEN".
Каталог .qwen в вашем проекте
Помимо файла настроек проекта, каталог .qwen проекта может содержать другие файлы, специфичные для проекта, связанные с работой Qwen Code, например:
- Пользовательские профили песочницы (например,
.qwen/sandbox-macos-custom.sb,.qwen/sandbox.Dockerfile). - Умения агента в каталоге
.qwen/skills/(каждое умение — это каталог, содержащийSKILL.md).
Миграция конфигурации
Qwen Code автоматически переносит устаревшие настройки конфигурации в новый формат. Старые файлы настроек резервируются перед миграцией. Следующие настройки были переименованы с отрицательного именования (disable*) на положительное (enable*):
| Старая настройка | Новая настройка | Примечания |
|---|---|---|
disableAutoUpdate + disableUpdateNag | general.enableAutoUpdate | Объединены в одну настройку |
disableLoadingPhrases | ui.accessibility.enableLoadingPhrases | |
disableFuzzySearch | context.fileFiltering.enableFuzzySearch | |
disableCacheControl | model.generationConfig.enableCacheControl |
Инверсия логических значений: При миграции логические значения инвертируются (например, disableAutoUpdate: true становится enableAutoUpdate: false).
Политика объединения для disableAutoUpdate и disableUpdateNag
Если обе устаревшие настройки присутствуют с разными значениями, миграция следует такой политике: если хотя бы одна из настроек disableAutoUpdate или disableUpdateNag равна true, то enableAutoUpdate становится false:
disableAutoUpdate | disableUpdateNag | Мигрированное enableAutoUpdate |
|---|---|---|
false | false | true |
false | true | false |
true | false | false |
true | true | false |
Доступные настройки в settings.json
Настройки организованы по категориям. Большинство настроек следует размещать в соответствующем объекте категории верхнего уровня в вашем файле settings.json. Несколько настроек верхнего уровня, такие как proxy и plansDirectory, остаются прямыми корневыми ключами для совместимости.
general
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
general.preferredEditor | string | Предпочитаемый редактор для открытия файлов. | undefined |
general.vimMode | boolean | Включить привязки клавиш Vim. | false |
general.enableAutoUpdate | boolean | Включить автоматическую проверку обновлений и установку при запуске. | true |
general.showSessionRecap | boolean | Автоматически показывать однострочный обзор «где вы остановились» при возвращении в терминал после отсутствия. По умолчанию выключено. Используйте /recap для ручного вызова независимо от этой настройки. | false |
general.sessionRecapAwayThresholdMinutes | number | Минуты, в течение которых терминал должен быть не в фокусе, чтобы при возврате фокуса сработал автообзор. Используется только когда включена настройка showSessionRecap. | 5 |
general.gitCoAuthor.commit | boolean | Добавляет блок Co-authored-by в сообщения git commit и прикрепляет пофайловую заметку git об авторстве ИИ (refs/notes/ai-attribution) для коммитов, сделанных через Qwen Code. Отключение пропускает оба действия. | true |
general.gitCoAuthor.pr | boolean | Добавляет строку об авторстве Qwen Code в описания pull request при выполнении gh pr create. | true |
general.defaultFileEncoding | string | Кодировка по умолчанию для новых файлов. Используйте "utf-8" (по умолчанию) для UTF-8 без BOM или "utf-8-bom" для UTF-8 с BOM. Меняйте эту настройку, только если ваш проект явно требует BOM. | "utf-8" |
general.cleanupPeriodDays | number | Количество дней хранения резервных копий сессий в ~/.qwen/file-history/, используемых командой /rewind. Резервные копии старше этого срока удаляются фоновым процессом, который запускается не чаще одного раза в день. 0 = минимальное хранение (~1 час): сохраняются сессии, к которым обращались за последний час, плюс текущая активная. Изменения вступают в силу после перезапуска. | 30 |
general.language | enum | Язык пользовательского интерфейса. Используйте "auto" для автоматического определения из системных настроек или код языка (например, "zh-CN", "fr"). Можно добавить собственные коды, поместив JS-файлы локализации в ~/.qwen/locales/. См. i18n. Требуется перезапуск. | "auto" |
general.outputLanguage | string | Язык вывода модели. Используйте "auto" для автоматического определения из системных настроек или укажите конкретный язык. Требуется перезапуск. | "auto" |
general.dynamicCommandTranslation | boolean | Включить перевод ИИ описаний динамических слэш-команд. При отключении динамические команды сохраняют исходные описания и пропускают вызовы модели перевода. | false |
output
| Настройка | Тип | Описание | По умолчанию | Возможные значения |
|---|---|---|---|---|
output.format | string | Формат вывода CLI. | "text" | "text", "json" |
output.showTimestamps | boolean | Показывать метку времени [HH:MM:SS] перед каждым ответом ассистента. | false |
ui
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
ui.theme | string | Цветовая тема интерфейса. См. Темы для доступных вариантов. | "Qwen Dark" |
ui.customThemes | object | Определения пользовательских тем. | {} |
ui.statusLine | object | Настройка пользовательской строки состояния. Поддерживает опции command, refreshInterval, respectUserColors и hideContextIndicator. См. Строка состояния. | undefined |
ui.hideWindowTitle | boolean | Скрыть строку заголовка окна. | false |
ui.hideTips | boolean | Скрыть все подсказки (при запуске и после ответов) в интерфейсе. См. Контекстные подсказки. | false |
ui.hideBanner | boolean | Скрыть ASCII логотип и информационную панель при запуске. Подсказки и поле ввода чата всё ещё отображаются, если также не установлена настройка ui.hideTips. | false |
ui.customBannerTitle | string | Заменить стандартный заголовок >_ Qwen Code в информационной панели баннера. Суффикс версии (vX.Y.Z) всегда добавляется; строки аутентификации, модели и пути не затрагиваются. Санитизировано; ограничено 80 символами. | "" |
ui.customBannerSubtitle | string | Необязательная строка подзаголовка, отображаемая между заголовком баннера и строкой аутентификации/модели, вместо пустой строки-разделителя. Санитизировано; ограничено 160 символами. Пустое значение (по умолчанию) оставляет оригинальный пустой разделитель. | "" |
ui.customAsciiArt | string | object | Заменяет ASCII логотип QWEN в баннере. Принимает строку (используется для обоих уровней ширины), { "path": "./brand.txt" } (относительные пути разрешаются относительно каталога файла настроек; читается один раз при запуске с O_NOFOLLOW на POSIX, ограничено 64 КБ) или { "small": ..., "large": ... } для выбора в зависимости от ширины. Санитизировано; ограничено 200 строк × 200 столбцов на уровень. | undefined |
ui.showLineNumbers | boolean | Показывать номера строк в блоках кода в выводе CLI. | true |
ui.renderMode | string | Режим отображения Markdown по умолчанию. Используйте "render" для насыщенных визуальных предпросмотров или "raw" для отображения исходного Markdown. Переключение во время сессии с помощью Alt/Option+M; на macOS терминал должен отправлять Option как Meta. См. Отображение Markdown. | "render" |
ui.showCitations | boolean | Показывать цитаты для сгенерированного текста в чате. | false |
ui.history.collapseOnResume | boolean | Сворачивать ли историю по умолчанию при возобновлении сессии. Можно переключать с помощью /history collapse-on-resume и /history expand-on-resume. | false |
ui.compactMode | boolean | Скрывать вывод инструментов и размышления для более чистого вида. Переключение с помощью Ctrl+O во время сессии или через диалог настроек. Запросы на одобрение инструментов никогда не скрываются, даже в компактном режиме. Настройка сохраняется между сессиями. | false |
ui.shellOutputMaxLines | number | Максимальное количество строк вывода оболочки, отображаемых встроенно. Установите 0, чтобы отключить ограничение и показывать полный вывод. Скрытые строки отображаются через индикатор +N lines. Ошибки, команды, инициированные пользователем с префиксом !, подтверждающие инструменты и активные встроенные оболочки всегда показывают полный вывод. | 5 |
ui.enableWelcomeBack | boolean | Показывать диалог «с возвращением» при возвращении к проекту с историей разговора. При включении Qwen Code автоматически определяет, возвращаетесь ли вы к проекту с ранее созданным сводкой проекта (.qwen/PROJECT_SUMMARY.md), и показывает диалог, позволяющий продолжить предыдущий разговор или начать заново. Если вы выберете Начать новый чат, этот выбор запоминается для текущего проекта до изменения сводки проекта. Эта функция интегрируется с командой /summary и диалогом подтверждения выхода. | true |
ui.accessibility.enableLoadingPhrases | boolean | Включить загрузочные фразы (отключите для доступности). | true |
ui.accessibility.screenReader | boolean | Включает режим экранного диктора, который адаптирует TUI для лучшей совместимости с программами чтения с экрана. | false |
ui.customWittyPhrases | array of strings | Список пользовательских фраз для отображения во время загрузки. При наличии CLI будет циклически показывать эти фразы вместо стандартных. | [] |
ui.showResponseTokensPerSecond | boolean | Показывать оценку токенов/сек в реальном времени рядом со счетчиком токенов ответа во время потоковой передачи модели. Это подсказка скорости генерации, а не ETA или процент завершения. Вступает в силу в следующей сессии. | false |
ui.enableFollowupSuggestions | boolean | Включить предложения продолжения, которые предсказывают, что вы хотите ввести дальше после ответа модели. Предложения отображаются как текст-заполнитель и принимаются с помощью Tab, Enter или Стрелки вправо (они заполняют ввод — не отправляют автоматически). Включено по умолчанию; установите false, чтобы отказаться. | true |
ui.enableCacheSharing | boolean | Использовать кэш-осведомленные разветвленные запросы для генерации предложений. Снижает затраты на провайдерах, поддерживающих кэширование префиксов (экспериментально). | true |
ui.enableSpeculation | boolean | Спекулятивно выполнять принятые предложения до отправки. Результаты появляются мгновенно после принятия (экспериментально). | false |
ide
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
ide.enabled | boolean | Включить режим интеграции с IDE. | false |
ide.hasSeenNudge | boolean | Просматривал ли пользователь подсказку об интеграции с IDE. | false |
privacy
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
privacy.usageStatisticsEnabled | boolean | Включить сбор статистики использования. | true |
model
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
model.name | string | Модель Qwen для использования в диалогах. | undefined |
model.maxSessionTurns | number | Максимальное количество оборотов пользователь/модель/инструмент, сохраняемых в сессии. -1 означает без ограничений. | -1 |
model.maxWallTimeSeconds | number | Бюджет астрономического времени для автоматических / фоновых прогонов, в секундах. -1 означает без ограничений. Можно переопределить для каждого вызова с помощью --max-wall-time, которое требует положительной длительности (90, 30s, 5m, 1h, 1.5h); минимум 1 секунда — значения меньше секунды (500ms, 0.5) отклоняются как опечатки. Если флаг опущен, используется это значение. Прерывается с кодом выхода 55 при превышении. | -1 |
model.maxToolCalls | number | Совокупный бюджет вызовов инструментов для одного прогона (учитывается каждый выполненный инструмент, успешный или нет; structured_output при --json-schema исключён). -1 означает без ограничений; 0 означает «вызовы инструментов запрещены». Максимум 1 000 000 для предотвращения опечаток. Можно переопределить с помощью --max-tool-calls. Прерывается с кодом выхода 55 при превышении. | -1 |
model.generationConfig | object | Расширенные переопределения, передаваемые базовому генератору контента. Поддерживает управляющие параметры запроса, такие как 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 (дополнительные параметры тела запроса только для запросов API, совместимых с OpenAI), а также точные настройки в samplingParams (например, temperature, top_p, max_tokens). Если не задано, используются значения по умолчанию провайдера. | undefined |
model.chatCompression.contextPercentageThreshold | number | УДАЛЕНО. Авто-уплотнение теперь использует трёхуровневую лестницу порогов (предупреждение / авто / жёсткий), вычисляемую внутренне на основе окна контекста модели с помощью функции computeThresholds() — больше не настраивается пользователем. Установка этого поля в settings.json игнорируется без предупреждения (без сообщения при запуске). В настоящее время нет замены для «полного отключения сжатия» — реактивное восстановление при переполнении остаётся предохранительным механизмом на уровне API, если само сжатие даёт сбой. (См. PR #4345 / docs/design/auto-compaction-threshold-redesign.md для обоснования изменений.) | N/A |
model.chatCompression.maxRecentFilesToRetain | number | Количество недавно изменённых файлов, содержимое которых восстанавливается (встраивается, если файл мал, или ссылается по пути) в историю после автоматического уплотнения. 0 — не восстанавливать ни одного. Переопределение через переменную окружения: QWEN_COMPACT_MAX_RECENT_FILES. | 5 |
model.chatCompression.maxRecentImagesToRetain | number | Количество самых недавних изображений (скриншотов инструментов / вставок пользователя), восстанавливаемых в историю после автоматического уплотнения. 0 — не восстанавливать ни одного. Переопределение через переменную окружения: QWEN_COMPACT_MAX_RECENT_IMAGES. | 3 |
model.chatCompression.enableScreenshotTrigger | boolean | Если true, автоматическое уплотнение также срабатывает, когда количество изображений, возвращённых инструментом и накопленных в истории, достигает screenshotTriggerThreshold, независимо от использования токенов — предназначено для сессий с управлением компьютером, где частые скриншоты размывают внимание модели. Учитываются только изображения, возвращённые внутри результатов инструмента, а не вставленные пользователем. Переопределение через переменную окружения: QWEN_COMPACT_SCREENSHOT_TRIGGER (1/true/0/false). | true |
model.chatCompression.screenshotTriggerThreshold | number | Количество возвращённых инструментом изображений, при достижении или превышении которого срабатывает триггер скриншотов (только если enableScreenshotTrigger). Уплотнение сбрасывает счётчик — выжившие изображения повторно встраиваются как элементы верхнего уровня, которые триггер не учитывает, — так что он не сработает сразу снова. Переопределение через переменную окружения: QWEN_COMPACT_SCREENSHOT_THRESHOLD. | 50 |
model.skipNextSpeakerCheck | boolean | Пропустить проверку следующего говорящего. | true |
model.skipLoopDetection | boolean | Отключает проверки обнаружения цикла потоковой передачи. По умолчанию true (обнаружение цикла пропускается), чтобы избежать ложных срабатываний, прерывающих легитимные рабочие процессы. Установите false, чтобы повторно включить обнаружение цикла потоковой передачи — полезно в качестве предохранителя в автоматических / неинтерактивных прогонах, где зацикленное повторение может зря расходовать бюджет. | true |
model.skipStartupContext | boolean | Пропускает отправку стартового контекста рабочего пространства (сводка окружения и подтверждение) в начале каждой сессии. Включите, если предпочитаете предоставлять контекст вручную или хотите сэкономить токены при запуске. | false |
model.enableOpenAILogging | boolean | Включает логирование вызовов API OpenAI для отладки и анализа. При включении запросы и ответы API логируются в JSON-файлы. | false |
model.openAILoggingDir | string | Путь к пользовательской директории для логов API OpenAI. Если не задан, по умолчанию используется 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
}
}
}
}max_tokens (адаптивные выходные токены):
Если samplingParams.max_tokens не задан, Qwen Code использует адаптивную стратегию выходных токенов для оптимизации использования GPU:
- Запросы начинаются с лимита по умолчанию 8K выходных токенов.
- Если ответ обрезан (модель достигла лимита), Qwen Code автоматически повторяет запрос с лимитом 64K токенов.
- Частичный вывод отбрасывается и заменяется полным ответом от повторного запроса.
Это прозрачно для пользователей — вы можете кратко увидеть индикатор повторной попытки, если произошла эскалация. Поскольку 99% ответов укладываются в 5K токенов, повторный запрос происходит редко (<1% запросов).
Чтобы переопределить это поведение, задайте 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
| Параметр | Тип | Описание | По умолчанию |
|---|---|---|---|
fastModel | string | Модель, используемая для генерации подсказок (prompt suggestions) и спекулятивного выполнения. Оставьте пустым, чтобы использовать основную модель. Меньшая/более быстрая модель (например, qwen3-coder-flash) снижает задержку и стоимость. Также можно задать через /model --fast. | "" |
context
| Параметр | Тип | Описание | По умолчанию |
|---|---|---|---|
context.fileName | string или array of strings | Имя файла(ов) контекста. | undefined |
context.importFormat | string | Формат, используемый при импорте памяти. | undefined |
context.includeDirectories | array | Дополнительные каталоги для включения в контекст рабочей области. Указывает массив дополнительных абсолютных или относительных путей для включения в контекст рабочей области. Отсутствующие каталоги по умолчанию будут пропущены с предупреждением. В путях можно использовать ~ для обозначения домашнего каталога пользователя. Этот параметр можно комбинировать с флагом командной строки --include-directories. | [] |
context.loadFromIncludeDirectories | boolean | Управляет поведением команды /memory refresh. Если установлено true, файлы QWEN.md должны загружаться из всех добавленных каталогов. Если установлено false, файлы QWEN.md должны загружаться только из текущего каталога. | false |
context.fileFiltering.respectGitIgnore | boolean | Учитывать файлы .gitignore при поиске. | true |
context.fileFiltering.respectQwenIgnore | boolean | Учитывать файлы .qwenignore и настроенные пользовательские файлы игнорирования при поиске. | true |
context.fileFiltering.customIgnoreFiles | array | Файлы игнорирования относительно корня проекта, используемые вместо файлов совместимости по умолчанию (.agentignore, .aiignore), когда respectQwenIgnore включен. Файл .qwenignore всегда включается. | [".agentignore", ".aiignore"] |
context.fileFiltering.enableRecursiveFileSearch | boolean | Включать ли рекурсивный поиск имен файлов в текущем дереве при завершении префиксов @ в подсказке. | true |
context.fileFiltering.enableFuzzySearch | boolean | Если true, включает нечеткий поиск при поиске файлов. Установите false для повышения производительности в проектах с большим количеством файлов. | true |
context.clearContextOnIdle.toolResultsThresholdMinutes | number | Количество минут бездействия перед очисткой старого содержимого результатов работы инструментов. Используйте -1, чтобы отключить триггер простоя. | 60 |
context.clearContextOnIdle.toolResultsNumToKeep | integer | Целое число — количество последних компактизируемых результатов инструментов, которое следует сохранять при очистке. Значения ниже 1 округляются до 1. | 5 |
context.clearContextOnIdle.toolResultsTotalCharsThreshold | number | Общее количество символов в компактизируемых результатах инструментов, разрешенное в истории, прежде чем будут удалены самые старые результаты. Используйте -1, чтобы отключить триггер размера. Это мягкий порог: защищенные недавние результаты инструментов могут удерживать общее количество выше порога. | 500000 |
Устранение проблем с производительностью поиска файлов
Если вы испытываете проблемы с производительностью при поиске файлов (например, при завершении @), особенно в проектах с очень большим количеством файлов, вот несколько вариантов, которые можно попробовать в порядке рекомендации:
- Используйте файл игнорирования: Создайте файл
.qwenignoreили настроенный пользовательский файл игнорирования в корне проекта, чтобы исключить каталоги, содержащие большое количество файлов, на которые вам не нужно ссылаться (например, артефакты сборки, логи,node_modules). Уменьшение общего количества обходных файлов — самый эффективный способ повысить производительность. - Отключите нечеткий поиск: Если игнорирования файлов недостаточно, вы можете отключить нечеткий поиск, установив
enableFuzzySearchвfalseв файлеsettings.json. Это будет использовать более простой, не нечеткий алгоритм сопоставления, который может быть быстрее. - Отключите рекурсивный поиск файлов: В крайнем случае вы можете полностью отключить рекурсивный поиск файлов, установив
enableRecursiveFileSearchвfalse. Это будет самый быстрый вариант, так как он избегает рекурсивного обхода проекта. Однако это означает, что вам нужно будет вводить полный путь к файлам при использовании завершения@.
tools
| Параметр | Тип | Описание | По умолчанию | Примечания |
|---|---|---|---|---|
tools.sandbox | boolean или string | Среда выполнения песочницы (может быть логическим значением или строкой пути). | undefined | |
tools.sandboxImage | string | URI образа песочницы, используемый Docker/Podman, если не заданы --sandbox-image и QWEN_SANDBOX_IMAGE. | undefined | |
tools.shell.enableInteractiveShell | boolean | Использовать node-pty для интерактивной оболочки. Резервное поведение с child_process все еще применяется. | true | |
tools.core | array of strings | Устарело. Будет удалено в следующей версии. Используйте permissions.allow + permissions.deny вместо этого. Ограничивает встроенные инструменты списком разрешенных. Все инструменты, не включенные в список, отключаются. | undefined | |
tools.exclude | array of strings | Устарело. Используйте permissions.deny вместо этого. Имена инструментов, которые следует исключить из обнаружения. Автоматически переносится в формат permissions при первой загрузке. | undefined | |
tools.allowed | array of strings | Устарело. Используйте permissions.allow вместо этого. Имена инструментов, которые пропускают диалог подтверждения. Автоматически переносится в формат permissions при первой загрузке. | undefined | |
tools.approvalMode | string | Устанавливает режим подтверждения по умолчанию для использования инструментов. | default | Возможные значения: plan (только анализ, не изменять файлы и не выполнять команды), default (требовать подтверждения перед редактированием файлов или выполнением команд оболочки), auto-edit (автоматически одобрять редактирование файлов), auto (классификатор LLM автоматически одобряет безопасные действия, блокирует рискованные), yolo (автоматически одобрять все вызовы инструментов) |
tools.discoveryCommand | string | Команда для запуска обнаружения инструментов. | undefined | |
tools.callCommand | string | Определяет пользовательскую команду оболочки для вызова конкретного инструмента, обнаруженного с помощью tools.discoveryCommand. Команда оболочки должна соответствовать следующим требованиям: она должна принимать имя функции name (в точности как в объявлении функции ) в качестве первого аргумента командной строки. Она должна читать аргументы функции как JSON из stdin, аналогично functionCall.args. Она должна возвращать вывод функции как JSON в stdout, аналогично functionResponse.response.content. | undefined | |
tools.useRipgrep | boolean | Использовать ripgrep для поиска содержимого файлов вместо резервной реализации. Обеспечивает более высокую производительность поиска. | true | |
tools.useBuiltinRipgrep | boolean | Использовать встроенный бинарный файл ripgrep. Если установлено false, будет использоваться системная команда rg. Этот параметр действует только когда tools.useRipgrep равно true. | true | |
tools.truncateToolOutputThreshold | number | Обрезать вывод инструмента, если он превышает это количество символов. Применяется к инструментам Shell, Grep, Glob, ReadFile и ReadManyFiles. | 25000 | Требуется перезапуск: Да |
tools.truncateToolOutputLines | number | Максимальное количество строк или записей, сохраняемых при усечении вывода инструмента. Применяется к инструментам Shell, Grep, Glob, ReadFile и ReadManyFiles. | 1000 | Требуется перезапуск: Да |
tools.computerUse.enabled | boolean | Включает встроенные инструменты Computer Use (cua-driver — нативная автоматизация рабочего стола). Если true (по умолчанию), инструменты computer_use__* регистрируются как отложенные встроенные; первый вызов загружает подписанный бинарный файл cua-driver в ~/.qwen/computer-use/ и запрашивает разрешения macOS Accessibility / Screen Recording. | true | Требуется перезапуск: Да |
tools.computerUse.maxImageDimension | number | Пиксельное ограничение по самой длинной стороне для скриншотов cua-driver (через set_config’s max_image_dimension). -1 (по умолчанию) оставляет внутреннее значение по умолчанию cua-driver (1568); 0 отключает изменение размера (полное разрешение); положительное значение ограничивает самую длинную сторону. Меньшие ограничения снижают стоимость vision-токенов за счет мелких деталей. | -1 | Требуется перезапуск: Да. Переопределение через переменную окружения: QWEN_COMPUTER_USE_MAX_IMAGE_DIMENSION (неотрицательное целое; имеет приоритет над этой настройкой) |
Миграция с tools.core / tools.exclude / tools.allowed: Эти устаревшие настройки объявлены устаревшими и при первой загрузке автоматически мигрируются в новый формат permissions. Предпочтительнее настраивать permissions.allow / permissions.deny напрямую. Используйте /permissions для интерактивного управления правилами.
memory
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
memory.enableManagedAutoMemory | boolean | Включить фоновое извлечение воспоминаний из диалогов. | true |
memory.enableManagedAutoDream | boolean | Включить автоматическую консолидацию (дедупликацию и очистку) собранных воспоминаний. | true |
memory.enableAutoSkill | boolean | Включать фоновый анализ на наличие переиспользуемых навыков проекта после сессий с интенсивным использованием инструментов. | true |
memory.autoSkillConfirm | boolean | Запрашивать подтверждение перед добавлением автоматически сгенерированных навыков в библиотеку навыков. При выключении навыки сохраняются сразу. | true |
Подробнее о том, как работает автомагия памяти и как использовать команды /memory, /remember и /dream, см. в разделе Memory.
permissions
Система прав предоставляет тонкий контроль над тем, какие инструменты могут выполняться, какие требуют подтверждения, а какие заблокированы.
Приоритет принятия решений (от высшего к низшему): deny > ask > allow > (default/interactive mode)
Первое совпавшее правило побеждает. Правила используют формат "ToolName" или "ToolName(specifier)".
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
permissions.allow | array of strings | Правила для автоматически одобренных вызовов инструментов (подтверждение не требуется). Объединяются по всем областям (пользователь + проект + система). | undefined |
permissions.ask | array of strings | Правила для вызовов инструментов, которые всегда требуют подтверждения пользователя. Имеют приоритет над allow. | undefined |
permissions.deny | array of strings | Правила для заблокированных вызовов инструментов. Высший приоритет — переопределяет и allow, и ask. | undefined |
Псевдонимы имён инструментов (в правилах работают любые из них):
| Псевдоним | Канонический инструмент | Примечания |
|---|---|---|
Bash, Shell | run_shell_command | |
Read, ReadFile | read_file | Мета-категория — см. ниже |
Edit, EditFile | edit | Мета-категория — см. ниже |
Write, WriteFile | write_file | |
NotebookEdit | notebook_edit | |
NotebookEditTool | notebook_edit | |
Grep, SearchFiles | grep_search | |
Glob, FindFiles | glob | |
ListFiles | list_directory | |
WebFetch | web_fetch | |
Agent | task | |
Skill | skill |
Мета-категории:
Некоторые имена правил автоматически охватывают несколько инструментов:
| Имя правила | Охватываемые инструменты |
|---|---|
Read | read_file, grep_search, glob, list_directory |
Edit | edit, write_file, notebook_edit |
[!important]
Read(/path/**)соответствует всем четырём инструментам чтения (чтение файла, grep, glob и список каталогов). Чтобы ограничить только чтение файлов, используйтеReadFile(/path/**)илиread_file(/path/**).
Примеры синтаксиса правил:
| Правило | Значение |
|---|---|
"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 |
Префиксы шаблонов путей:
| Префикс | Значение | Пример |
|---|---|---|
// | Абсолютный путь от корня файловой системы | //etc/passwd |
~/ | Относительно домашнего каталога | ~/Documents/*.pdf |
/ | Относительно корня проекта | /src/**/*.ts |
./ | Относительно текущего рабочего каталога | ./secrets/** |
| (нет) | То же, что ./ | secrets/** |
Предотвращение обхода через shell-команды:
Правила разрешений для Read, Edit и WebFetch также применяются, когда агент запускает эквивалентные shell-команды. Например, если Read(./.env) указан в deny, агент не сможет обойти это с помощью cat .env в shell-команде. Поддерживаемые shell-команды включают cat, grep, curl, wget, cp, mv, rm, chmod и многие другие. Неизвестные/безопасные команды (например, git) не затрагиваются правилами для файлов/сети.
Миграция с устаревших настроек:
| Устаревшая настройка | Эквивалентное правило permissions | Примечания |
|---|---|---|
tools.allowed | permissions.allow | Автоматически мигрируется при первой загрузке |
tools.exclude | permissions.deny | Автоматически мигрируется при первой загрузке |
tools.core | permissions.allow (белый список) | Автоматически мигрируется; инструменты не из списка отключаются на уровне реестра |
Пример конфигурации:
{
"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
Управляет доступными в CLI слэш-командами. Полезно для ограничения набора команд в мультитенантных или корпоративных развёртываниях.
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
slashCommands.disabled | array of strings | Имена слэш-команд, которые будут скрыты и не будут выполняться. Сравнение без учёта регистра по окончательному имени команды (для команд расширений это форма с устранением неоднозначности, например myext.deploy). Объединяется как объединение областей, поэтому настройки рабочей области могут добавлять, но не удалять записи, определённые в пользовательских или системных настройках. | undefined |
Тот же список запрещённых команд можно задать через флаг 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] Эта настройка управляет только слэш-командами (например,
/auth,/mcp). Она не влияет на разрешения инструментов — для этого используйтеpermissions.deny. Также она не перехватывает сочетания клавиш, такие какCtrl+CилиEsc.
mcp
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
mcp.serverCommand | string | Команда для запуска MCP-сервера. | undefined |
mcp.allowed | array of strings | Белый список MCP-серверов, которые разрешены. Позволяет указать список имён MCP-серверов, которые должны быть доступны модели. Может использоваться для ограничения набора подключаемых MCP-серверов. Обратите внимание: этот параметр игнорируется, если задан --allowed-mcp-server-names. | undefined |
mcp.excluded | array of strings | Чёрный список MCP-серверов, которые исключаются. Сервер, указанный и в mcp.excluded, и в mcp.allowed, исключается. Обратите внимание: этот параметр игнорируется, если задан --allowed-mcp-server-names. | undefined |
Замечание по безопасности MCP-серверов: Эти настройки используют простое сопоставление строк по именам MCP-серверов, которое может быть изменено. Если вы системный администратор и хотите предотвратить обход этой настройки пользователями, рассмотрите возможность настройки mcpServers на уровне системных настроек, чтобы пользователь не мог настроить свои собственные MCP-серверы. Не используйте это как абсолютный механизм безопасности.
lsp
[!warning] Экспериментальная функция: Поддержка LSP в настоящее время экспериментальна и отключена по умолчанию. Включите её с помощью флага командной строки
--experimental-lsp.
Протокол Language Server Protocol (LSP) предоставляет функции интеллектуальной работы с кодом, такие как переход к определению, поиск ссылок и диагностика.
Конфигурация LSP-сервера осуществляется через файлы .lsp.json в корневой директории проекта, а не через settings.json. Подробную информацию о конфигурации и примеры см. в документации по LSP.
security
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
security.folderTrust.enabled | boolean | Настройка для отслеживания, включено ли доверие к папкам. | false |
security.auth.selectedType | string | Текущий выбранный тип аутентификации. | undefined |
security.auth.enforcedType | string | Требуемый тип аутентификации (полезно для предприятий). | undefined |
security.auth.useExternal | boolean | Использовать ли внешний поток аутентификации. | undefined |
advanced
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
advanced.autoConfigureMemory | boolean | Автоматически настраивать лимиты памяти Node.js. | false |
advanced.dnsResolutionOrder | string | Порядок разрешения DNS. | undefined |
advanced.excludedEnvVars | array of strings | Переменные окружения, исключаемые из контекста проекта. Указывает переменные окружения, которые не следует загружать из файлов .env проекта. Это предотвращает влияние переменных окружения, специфичных для проекта (например, DEBUG=true), на поведение CLI. Переменные из файлов .qwen/.env никогда не исключаются. | ["DEBUG","DEBUG_MODE"] |
advanced.bugCommand | object | Конфигурация команды отправки отчёта об ошибке. Переопределяет URL по умолчанию для команды /bug. Свойства: urlTemplate (string): URL, который может содержать заполнители {title} и {info}. Пример: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" } | undefined |
plansDirectory | string | Пользовательская директория для утверждённых файлов Plan Mode. Относительные пути разрешаются относительно корня проекта, и разрешённый путь должен оставаться в пределах корня проекта. Если не задано, файлы планов хранятся в ~/.qwen/plans. Требуется перезапуск. Если директория находится внутри корня проекта, добавьте её в .gitignore, чтобы не коммитить файлы планов. | undefined |
experimental
Экспериментальные функции. Эти переключатели открывают возможности, находящиеся в разработке, и могут измениться или быть удалены в будущих версиях.
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
experimental.cron | boolean | Включить внутрисессионные инструменты cron/loop (cron_create, cron_list, cron_delete), чтобы модель могла создавать повторяющиеся промпты. Можно отключить с помощью переменной окружения QWEN_CODE_DISABLE_CRON=1. Требуется перезапуск. | true |
experimental.agentTeam | boolean | Включить инструменты для совместной работы агентских команд (team_create, task_create, task_update, send_message и т.д.) для координации нескольких агентов. Также можно включить через QWEN_CODE_ENABLE_AGENT_TEAM=1. Требуется перезапуск. | false |
experimental.artifact | boolean | Включить инструмент Artifact, позволяющий модели публиковать самодостаточную HTML-страницу и открывать её в браузере. Только интерактивные сессии, не SDK. Включение/отключение через QWEN_CODE_ENABLE_ARTIFACT=1 / QWEN_CODE_DISABLE_ARTIFACT=1. Требуется перезапуск. | false |
experimental.emitToolUseSummaries | boolean | Генерировать краткую аннотацию на основе 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>.command | string | Команда для запуска MCP-сервера через стандартный ввод/вывод. | Да |
mcpServers.<SERVER_NAME>.args | array of strings | Аргументы для команды. | Да |
mcpServers.<SERVER_NAME>.env | object | Переменные окружения для процесса сервера. | Да |
mcpServers.<SERVER_NAME>.cwd | string | Рабочая директория, в которой запускать сервер. | Да |
mcpServers.<SERVER_NAME>.url | string | URL MCP-сервера, использующего Server-Sent Events (SSE) для связи. | Да |
mcpServers.<SERVER_NAME>.httpUrl | string | URL MCP-сервера, использующего потоковый HTTP для связи. | Да |
mcpServers.<SERVER_NAME>.headers | object | Карта HTTP-заголовков для отправки с запросами к url или httpUrl. | Да |
mcpServers.<SERVER_NAME>.timeout | number | Тайм-аут в миллисекундах для запросов к этому MCP-серверу. | Да |
mcpServers.<SERVER_NAME>.trust | boolean | Доверять этому серверу и пропускать все подтверждения вызовов инструментов. | Да |
mcpServers.<SERVER_NAME>.description | string | Краткое описание сервера, которое может использоваться для отображения. | Да |
mcpServers.<SERVER_NAME>.includeTools | array of strings | Список имён инструментов, которые следует включить из этого MCP-сервера. Если указано, из этого сервера будут доступны только перечисленные инструменты (поведение белого списка). Если не указано, все инструменты сервера включены по умолчанию. | Да |
mcpServers.<SERVER_NAME>.excludeTools | array of strings | Список имён инструментов, которые следует исключить из этого MCP-сервера. Инструменты, перечисленные здесь, не будут доступны модели, даже если они предоставляются сервером. Примечание: excludeTools имеет приоритет над includeTools — если инструмент указан в обоих списках, он будет исключён. | Да |
telemetry
Настраивает сбор логов и метрик для Qwen Code. Дополнительную информацию см. в разделе telemetry.
| Настройка | Тип | Описание | По умолчанию |
|---|---|---|---|
telemetry.enabled | boolean | Включена ли телеметрия. | |
telemetry.target | string | Информационная метка для назначения телеметрии (local или gcp). Не управляет маршрутизацией экспортера; задайте telemetry.otlpEndpoint или telemetry.outfile, чтобы настроить, куда отправляются данные. | |
telemetry.otlpEndpoint | string | Конечная точка для OTLP-экспортера. | |
telemetry.otlpProtocol | string | Протокол для OTLP-экспортера (grpc или http). | |
telemetry.logPrompts | boolean | Включать ли содержимое пользовательских промптов в логи. | |
telemetry.includeSensitiveSpanAttributes | boolean | Если включено, добавляет исходные пользовательские промпты, системные промпты, ввод/вывод инструментов и ответы модели в нативные атрибуты спанов OTel (дополнительно к спанам моста log-to-span). ⚠️ Передаёт конфиденциальные данные — содержимое файлов, команды оболочки, историю диалогов — в ваш OTLP-бэкенд. | false |
telemetry.sensitiveSpanAttributeMaxLength | number | Максимальная длина строки JavaScript для каждого полезного содержимого конфиденциального атрибута спана в нативном OTel. Должно быть от 1 до 104857600 (100 МиБ). Установите меньшее значение, если ваш коллектор или бэкенд отклоняет большие атрибуты. | 1048576 |
telemetry.outfile | string | Путь для записи телеметрии в файл. Если задан, переопределяет экспорт через OTLP. |
Пример settings.json
Ниже приведён пример файла settings.json с вложенной структурой, появившейся начиная с версии v0.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 см. в разделе Аутентификация.
Исключение переменных окружения: Некоторые переменные окружения (например, 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-последовательности. Рендерер возвращается к обычному отображению метка (url). |
CLI_TITLE | Установите строку, чтобы изменить заголовок CLI. | |
CODE_ASSIST_ENDPOINT | Указывает конечную точку для сервера кодовых подсказок. | Полезно для разработки и тестирования. |
QWEN_CODE_MAX_OUTPUT_TOKENS | Переопределяет максимальное количество выходных токенов по умолчанию для одного ответа. Если не задано, Qwen Code использует адаптивную стратегию: начинает с 8K токенов и при усечении ответа автоматически повторяет с 64K. Установите конкретное значение (например, 16000), чтобы использовать фиксированный лимит. | Имеет приоритет над лимитом по умолчанию (8K), но переопределяется настройкой samplingParams.max_tokens в settings. При установке отключает автоматическое увеличение. Пример: export QWEN_CODE_MAX_OUTPUT_TOKENS=16000 |
QWEN_CODE_UNATTENDED_RETRY | Установите true или 1, чтобы включить режим постоянных повторных попыток. При включении временные ошибки ёмкости API (HTTP 429 Rate Limit и 529 Overloaded) повторяются бесконечно с экспоненциальной задержкой (максимум 5 минут на повтор) и сигналом активности каждые 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, чтобы восстановить поведение до прогрессивного MCP, при котором Config.initialize() синхронно ожидает завершения рукопожатия discovery для каждого настроенного MCP-сервера перед возвратом. | По умолчанию выключен. Современный Qwen Code позволяет MCP-серверам подключаться в фоне, пока UI уже интерактивен; модель видит каждую партию новых инструментов примерно через 16 мс после того, как сервер стабилизируется. Этот флаг сохранён как аварийный люк для отката как минимум на один релиз. Пример: 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 "объясни этот код" |
--system-prompt | Переопределяет встроенный системный запрос основного сеанса для этого запуска. | Текст вашего запроса | Загруженные файлы контекста, такие как QWEN.md, по-прежнему добавляются после этого переопределения. Можно комбинировать с --append-system-prompt. | |
--append-system-prompt | Добавляет дополнительные инструкции к системному запросу основного сеанса для этого запуска. | Текст вашего запроса | Применяется после встроенного запроса и загруженных файлов контекста. Можно комбинировать с --system-prompt. См. Headless Mode для примеров. | |
--output-format | -o | Указывает формат вывода CLI для неинтерактивного режима. | text, json, stream-json | text: (по умолчанию) Стандартный читаемый человеком вывод. json: Машиночитаемый вывод JSON, выдаваемый в конце выполнения. stream-json: Потоковые сообщения JSON, выдаваемые по мере их возникновения во время выполнения. Для структурированного вывода и скриптов используйте флаг --output-format json или --output-format stream-json. См. Headless Mode для подробной информации. |
--input-format | Указывает формат, потребляемый из стандартного ввода. | text, stream-json | text: (по умолчанию) Стандартный текстовый ввод из 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, auto, yolo | Поддерживаемые режимы: plan: Только анализ — не изменяет файлы и не выполняет команды. default: Требуется одобрение для редактирования файлов или команд оболочки (поведение по умолчанию). 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 | Имена слеш-команд для скрытия/отключения (через запятую или повторяющиеся). Объединяется с настройкой 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 /путь/к/проекту1,/путь/к/проекту2 или --include-directories /путь/к/проекту1 --include-directories /путь/к/проекту2 | |
--screen-reader | Включает режим экранного диктора, который адаптирует TUI для лучшей совместимости с программами чтения с экрана. | |||
--version | Отображает версию CLI. | |||
--openai-logging | Включает логирование вызовов API OpenAI для отладки и анализа. | Этот флаг переопределяет настройку enableOpenAILogging в settings.json. | ||
--openai-logging-dir | Устанавливает пользовательский путь к каталогу для логов API OpenAI. | Путь к каталогу | Этот флаг переопределяет настройку openAILoggingDir в settings.json. Поддерживает абсолютные пути, относительные пути и подстановку ~. Пример: qwen --openai-logging-dir "~/qwen-logs" --openai-logging |
Контекстные файлы (иерархический инструктивный контекст)
Хотя строго говоря это не конфигурация для поведения CLI, контекстные файлы (по умолчанию QWEN.md, но настраиваются через параметр context.fileName) имеют решающее значение для настройки инструктивного контекста (также называемого “памятью”). Эта мощная функция позволяет давать AI инструкции, специфичные для проекта, руководства по стилю кодирования или любую релевантную фоновую информацию, делая его ответы более точными и соответствующими вашим потребностям. CLI включает элементы UI, такие как индикатор в нижнем колонтитуле, показывающий количество загруженных контекстных файлов, чтобы вы были в курсе активного контекста.
- Назначение: Эти 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.Этот пример демонстрирует, как вы можете предоставить общий контекст проекта, конкретные соглашения по кодированию и даже заметки об отдельных файлах или компонентах. Чем более релевантными и точными будут ваши контекстные файлы, тем лучше AI сможет вам помочь. Настоятельно рекомендуется использовать контекстные файлы, специфичные для проекта, чтобы установить соглашения и контекст.
- Иерархическая загрузка и приоритет: CLI реализует иерархическую систему памяти, загружая контекстные файлы (например,
QWEN.md) из нескольких местоположений. Содержимое файлов, расположенных ниже в этом списке (более специфичные), обычно переопределяет или дополняет содержимое файлов, расположенных выше (более общие). Точный порядок объединения и итоговый контекст можно просмотреть в диалоге/memory. Типичный порядок загрузки:- Глобальный контекстный файл:
- Расположение:
~/.qwen/<configured-context-filename>(например,~/.qwen/QWEN.mdв вашей домашней директории). - Область действия: Предоставляет инструкции по умолчанию для всех ваших проектов.
- Расположение:
- Контекстные файлы корня проекта и родительских каталогов:
- Расположение: CLI ищет настроенный контекстный файл в текущей рабочей директории, а затем в каждой родительской директории вплоть до корня проекта (определяется по папке
.git) или вашей домашней директории. - Область действия: Предоставляет контекст, относящийся ко всему проекту или его значительной части.
- Расположение: CLI ищет настроенный контекстный файл в текущей рабочей директории, а затем в каждой родительской директории вплоть до корня проекта (определяется по папке
- Глобальный контекстный файл:
- Объединение и индикация в UI: Содержимое всех найденных контекстных файлов объединяется (с разделителями, указывающими их источник и путь) и предоставляется как часть системного промпта. В нижнем колонтитуле CLI отображается количество загруженных контекстных файлов, что дает вам быструю визуальную подсказку об активном инструктивном контексте.
- Импорт содержимого: Вы можете модуляризировать свои контекстные файлы, импортируя другие Markdown-файлы с помощью синтаксиса
@path/to/file.md. Для получения дополнительной информации см. документацию Memory. - Команды для управления памятью:
- Используйте
/memory, чтобы открыть диалог управления памятью. - Обновите память из диалога, чтобы повторно просканировать и перезагрузить контекстные файлы из всех настроенных местоположений.
- Полную информацию о команде
/memoryсм. в документации по командам.
- Используйте
Понимая и используя эти уровни конфигурации и иерархическую природу контекстных файлов, вы сможете эффективно управлять памятью AI и настраивать ответы Qwen Code в соответствии с вашими конкретными потребностями и проектами.
Песочница (Sandbox)
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
}
}Когда статистика использования включена, события отправляются на конечную точку сбора Alibaba Cloud RUM.