Copilot Memory и пользовательские инструкции: где хранится память и как её удалить
Copilot Memory — это память уровня репозитория, которую хранит GitHub; сейчас она в публичной превью-версии и это не та папка, которую вы могли найти на диске. В разборе показано, где хранится каждый вид памяти, как её посмотреть и удалить, как включить или выключить облачную версию для себя и для организации, и дан готовый шаблон пользовательских инструкций для правил, которые память заменять не должна. Двенадцать шагов, сверенных с docs.github.com и документацией VS Code по памяти.
Коротко о главном
- Память — это не папка в репозитории. Copilot Memory хранит GitHub, и она привязана к одному репозиторию; читать и удалять её нужно в Repository → Settings → Code & automation → Copilot → Memory. Папка памяти, которую находят на диске, относится к отдельному локальному инструменту памяти в VS Code.
- Три локальных области, одна облачная. Инструмент памяти в VS Code держит заметки User, Session и Repository на вашей машине — в /memories/, /memories/session/ и /memories/repo/; Copilot Memory заменяет область репозитория на размещённую в облаке и общую для агентов: её читают coding-агент, код-ревью и Copilot CLI.
- Тариф решает, что включено по умолчанию. В Copilot Pro и Pro+ функция Copilot Memory включена; в Copilot Business и Enterprise она выключена, пока её не включит владелец предприятия или организации, а если лицензию выдают две организации, побеждает самая строгая настройка.
- Память истекает, инструкции — нет. Запись памяти создаёт Copilot: она проверяется по коду, из которого появилась, и удаляется через 28 дней, если её не переиспользуют. Правила, потерять которые нельзя, — команда запуска тестов, требование безопасности, — должны лежать в .github/copilot-instructions.md; поэтому страница и заканчивается шаблоном.
I tried out all the memory features in GitHub Copilot (User / Session / Repository / Copilot Memory)
Канал:Yuzubon — ゆずぼん15:00
Instruction Files & /chronicle — Teaching Copilot Your Codebase
Канал:Casey Irvine17:37
The latest in managing and auditing GitHub Copilot agents
Канал:GitHub4:12
Managing and curating Copilot Memory (official docs, public preview)
Официальная документация:docs.github.com
Copilot Memory находится в публичной превью-версии, и путь к настройкам всё ещё меняется. Пути включения, срок жизни в 28 дней и страница памяти репозитория взяты из инструкции docs.github.com «Managing and curating Copilot Memory» и справочника VS Code «Use memory with agents»; путь к локальной папке памяти взят из самой записи, поэтому считайте его специфичным для Windows, а в macOS и Linux ожидайте аналог в том же каталоге глобального хранилища VS Code.
Кадры атрибутированы записям, из которых они взяты, и каждый шаг ссылается на точную секунду. Письменные шаги, таблица сравнения и шаблон написаны для этой страницы; транскрипт не воспроизводился.
Все 12 шагов: от папки на диске до шаблона инструкций, закоммиченного в репозиторий
Что Copilot помнит и где это хранится
- 1
Найдите папку памяти, прежде чем трогать настройки
Инструмент памяти VS Code пишет обычные Markdown-файлы на вашей машине и не отправляет их на GitHub. В Windows они лежат в %APPDATA%\Code\User\globalStorage\github.copilot-chat\memory-tool\memories\ — на кадре в этом самом каталоге показан coding-style.md. Аналог в macOS — ~/Library/Application Support/Code/User/globalStorage/, в Linux — ~/.config/Code/User/globalStorage/, в том же пути github.copilot-chat/memory-tool/memories. Ничего из этого не коммитится, поэтому никто из коллег этого не прочитает, а удаление файла удаляет и запись памяти.

Проводник в папке memory-tool: Markdown-файлы, за которыми стоит локальный инструмент памяти VS Code.Смотреть видео на 3:26 - 2
Пользовательская память — файл, который загружается первым
Попросите в чате учесть предпочтение — «Я предпочитаю ранний выход из функций и длинные описательные имена переменных» — и инструмент памяти создаст файл пользовательской памяти и сообщит об этом в ответе. На кадре открыт coding-style.md из globalStorage › github.copilot-chat › memory-tool › memories, а панель чата сообщает «Reviewed memory file coding-style.md» и подтверждает, что файл создан. Пользовательская память — единственная область, которая подставляется в каждый диалог автоматически: документация VS Code ограничивает её первыми 200 строками. Пишите десять полезных строк, а не двести.

Пользовательская память, намеренно короткая, и чат, подтверждающий созданный файл.Смотреть видео на 3:56 - 3
Память сессии — план, который больше не нужно объяснять
Режим Plan — то место, где память сессии окупается. Попросите изменение с выбранным Plan, и агент сохранит план реализации в /memories/session/plan.md, где он будет доступен только для этого диалога: документация VS Code описывает Session как область только текущего диалога. Вернитесь в режим Agent и сошлитесь на план вместо того, чтобы печатать его заново. Память сессии — ещё и самая недолговечная область: она удаляется через 14 дней после последнего обращения, поэтому не оставляйте там решения, которое понадобится через месяц.

