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