Copilot Memory · разбор со скриншотами

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. 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. Ничего из этого не коммитится, поэтому никто из коллег этого не прочитает, а удаление файла удаляет и запись памяти.

    Windows File Explorer opened at the VS Code memory tool folder AppData Roaming Code User globalStorage github.copilot-chat memory-tool memories holding the coding-style.md memory file
    Проводник в папке memory-tool: Markdown-файлы, за которыми стоит локальный инструмент памяти VS Code.Смотреть видео на 3:26
  2. 2

    Пользовательская память — файл, который загружается первым

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

    VS Code editor showing coding-style.md beside Copilot Chat confirming the user memory file was created from a prompt about early returns and long descriptive variable names
    Пользовательская память, намеренно короткая, и чат, подтверждающий созданный файл.Смотреть видео на 3:56
  3. 3

    Память сессии — план, который больше не нужно объяснять

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

    Copilot Chat in VS Code set to Plan mode with a request to add an update function to a TODO app, the request that makes the agent write a plan into session memory
    Режим Plan в Copilot Chat: запрос, после которого агент пишет план сессии вместо правки файлов.Смотреть видео на 7:06

Память репозитория и облачный слой GitHub

  1. 4

    Память репозитория остаётся локальной, пока вы не согласитесь

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

    Copilot Chat in VS Code receiving the prompt asking it to remember a repository rule about writing tests, a write that stays in the local repository memory scope
    Запрос к Copilot запомнить правило репозитория — запись, которая уходит в локальную область репозитория.Смотреть видео на 10:00
  2. 5

    Включите облачный переключатель — переедут только новые записи

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

    VS Code with .vscode settings.json open and modified next to a Copilot Chat session, the setting that switches repository memories to GitHub Copilot Memory cloud storage
    Правка .vscode/settings.json, которая направляет память репозитория на GitHub вместо локальной папки.Смотреть видео на 13:10
  3. 6

    Смотрите и удаляйте записи в репозитории, а не в настройках

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

    GitHub repository settings showing the Copilot memory page in public preview with one stored testing memory tagged testing and vscode beside the trash icon that deletes it
    Страница памяти Copilot в настройках репозитория GitHub: одна сохранённая запись и кнопка удаления.Смотреть видео на 12:09

Включите её для команды, затем напишите инструкции

  1. 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. Если лицензию выдают две организации, применяется самая строгая настройка.

    GitHub enterprise AI Controls page showing the Agents, Copilot and MCP pages in the sidebar where a Copilot Memory enablement policy is set for every organization
    AI Controls предприятия — семейство страниц, где живёт политика включения Copilot Memory.Смотреть видео на 1:06
  2. 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 file listing of the .github folder in microsoft/vscode showing copilot-instructions.md next to the instructions, agents, skills, prompts and hooks folders used by GitHub Copilot
    Папка .github в microsoft/vscode: copilot-instructions.md рядом с каталогом instructions.Смотреть видео на 1:40
  3. 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. Опустите оба поля — и файл загрузится только тогда, когда вы прикрепите его вручную.

    GitHub blob view of ai-customization.instructions.md in microsoft/vscode showing the description and applyTo front matter that scopes a path-specific instruction file to one source folder
    Настоящий файл инструкций, чей glob applyTo удерживает его в одной папке.Смотреть видео на 5:20

Шаблон пользовательских инструкций

  1. 10

    Личные инструкции — тоже файл

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

    VS Code showing the personal copilot-instructions.md inside the dot copilot home folder, with profile defaults covering output style, working style and AI disclosure rules
    Личный copilot-instructions.md в домашней папке .copilot с разделами о выводе, стиле работы и раскрытии использования ИИ.Смотреть видео на 4:10
  2. 11

    Создайте первый черновик через /init, а потом замените его

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

    GitHub Copilot CLI terminal stating that no copilot instructions were found and prompting to run the init command that generates a copilot-instructions.md file for the project
    Copilot CLI сообщает, что в репозитории ещё нет файла инструкций, и предлагает /init.Смотреть видео на 10:00
  3. 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 был использован.

    GitHub Copilot CLI terminal showing the slash instructions command underneath a loading environment line that counts eighteen custom instructions before a session starts
    Команда /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.
Файл инструкций для отдельных путей: три поля front matter, а затем правила, которые действуют только в одной папке.

Держите личные предпочтения вне файла репозитория

Всё, что касается вас, а не проекта — длина ответов, тон, то, как вы хотите видеть объяснение диффов, — место в личных инструкциях. Copilot CLI и хост агента читают ~/.copilot/copilot-instructions.md; на github.com откройте Copilot Chat, нажмите фото профиля и выберите Personal instructions — там GitHub ещё и поставляет шаблоны с плейсхолдерами вроде [format]. Личные инструкции приоритетнее инструкций репозитория и организации, поэтому предпочтение, заданное там, не нужно повторять в каждом репозитории.

Два последних правила, которые касаются каждого блока: никогда не кладите секреты, токены или данные клиентов в закоммиченный файл инструкций и не позволяйте инструкциям репозитория и записи памяти говорить разное — при конфликте Copilot следует обоим наборам контекста, как умеет, и результат непредсказуем. Если запись памяти снова и снова противоречит написанному вами правилу, удалите запись, а не ослабляйте правило.

Copilot Memory: частые вопросы

Продолжить изучение