Skip to Content
Руководство для пользователейВозможностиПамять

Память

Каждая сессия Qwen Code начинается с нового контекстного окна. Два механизма переносят знания между сессиями, чтобы вам не приходилось каждый раз объяснять всё заново:

  • QWEN.md — инструкции, которые вы пишете один раз, и Qwen читает их в каждой сессии
  • Auto-memory — заметки, которые Qwen создает сам на основе того, что узнает о вас

QWEN.md: ваши инструкции для Qwen

QWEN.md — это обычный текстовый файл, в котором вы указываете то, что Qwen должен всегда знать о вашем проекте или ваших предпочтениях. Считайте его постоянным брифингом, который загружается в начале каждого диалога.

Что включать в QWEN.md

Добавьте вещи, которые иначе пришлось бы повторять в каждой сессии:

  • Команды для сборки и тестирования (npm run test, make build)
  • Соглашения о стиле кода, которых придерживается ваша команда («все новые файлы должны иметь комментарии JSDoc»)
  • Архитектурные решения («мы используем паттерн Repository, никогда не обращаемся к базе данных напрямую из контроллеров»)
  • Личные предпочтения («всегда использовать pnpm, а не npm»)

Не включайте то, что Qwen может понять, просто прочитав ваш код. QWEN.md работает лучше всего, когда он короткий и конкретный — чем он длиннее, тем менее надежно Qwen ему следует.

Где создавать QWEN.md

ФайлДля кого применяется
~/.qwen/QWEN.mdДля вас, во всех ваших проектах
QWEN.md в корне проектаДля всей вашей команды (закоммитьте в git)
.qwen/QWEN.local.mdТолько для вас, только в этом проекте (исключите из git)

Вы можете использовать любую комбинацию этих файлов. Qwen загружает их все при запуске сессии.

Если в вашем репозитории уже есть файл AGENTS.md для других AI-инструментов, Qwen прочитает и его. Дублировать инструкции не нужно.

Когда использовать .qwen/QWEN.local.md

Используйте его для специфичных для проекта, но личных инструкций — вещей, которые относятся к этому проекту, но не должны передаваться команде:

  • Ваш собственный ID кластера, пространство имен в реестре контейнеров или облачный аккаунт
  • Личная команда для отладки, в которой захардкожены параметры вашего локального окружения
  • Заметки о вашей текущей работе, которые вы хотите, чтобы Qwen знал, но не коммитил

Он загружается после общего QWEN.md проекта, поэтому ваши локальные инструкции могут дополнять или переопределять командные.

Вам нужно самостоятельно добавить его в .gitignore. Хотя каталог .qwen/ часто считается локальным, qwen-code не создает .gitignore за вас, а некоторые проекты коммитят .qwen/settings.json. Добавьте эту строку в ваш .gitignore (или в глобальный gitignore):

.qwen/QWEN.local.md

Автоматическая генерация с помощью /init

Запустите /init, и Qwen проанализирует вашу кодовую базу, чтобы создать начальный QWEN.md с командами сборки, инструкциями по тестированию и найденными соглашениями. Если файл уже существует, он предложит дополнения вместо перезаписи.

Ссылки на другие файлы

Вы можете указать в QWEN.md на другие файлы, чтобы Qwen прочитал и их:

См. @README.md для обзора проекта. # Conventions - Git workflow: @docs/git-workflow.md

Используйте @path/to/file в любом месте QWEN.md. Относительные пути разрешаются относительно самого файла QWEN.md.


Auto-memory: что Qwen узнает о вас

Auto-memory работает в фоновом режиме. После каждого вашего диалога Qwen тихо сохраняет полезные вещи, которые он узнал — ваши предпочтения, оставленные отзывы, контекст проекта — чтобы использовать их в будущих сессиях без необходимости повторяться.

Это отличается от QWEN.md: вы его не пишете, это делает Qwen.

Что сохраняет Qwen

Qwen ищет четыре типа вещей, которые стоит запомнить:

ЧтоПримеры
О васВаша роль, бэкграунд, как вы любите работать
Ваши отзывыВнесенные вами исправления, подтвержденные подходы
Контекст проектаТекущая работа, решения, цели, неочевидные из кода
Внешние ссылкиДашборды, тикер-трекеры, ссылки на документацию, которые вы упоминали

