Transcription
Вы, вероятно, неправильно используете VS Code, когда дело доходит до настройки ваших рабочих процессов ИИ, и даже не знаете об этом. В этом видео мы поговорим о том, что на самом деле означает настройка в контексте агентной разработки, и продемонстрируем новый пользовательский интерфейс в VS Code, который упрощает весь этот процесс. Давайте приступим и посмотрим. Итак, давайте поговорим о том, что такое настройка и почему это важно. Сейчас мы находимся на веб-сайте документации VS Code, и здесь есть немало информации, касающейся настройки ИИ в VS Code. Вкратце, настройка в VS Code Copilot chat позволяет вам настроить, как ИИ-помощник ведет себя, отвечает и работает в вашем рабочем процессе, определяя такие вещи, как пользовательские агенты, которые фокусируются на создании специализированных ролей, навыки агентов, которые больше связаны с предметно-ориентированными возможностями и рабочими процессами, пользовательские инструкции, которые представляют собой постоянные правила и соглашения по кодированию, файлы подсказок, которые по сути являются многоразовыми шаблонами подсказок, и хуки, которые представляют собой автоматизированные действия, запускаемые событиями. И все это вместе, а также некоторые другие возможности, позволяют вам превратить Copilot в контекстно-зависимого помощника, который следует стандартам вашей команды, применяет специфичные для проекта шаблоны и автоматизирует повторяющиеся рабочие процессы, и все это без написания расширений. Но почему настройка вообще важна? Все сводится к тому, что если вы не настраиваете в VS Code, вы, по сути, будете постоянно повторяться. Для каждого запроса вам может потребоваться повторно указывать контекст, ожидания, как вы хотите, чтобы все было сделано. И это в конечном итоге приводит к несогласованным результатам, большим усилиям, большему количеству проб и ошибок. Но настройка меняет это. Она позволяет вам один раз определить поведение, использовать его везде и получать согласованные результаты. И в конечном итоге, вместо того, чтобы просто лучше подсказывать, вы строите систему, которая работает на вас. Итак, с чего нам начать? Ну, есть новый пользовательский интерфейс, который мы можем использовать для настройки в VS Code. И вы можете получить к нему доступ, зайдя в палитру команд и набрав "chat customizations", чтобы открыть его прямо здесь. И вот он. Еще более быстрый подход, если чат уже открыт, просто нажав на этот значок шестеренки прямо здесь. И с помощью этого пользовательского интерфейса VS Code предоставляет вам одно место для управления всеми важными функциями настройки. Отсюда вы можете создавать и управлять агентами, нажав здесь. Вы можете увидеть некоторых встроенных агентов и одного пользовательского, который был создан прямо здесь. Выбор этого показывает, как он был создан. Отсюда вы можете его изменить. И то же самое относится к просмотру навыков, пользовательских инструкций, файлов подсказок, хуков и т. д. Таким образом, вместо того, чтобы искать их по папкам, VS Code легко объединяет их здесь для обнаружения и управления. В дополнение к их созданию, вы можете просто использовать опцию генерации. Это для хуков, но то же самое относится и к подсказкам и другим. При генерации этих пользовательских функций вы можете делать это непосредственно из чата, просто используя команду слэш и набрав "create". И прямо отсюда вы можете создавать инструкции, подсказки, навыки, агентов и хуки. Чтобы узнать больше о создании и тестировании каждого из них, вы можете посмотреть этот плейлист здесь. Но цель этого видео заключалась в том, чтобы дать вам понимание актуальности настройки и продемонстрировать этот пользовательский интерфейс настроек агентов. Итак, я надеюсь, это видео дало вам более ясное представление о том, как на самом деле выглядит настройка. Дайте мне знать в комментариях, как вы используете настройку. Если эта тема вас заинтересовала, стоит изучить пользовательские инструкции. Спасибо, что присоединились, и до встречи в следующем видео. Вас, вероятно, обманывали насчет пользовательских инструкций, если вы не используете их должным образом. Они намного мощнее, чем люди говорят. Мы разберем, что на самом деле представляют собой пользовательские инструкции, как их следует использовать, а затем продемонстрируем это. Давайте посмотрим. Пользовательская инструкция — это как свод правил для ИИ в VS Code. Это файл в формате markdown, где вы определяете свой стиль кодирования, соглашения и предпочтения, и ИИ автоматически следует им в каждом чате. На этой странице есть подробная информация о пользовательских инструкциях с примерами. Но давайте посмотрим на один из них в действии из моего существующего проекта. Здесь у меня есть приложение-калькулятор. И это один из файлов, связанных с ним, файл JavaScript. И мы перейдем к пользовательскому интерфейсу настройки, нажав на этот значок шестеренки здесь. И если мы посмотрим на "Пользовательские инструкции", вы увидите, что у меня сейчас есть одна под названием "Принципы SOLID", которая, когда мы нажимаем, мы можем точно увидеть, как должны работать пользовательские инструкции, а именно применять принципы SOLID к моему коду всякий раз, когда он создается или рефакторится. Теперь, ближе к концу здесь, я указал, чтобы он сообщил нам, что применил их, имея этот раздел подтверждения здесь. Так что он должен сообщить нам в чате, когда применил принципы SOLID. Итак, давайте попросим его рефакторить этот скрипт. И я не буду давать ему никаких конкретных способов рефакторинга, но просто позволю ему сделать это, а затем посмотрим, были ли применены какие-либо из принципов SOLID. Можете ли вы рефакторить этот скрипт по своему усмотрению? И сразу же вы можете увидеть, как он проходит процесс, он сразу же сообщил мне, что вот что я нашел, анализируя код на соответствие принципам SOLID, и указал некоторые изменения, которые он собирается применить, чтобы оставаться в соответствии с принципами SOLID. И он упомянул еще несколько принципов, и теперь он закончил. И что здорово в этом, так это то, что по мере того, как я продолжаю работать над этим проектом, он будет делать это последовательно. Так что мне не придется возвращаться и думать: следую ли я принципам должным образом? Потому что, согласно моим инструкциям, он будет гарантировать, что ИИ делает это все время. И если я проверю, чтобы убедиться, что мой калькулятор работает, похоже, он все еще работает. Теперь, почему бы нам не создать один с нуля. Итак, если я открою пользовательский интерфейс настройки агента, я могу перейти сюда и выбрать "Создать новые файлы инструкций". И я хочу сделать это на уровне пользователя. И это будет для Copilot. И мы назовем это "Доступность". И теперь я могу создать описание, которое я хочу, и детали для доступности. И это подход, если бы я хотел сделать это вручную. Но более простой способ сделать это — просто спросить Copilot. Так что я отменю это. И чтобы сделать это, мы просто выйдем и нажмем на значок корзины прямо здесь под "Доступность". И если мы перейдем в чат и наберем /create и нажмем "инструкции", и я введу для уровня профиля пользователя, чтобы убедиться, что весь код пользовательского интерфейса соответствует стандартам WCAG, а также чтобы сообщить мне в чате, когда вы это сделали, чтобы я знал, что это сработало. И теперь мне не нужно вручную указывать, как должны быть инструкции. Я могу позволить Copilot создать их, а затем просмотреть и изменить, если мне нужно. Я дам ему разрешение, которое ему нужно, чтобы продолжить. Хорошо. Теперь я вижу, что он создал файлы инструкций, и он также будет подтверждать, когда применит стандарты доступности. Так что, перейдя в пользовательский интерфейс настроек агента. Теперь я вижу свои инструкции по доступности WCAG и посмотрите на все, что он создал всего за несколько секунд. В метаданных вверху описание объясняет назначение инструкции. Оно сообщает помощнику, когда использовать эти правила доступности. А поле "Применить к" находит, какие типы файлов должна автоматически нацеливать инструкция, такие как HTML, CSS, файлы Vue и т. д. А ниже приведены оставшиеся конкретные инструкции, все созданные за секунды. Итак, давайте попробуем. У нас есть то, как выглядит мой калькулятор в данный момент. И в идеале, если я просто попрошу его обновить его, чтобы он выглядел более современно или что-то в этом роде, что изменит пользовательский интерфейс, он также должен применить мои пользовательские инструкции. Итак, я просто спрошу: можете ли вы сделать пользовательский интерфейс моего калькулятора выглядящим, вместо того чтобы говорить "современно", давайте просто скажем, как будто он из аркадной игры 80-х. Итак, если все пойдет хорошо, теоретически, поскольку он вносит некоторые изменения в пользовательский интерфейс, он также должен знать, чтобы убедиться, что он соответствует WCAG. Хорошо, похоже, он закончил. И если я обновлю, вот оно. Это действительно выглядит так, как будто из 80-х. И, как вы можете видеть, он применил стандарты WCAG. И мы можем посмотреть детали прямо здесь. Пользовательские инструкции для отдельных разработчиков очень полезны. Но для команд они еще мощнее. Представьте, что каждый разработчик в репозитории имеет Copilot, следующий тем же соглашениям по кодированию. Имена остаются согласованными, форматирование остается согласованным, архитектурные шаблоны также согласованными. Это экономит много времени. И вместо того, чтобы проверять вывод ИИ и исправлять его позже, все делается заранее с помощью пользовательских инструкций. Чтобы узнать больше о других функциях настройки, созданных нашим сообществом, посетите awesome-copilot по этому URL-адресу. В идеале, теперь вы чувствуете себя более уверенно, работая с пользовательскими инструкциями для управления своим рабочим процессом. Дайте мне знать в комментариях, как вы используете пользовательские инструкции. Если вам интересно узнать больше, пользовательские инструкции — это естественная следующая концепция для изучения. Похоже, большинство людей используют агентские навыки неправильно или вообще не используют. Ну, в этом видео мы разберем, что такое агентские навыки и как правильно использовать их в своем рабочем процессе. Итак, давайте приступим. Агентские навыки — это папки с инструкциями, скриптами и ресурсами, которые GitHub Copilot может загружать, когда это уместно, для выполнения специализированных задач. Эти навыки являются открытым стандартом, который работает на нескольких ИИ-агентах, включая GitHub Copilot и VS Code, Copilot CLI и Copilot Cloud Agent. Документация здесь подробно описывает некоторые примеры навыков, но давайте посмотрим на существующий проект. Теперь у меня здесь есть приложение-калькулятор, но если мы перейдем к этой шестеренке, чтобы открыть настройки, мы сразу же увидим некоторые доступные навыки в разделе "Расширения", а затем некоторые встроенные навыки. И некоторые из них могут показаться вам знакомыми, если вы просматривали некоторые из наших других видео, но если мы, например, выберем "Создать подсказку", мы можем увидеть, что происходит здесь, за кулисами, с точки зрения того, что находится в файле skill.md. Мы можем увидеть описание, которое заключается в создании многоразовой подсказки для общей задачи. Но также в строке семь вы можете увидеть, что связанный навык — это "настройка агента", и он указывает загружать и следовать prompts.md для шаблона и принципов, а затем, конечно, конкретные детали, которым должен соответствовать навык, такие как извлечение из разговора, уточнение, если это необходимо, и итерации. Итак, если бы мы перешли в чат и ввели /create, это то, что позволяет нам создать многоразовую подсказку, например, для выполнения обзора кода. И вы можете увидеть прямо здесь, что он говорит "прочитать навык для настройки агента". А также он спрашивает нас, где следует сохранить эту подсказку для обзора кода. И пока я скажу "рабочее пространство" и просто приму настройки по умолчанию для остальных подсказок здесь. Итак, теперь он создал подсказку. Что я хотел бы сделать, так это создать навык, который будет обновлять файл readme при добавлении новой функции в мой проект. Так что этот навык теоретически обновит мой файл readme деталями любой добавленной мной функции. И посмотрите на это. Это здорово. Он спрашивает меня, хочу ли я, чтобы он был для моего рабочего пространства и личным. Я на самом деле забыл упомянуть "личный". Итак, я выбрал это. И это здорово. Он спрашивает меня, должен ли это быть просто список функций или больше деталей. Меня устраивает первый вариант, и я хочу, чтобы он делал это автоматически. Итак, я оставлю номер один. Дайте ему разрешение, которое ему нужно. Пока он создает навык, я могу подумать о функции, которую я мог бы добавить, чтобы протестировать это. Итак, я думаю, у меня есть идея для функции, но тем временем давайте посмотрим на наш навык, который только что был создан. "Обновить readme". Хорошо, это выглядит хорошо. Я думаю, я хотел бы добавить подтверждение здесь, чтобы сообщить мне в чате, что он обновил его, чтобы мне не приходилось просто проверять readme каждый раз. Можете ли вы обновить этот навык, чтобы он упоминал в чате, что readme был обновлен? Там есть уведомление. Итак, это readme, которое у нас есть здесь. Итак, давайте добавим функцию в этот аркадный калькулятор и посмотрим, что произойдет. Можете ли вы добавить функцию в калькулятор, чтобы при переключении с темного режима на светлый он воспроизводил короткую мелодию, отражающую темный или светлый режим? У меня нет понятия, какой тип мелодии будет представлять темный или светлый режим, но это первое, что пришло мне в голову. Так что я с нетерпением жду, что он придумает. И самое главное, чтобы readme был обновлен этой информацией. Добавьте мелодии для менеджера авто. Хорошо. Мелодия для светлого режима восходящая C5 E5 G5. Хорошо. Ну, он говорит, что добавил функцию и обновил readme. Давайте проверим readme, но я не слышал звука, но строка 11 — это место, где он его обновил. Я вижу это прямо там. Итак, давайте просто убедимся, что это исправит. Так что мы действительно слышим звук, а затем заканчиваем. Я не слышу мелодии, когда переключаюсь. Ну, на самом деле, знаете что? Прежде чем я даже сделаю это, давайте попробуем обновить пользовательский интерфейс. Теперь я слышу. Хорошо, мне просто нужно, чтобы он обновился, и это работает. Хорошо, круто. Чтобы узнать больше о других функциях настройки, созданных нашим сообществом, посетите awesome-copilot по этому URL-адресу. Итак, мы рассмотрели, что такое агентские навыки и как эффективно использовать их в своем рабочем процессе. Дайте мне знать в комментариях, какие навыки вы использовали. Если вам интересно, как это развивается во что-то более структурированное, стоит изучить пользовательские агенты. Похоже, большинство людей используют пользовательские агенты неправильно или вообще не используют. Ну, в этом видео мы разберем, что такое пользовательские агенты и как их использовать, создав один с нуля, и покажем, как лучше всего использовать один в реальном рабочем процессе. Итак, давайте приступим. Пользовательские агенты позволяют вам настраивать ИИ для принятия различных персон, адаптированных к конкретным ролям и задачам разработки. Например, вы можете создавать агентов для ревьюера безопасности, планировщика, архитектора решений или других специализированных ролей. И каждая персона может иметь свое собственное поведение, доступные инструменты и инструкции. Теперь здесь находится документация по пользовательским агентам на веб-сайте VS Code, но давайте посмотрим на существующий проект. Итак, прямо здесь я нахожусь в проекте для калькулятора в стиле аркады. И то, что я хотел бы показать вам, это под "Агентами", у нас есть один, который я создал под названием "Ревьюер безопасности", а затем некоторые встроенные. И это отличный пример пользовательского агента прямо здесь, который будет использоваться при проверке кода на наличие уязвимостей безопасности, аудите на утечку секретов и учетных данных, и многое другое. Итак, давайте протестируем этого ревьюера безопасности, который находится в рабочем пространстве, зайдя в чат, используя знак "@", введя "security reviewer", попросив его проверить этот файл на уязвимости и сосредоточиться на нашем файле JavaScript. На самом деле, позвольте мне остановиться. Мы хотим убедиться, что это в режиме агента. Попробуем еще раз. Итак, как вы можете видеть, он дает нам много информации. Начиная с обзора результатов, а затем он категоризирует некоторые проблемы, начиная с низкого уровня, и я предполагаю, что если бы у него было что-то более серьезное, у него было бы, вероятно, среднее и высокое, но у нас только низкое сейчас, что довольно хорошо. Но давайте создадим нового пользовательского агента. И я хочу попробовать что-то новое. Почему бы нам не попросить Copilot предложить нам пользовательского агента? Итак, я спрошу, основываясь на моем текущем проекте, какого пользовательского агента я могу создать для моей видеодемонстрации? И это именно то видео, которое вы сейчас смотрите. Можете ли вы дать мне подсказку, чтобы сказать Copilot, чтобы создать ее? И скажите мне, почему это хороший пользовательский агент. Это очень мета, потому что при создании примера я фактически использую Copilot, чтобы помочь мне. И одна из причин, по которой я хочу показать это, заключается в том, что при разработке ваших проектов полезно выработать привычку думать о Copilot как о способе помочь вам на многих разных уровнях, а не только при написании кода. Итак, давайте посмотрим, что он придумал. Он говорит: "Отлично, аркадный научный калькулятор со звуковыми эффектами, переключением тем и солидной архитектурой. Моя рекомендация — это предметно-ориентированный агент, который знает архитектуру вашего калькулятора, ретро-эстетику и шаблоны кодирования". Итак, это то, что он предложил: подсказка для создания агента под названием "аркадный строитель функций". Он должен быть специалистом для моего аркадного калькулятора. Он знает кодовую базу, использует HTML и т. д. И я не буду читать все это, но давайте посмотрим, почему это отличный пользовательский агент. У него четкая предметная направленность, осведомленность об архитектуре, визуально привлекательный для демонстрации, минимальные инструменты и показывает причину для пользовательских агентов. Так что это интересно. Но давайте задам ему уточняющий вопрос. Это звучит здорово, но могу ли я создать другое приложение, используя этого пользовательского агента, которое будет применять темы? Хорошо. Итак, похоже, он изменил его, чтобы его можно было использовать для другого приложения, а затем мы могли бы протестировать его с одним из этих других приложений. Итак, я скопирую это и давайте сделаем это. Создайте этого пользовательского агента под названием "аркадный строитель приложений". Хорошо. Итак, похоже, он закончил. Теперь, в прошлый раз, когда я использовал пользовательского агента, я ссылался на него, используя, как символ приложения, но самый простой способ сделать это — фактически нажать на выпадающее меню, а затем выбрать агента после его создания. Итак, сейчас давайте выберем "аркадный строитель приложений". И мне нравится одно из предложений, которое он сделал здесь. Давайте просто скажем "калькулятор чаевых", чтобы оставаться в теме калькуляторов. Пока он работает, давайте посмотрим на наши настройки агентов. И мы видим нашего "аркадного строителя приложений" здесь. Если мы посмотрим внутрь, мы можем увидеть описание, в дополнение к инструментам, на которые он ссылается, и гораздо больше информации, касающейся системного дизайна, такой как топография, цветовая палитра для темного и светлого режимов, визуальные эффекты. Много информации здесь, и очень приятно, что все это в одном месте. Давайте вернемся и посмотрим, где мы находимся. Хорошо, калькулятор чаевых готов по адресу "калькулятор чаевых". И он имеет все эти перечисленные функции. Итак, давайте попросим его запустить калькулятор чаевых. Я открыл его в другом браузере, но я просто скопировал URL-адрес и собираюсь вставить его в интегрированный браузер здесь, в VS Code. И вот оно. Посмотрите на это. Теперь у меня есть новое приложение, которое использует все характеристики моего предыдущего приложения благодаря пользовательскому агенту, что здорово. Оно даже издает звук. Итак, за 55 долларов я даю ему чаевые 15%, может быть, 25%, если я чувствую себя щедрым. И вот оно. Чтобы узнать больше о других функциях настройки, созданных нашим сообществом, посетите awesome-copilot по этому URL-адресу. Итак, я надеюсь, это дало вам хорошее представление о том, что могут делать пользовательские агенты. Дайте мне знать в комментариях, какие пользовательские агенты вы создали. Если вы заинтересованы в том, чтобы что-то происходило автоматически без запроса, стоит изучить хуки. Спасибо, что присоединились, и до встречи в следующем видео. Похоже, никто не говорит достаточно о хуках, но они могут быть одной из самых мощных функций в VS Code прямо сейчас. Итак, в этом видео мы разберем, что такое хуки и как использовать их для автоматизации вашего рабочего процесса. Итак, без дальнейших церемоний, давайте сделаем это. Хуки позволяют вам выполнять пользовательские команды оболочки в точках жизненного цикла во время сеансов агента. Вы хотите использовать хуки для автоматизации рабочих процессов, обеспечения соблюдения политик безопасности, проверки операций и интеграции с внешними инструментами. Итак, прямо здесь, в документации VS Code, есть несколько солидных пунктов, объясняющих, почему мы хотели бы использовать хуки. И на самом деле, второй пункт — это тот, который я собираюсь продемонстрировать в реальном проекте, специально для запуска форматировщика. Фактически, если мы прокрутим вниз, это один из примеров, который они используют, особенно с prettier. И в этом примере создается хук, который запускает prettier после каждого редактирования файла. Одна вещь, которую я хочу упомянуть, что неотъемлемой частью хуков являются события жизненного цикла, потому что именно здесь вы можете указать, где должен быть вызван хук. Так что это может быть для начала сеанса, отправки пользовательской подсказки и т. д. В нашем случае это будет "post tool use", что подходит для запуска форматировщика. Но давайте создадим один с нуля. Хорошо. Итак, чтобы создать хук, давайте посмотрим на наши настройки агента. В настоящее время там нет хуков, но давайте выберем "Создать хук". И здесь я вставлю то, что я хочу. Просто создайте хук. Это хук Copilot уровня пользователя, который автоматически запускает prettier. И он также должен использовать хук "post tool use" с скриптом оболочки. Copilot приступает к работе, изменяет необходимые файлы. И мы подождем, пока он закончит, и посмотрим, что он создал. Хорошо, выглядит хорошо. И здесь действительно упоминается, что нужно протестировать его, чтобы убедиться, что мы перезагрузимся. Итак, давайте перезагрузим окно. И давайте посмотрим на хук, который он создал. И это выглядит нормально. Я не думаю, что нам действительно нужен тайм-аут. Я помню, что не видел этого в документации. Так что я избавлюсь от этого. Обратите внимание, что строки 7, 18 и 20 не отформатированы, но хук должен это исправить. Чтобы увидеть это, мы попросим его внести изменение. Теперь, можете ли вы изменить формулировку первого абзаца в readme? Я оставлю настройки по умолчанию для этого. Нам не нужно быть слишком придирчивыми к тому, как он переформулирует это. И вот оно. Он переформулировал это и также отформатировал документ, как мы и ожидали. Так что хук был правильно вызван. Чтобы узнать больше о других функциях настройки, созданных нашим сообществом, посетите awesome-copilot по этому URL-адресу. Я надеюсь, это видео показало вам, как хуки могут незаметно выполнять работу за вас в фоновом режиме. Дайте мне знать в комментариях, какие хуки вы бы создали. Если вы постоянно повторяете подсказки, вы делаете слишком много. Есть лучший способ, которым большинство людей до сих пор не пользуются. В этом видео мы узнаем, что такое файлы подсказок и как правильно их использовать. Давайте приступим. Файлы подсказок — это многоразовые файлы в формате markdown, которые определяют инструкции или контекст для сеансов чата. Вы ссылаетесь на них в чате, чтобы предоставлять согласованные, повторяемые подсказки для вашей команды или рабочего процесса. Здесь мы смотрим на документацию VS Code, которая подробно описывает файлы подсказок. Но давайте посмотрим на пример, чтобы увидеть его в действии. Теперь мы смотрим на файл script.js для приложения-калькулятора. И, как вы можете видеть с левой стороны здесь, под "Проводником", есть довольно много других файлов, связанных с ним. Один из них находится в папке GitHub для подсказок. Вы увидите "quiz open files". И это файл подсказки, который я создал, который позволит мне иметь VS Code, который будет викторинировать меня по коду для открытых файлов. И это отличный способ для меня изучить новый код, который Copilot создал для меня. Так что, если я нажму "/" и наберу "q", вы увидите, что есть "quiz open files". И когда я выполню это, он сгенерирует, по сути, технические вопросы для кода, который он видит в своем контексте. Как вы можете видеть, он делает это в формате множественного выбора. И это результат файла подсказки, который я создал. И что делает это отличным файлом подсказки, так это то, что в процессе разработки это действие, которое я могу повторять несколько раз. И я бы не хотел повторять эту подсказку, потому что есть много деталей, связанных с подсказкой. Когда мы открываем пользовательский интерфейс для настроек агента, нажимая на значок шестеренки, и я вернусь, чтобы снова открыть его, чтобы показать вам. Значок шестеренки был прямо здесь, чтобы открыть настройки. Я могу просто перейти к "Подсказкам" и увидеть доступные файлы подсказок, встроенные и пользовательские, которые я создал, такие как "quiz open files". И вы можете увидеть работу, которую он должен выполнить, чтобы викторинировать меня по коду и в настоящее время открытым файлам, и сгенерировать пять вопросов с множественным выбором. И затем есть несколько правил. Так что это вся информация, которую я бы не хотел постоянно повторять. Если бы это была подсказка, которую я хотел бы сделать один раз на проект, то нет смысла создавать файл подсказки. Но поскольку это то, что я могу захотеть сделать для нескольких файлов в рамках проекта, если это не для файла скрипта, может быть, это для файла index, может быть, это для package.json, и я хотел бы, чтобы меня викторинировали по любому из них, имеет смысл иметь файл подсказки, такой как этот. Но теперь давайте перейдем к созданию нового с нуля. Допустим, я хотел создать файл подсказки для минимизации раздутого кода. Например, мы смотрим на файл script.js. Может быть, его можно рефакторить, чтобы он был короче, а может и нет. Но было бы неплохо иметь подсказку, которая может выполнить эту работу, а затем объяснить мне, что она сделала. Почему бы нам не нажать "/" и не начать набирать "create". И теперь у нас есть варианты для создания из нескольких функций настройки. Одна из них — создать подсказку. И тогда я скажу "упростить и уменьшить раздутый код и сообщить мне, что вы сделали". И мы будем более конкретны для этого конкретного сценария. Так что он не просто делает это для всего проекта и говорит "для открытых файлов". Итак, похоже, он сделал это. Когда я смотрю на детали, похоже, он сделал это на уровне рабочего пространства. Так что теперь, если мы перейдем к нашим настройкам агента, мы должны увидеть его прямо под "рабочим пространством" "упростить код". И это буквально так просто. И мы можем теперь на этом этапе просмотреть его и изменить его соответственно или попросить Copilot изменить его. Теперь есть одна вещь, которую я хотел бы изменить: вместо того, чтобы быть на уровне рабочего пространства, я попрошу его переместить его на уровень пользователя, чтобы я мог использовать эту приятную подсказку в других проектах. Спасибо за создание файла подсказки, но можете ли вы изменить его так, чтобы он был на уровне пользователя, чтобы я мог использовать его для других проектов, а не только для этого? Хорошо. Итак, теперь он переместил его в мой профиль пользователя, и мы видим его под "встроенным" теперь. Итак, давайте попробуем. "Упростить и уменьшить раздутый код". На самом деле очень интересно посмотреть, что он сделает, потому что таким образом вы можете отмечать, какие модели, как правило, немного более эффективны по сравнению с другими. И когда я говорю "более эффективные", я имею в виду с точки зрения того, как он пишет код, который не раздут. Хорошо, похоже, он внес некоторые изменения здесь, и он точно описывает, что он сделал для упрощения кода. Начиная с извлечения и некоторого подъема, некоторого кода, который он заменил, в дополнение к упрощению некоторых обработчиков клавиатуры. Приятно. И снова, причина, по которой это имеет смысл как файл подсказки, заключается в том, что по мере того, как вы продолжаете создавать свои проекты, это то, что вы захотите использовать снова и снова. Итак, вкратце, причина, по которой это важно, заключается в том, что вместо того, чтобы переписывать подсказки, вы можете определить их один раз и использовать их повторно в своем проекте, что означает более быстрые рабочие процессы и согласованное поведение ИИ. Чтобы узнать больше о других функциях настройки, созданных нашим сообществом, посетите awesome-copilot по этому URL-адресу. Надеюсь, это видео поможет вам переосмыслить, как вы взаимодействуете при подсказках. Прежде чем уйти, дайте мне знать в комментариях, какие файлы подсказок вы создали. Спасибо, что присоединились, и до встречи в следующем видео. Есть довольно много важных опций настройки в VS Code, и их легко спутать. Итак, в этом видео мы фактически разберем каждую из них, а затем сравним их, чтобы мы могли увидеть, как все они вписываются вместе и как они должны вписываться вместе. Итак, давайте посмотрим. Итак, на сайте документации VS Code у нас есть довольно много информации, которая охватывает пользовательские инструкции, файлы подсказок, пользовательские агенты, агентские навыки и хуки, что все здорово, но иногда приятно иметь разные ресурсы для изучения тем. И то, что я хочу показать вам, это в дополнение к просмотру контента, который находится в документах, фактически использовать Copilot несколькими различными способами, чтобы узнать различия между ними, потому что есть некоторые пересечения, но приятно получить хорошее глубокое представление о том, каковы основные различия между ними, а затем также увидеть некоторые примеры. Итак, давайте перейдем в VS Code и посмотрим. Но прежде чем мы это сделаем, давайте просто сделаем снимок экрана тем. Я вставлю его. Позвольте мне посмотреть, чтобы показать вам, что увидит Copilot. И мы можем попросить его дать нам краткое изложение того, что представляет собой каждая из них. Можете ли вы объяснить мне, что представляет собой каждая из этих функций в коротком абзаце? И что приятно здесь, так это то, что он дает нам краткое объяснение для каждой из этих функций пользовательских инструкций, которые говорят нам, что это многоразовые файлы правил, которые направляют поведение Copilot, а также для файлов подсказок, которые позволяют вам определять многоразовые параметризованные запросы и приятные краткие изложения для последних трех также. Теперь, еще кое-что, что мы можем спросить, это создать таблицу с каждой из них, а затем в таблице иметь столбец, который объясняет различия или что-либо, что вы считаете релевантным. Так что я могу использовать ее как справочную таблицу, чтобы знать, когда использовать каждую. И теперь, в дополнение, у нас есть эта таблица здесь, которая имеет название функции, что это такое, когда использовать, связанное расширение файла, область действия и даже примеры. И прямо ниже у нас есть некоторые ключевые различия с первого взгляда. Инструкции против файлов подсказок, которые говорят нам, что инструкции пассивны, в то время как файлы подсказок активны, и следует тому же шаблону для различения других, таких как инструкции против пользовательских агентов. Пользовательские агенты против агентских навыков и хуков против всего остального. Итак, как вы можете видеть здесь, он был достаточно умным, чтобы выбрать пары, которые люди склонны путать, и есть определенно люди, которые часто путают файлы подсказок и инструкции, и инструкции против пользовательских агентов, пользовательские агенты против агентских навыков. Теперь, еще одна вещь, которую я хотел бы спросить, которая является другим способом обучения, это просто викторинировать себя. Итак, давайте спросим. Можете ли вы дать мне 10 разных вопросов, которые дают мне сценарий, и мне нужно выбрать из множественного выбора, какая правильная функция, которую я должен использовать, и функции будут выбирать либо пользовательские инструкции против профилей против навыков и т. д. И на самом деле, давайте изменим это на четыре вопроса, потому что мы можем получить представление о функциональности всего с четырьмя. И вот оно. Третий способ ознакомиться с контентом с помощью викторин. Итак, если мы посмотрим на первый, он говорит нам, что наша ситуация заключается в том, что мы заметили, что каждый раз, когда Copilot генерирует компоненты React, он использует классовые компоненты вместо функциональных компонентов с хуками. Но мы хотим, чтобы Copilot всегда по умолчанию использовал функциональные компоненты. И когда мы смотрим на наши варианты, похоже, это должны быть инструкции. И если мы прокрутим вниз для деталей, это именно то, что является ответом, и есть объяснение, почему это здорово, и я просто хотел показать вам эти три разных способа, которыми вы можете использовать Copilot, чтобы действительно понять различия, когда темы становятся запутанными. Итак, давайте теперь попробуем консолидировать всю эту информацию в HTML-файл, чтобы мы могли ссылаться на него позже. Можете ли вы консолидировать всю эту информацию, которую вы мне предоставили, такую как объяснения функций, таблицу, которую вы создали, и викторину, все в HTML-файл, чтобы я мог ссылаться на него позже. Давайте просто очистим это, чтобы убедиться, что он меня правильно понимает. Обычно он разбирается. Хорошо, создал этот файл "copilot-feature-reference". Давайте посмотрим. Давайте посмотрим, как он выглядит. И он выглядит красиво. Сводка каждой красивой таблицы, различия между функциями, что это такое, когда использовать, и т. д., затем ключевые различия, а затем интерактивная викторина. Теперь я думаю, вы лучше поймете, как все эти функции настройки работают вместе. Дайте мне знать в комментариях, как бы вы объяснили различия между файлами подсказок, пользовательскими инструкциями, навыками, пользовательскими агентами и хуками. своими словами коллеге, чтобы действительно донести мысль. Нет лучшего способа, чем фактически построить приложение вместе и применить их на практике, как в этом видео. Спасибо, что присоединились, и до встречи в следующем видео. Итак, вы, возможно, видели довольно много видео о функциях настройки, таких как файлы подсказок, пользовательские инструкции, навыки, пользовательские агенты, хуки. Но какой лучший способ по-настоящему понять, как все они работают вместе, чем построить приложение и фактически реализовать их. Итак, в этом видео мы это и сделаем. Давайте приступим и сделаем это. Итак, давайте построим приложение, и оно будет называться, как следует из названия, "анализатор репозиториев", которое будет принимать URL из репозитория GitHub, а затем оценивать код, чтобы оценить его качество по шкале от 1 до 10. И в процессе его создания и использования мы будем использовать некоторые из созданных нами настроек. В частности, для агентов мы будем использовать "аркадный строитель приложений", который будет следовать ретро-теме приложения. С точки зрения навыков, мы будем использовать "обновить readme", чтобы при добавлении функции в приложение оно обновляло readme. когда приложение собирается. У нас есть пользовательские инструкции, которые будут гарантировать применение принципов SOLID. У нас также есть файл подсказки, который позволит нам упростить код для открытых файлов, чтобы фактически устранить раздутый и многословный код. И последнее, но не менее важное: у нас есть хук, который мы протестируем, когда захотим внести изменения в файл. И этот хук автоматически отформатирует его. Ценность всего этого заключается в том, что это все ситуации, которые сэкономят нам время, потому что нам не пришлось указывать следовать принципам SOLID, потому что у нас есть пользовательские инструкции. Нам не нужно создавать нового агента, чтобы сказать ему следовать теме 80-х, потому что у нас есть агент, который будет этим заниматься. Нам не нужно помнить, чтобы сказать ему обновить или прочитать readme, потому что у нас есть навык, который будет этим заниматься. Так что из-за всего этого в ходе нашего рабочего процесса это по своей сути экономит нам время. Итак, давайте переключим этого агента на "аркадный строитель приложений" и дадим ему запрос. Можете ли вы создать приложение, которое будет принимать URL из репозитория GitHub? Оно будет анализировать код, и я не буду утруждать себя чтением остального, но это, по сути, то, что я сказал вам относительно системы оценки и затем предоставления рекомендаций, чтобы в следующий раз получить более высокую оценку. Итак, давайте попробуем. Я построю приложение GitHub repo analyzer с аркадной эстетикой. Хорошо, похоже, оно закончено. Давайте запустим приложение и посмотрим, как оно работает. Я открою наш интегрированный браузер. И хорошо, это начало. Оно определенно использует аркадную тему, но приложение выглядит так просто. Интересно, насколько оно мощное на самом деле. Хорошо, у него есть небольшая проверка, если я ничего не ввел. Но давайте откроем реальный репозиторий, который существует там из GitHub, и посмотрим, как он его оценивает. Это приложение для бюджета, которое я создал несколько месяцев назад. Итак, я буду использовать этот URL-адрес. Хорошо. Ну, вот оно. Итак, оно оценивается на 4.3. Определенно можно улучшить. И прямо ниже наши рекомендации, которые помогут повысить оценку: добавить лицензию, добавить файл "contributing" для улучшения документации и т. д. Довольно круто. Хорошо. Итак, давайте создадим readme. Создайте readme для этого проекта. И в идеале, в нем будет некоторая информация о том, как работает этот проект. И я протестирую добавление функции к нему и посмотрю, будет ли readme обновлен. И на самом деле, прямо сейчас вы можете видеть, что он использует навык для обновления readme прямо с самого начала. Так что я почти не нуждаюсь в попытке обновить его, потому что я хотел протестировать сам навык. И похоже, что он использует его. Итак, это readme, которое он сгенерировал с некоторой информацией здесь. И давайте посмотрим, где он ссылается на темный режим. Допустим, я хочу удалить функцию темного режима. Кнопка, которую я только что нажал, — это функция темного/светлого режима. Давайте уберем ее. И это просто ради тестирования, чтобы увидеть, будет ли наш readme обновлен, чтобы указать, что это было удалено, или если темного режима больше не упоминается. Пока он это делает, мы можем посмотреть, когда он собирал приложение. Он убедился, что применил стандарты WCAG, но самое главное, он также следовал принципам SOLID. И прямо сейчас, похоже, он закончил. Давайте я обновлю. И похоже, что эта функция больше не существует. Если я зайду в readme, функция темного/светлого режима больше не упоминается. Так что readme был обновлен, что отлично. Итак, давайте посмотрим на наш пользовательский интерфейс настройки. Мы протестировали пару вещей. До сих пор мы проверили, что наш навык обновления readme работает. Мы проверили, что принципы SOLID были применены. В основном он упомянул это в чате. Наш агент явно работал для "аркадного строителя приложений". Так что пока есть еще две вещи, которые мы можем быстро протестировать. наша подсказка для упрощения кода, чтобы увидеть, работает ли она, а затем также наш хук, изменив readme, а затем увидев, форматирует ли он его. Теперь это не обязательно должен быть только readme, но это самое простое, что я хочу протестировать. Итак, давайте просто немного изменим форматирование здесь. Сделаем его неровным и внесем изменение. Можете ли вы изменить readme так, чтобы имя было не просто "анализатор репозиториев", а "фантастический анализатор репозиториев", и бум, он переименовал его в "фантастический анализатор репозиториев", и вы можете видеть, что это автоматически отформатировало строки 11 и 12. Так что последнее, что я протестирую, это то, является ли наш код раздутым и может ли он быть немного более эффективным. И код, который нас беспокоит, это этот файл JavaScript. Итак, давайте используем наш файл подсказки для упрощения кода. И это упростит, уменьшит раздутый код и откроет файлы. И также должен сообщить нам, какие изменения он внес. И снова, причина, по которой это отличный файл подсказки, заключается в том, что сам акт упрощения кода — это то, что вы можете найти себя многократно делающим для нескольких файлов при создании проекта. Так что это не то, что вы хотите постоянно подсказывать. У вас может быть этот файл подсказки под рукой. И посмотрите на это. Теперь у меня есть полная картина. Позвольте мне определить некоторые возможности для отпуска. И вот оно. Функция jingle — это мертвый код. Похоже, он удалил некоторые из этих антипаттернов безопасности — это мертвый код. И он все еще работает, но мы можем видеть, что он обнаруживает прямо сейчас. И теперь похоже, что он закончил. И вот что было упрощено. Он удалил этот мертвый код. Он использовал однострочный помощник. Упростил set status, заменив if else. А затем еще некоторое упрощение в дополнение к некоторому подъему. Очень круто. Так что вот оно. Много функций настройки, примененных в процессе создания приложения, построенного с нуля. И надеюсь, это поможет вам упростить всю картину того, как все эти функции настройки работают вместе в вашем рабочем процессе. Я надеюсь, что это видео помогло вам увидеть, как все эти настройки объединяются в реальном рабочем процессе. Но прежде чем вы уйдете, дайте мне знать в комментариях, какую комбинацию функций вы бы использовали для настройки проекта или что вы использовали в прошлом. Спасибо, что присоединились, и до встречи в следующем видео.