Режим Plan в Copilot Chat: запрос, после которого агент пишет план сессии вместо правки файлов.Смотреть видео на 7:06
Память репозитория и облачный слой GitHub
- 4
Память репозитория остаётся локальной, пока вы не согласитесь
Скажите «в этом репозитории запомни: каждая новая функция требует теста» — и агент запишет это в /memories/repo/: по-прежнему на ваш диск, по-прежнему невидимо для команды и по-прежнему вне серверов GitHub, пока не изменится одна настройка. На кадре видно, как набирают этот запрос. Именно эту область обычно называют «папкой памяти Copilot»: папка существует, но лежит внутри глобального хранилища VS Code, а не в репозитории, поэтому поиск по проекту ничего не находит.

Запрос к Copilot запомнить правило репозитория — запись, которая уходит в локальную область репозитория.Смотреть видео на 10:00 - 5
Включите облачный переключатель — переедут только новые записи
Copilot Memory — облачная половина этой системы, и в VS Code её нужно включить отдельно: github.copilot.chat.copilotMemory.enabled в .vscode/settings.json. Документация VS Code называет copilotMemory опциональной функцией, отдельной от локального инструмента памяти. Как только параметр станет true, записи, которые раньше попадали в /memories/repo/, начнут уходить на GitHub. Две вещи не меняются: уже сохранённые локальные записи памяти репозитория не переносятся, а инструмент только создаёт — чтобы прочитать или удалить облачную запись, придётся идти на GitHub.

Правка .vscode/settings.json, которая направляет память репозитория на GitHub вместо локальной папки.Смотреть видео на 13:10 - 6
Смотрите и удаляйте записи в репозитории, а не в настройках
Это та страница, куда отправляет официальная документация: Repository → Settings → Code & automation → Copilot → Memory с пометкой Preview. Записи идут от новых к старым вместе с текстом и тегами; значок корзины удаляет одну, флажки — сразу пачку. Удалять важно: неправильная запись хуже, чем никакой. Copilot сверяет каждую запись с цитатами, из которых она появилась, и игнорирует её, когда код изменился, но запись, построенная на неверном прочтении, эту проверку проходит снова и снова. Кроме того, записи сами истекают через 28 дней.

Страница памяти Copilot в настройках репозитория GitHub: одна сохранённая запись и кнопка удаления.Смотреть видео на 12:09
Включите её для команды, затем напишите инструкции
- 7
Владельцы предприятия и организации должны сначала включить функцию
Тариф решает, кто что делает. У индивидуальных подписчиков Copilot Pro и Pro+ функция Copilot Memory включена по умолчанию, и её можно выключить в Settings → Copilot → Features. С Copilot Business и Enterprise всё наоборот: память остаётся выключенной, пока её не включит владелец — владельцы предприятий через AI Controls → Copilot → Features, выбирая Let organizations decide, Enabled everywhere или Disabled everywhere, а владельцы организаций через Organization settings → Code, planning and automation → Copilot → Policies → Features → Copilot Memory → Enabled. Если лицензию выдают две организации, применяется самая строгая настройка.

AI Controls предприятия — семейство страниц, где живёт политика включения Copilot Memory.Смотреть видео на 1:06 - 8
Пользовательские инструкции начинаются в папке .github
Copilot пишет память, а инструкции пишете вы — и коммитите их. Работу делают два файла: .github/copilot-instructions.md для правил на весь репозиторий и .github/instructions/NAME.instructions.md для правил, которые касаются лишь части путей, причём второй вид сопоставляется с файлами, которые трогает Copilot. На кадре — собственный репозиторий Microsoft в VS Code, где в .github рядом с copilot-instructions.md лежат instructions/, agents/, skills/, prompts/ и hooks/: скопируйте структуру репозитория, который живёт так уже много месяцев на виду у всех.