Qwen сохраняет не всё — только то, что действительно будет полезно в следующий раз.

Где это хранится

Файлы Auto-memory находятся в ~/.qwen/projects/<project>/memory/. Все ветки и worktrees одного репозитория используют одну и ту же папку памяти, поэтому то, что Qwen узнает в одной ветке, доступно и в других.

Всё сохраненное — это обычный markdown, вы можете открыть, отредактировать или удалить любой файл в любое время.

Периодическая очистка

Qwen периодически просматривает сохраненные воспоминания, чтобы удалять дубликаты и очищать устаревшие записи. Это запускается автоматически в фоновом режиме раз в день после накопления достаточного количества сессий. Вы можете запустить это вручную с помощью /dream, если хотите, чтобы это выполнилось сейчас.

Ваша сессия продолжается в обычном режиме, пока очистка работает в фоновом режиме.

Включение и выключение

Auto-memory включена по умолчанию. Чтобы переключить её, откройте /memory и используйте переключатели вверху. Вы можете отключить только автоматическое сохранение, только периодическую очистку или и то, и другое.

Вы также можете настроить их в ~/.qwen/settings.json (применяется ко всем проектам) или .qwen/settings.json (только для этого проекта):

{ "memory": { "enableManagedAutoMemory": true, "enableManagedAutoDream": true } }

Командная память (доступна соавторам)

По умолчанию auto-memory является вашей личной — она находится в вашем домашнем каталоге и никогда не передается другим. Командная память — это опциональный уровень, которым вся команда делится через git.

При включении Qwen получает третий каталог памяти по пути .qwen/team-memory/ внутри репозитория. Он использует ту же структуру «один файл на одно воспоминание» и индекс MEMORY.md, что и личные уровни. Поскольку он коммитится в репозиторий, он доступен каждому соавтору стандартным способом: вы делаете git pull, чтобы получить воспоминания коллег, и коммитите/пушите, чтобы поделиться своими. Qwen направляет сюда долговечные, общепроектные знания — соглашения, которые должен соблюдать каждый участник, общие указатели (трекеры, дашборды) — в то время как личные и быстро устаревающие заметки остаются приватными.

Включите её для конкретного проекта (или глобально) в settings.json:

{ "memory": { "enableTeamMemory": true } }

