Transcription
Память в агентах Visual Studio Code AI. Visual Studio Code с января 2026 года теперь имеет систему памяти для агентов. И в этом видео мы рассмотрим, как она работает, когда ее использовать и, что крайне важно, как она вписывается в файлы инструкций, такие как инструкции Copilot и agents.md. Потому что, если вы не будете осторожны, вы можете в конечном итоге дублировать себя.
Одно быстрое замечание, прежде чем мы углубимся. На самом деле существует две системы памяти. Существует локальный инструмент локальной памяти, который хранит все на вашей машине, на вашей локальной машине. Это либо ваш ПК, либо ваш Mac, на котором вы сидите. И он включен по умолчанию. Это будет наш фокус для этого руководства. А затем есть память co-pilot, которая размещается на GitHub и делится информацией между различными поверхностями co-pilot, такими как ваши агенты кода, когда он выполняет проверку кода, или GitHub CLI. Это опциональный вариант, и он все еще находится в предварительной версии. Я могу оставить ссылку на него в описании, но мы не будем рассматривать его в этом руководстве.
Что такое память агента по своей сути? Память агента — это система, которая позволяет агенту ИИ хранить и повторно использовать информацию о репозитории пользователя или прошлых взаимодействиях, чтобы он мог выполнять задачи более последовательно и разумно с течением времени. Вместо того, чтобы начинать каждый разговор с нуля, агент может запоминать вещи между сеансами.
У меня есть демонстрация использования памяти агента. Прежде всего, я создам некоторую память агента. Итак, я захожу в GitHub copilot и прошу его создать для меня некоторую память агента. Помните, что я всегда сохраняю пример кода в этом рабочем пространстве в папке рабочей области. Сохраняйте файлы как HTML-страницы. И я начинаю. Итак, я попросил его запомнить что-то. И вот как вы сохраняете память агента. Вы просто говорите своему агенту ИИ.
Итак, давайте теперь посмотрим, сможем ли мы использовать это. Теперь я мог бы выйти из этого проекта. Я мог бы заняться чем-то другим. Он запомнит это. Итак, скажем, через некоторое время я хочу создать пример кода. Теперь я обычно делаю это, когда работаю над проектом. Я не хочу хранить все внутри папки проекта, где я обычно кладу внутри моего f внутри моего рабочего пространства. У меня была бы папка проекта, и каждый проект шел бы внутрь этой папки. Но иногда я просто хочу поиграть с кодом, и это пошло бы в папку рабочей области. Теперь в этом случае у меня уже есть папка рабочей области, но если бы ее не было, она бы создалась для меня.
Итак, вот что я собираюсь сделать сейчас. Теперь я попрошу его создать мне пример кода. Создайте мне пример кода с прокручивающимся текстом слева направо. Итак, это ситуация, когда я, вероятно, просто хочу изучить фрагмент текста. Я не хочу, чтобы это обязательно было частью основной работы, которую я собираюсь делать. Итак, я попросил его создать мне пример кода. А, как вы видите здесь внизу, он работает. А, вот прокручивающийся текст. HTML в папке рабочей области. Он просит меня сохранить его. Да, давайте сделаем это. Я скажу сохранить. И теперь, вот прокручивающийся текст. И, вот где он это сделал. Я пока не буду изучать этот текст. Я сейчас я я хочу, чтобы это было приятно и кратко. Итак, вот он сделал это для меня. И он поместил его в нужное место просто на основе памяти агента.
Теперь, если бы я хотел изучить эту память агента, есть два способа сделать это. Допустим, я вернулся на следующий день и не мог вспомнить, какую память я здесь имею. Я мог бы снова спросить его: покажи мне память агента в этом рабочем пространстве. И я отправлю это и увижу, что он читает, чтобы проверить, что там на самом деле есть. Он заметил, что есть предпочтение, и он покажет их мне здесь. Итак, давайте посмотрим. Единственная сохраненная память, единственная память, сохраненная до сих пор, — это ваше предпочтение из предыдущей части этого разговора о сохранении кода в виде HTML-страниц в рабочей области. Хорошо, вот оно. Он показал мне это. Но теперь, если вы не слишком довольны этим и хотите увидеть это еще больше, вы можете перейти в меню "Вид" и "Палитра команд" и набрать "показать файлы памяти". Это там, потому что я смотрел на это раньше. Если у вас его нет, просто наберите в чате "показать файлы памяти". И вот оно. Это предпочтение. Обратите внимание, что оно находится внутри папки "memories". Я коснусь этого через минуту. и я нажимаю на него, и вот оно.
Теперь, просто чтобы показать вам, что это сохраняется, я собираюсь перейти в "Файл" и вниз к "Закрыть папку". Итак, я вышел из этой папки. И я собираюсь снова открыть эту папку. Я собираюсь закрыть это окно. Я фактически собираюсь закрыть файлы, которые он создал для меня. И теперь я хочу проверить снова. Я могу просто перейти в "Вид" и вниз к "Палитра команд" "показать файлы памяти". Итак, если я зайду, я могу увидеть это. И, скажем, я хотел обновить это. Давайте закроем это. Закроем это. Я мог бы сделать то же самое. Зайти сюда. обновить мои файлы памяти и показать, что все файлы примеров кода всегда должны начинаться с sample_ в названии файла. Итак, теперь я попросил его внести некоторые изменения в название файла. И если бы я хотел удалить свой файл памяти, я мог бы сделать то же самое здесь. Я просто прошу его удалить, и он удалит его. Итак, теперь посмотрите, как это называется. Все файлы примеров кода всегда должны начинаться с sample_ в названии файла. И вот он дал мне пример. Так что вы можете видеть, насколько полезны эти файлы памяти.
Также стоит знать, что вся память хранится на вашей локальной машине. Это касается памяти агента. Она хранится локально на вашей машине и нигде больше не передается.
Область действия памяти. Локальная память имеет три области действия, и понимание их важно. Первое — это память пользователя. Память пользователя является личной и глобальной. Она сохраняется во всех рабочих пространствах и разговорах. Первые 200 строк автоматически загружаются в контекст агента в начале каждой сессии. Это для вещей о вас, которые верны независимо от проекта, в котором вы находитесь. Они хранятся в папке "memories". Теперь вы, возможно, заметили в последнем примере, который я привел, что я показал вам, что он хранился в папке "memories". Итак, это говорит мне, что он сохранял его как память пользователя, и он будет доступен во всех моих проектах. Другими словами, во всех моих рабочих пространствах. Я использую проекты и рабочие пространства здесь взаимозаменяемо. Каждый раз, когда вы открываете новую папку для работы, это другое рабочее пространство. И все, что сохранено в папке "memories", является памятью пользователя и будет доступно во всех ваших рабочих пространствах. Теперь эта папка "memories" находится где-то в вашей системе. Она не находится в этом конкретном рабочем пространстве. Итак, это касается памяти пользователя.
Затем у нас есть память репозитория. Память репозитория ограничена текущим рабочим пространством. Она сохраняется между разговорами, но только в пределах этого проекта. Это для знаний, специфичных для проекта, и она хранится в папке "memories/rele". Так что это означает, что эта память будет доступна только для этого конкретного рабочего пространства или для этой конкретной папки. Это второй тип. Так что всегда обращайте внимание на то, где хранилась память.
И, наконец, у нас есть память сессии. Память сессии временна. Она длится только текущий разговор. Думайте об этом как о черновике агента. Планирующий агент использует это для хранения своего плана реализации. Вы обычно не управляете этим самостоятельно. Он хранится в папке "memory session" и доступен только в течение сессии. Другими словами, как только вы закроете эту папку, она исчезнет. Итак, она используется агентом и создается агентом.
Я уже продемонстрировал вам, что есть два способа проверить память. Вы можете либо напрямую спросить агента в подсказке чата, чтобы показать вам память, и он покажет вам доступную память, либо вы можете перейти в палитру команд и выполнить "chat show memory files".
Теперь, если вы работали с co-pilot некоторое время, вы знаете, что у вас также есть файлы инструкций. И файлы инструкций — это такие вещи, как ваши co-pilots-instructions.md, ваши agents.md, и если у вас есть другие агенты, у вас есть ваш claw.md, ваш Gemini.md. Это все файлы инструкций, которые используются для контекстной инженерии и дают вашему агенту контекст.
Теперь вы можете задаться вопросом, чем они отличаются от памяти агента, потому что память агента делает примерно то же самое, но они фундаментально отличаются по тому, что они делают и какую роль они играют. Все ваши файлы инструкций имеют что-то общее. Они статичны, они преднамеренны и помогают вам контролировать версию. Если вы работаете в команде, все члены вашей команды будут их использовать. А если вы работаете самостоятельно, они являются источником истины.
Файлы агентов, с другой стороны, память агента фундаментально отличается. Она динамична. Она личная и возникает. Другими словами, она возникает. Она изучается во время вашего разговора. Она не фиксируется в вашем репозитории. Она хранится на вашей локальной машине, как я уже упоминал. И в отличие от памяти copilot, которую мы не рассматривали, это версия, которую я сказал, что она еще не находится в предварительной версии. Память Copilot находится на серверах GitHub.
Итак, вот небольшая структура, которую вы можете использовать для различения этих двух. Файлы инструкций — это правила, которые вы записываете. Память — это знания, которые агент получает по пути. И со временем вы можете захотеть перенести некоторые из ваших файлов памяти в файлы инструкций. Но важно отметить разницу между ними.
Что куда? Файлы инструкций. Поместите что-то в файл инструкций, когда оно стабильно. Оно совместно используется всей вашей командой, или, если вы работаете самостоятельно, это то, что вы знаете, что всегда должны делать в этом проекте. Так что такие вещи, как ваши стандарты кодирования, вы знаете, какую версию PHP вы используете, или ваш стек технологий, вы знаете, какой тип сервера работает, или ваши файлы JavaScript, вы хотите использовать, вы знаете, чистый JavaScript, такие вещи должны быть в ваших файлах инструкций.
Память агента, с другой стороны, — это личные или временные вещи, или вещи, которые вы обнаруживаете по пути. Так что в моем случае, когда я работаю, я люблю делать примеры файлов, которые идут, пример кода, который идет в папку рабочей области, или у меня может быть определенный способ именования моих переменных, и такие вещи будут идти в вашу память агента, и со временем, как я сказал, некоторые вещи, которые идут в вашу память агента, могут быть перенесены в файлы инструкций.
Избегание дублирования. Чтобы избежать дублирования информации и путаницы агента, если что-то находится в файле инструкций, уберите это из памяти. Думайте о файлах инструкций как об официальной версии, прошедшей проверку. Память — это черновик. Что-то может быть повышено из памяти агента в файл инструкций, если оно используется достаточно часто. И вот где вы начнете по-настоящему видеть ценность памяти агента, потому что это вещи, которые вы накапливаете по пути, а затем можете позже перенести в файл инструкций.
Заменит ли память файлы инструкций? Я так не думаю. Я думаю, что со временем эти две системы станут тесно интегрированы. Представьте, что агент замечает, что память была последовательной в течение недель, и предлагает вам перенести ее в файл инструкций, или файлы инструкций, которые ссылаются на память как на запасной вариант для вещей, которые еще не кодифицированы. Но мы еще не там. Это все еще развивающаяся технология, но довольно полезная, должен сказать.
Наконец, подводя итог, файлы инструкций и память агента являются взаимодополняющими, а не конкурирующими. Файлы инструкций — это ваши командные, зафиксированные, контролируемые версиями соглашения. И даже если вы работаете самостоятельно, это ваши зафиксированные, контролируемые версиями соглашения. Память — это ваш личный, динамичный, изученный слой знаний. Используйте файлы инструкций для всего стабильного и общего. Используйте память для всего личного, временного или обнаруженного на лету. И периодически просматривайте свои файлы памяти, чтобы увидеть, следует ли что-то перенести в файл инструкций.
Теперь, когда я давал вам практический пример, я использовал голос для ввода своих подсказок. Вам не обязательно использовать голос. Вы можете ввести его, но использование голоса намного быстрее. Вы можете просто получить, скажем, одно из расширений, которое поможет вам в этом. И вы можете использовать любые агенты. А, вы также можете использовать авто-агента. Большое спасибо. Пожалуйста, не забудьте поставить лайк и подписаться, и, пожалуйста, оставьте свои комментарии о том, как вы использовали память агента. Большое спасибо.