Папка .github в microsoft/vscode: copilot-instructions.md рядом с каталогом instructions.Смотреть видео на 1:40 - 9
Правила для отдельных путей живут за applyTo
Файл .instructions.md несёт YAML front matter, который решает, когда он загрузится. name — метка, показанная в интерфейсе, description говорит агенту, для каких задач файл, а applyTo — это glob относительно корня репозитория: на кадре у настоящего файла инструкций VS Code указано applyTo: src/vs/workbench/contrib/chat/browser/aiCustomization/**. VS Code подключает файл автоматически, когда его applyTo совпадает с файлом, который агент создаёт или правит, и может подтянуть его по запросу, если подходит description. Опустите оба поля — и файл загрузится только тогда, когда вы прикрепите его вручную.

Настоящий файл инструкций, чей glob applyTo удерживает его в одной папке.Смотреть видео на 5:20
Шаблон пользовательских инструкций
- 10
Личные инструкции — тоже файл
До шаблона для репозитория разберитесь, где живут ваши личные настройки по умолчанию, потому что они важнее. Copilot CLI и хост агента читают ~/.copilot/copilot-instructions.md, и на кадре — рабочий пример с разделами ## Output, ## Working style и ## AI disclosure; обратите внимание, какой он короткий. На github.com аналог — Copilot Chat → фото профиля → Personal instructions, где GitHub ещё и предлагает готовые шаблоны и плейсхолдеры вроде [format]. Порядок приоритета: личные, затем репозиторий, затем организация — и все совпавшие наборы всё равно отправляются, поэтому не позволяйте двум из них противоречить друг другу.

Личный copilot-instructions.md в домашней папке .copilot с разделами о выводе, стиле работы и раскрытии использования ИИ.Смотреть видео на 4:10 - 11
Создайте первый черновик через /init, а потом замените его
Начинать с пустого файла не обязательно. Copilot CLI печатает «No copilot instructions found. Run /init to generate a copilot-instructions.md file for this project», когда в репозитории такого файла нет, — на кадре именно это сообщение. Запустите /init, а затем отредактируйте результат по шаблону ниже. Держите список команд точным, вычеркните всё, что агент и так узнает из кода, и никогда не вставляйте секреты, токены или данные клиентов: этот файл коммитится, и его прочитают и коллеги, и все агенты.

Copilot CLI сообщает, что в репозитории ещё нет файла инструкций, и предлагает /init.Смотреть видео на 10:00 - 12
Проверьте, какие файлы реально загрузила сессия
Шаблон, который нельзя проверить, — это догадки. В Copilot CLI команда /instructions перечисляет все файлы инструкций, которые подхватила сессия, — на кадре над командой видна строка «Loading environment: 18 custom instructions, 3 extensions, 26 hooks, 27 skills, 4 MCP servers», — и каждый файл можно отключить на текущую сессию, не удаляя его. В VS Code аналог — редактор Agent Customizations по пути Chat: Open Customizations, а для инструкций репозитория можно развернуть список ссылок в начале ответа чата и убедиться, что .github/copilot-instructions.md был использован.

Команда /instructions в Copilot CLI — самый быстрый способ увидеть, какой контекст загрузила сессия.Смотреть видео на 7:10
Copilot Memory, пользовательские инструкции и инструкции для отдельных путей
Три разные вещи называют «памятью Copilot». Только первую пишет агент; две другие — файлы, которые вы коммитите и поддерживаете. Это сравнение не для того, чтобы выбрать победителя, — оно объясняет, почему обе функции существуют рядом: память — для договорённостей, которые никто не записал, инструкции — для правил, которые можно доказать.
| Аспект | Copilot Memory (облачная) | Пользовательские инструкции (.github/copilot-instructions.md) | Инструкции для путей (.github/instructions/*.instructions.md) |
|---|---|---|---|
| Что это | Факты, которые Copilot вывел во время работы в репозитории: тема плюс цитаты, которые её подтверждают. | Правила, написанные один раз, которые применяются к каждому запросу в репозитории. | Правила для одного пути, одного языка или одной папки внутри репозитория. |
| Кто это пишет | Copilot — автоматически, реагируя на работу пользователей с включённой функцией. | Вы — вручную, в Markdown. | Вы — вручную, в Markdown с YAML front matter. |
| Где хранится | На GitHub, в пределах одного репозитория. Читать и удалять — в Repository → Settings → Copilot → Memory; в рабочей копии файла нет. | В репозитории, в .github/copilot-instructions.md, в корне проекта. | В репозитории, в .github/instructions/, по файлу на область. |
| Когда загружается | Автоматически, но только после проверки цитат по текущей ветке. | С каждым запросом в этом репозитории — для чата, агентов и код-ревью. | Только когда их glob applyTo совпадает с файлом в работе или когда агент сочтёт description уместным. |
| Сколько живёт | 28 дней; запись, которую проверяют и переиспользуют, перезаписывается, и срок продлевается. | Пока кто-нибудь не изменит или не удалит файл — он версионируется вместе с кодом. | Пока кто-нибудь не изменит или не удалит файл. |
| Кто может это увидеть | Любой, кто работает в этом репозитории с включённой функцией Copilot Memory; за пределы репозитория память не выходит. | Все, у кого есть доступ к репозиторию, плюс каждый агент и ревьюер, который его читает. | Все, у кого есть доступ к репозиторию. |
| Как это редактировать | Удалить в настройках репозитория — инструмент памяти только создаёт, он не умеет показывать и удалять. | Открыть pull request, как для любого другого файла. | Открыть pull request, как для любого другого файла. |
| Для чего лучше всего | Договорённости, которых никто не задокументировал, форма правки, которую ревьюер повторяет снова и снова, безопасные паттерны для этой кодовой базы. | Стек и версии, точные команды сборки и тестов, карта папок, правила безопасности и ревью. | Правила фреймворка в монорепозитории, соглашения о тестовых файлах, стиль одной папки, идиомы одного языка. |
Шаблон пользовательских инструкций, который закрывает шесть вещей, реально нужных Copilot
GitHub рекомендует держать файл коротким и конкретным: какой стек, как всё запускать, где лежит код, какие соглашения обязательны и чего избегать. Блоки ниже написаны так, чтобы их скопировать и затем сократить: удаляйте любую строку, которую агент может вывести сам, прочитав репозиторий, потому что раздутый файл инструкций размывает правила, которые действительно важны. Сохраните его как .github/copilot-instructions.md в корне репозитория.
# .github/copilot-instructions.md
## Project and stack
- Next.js 15 app router, TypeScript strict, Node 22.
- Package manager: pnpm. Never run npm or yarn install.
## Commands
- Build: pnpm build
- Lint: pnpm lint
- Test everything: pnpm test
- Test one file: pnpm test -- path/to/file.test.ts
## Layout
- Routes: src/app/**
- UI components: src/components/**
- Data access: src/lib/db.ts and src/lib/repositories/**
- Tests live next to the file they cover: *.test.ts
## Conventions
- Named exports only; no default exports from src/lib.
- Handle errors at the boundary and return early instead of nesting.
- Import order: node builtins, external packages, then @/ aliases.
## Testing and review
- Every behaviour change ships with a test in the same pull request.
- Run the single-file test before requesting review.
- Commit messages follow Conventional Commits.
## Do not
- Do not edit files under src/generated/**.
- Do not add a dependency without calling it out in the pull request.
- Do not log secrets, tokens or full request bodies.- 1Проект и стек — назовите фреймворк, режим языка и пакетный менеджер одной строкой. Именно этот блок мешает агенту гадать между npm, pnpm и yarn и генерировать lockfile, о котором вы не просили.
- 2Команды — точные команды сборки, линтера, тестов и теста одного файла, скопированные из конфигурации CI, а не по памяти. Неверная команда тестов — самая дорогая строка, которую можно не указать.
- 3Структура — где лежат маршруты, компоненты, доступ к данным и тесты. Указывайте каталоги, а не описывайте архитектуру прозой: путь можно проверить, абзац — нет.
- 4Соглашения — именование, обработка ошибок, порядок импортов и правила форматирования, которые команда действительно соблюдает. Держите каждое правило бинарным: код либо следует ему, либо нет.
- 5Тесты и ревью — что обязано выходить вместе с тестом, что должен проверить ревьюер и какие у вас соглашения о коммитах и ветках. Это блок, который превращает запись памяти, иначе необходимую, в гарантию.
- 6Чего не делать — антипаттерны. Сгенерированные файлы, новые зависимости без упоминания, посторонние рефакторинги, секреты в логах. Запреты — самый дешёвый способ предотвратить появление целого класса плохих pull request.
Сузьте область вторым файлом
Держите файл репозитория коротким, вынося правила для отдельных папок в свои файлы в .github/instructions/. Работает всё благодаря front matter: applyTo прикрепляет файл к подходящим путям автоматически, а description позволяет агенту подтянуть его под нужную задачу. VS Code документирует name, description и applyTo как поддерживаемые поля.
---
name: 'React components'
description: 'Use when creating or updating components under src/components.'
applyTo: 'src/components/**/*.tsx'
---
# React components
- One component per file, named after the file.
- Props are typed with an explicit interface; no React.FC.
- Colocate styles with the component; no global class names.Держите личные предпочтения вне файла репозитория
Всё, что касается вас, а не проекта — длина ответов, тон, то, как вы хотите видеть объяснение диффов, — место в личных инструкциях. Copilot CLI и хост агента читают ~/.copilot/copilot-instructions.md; на github.com откройте Copilot Chat, нажмите фото профиля и выберите Personal instructions — там GitHub ещё и поставляет шаблоны с плейсхолдерами вроде [format]. Личные инструкции приоритетнее инструкций репозитория и организации, поэтому предпочтение, заданное там, не нужно повторять в каждом репозитории.
Два последних правила, которые касаются каждого блока: никогда не кладите секреты, токены или данные клиентов в закоммиченный файл инструкций и не позволяйте инструкциям репозитория и записи памяти говорить разное — при конфликте Copilot следует обоим наборам контекста, как умеет, и результат непредсказуем. Если запись памяти снова и снова противоречит написанному вами правилу, удалите запись, а не ослабляйте правило.