По умолчанию она выключена. Учитывайте следующие нюансы:

  • Она контролируется системой версий и видна всем, у кого есть доступ к репозиторию. Относитесь к командной памяти как к коммиту в репозиторий.

  • Секреты блокируются. Записи в .qwen/team-memory/ сканируются на наличие учетных данных (API-ключи, токены, приватные ключи); обнаруженный секрет отклоняется и никогда не записывается. Сканирование — это последняя линия обороны, а не гарантия — не помещайте туда конфиденциальные данные.

  • Изменения можно ревьюить. Записи командной памяти появляются в git status / diff PR как любой другой файл, поэтому их можно проверить перед коммитом. В режиме подтверждения по умолчанию Qwen также спрашивает перед каждой командной записью; в режиме AUTO_EDIT/YOLO (где вы включили автоподтверждение) они применяются без запроса, но всё равно отображаются в diff.

  • Каталог должен отслеживаться в git. Если .gitignore вашего проекта исключает .qwen/*, повторно включите этот путь, чтобы он мог быть общим:

    !.qwen/team-memory/ !.qwen/team-memory/**

    Нюанс: используйте форму игнорирования файловых шаблонов (.qwen/*), а не форму каталога с косой чертой в конце (.qwen/). Игнорирование в форме каталога заставляет git полностью пропускать папку, поэтому повторное включение через ! ниже по тексту не сработает, и командный уровень останется молча пустым в git. Qwen один раз предупреждает при запуске, если уровень включен, но его каталог игнорируется в git или находится вне любого git-репозитория, так что эта неправильная конфигурация не останется незамеченной.

QWEN_CODE_MEMORY_TEAM=1 / =0 переопределяет настройку для одного запуска.

Автоматическая синхронизация git (опционально)

По умолчанию вы делитесь командной памятью через обычный git-воркфлоу (pull для получения, commit/push для отправки). Чтобы Qwen делал это за вас, включите синхронизацию:

{ "memory": { "enableTeamMemory": true, "enableTeamMemorySync": true } }

При включении, в начале сессии Qwen синхронизирует каталог .qwen/team-memory/ в режиме best-effort: он перестраивает общий индекс MEMORY.md, сначала делает fast-forward pull обновлений соавторов, затем коммитит ваши изменения командной памяти поверх и пушит только этот коммит синхронизации (через явный single-branch refspec) — так что загружаемый вами индекс отражает последние данные. Он только индексирует (stages) командный каталог (ваши другие рабочие изменения никогда не коммитятся) и никогда не блокирует сессию при сбое git. По умолчанию выключено. QWEN_CODE_MEMORY_TEAM_SYNC=1 / =0 переопределяет настройку для одного запуска.

Две вещи, которые нужно знать перед включением:

  • Fast-forward pull действует на всю вашу текущую ветку, а не только на .qwen/team-memory/ (в git нет pull с ограничением по пути). Поэтому синхронизация сделает fast-forward вашей ветки до удаленного кончика. Пуш, напротив, ограничен: он публикует только тот коммит, который только что создала эта синхронизация, поэтому он никогда не пушит другие ваши незапушенные коммиты — если ваша ветка уже опережает upstream, синхронизация коммитит локально и пропускает пуш. Включайте её на ветках, где fast-forward pull допустим, или запускайте её в отдельном checkout.
  • Расходящаяся ветка остается нетронутой (--ff-only никогда не делает merge). Когда это происходит, синхронизация просто ничего не делает в этой сессии; разрешите расхождение (git pull), и она возобновит работу. Ветка без upstream (без конфигурации отслеживания) всё равно коммитит локально, но пропускает пуш — пушить некуда.

Команды

/memory

Открывает панель Memory. Отсюда вы можете:

  • Включать или выключать сохранение auto-memory
  • Включать или выключать периодическую очистку (dream)
  • Открывать ваш личный QWEN.md (~/.qwen/QWEN.md)
  • Открывать проектный QWEN.md
  • Просматривать папку auto-memory

/init

Генерирует начальный QWEN.md для вашего проекта. Qwen читает вашу кодовую базу и заполняет команды сборки, инструкции по тестированию и обнаруженные соглашения.

/remember <text>

Немедленно сохраняет что-либо в auto-memory, не дожидаясь, пока Qwen подхватит это автоматически:

/remember always use snake_case for Python variable names /remember the staging environment is at staging.example.com

/forget <text>

Удаляет записи auto-memory, соответствующие вашему описанию:

/forget old workaround for the login bug

/dream

Запускает очистку памяти прямо сейчас, вместо ожидания по автоматическому расписанию:

/dream

Устранение неполадок

Qwen не следует моему QWEN.md

Откройте /memory, чтобы увидеть, какие файлы загружены. Если вашего файла нет в списке, Qwen его не видит — убедитесь, что он находится в корне проекта или в ~/.qwen/.

Инструкции работают лучше, когда они конкретны:

  • Use 2-space indentation for TypeScript files
  • Format code nicely

Если у вас есть несколько файлов QWEN.md с противоречащими друг другу инструкциями, Qwen может вести себя непоследовательно. Проверьте их и удалите любые противоречия.

Я хочу посмотреть, что сохранил Qwen

Запустите /memory и выберите Open auto-memory folder. Все сохраненные воспоминания — это читаемые markdown-файлы, которые вы можете просматривать, редактировать или удалять.

Qwen постоянно всё забывает

Если auto-memory включена, но Qwen, кажется, не запоминает вещи между сессиями, попробуйте запустить /dream, чтобы принудительно выполнить очистку. Также проверьте /memory, чтобы убедиться, что оба переключателя включены.

Для вещей, которые вы всегда хотите, чтобы Qwen помнил, лучше добавьте их в QWEN.md — auto-memory работает в режиме best-effort, а QWEN.md гарантирует результат.

Last updated on