Transcription
Привет, инженеры? Индидеан здесь. Итак, я подумал, было бы здорово немного отойти от нашего обычного типа видео и вернуться к истокам этого канала, где мы просто садимся и просто создаем, давайте напишем навык с нуля. Я занимаюсь разработкой программного обеспечения более 15 лет и создаю с помощью языковых моделей с момента выпуска GPT 3.5, еще когда мы использовали ADER, оригинальный инструмент для написания кода с ИИ. Я написал тысячи запросов вручную и еще больше с помощью агентов. Поэтому я считаю, что важно всегда задавать вопрос: почему навыки становятся все более важными и популярными? Навыки позволяют развертывать запросы и код против любой проблемы последовательным, повторно используемым способом. В этом видео мы продемонстрируем именно это. В этом видео мы будем создавать инструмент для терминала fork, и мы разберем, почему это важно, почему это ценно по мере нашего продвижения. Это настоящее сырое видео по написанию кода с помощью агентов. У меня нет для вас эффектной демонстрации. Знаете, нет пикантного крючка, чтобы завлечь вас в это видео. Я действительно хочу вернуться к истокам этого канала, когда мы приближаемся к концу года и к 2026 году. Итак, в этом видео я хочу немного повысить ставки и показать вам, как вы можете создать навык с нуля. Итак, я не буду использовать никаких существующих агентов. Я не буду использовать никаких существующих фреймворков для оркестрации агентов. Мы просто будем использовать сырой агент, и мы будем писать запросы вручную. Единственное, что мы сделаем, это используем пару фрагментов кода. Прежде чем я даже начну касаться компьютера, касаться чего-либо, знаете ли, использовать агентов, использовать генеративный ИИ, использовать оркестраторы, я возвращаюсь к основам инженерии. Я думаю и планирую. Итак, первое, что мы сделаем здесь, это просто отодвинем ноутбук. Хорошо? Мы никогда не начинаем с простого выстрела запросами. Мы начинаем с обдумывания проблемы, которую пытаемся решить. Итак, у меня здесь целая стопка блокнотов, которые я просто заполняю снова и снова. И у меня есть еще целая коробка. Знаете, вы можете получить это с Amazon. Упаковка из 20 штук за, я не знаю, 20 долларов. Это настоящий самый важный инструмент инженера. Я определенно нахожусь на волне агентурной инженерии. Я думаю, будущее за агентами. Я думаю, это все здорово, но я думаю, что ничто из этого не имеет значения, если вы не начинаете с конца. Если вы на самом деле полностью не понимаете, что вы хотите увидеть. Итак, я люблю просто начинать с письма. Итак, первое, что я делаю, когда пытаюсь построить что-то новое, будь то навык, будь то запрос, это я понимаю, какова цель, какова проблема, каково решение. И, конечно же, решение, которое вы предлагаете, это ваше предполагаемое лучшее решение. Всегда есть лучшее решение. Всегда есть что-то еще там, что вы упустите. Это нормально. Нужно с чего-то начинать. Начинать с конца для инженерной работы. Это часто означает определение конкретных выходных структур, верно? Активы, которые вы будете генерировать. Когда вы садитесь, будет начало вашей сессии, а затем будет конец. В конце, что у вас будет, чего не было раньше? Каков ваш результат? Итак, здесь у нас будет новый навык агента. Хорошо? Итак, мы можем просто начать записывать эту точную структуру файла. Я выведу на экран именно то, что пишу. У вас будет хороший оверлей. Мое письмо немного хромает, поэтому я хочу дать вам приятное чистое представление. Итак, мы просто начнем с записи структуры этого навыка. Конечно, у нас есть навыки Claude, а затем у нас есть его суть. Итак, я люблю называть это поворотным файлом. Итак, вокруг чего все сосредоточено? Это всегда сосредоточено вокруг, как вы знаете, файла skill.md. Итак, здесь мы определяем и постепенно раскрываем, как этот навык работает для операционного агента. Итак, пара ключевых, своего рода, последовательных каталогов, которые я создаю под своими навыками. Мне нравится иметь этот каталог инструментов. И вот ваши инструменты — это ваши однофайловые скрипты, ваши инструменты командной строки, ваши полные программы. Вы можете поместить туда все, что хотите, но это, конечно, команды, которые мы будем давать нашему агенту для расширения его возможностей. Иногда вам не нужны новые инструменты, иногда нужны. Мы будем использовать один в частности. Мы будем использовать скрипт Python для терминала fork. И я люблю использовать Astral UV. Я думаю, индустрия согласна со мной в этом отношении. У них просто лучшие инструменты Python. Итак, это будет структура нашего однофайлового скрипта. Итак, что еще нам нужно? Нам понадобятся запросы. Запросы — это самая важная часть всего, верно? Наш навык, наши запросы, даже код, который вы можете по-настоящему считать запросами. Помните основную модель контекста для инструментов запросов. Это то, что мы создаем навыки, и это очень хорошо инкапсулирует структуру для конкретного варианта использования. Но помните, все всегда сводится к этому. Итак, у нас будет конкретный каталог запросов. И нам здесь нужно краткое изложение fork. И я сделаю это очень ясно здесь. Пользовательский запрос. Итак, это не системный запрос. Мы не создаем пользовательского агента. Это простой пользовательский запрос, который будет запущен внутри этой системы в какой-то момент. Хорошо? Итак, у нас есть каталог инструментов, каталог запросов, еще один каталог, который нам нужен, и это то, что я люблю называть кулинарной книгой. И что это? Это дополнительная документация по каждому варианту использования. Итак, здесь мы начнем постепенно раскрывать новую информацию нашим агентам, учитывая входящий запрос. Итак, в нашем навыке терминала fork, что он будет делать? Какова его цель? Он будет запускать совершенно новые экземпляры терминала, и мы попросим нашего агента запустить либо необработанную команду CLI. Итак, команду ffmpeg или команду g-cloud или команду AWS или любые другие службы, с которыми вы работаете. Вы можете запустить необработанную команду CLI, либо мы попросим его запустить новый инструмент для написания кода с помощью агентов. Итак, мы сосредоточимся на трех основных: Gemini, Codex, Cloud Code. Как только у вас будет кулинарная книга и эта структура, вы можете добавить сюда любые другие инструменты и возможности, которые вы хотите. Итак, мы упакуем кучу всего здесь под командой CLI. И это будет файл Markdown. И опять же, все это на самом деле просто запросы, верно? Но мы добавим сюда некоторую документацию, чтобы научить нашего агента работать, как мы хотим, чтобы окна терминала fork немедленно запускали новые команды CLI в этом окне терминала fork. Итак, что еще у нас здесь есть? Итак, у нас, конечно, есть Gemini CLI Markdown. Итак, это будет отвечать за запуск совершенно новых агентов Gemini CLI с терминалом fork. И вот почему у нас есть этот запрос, верно? Краткое изложение fork. Итак, мы обобщим существующий терминал, а затем форкнем его, передадим новому агенту, верно? И то же самое, верно? Codex CLI MD, и у нас, конечно, будет Claude Code MD. И, размышляя об этом, я думаю, это все, что нам понадобится для этого навыка с точки зрения системного дизайна и продуктового дизайна. Обычно вы всегда хотите стремиться к первой версии, верно? Концепция доказательства, MVP. На мой взгляд, концепция доказательства идет первой, а затем вы доходите до MVP. Иногда это одно и то же, но часто концепция доказательства просто говорит: хорошо, эта идея может сработать. Здесь что-то есть, и вы знаете, что это узел да/нет, где вы можете просто прекратить разработку, если что-то пойдет не так, но затем после этого вы дойдете до минимально жизнеспособного продукта. Здесь мы просто стремимся к концепции доказательства. Мы хотим, чтобы все работало. И, конечно же, когда мы это построим, я размещу это на GitHub публично, вы сможете получить к этому доступ, это будет здорово, потому что вы увидите весь процесс от начала до конца. Итак, это наш инструмент терминала fork, и опять же, цель здесь — взять существующего агента, который выполняется, и иметь возможность форкнуть совершенно новое окно. Мы либо запускаем совершенно новые команды CLI, либо хотим запустить совершенно новые инструменты для написания кода с помощью агентов и эффективно форкнуть существующий разговор. Это наша настройка, теперь, когда у нас есть план. Теперь, когда у нас есть полная цель, мы понимаем, что это позволяет нам форкать окна разговора. Это позволяет нам выгружать контекст новым агентам или просто выгружать процессы в новые окна. Итак, это то, что мы строим. Это цель, проблема и решение. Наше решение — создать повторно используемый навык, который наши агенты могут развертывать. Итак, теперь у нас есть конечный результат. Хорошо, мы начали с конца. Мы знаем, что мы хотим, чтобы наши агенты строили для нас. Это самый важный шаг. Если вы постоянно полагаетесь на агентов, на документацию, на другие вещи вне вашего собственного разума для выполнения работы, вы будете полностью зависимы от этих инструментов. Вы видите это все больше и больше день ото дня. Мозги инженеров гниют из-за этой невероятной технологии. И, честно говоря, я не написал ни строчки кода уже больше года, с некоторыми небольшими исключениями, вероятно, верно? Агенты делают это. Но суть здесь в том, чтобы всегда понимать, о чем вы просите своих агентов. Суть здесь в том, чтобы всегда иметь план, верно? Иметь конечный результат. Определите свой конечный результат. Те, кто планирует будущее, склонны его создавать. Итак, вот мы. У нас есть наш план, простой и понятный. Мы всегда можем добавить сюда больше документации. Мы всегда можем вернуться к этому, но давайте начнем строить. Давайте сдвинем это, верно? Сырая идея. Давайте воплотим ее в реальность в наших инструментах. Итак, давайте начнем здесь. Я отброшу это туда, и давайте вернемся к нашим технологиям и приступим к этому. Итак, совершенно новая кодовая база, верно? Терминальные проекты make dur. Это будет навык терминала fork CDN. Я буду использовать курсор здесь. Используйте любой IDE, который вам нравится. Все сходится на агентах. Так что предпочитаемый вами пользовательский интерфейс на самом деле не имеет значения. И вы можете видеть здесь, у нас есть пустой каталог. Хорошо. Теперь я немного закрою жалюзи, потому что я не очень хорошо вижу сразу. Мы можем начать передавать работу нашему агенту. Мы, конечно, загрузим лучший инструмент для написания кода с помощью агентов. Большая часть фактического написания запросов, которое я делаю, просто находится в пустом файле. Так что, знаете, вы можете выйти из среды, открыть пустой файл здесь, чтобы написать свои запросы. Итак, я просто перепишу структуру каталогов, которая у нас была. Итак, cloud/skills skill.mmd tools fork terminal. И когда я работаю над этим, знаете ли, записывая структуру, обдумывая и планируя вещи, я настраиваю себя, верно? Когда ваши агенты строят это для вас, вы можете быстро увидеть, правильно ли это или нет, верно? вы сможете быстро понять и выполнить конечный результат, который вы ищете. Надеюсь, это имеет смысл. Итак, запросы, да, краткое изложение fork, пользовательский запрос. Мне нравится быть очень ясным, когда я пишу пользовательские запросы, которые будут просто одним из многих, или системный запрос, который является просто одним из одного, верно? И тогда у нас есть наша кулинарная книга. И здесь у нас будет наша команда CLI. И здесь у нас будет наш Gemini CLI, Codex CLI, Cloud Code. Отлично. У нас есть доступ к агентам. Давайте позволим агенту сделать все это для нас, верно? Постройте это. И мы можем сделать это лучше. Подождите. Давайте вернемся сюда, верно? У нас также есть getignore. У нас также есть am. У нас есть readme. И это выглядит неплохо, верно? Мы скажем Python по умолчанию. И здесь мы установим переменные по умолчанию. Итак, мы скажем Gemini API key. Вот и все. Один из моих любимых вариантов использования курсора — это то, что я люблю их модель автодополнения. У них лучшая модель автодополнения. Они работают над этим годами. Огромный поклонник этого продукта до сих пор. Это все еще, знаете ли, одна из моих любимых IDE. Я переключаюсь между VS Code и Cursor. Это выглядит отлично. Итак, мы просто запустим это. И я просто скажу build use empty files. Хорошо. И поэтому наш агент построит своего рода базовую структуру. Чтобы быть очень ясным, какой тип написания кода с помощью агентов мы делаем? Мы делаем написание кода с помощью агентов в цикле. Наше присутствие самое высокое. Наши усилия самые высокие. Наша способность использовать инструменты также самая высокая, потому что мы работаем прямо здесь, в цикле. Знаете, сейчас существует множество способов работы с вашими агентами. Многие облачные инструменты, они считаются инструментами для написания кода вне цикла. Все больше и больше в ваших существующих кодовых базах, ваших производственных кодовых базах. Вы хотите работать вне цикла. Нет причин с агентами, чтобы вы вмешивались сюда и, знаете ли, исправляли мелкие ошибки или выполняли мелкие поручения. Мы много говорим об этом в тактическом написании кода с помощью агентов. Это одна из основных идей. Конечно, наш агент делает все это для нас здесь. Давайте приступим к get init branch main. Хорошо, просто настроим все здесь фундаментальным образом. Итак, он просто генерирует структуру файлов для нас здесь, верно? как и было запрошено. Хорошо, фантастика. Итак, теперь мы на основной ветке. Давайте углубимся в самую важную часть этого, верно? Фактический навык. Мы создаем этот навык терминала fork. Итак, как это выглядит? И в чем его суть? Потому что, как только вы создадите свой skill.md, верно, ваш основной, как я люблю называть его, поворотный файл. Это то, вокруг чего сосредоточена вся работа. Как только вы создадите это, все остальное начнет вставать на свои места, и вы сможете действительно масштабировать свое влияние, бросая агентов на проблему. Но, знаете, как я уже сказал, я не использую никаких мета-запросов, никаких мета-навыков, никаких агентов, никаких агентов-оркестраторов, верно? У меня есть куча инструментов, где я мог бы сделать это все с несколькими примерами. Я хочу пройти весь процесс здесь с вами. Давайте создадим навык с нуля. Я настоятельно рекомендую настроить несколько фрагментов кода для запросов. Итак, у меня есть этот фрагмент для написания навыков, ag. И если я активирую его с помощью control space, вы увидите эту структуру навыка. Хорошо. Навык терминала fork, и мы опишем, что он делает одним предложением, и опишем, когда навык следует использовать другим предложением. Хорошо, курсор имеет для нас некоторые мнения. Давайте позволим ему автодополнить. Отлично. Это выглядит хорошо. И мы будем использовать это, когда пользователь запрашивает fork terminal, или мы также можем сделать create new terminal или new terminal что-то вроде этого, верно? Мне нравится быть очень ясным в том, как это пишется. Хорошо. И цель здесь — именно форкнуть новую сессию терминала в новое окно, используя необработанную команду CLI. Хорошо. Итак, мне нравится иметь раздел переменных здесь. Если вы следили за каналом, смотрели некоторые из наших работ, это распространенный запрос на написание кода с помощью агентов, за исключением кулинарной книги. Итак, кулинарная книга — это новый шаблон, которым я хочу поделиться с вами здесь. Мне нравится иметь своего рода простой флаг включения. Итак, enabled, мы скажем enable Gemini CLI. А затем мы просто пройдемся по строке, а затем enable raw CLI commands. Хорошо. И мы можем просто сделать их необработанными. Это должно быть нормально. Я хочу, чтобы все было включено. Так что вы можете просто прийти сюда, включить, выключить что-то, верно? Давайте начнем с простого запуска команды через необработанную CLI. И трюк здесь в том, что нам нужны совершенно новые терминалы. И когда вы работаете на устройствах Mac, мы можем сделать это с помощью чего-то, называемого OAS script. И чтобы продемонстрировать это, я запущу новый агент Cloud Code здесь. И мы можем просто запросить именно то, что мы хотим, чтобы произошло в навыке. Это отличный способ настроиться на создание вашего навыка. Позвольте вашему агенту просто запустить его в цикле. Напишите запрос, наблюдайте за результатом, а затем закодируйте его в навык. Мы можем сделать что-то вроде этого. Используйте OAS script, чтобы открыть новый терминал. Немедленно запустите ffmpeg help. И это продемонстрирует первоначальный базовый результат, который мы ищем. Хорошо. Итак, в терминале здесь, если мы прокрутим вверх, мы должны увидеть, что мы можем просто искать, и вы видите, что это команда, которая выполнилась. И, как вы можете видеть здесь очень ясно, он открыл для нас новый терминал. Итак, это идея, верно? И мы можем закодировать это в нашей кулинарной книге команд CLI. Теперь мы не хотим просто бросать, ленивый подход — это быстро бросить агента на проблему. Давайте работать шаг за шагом здесь, и я хочу продемонстрировать, как вы можете использовать прогрессивное раскрытие в наших инструкциях. Я просто начну писать именно то, что хочу сделать, а затем мы сможем улучшить это по мере продвижения. Итак, на основе запроса пользователя определите, какой инструмент использовать, и мы скажем: следуйте кулинарной книге, чтобы определить, какой инструмент использовать. И вот первое, что мы сделаем здесь, это определим структуру. Итак, вы можете видеть здесь, у нас есть если, затем и затем примеры. Итак, мы можем направить эту работу. Итак, мы можем сделать что-то вроде этого, верно? Я создам новый раздел здесь, необработанные команды CLI, если пользователь запрашивает неагентский инструмент для написания кода, затем прочитайте, и он направит прямо к этому файлу, скопируйте относительный путь, я скажу: прочитайте и выполните этот запрос, хорошо? И так простое если, и у нас есть несколько примеров здесь, если нам это нужно, так что мы можем сказать что-то вроде этого, верно? Примеры, всего несколько очень простых примеров. Итак, мы можем сказать: создайте новый терминал для xyz с помощью ffmpeg, а затем мы можем точно с помощью curl и xyz с помощью python, верно? Так что просто что-то вроде этого, верно? Некоторые простые примеры, чтобы начать работу агента. Первое, что мы хотим сделать, это добраться до концепции доказательства, доказать, что это работает. Давайте просто сделаем это максимально простым. Рабочий процесс должен, по сути, следовать инструкциям для первой версии. Итак, мы скажем что-то вроде: поймите запрос пользователя, следуйте точным инструкциям, выполните инструмент. Трехэтапный рабочий процесс, очень лаконичный. У нас должен быть почти операционный навык здесь. Итак, еще одна вещь, которую мы хотим сделать, это создать этот навык терминала fork. Я хочу, чтобы он свернулся в конкретный скрипт Python для запуска совершенно нового окна терминала. Итак, я фактически запрошу эту работу, чтобы наш агент построил это с учетом знаний в его контекстном окне. Обновить. Мы будем использовать синтаксис @ здесь. fork astral uv single file script. Важно знать дату окончания вашего языкового модели. Я знаю, что Sonnet 45 видел документацию Astral UV. Так что я могу сослаться на нее вот так. Используйте setup subprocess для запуска нового терминала с конкретной командой. И тогда я также сделаю следующее: передам определение функции. Хорошо. Итак, я скажу fork terminal, и я буду использовать ключевое слово Python. Итак, теперь агент знает, что это ключевое слово с плотной информацией. Мы используем ключевые слова с плотной информацией повсюду. Обновить, верно, скрипт astral uv c fall, который ссылается на существующие подпроцессы инструментов. Это может показаться простым, но когда вы выделяете эти конкретные ключевые слова, это содержит много информации. Хорошо. Команда. И что еще нам нужно здесь? Um fork terminal command. Возможно, этого достаточно для начала. Я чувствую, что чего-то не хватает. Давайте просто начнем с этого. Всегда возвращайте какую-нибудь строку. Пара таких запоздалых инструкций, лаконичная, минимально возможная рабочая версия. Итак, он построит этот файл Python. И опять же, мы постоянно работаем над версией v0, первой версией. И для всех инженеров, знаете ли, я не пытаюсь вас обогнать. Это можно сделать очень, очень быстро. Я просто прохожу через процесс, прохожу через то, как вы должны думать о создании навыков, потому что будет навык, который вы захотите определить очень специфическим образом для отличного повторного использования, и вы захотите знать, как пройти через это шаг за шагом. Хорошо? И вот оно. Это выглядит отлично. Опять же, самая простая рабочая версия. И что я хочу сделать здесь, это добавить еще одну инструкцию или добавить еще один шаг рабочего процесса. Итак, сначала поймите запрос пользователя. Второе здесь я хочу сказать: прочитайте, и мы хотим направить к этому файлу. Хорошо. Чтобы понять наш, и поэтому мы всегда хотим выполнить, по крайней мере для этой первой версии. Мы хотим выполнить это прямо здесь. И поэтому я буду очень, очень конкретным в том, что я хочу сделать здесь. Я буду очень предписывающим. Я хочу, чтобы он выполнил эту точную команду. Хорошо? Так что никакой путаницы здесь нет. Многое из того, что вы делаете в своих навыках, вы устраняете, когда пишете отличный навык, вы устраняете путаницу. Одна вещь, которую мы упустили здесь, мы хотим убедиться, что наши переменные действительно работают. Если запрос пользователя — это неагентский инструмент для написания кода, и именно это истинно, тогда сделайте это. И мы должны быть очень ясны здесь в нашей цели. Итак, наш агент знает точные шаги. Я хочу сказать: следуйте инструкциям, выполните рабочий процесс на основе кулинарной книги. Хорошо? Итак, я действительно хочу, чтобы агент уважал каждый раздел, в котором мы работаем здесь. Хорошо. Это выглядит отлично. У нас действительно должна быть первая рабочая версия после этого. И если нет, у нас есть что-то, на чем наш агент может итерировать. Давайте запустим это. Нам может понадобиться что-то немного более сложное здесь, но давайте посмотрим. Нет зависимостей здесь. Это нормально. Давайте запустим это. Итак, я запущу новый агент здесь, чтобы он знал об этом навыке агента. Мы всегда можем просто увидеть все доступные навыки, верно? На самом деле, мы можем вставить это в запрос, если захотим. Это своего рода, знаете ли, один из фундаментальных запросов, которые вы можете создать. Мы можем написать что-то вроде команд и просто создать несколько простых разумных запросов, чтобы помочь нам работать здесь. Все навыки перечисляют все доступные навыки из вашего системного запроса. Хорошо? И мы загрузим нового агента. И тогда мы наберем все навыки. И теперь мы должны увидеть, как наш навык появится здесь. И у меня нет доступных навыков. Итак, вы можете видеть здесь, я фактически написал навык в неправильном формате. Вы, вероятно, видели это задолго до меня. Давайте исправим это. Итак, мы можем написать fork terminal. Хорошо? А затем мы можем переместить все внутрь этого. Вот и все. Давайте перезапустим это. Все навыки. И вот почему мы тестируем и работаем шаг за шагом. Вот и все, у нас есть наш навык терминала fork. Хорошо? Давайте запустим это. Я очищу fork terminal run fmpg help. И поэтому все, что мы делаем здесь, это мы добираемся до уровня концепции доказательства. Хорошо? И поэтому вы можете видеть здесь, что у меня неправильная структура каталогов. Мне на самом деле нужно вернуться к навыку и обновить это, поскольку я использовал неправильный путь ссылки. Итак, навыки, я просто начну набирать это. И, конечно же, курсор здесь на помощь. Все хорошо. И давайте сбросим и выполним это снова с правильными путями структуры каталогов. Вот и все. Итак, получаем этот базовый рабочий пример. О, и похоже, что это все еще предыдущая версия. Это то, над чем, я надеюсь, команда Cloud Go будет работать. Навыки здесь, они не обновляются в реальном времени, верно? Так что мне действительно приходится очищать всю свою сессию, а затем загружать ее один раз, а затем запускать это снова. Фактические пути здесь не были полностью обновлены. Вот и все. Теперь у него есть обновленный файл skilled up markdown после полного обновления экземпляра Cloud Code. Вы можете представить, что он делает это, потому что при загрузке он фактически загружает метаданные и, следовательно, остальную часть навыка куда-то прямо в запрос. Итак, хорошо, у нас открылось новое окно терминала, и оно не открывается автоматически. Так что я просто наберу terminal здесь, и вы можете увидеть это точно. Итак, опять же, знаете ли, у нас есть оба этих окна. Позвольте мне фактически закрыть их, чтобы было ясно. Откройте снова. Запустите один с ffmpeg help, а другой с clawed help. И это начнет подталкивать нас к нашему следующему файлу кулинарной книги. Хорошо, он запустил clawed с help, а не d-help. Итак, снова, давайте запустим это еще раз. тире тире. Я просто хотел быть очень, очень ясным. Я хочу видеть, что это действительно работает. Хорошо, а затем мы откроем терминалы. Закройте их. Вот и все. Верно, это наш claw help. Выглядит отлично. Так что это работает. Хорошо, так что у нас есть концепция доказательства. Мы открываем новые окна терминала, а затем запускаем команду. Одна вещь, которую нам нужно сделать здесь, нам нужно быть очень ясным здесь о запуске этого на Windows по сравнению с Mac. Итак, мы позволим агенту позаботиться об этом. Давайте вернемся в это окно. Обновите это. Добавьте поддержку для Windows по сравнению с Mac. И поэтому я на самом деле ищу некоторые инструменты для Windows. Мне нужен песочница Windows в идеале, чтобы я мог быстро проверить на обоих устройствах, не открывая свои машины Windows. И вот и все. У нас есть наша простая система. Это выглядит правильно. Мы делаем Darwin Windows, похоже, правильная команда Windows. PowerShell может быть лучшим путем, но это нормально. Мы всегда можем перейти к этому файлу, протестировать, улучшить и так далее. Я хочу немного улучшить этот рабочий процесс. Я хочу, чтобы наш агент всегда понимал команду, которую мы пытаемся запустить, прежде чем он ее запустит. Итак, что я имею в виду под этим? Каждый CLI, каждый правильный CLI поставляется с этой опцией --help, верно? Так что для Claude мы можем сделать d-help, и это дает нам кучу информации. И вы можете сделать это для, знаете ли, Gemini CLI. Вы можете сделать это для любого инструмента или, простите, просто для Gemini. Вы можете сделать это для любого инструмента и понять, что происходит. Итак, думая с точки зрения нашего агента, разве не было бы полезно, если бы перед запуском чего-либо он получил дамп справки, а затем начал выполнение? И то, что мы делаем здесь, это мы обмениваем скорость и контекст на лучшую производительность, верно? Потому что агент может не знать, как работает Gemini CLI. Я думаю, это особенно хорошо делать для новых инструментов, которые меняются, верно? Gemini CLI, Codex, Cloud Code, верно? CLI, справочные документы, они меняются, верно? Агенты не имеют этого в своей модели, верно? В их понимании мира. И поэтому то, что мы хотим сделать, это закодировать это в навык. Итак, если мы откроем нашу кулинарную книгу, перейдем к CLI command. Сейчас он просто работает на основе своего лучшего суждения. То, что мы хотим сделать, это дать ему больше правил для следования. Хорошо. Итак, я буду использовать AGP. Это мой агентский запрос, и он просто запускает отличную структуру запроса. Большая часть этого нам не нужна. Итак, я опущу это. То, что нам нужно, это по крайней мере инструкции. И вот мы выполняем необработанную команду CLI. И инструкции здесь. Давайте просто опустимся до инструкций. Итак, перед выполнением команды запустите command-help, чтобы понять команду и ее параметры. Это должно просто помочь нам работать с командами CLI. Так что, просто и понятно. Обратите внимание, как я не пытаюсь искать самое сложное решение. Я пытаюсь сделать обратное. Я хочу самое простое рабочее решение, которое заставляет наших агентов работать должным образом, верно? Которое выполняет работу для агентов. Итак, теперь наш агент прочитает этот файл перед тем, как начать. Итак, давайте просто посмотрим на это в действии, верно? Мы запустим этот новый терминал curl google.com и просто запустим его. Хорошо? Итак, этого должно быть достаточно, чтобы активировать навык. Вот необработанная команда CLI, и вот google.com. Хорошо? Итак, он видит, что мы не используем перечисленный нами инструмент для написания кода с помощью агентов. Итак, он прочитал эту документацию. Вот она. Он сначала запускает справку, чтобы понять, как это работает. И теперь он фактически просто запустит этот терминал. И хорошо, мы получили отказ в доступе. Давайте посмотрим, сработает ли это. Вот и все. Хорошо, отлично. Мне нужно фактически открыть разрешения для этого файла. Вот и все. Итак, если мы откроем терминал здесь, мы можем увидеть, что мы только что выполнили curl для Google. Хорошо, вещи работают. Он слушает инструкции, работает шаг за шагом. Давайте масштабируем это, верно? Давайте перейдем к нашим файлам агентов. Итак, как мы хотим, чтобы наши файлы агентов работали? Мы хотим открывать совершенно новые окна терминала с выполненными запросами. Давайте сначала запустим это в цикле внутри терминала. Мы откроем совершенно новый экземпляр здесь. Никогда не бойтесь просто начать с чистого листа. Вы всегда хотите это свежее контекстное окно. Итак, я хочу, чтобы он запустил совершенно новый терминал Cloud Code, работающий на модели Haiku. И я хочу, чтобы он работал в режиме YOLO. Я начинаю настраивать, как именно я хочу, чтобы это работало в новом терминале. Итак, давайте запустим версию прямо здесь. Запустите clawhelp, чтобы запустить новый терминал. Запросите модель vha coup с помощью ping. Итак, это должно быть все. Давайте посмотрим, как это работает. Итак, сначала наш агент учится использовать это, верно? Он учится использовать claw. Затем мы используем oas script для запуска нового терминала. А затем мы запросим модель haiku, потому что она видела справочные документы. Она знает, что может просто искать haiku. Она фактически начинает смотреть на навык. Я не хочу, чтобы она делала это здесь. Так что я просто остановлю ее. Игнорируйте навык. Просто запустите это напрямую. Хорошо. Итак, вы можете видеть, что у нее есть документация, верно? Она запустила эту опцию --help. Так что она знает, как это запустить. Итак, если я открою терминал здесь, там. У нас автоматически запущен модель haiku с этим запросом ping, верно? И она сделала это с помощью -p. Хорошо. Так что она запускает это в неинтерактивном режиме. Это хорошее начало. Мы можем закодировать это. Теперь я скопирую команду CLI, потому что мне это нравится как отправная точка. И я открою Cloud Code. Вставьте это. Выполните агент Cloud Code. Создайте новый для выполнения команды. Запустите справку. Итак, я хочу, чтобы он понял документацию. И теперь мы добавим некоторые правила. Итак, как я хочу, чтобы этот агент работал с Cloud Code? Я хочу, чтобы он всегда использовал интерактивные терминалы. Оставьте -p. Я добавлю раздел переменных здесь. Fast model. Мы просто скажем: модель base Haiku. Это будет Sonnet. И скоро у нас будет наша мощная медленная модель Opus. Пока что мы просто продолжим с этим. Я также скажу: модель по умолчанию Sonnet. Для аргумента модели -ashm используйте модель по умолчанию, если она не указана. Если запрошен fast, используйте fast model. А затем мы можем сказать то же самое, верно? Я просто добавлю это. Мы знаем, что это грядет. Итак, я скажу: heavy model Opus. И тогда именно если heavy, используйте heavy model. Хорошо, это может быть все, что нам нужно, верно? потому что мы учим модель использовать инструмент с помощью d-help, а затем даем некоторые детали о том, как мы хотим, чтобы это работало. Еще одна вещь, которой я почти всегда доверяю своим моделям здесь. Итак, я скажу: всегда запускайте с помощью Claude d-help grap danger. Вот и все. Опасно пропустить разрешения. Наш агент увидит это. И тогда мы можем перейти к этой документации и добавить другие кулинарные книги для других вариантов использования. И, знаете ли, чтобы быть ясным, что мы делаем здесь, это своего рода структура кода, это в конечном итоге дополнительные ресурсы, это то, как мы действительно продвигаем возможности прогрессивного раскрытия, верно? Но мне нравится называть это кулинарной книгой, потому что мы показываем рецепты, когда использовать каждый набор инструментов, конкретно Cloud Code, а затем привет курсору, их автодополнение безумно. Если пользователь вводит агент Cloud Code, и CL Code включен, тогда мы делаем это, верно? Затем мы читаем документы Cloud Code. Некоторые примеры всегда полезны, верно? Всего три простых примера. Fork terminal, используйте Cloud Code для XYZ, верно? Ему не нужно быть супер подробным, но вам просто нужно некоторое представление о том, как все работает. Fork terminal, запустите новый терминал, запросите XYZ с помощью Cloud Code. Хорошо, вот и все. Это выглядит отлично. И теперь, поскольку мы здесь, мы установили шаблон. Так что мы можем сделать это. Давайте посмотрим, как курсор в строке делает классическое командное K-запрос. Я скажу: продолжайте для Codex CLI и Gemini CLI, зеркалируйте это. Хорошо. Итак, давайте посмотрим, насколько это исправлено. Отлично. Отлично, верно? Мы все сделали правильно. Это именно то, что мы искали. Вы можете использовать запросы везде. Вы можете использовать агентов везде. Все дело в доступе к большему количеству вычислений для выполнения работы. Так что фантастика. Верно. У нас есть все наши документы. Наша кулинарная книга правильно маршрутизирует и прогрессивно раскрывает информацию в нужное место, когда это необходимо. И мы можем просто дважды проверить это, верно? Claude Codex. Позвольте мне включить поиск по регулярным выражениям. И у нас есть Gemini. Фантастика. Так что это выглядит отлично. И у нас все включено. Давайте попробуем это, верно? Давайте посмотрим, как мы можем запустить совершенно новый экземпляр Cloud Code. Не совсем форкнутый, потому что у нас еще нет нашего запроса на обобщение. Мы добираемся до этого. Давайте запустим новый экземпляр. Вы можете видеть, что это очень распространенный шаблон, который я делаю. Знаете, вы хотите начать с чистого листа. Легко узнать, что видел ваш агент, когда он ничего не видел. Хорошо, давайте закроем все остальное. Мы пытаемся запустить это. Давайте посмотрим, как работает этот навык. Fork terminal new claw code. А затем я помещу это в кавычки. Перечислите ваш текущий рабочий каталог. Итак, мы вызовем навык fork. Он читает документацию. Он понимает, что нам нужен экземпляр Cloud Code. Итак, вот он. У нас есть условный запрос, верно? Это прогрессивное раскрытие. Он условно просматривает дополнительную документацию. Это фактически условный запрос. И вот он. Наша команда справки выполняется. И теперь мы будем форкать. И он выполняется с теми точными настройками, которые мы запросили в инструкциях. Хорошо. И теперь он работает над совершенно новым окном терминала. Верно. И мы начинаем видеть, почему это полезно, верно? Я просто взял некоторую работу, которую хотел сделать. Переместил ее в новый терминал. У нас может быть терминал здесь. И мы должны увидеть, как это работает. Вот и все. Есть еще одна проблема. Мы всегда открываемся в вашем корневом каталоге. Я хочу, чтобы все мои форки открывались против того же самого окна. Так что мы просто запросим это. Обновите это. Убедитесь, что мы открываем форки в текущем рабочем каталоге. И прошло некоторое время с тех пор, как мы коммитили код. Так что я просто запущу свою горячую клавишу. GSDC. Он просто закоммитит все с простым сообщением о прогрессе. Если вы видели какие-либо из моих репозиториев, вы, вероятно, видите тонны таких. Вот и все. Я просто хочу закоммитить это, чтобы, если что-то пойдет не так, мы всегда могли отменить с помощью git. Итак, мы находимся в хорошем месте, где есть интересная работа, которую стоит закоммитить. А затем мы можем делать такие вещи. Мы можем перейти в терминал, получить diff, увидеть проделанную работу. Вы можете видеть здесь, что мы сначала перейдем в текущий рабочий каталог, а затем выполним работу. Это выглядит хорошо. Я оставлю этого агента здесь, поскольку у него есть контекст работы над этим в микромасштабе. Я мог бы сделать все это с одним агентом, но это просто хорошая практика, верно? Это отличная практика написания кода с помощью агентов. Когда вы запускаете агент за агентом, работая над проблемой за проблемой, вы хотите свежие контекстные окна. Вы хотите, чтобы они были сфокусированы. Хорошо, новое окно. Хорошо, так что если я запущу pwd там, вы можете видеть, что мы находимся в кодовой базе этого навыка терминала fork. Теперь я очищу, а затем нажму вверх, вверх, вверх пару раз, и мы должны вернуться к этой команде fork. Перечислите ваш текущий рабочий каталог. Давайте запустим это. Это работает здесь. Он понимает, как работает инструмент, прежде чем выполнять его. И теперь он запустит его. Хорошо, вот и все. Он запускает его с помощью UV. И мы, вероятно, должны добавить некоторую документацию о предпочтении Astral UV. Но у нас есть форк. Позвольте мне открыть это здесь. И где наше новое окно здесь? Я ищу это новое окно. Я его не вижу. И поэтому то, что может происходить здесь, это, вы можете видеть здесь, мы только захватываем std out. Мы, вероятно, хотим захватить все. Не получаем никаких результатов. Убедитесь, что мы захватываем ошибку и ловим, если что-то идет не так. Держите это просто. Хорошо. Итак, что-то здесь не работает. Наш агент не видит этого. Мы не получаем никакого результата от выполнения этого скрипта. И поэтому мы хотим сделать этот код более агентским, чтобы мы могли получать конкретный вывод каждый раз, когда он выполняется. Вот и все. На этот раз мы получили ошибку. Вы можете видеть std error. У нас есть более агентский код, верно? Наши агенты могут понимать, что происходит. Теперь мы будем делать некоторую замену строк, что выглядит немного сложно. Мне это не нравится. Мы определенно всегда предпочитаем что-то проще, но давайте посмотрим, как это выглядит. Вот и все. Хорошо. Итак, Cloud Code решил для нас проблемы с экранированием ключей. Это хорошо. Мы, вероятно, захотим упростить это в какой-то момент, но давайте посмотрим, сработает ли это. Вот и все. Вы можете видеть здесь, у нас есть совершенно новый терминал. Какой из них? Не этот. Не этот. Это наш старый. Это этот здесь. И если мы запустим pwd, вы можете видеть, что мы находимся в нашем каталоге, который мы искали. Так что это выглядит отлично, верно? Вы видите текущий рабочий каталог с файлами. Так что это работает, верно? Итак, что мы делаем здесь? Мы создаем навык, который позволяет нам форкать окна терминала и добавлять конкретную информацию, верно? Мы хотели форкать окна определенным образом. Итак, я хочу, чтобы наш агент сделал ту же работу для Codex и Gemini, верно? Точно так же, как он написал инструкции кулинарной книги для Codex и Gemini. Итак, у нас будет новый агент здесь. И я должен начать чистить своих агентов в какой-то момент. Понять навык. И поэтому здесь становится полезным прайм-команда. И мы можем быстро и просто построить это здесь с помощью prime.md AGP agentic prompt. Я просто создаю простой запрос, чтобы помочь агенту понять, как работать с этой кодовой базой. Верно. Поймите эту кодовую базу и сообщите о своем понимании. Читать, или мы можем просто сделать это, верно? Используйте этот прямой синтаксис. Читайте readme. А затем я скажу это здесь. Я также просто хочу, чтобы он прочитал все. Так что я скажу: прочитайте всю кулинарную книгу и инструменты, продолжайте с синтаксисом @, используя курсор здесь для использования запросов в редакторе. Это должно быть хорошо. Итак, теперь у нас есть новый агент. Давайте закроем. Давайте сбросим. Давайте запустим / prime. И теперь мы просто прочитаем все, и наш агент должен быть готов к работе. Он должен сообщить о своем понимании сейчас. А затем мы можем начать запрашивать это. Верно. Так что просто быстрый способ запустить вашего агента со всем, не раздувая файл памяти. Вы можете видеть здесь, что у нас есть интеграция с необработанной CLI и Cloud Code. Поддержка Mac Windows полностью интегрирована, но у нас нет Codex или Gemini. Итак, давайте исправим это. Зеркалируйте Cloud Code и создайте Codex и Gemini. Хорошо. Итак, я просто использую ссылку @, чтобы двигаться немного быстрее. А затем я скажу это: прежде чем вы начнете, поймите CLI. Мы хотим ту же версию Codex и Gemini, что и у Claude. И, знаете ли, чтобы быть конкретным здесь, я говорю: модели по умолчанию, модели, помощь, режим YOLO, и да, это должно быть все. Хорошо, как только у вас есть существующий шаблон, вы можете масштабировать его с помощью вашего агента. Итак, я запущу which, а затем мы запустим команды help. И теперь мы должны увидеть здесь эквивалентные версии как для Codex, так и для Gemini CLI. И поэтому он, вероятно, испытывает некоторые трудности здесь, пытаясь выяснить, какие модели использовать. Точно. Да. Так что он не уверен, какие модели использовать. Итак, я остановлю это здесь, и я просто буду очень конкретным, верно? Я хочу эту новую модель Gemini 3 Pro. Для Gemini используйте Gemini 3 Pro Preview в качестве базы. Для fast, я думаю, это Gemini 25 Flash. Я просто быстро открою Gemini CLI, чтобы убедиться, что я прав. Если я перейду к моделям здесь, хорошо, Gemini 2.5. Так что мы скажем 2.5 Flash для Codex. То же самое, верно? Нам нужно указать точные модели, которые мы хотим использовать, и мы хотим использовать эту модель как базу, а fast — что мы хотим для fast model? Давайте используем 5.1 Codex Mini. Так что я просто скопирую это и вставлю это. Это то, что мы могли бы решить на этапе планирования, но это нормально. Мы работаем здесь в цикле в любом случае. Важно отметить, что, знаете ли, большая часть деталей, над которыми мы сейчас работаем, мы, вероятно, могли бы выяснить все это на этапе планирования, просто проработав это, обдумав, что потребуется каждому. Мы могли бы начать фактически записывать каждый из этих запросов, но мы отлично справляемся здесь, и наши агенты делают работу за нас. Вы можете видеть, что есть разный синтаксис YOLO для Gemini по сравнению с Codex: fast model, heavy model, base model. Мы можем настраивать наши переменные здесь для каждого запроса по мере необходимости. Но это выглядит хорошо. Давайте протестируем это. Преимущество, которое мы получаем от этого форкинга, начинает оживать здесь. Позвольте мне закоммитить все здесь. И мы откроем новое окно набора. fork session new. Мы будем использовать Codex fast model. Я скажу Codex CLI, чтобы быть очень ясным. Fast model. Обобщите, что делают все команды Claude. Мы запускаем совершенно новый, ой. Итак, наш агент пытается сделать эту работу самостоятельно. Хорошо, это случается. Давайте посмотрим. Давайте убедимся, что мы говорим правильные ключевые слова. Fork terminal. Что я говорю? Fork. Я сказал fork session. Хорошо. Итак, позвольте мне просто добавить это в описание навыка. Так что наш агент знает команду fork session. Точно. Верно. Просто чтобы быть немного яснее с нашими запросами. Не предполагайте, что это вина модели. Сначала предположите, что это ваша вина, а затем, если вы действительно правильно спроектируете запрос, тогда вы можете предположить, что это вина инструмента. Хорошо, давайте просто запустим это снова. Fork session. Мы хотим новый Codex CLI, обобщить все, что делают, бла-бла-бла. Вот и все. Итак, теперь он запускает этот навык для нас. Так легко просто винить модель, но вы действительно должны винить себя сначала. Вините свой инструмент. Вините свое понимание сначала. Более чем вероятно. Теперь, как мы говорили в предыдущих видео, ограничение не в моделях. Это не агенты, это вы и я, верно? Это то, что мы делаем с этими инструментами. И мне действительно нужно открыть разрешения для этого файла. Я просто сделаю это сейчас. Скопируйте. И у меня есть команда для этого. Я закрою этот. cx это. Вот и все. Это должно открыть разрешения. Хорошо. Итак, если мы откроем терминал здесь, вот и все. У нас работает новый агент. Мы запустили это из нашего агента Cloud Code. Вот и все. Верно? Очень простые вещи, но вы можете видеть, насколько мощным это может быть. Я говорю о масштабировании ваших вычислений для масштабирования вашего влияния. Одна из причин, по которой я сделал это, заключается в этом, верно? Мы можем делать такие вещи, как fork new codec cli model. И мы протестируем с Gemini здесь, верно? Gemini CLI fast model, используйте один форк на файл. Я скажу: обобщите, что делают все файлы *.md. Хорошо, давайте будем очень ясны в том, что здесь происходит. Я говорю: форкните новый Gemini CLI fast model. Хорошо, отлично. Используйте один форк на файл. И я могу быть еще яснее здесь, верно? Используйте один терминал fork create. Хорошо, давайте запустим это, верно? Давайте посмотрим, сработает ли это должным образом. И здесь это как проектирование запросов, верно? Это теперь мы достигаем пространства, где нам нужно спроектировать, как это работает точно. Итак, там.
Используем ли мы здесь навык? Мм, да, используем. Фантастика. Хорошо, значит, это работает. Отлично. Вы можете видеть вывод и код возврата. Мы получаем хороший отклик, верно? Хорошо. Агентный код. И вот оно. Итак, у нас есть четыре агента в новых терминальных окнах, каждый из которых смотрит на другой файл. Облачный код делает слишком много. Облачный код отлично подходит для этого, и он также не очень подходит для этого. И под облачным кодом я также подразумеваю, знаете ли, Sonnet 45. Он сам сделал сводки. Но если мы нажмем терминал, это фактическая сводка. Этот документ описывает, как настроить агент облачного кода и выполнять команды. Этот файл описывает, как выполнить необработанную команду CLI. Хорошо, отлично. Итак, вы видите, что это работает. И снова, я действительно хочу сосредоточиться на масштабе, верно? Зачем я создал этот инструмент? Зачем нам нужно форкать сессии? Это для того, чтобы мы могли еще раз в другом измерении масштабировать вычисления для масштабирования воздействия. С помощью этого навыка вы теперь можете запускать и форкать. Мы приближаемся к части форка через секунду, но мы можем эффективно форкать контекстные окна для работы в совершенно новых контекстных окнах с новыми агентами или просто выполнять команду CLI. Хорошо, так мы начинаем видеть, как здесь проявляется ценностное предложение. Последнее, на чем нам нужно сосредоточиться, это убедиться, что мы действительно форкаем. Что это значит? Нам нужно создать сводку, как это делает команда compact. Она суммирует все существующие сообщения и сбрасывает контекстное окно. Вы всегда теряете информацию, когда запускаете это, но это, знаете ли, хорошее временное решение для сброса контекстного окна при сохранении текущей задачи. Поэтому мы хотим сделать это для нашего пользовательского запроса сводки форка. Мы хотим запрограммировать нашего агента использовать это, когда мы говорим "суммировать", верно? Или когда мы указываем, что мы также хотим суммировать. По сути, нам нужно, чтобы наш агент суммировал проделанную работу, а затем передал сводку агенту и четко заявил, что это предыдущая сводка, а затем отправил запрос. Итак, мы можем настроить это как шаблон запроса для выполнения агентом. Я буду использовать AGP, и это станет понятно по мере того, как мы будем это создавать. Итак, главное здесь — всегда помнить, кто кому пишет. У нас есть базовый агент, который пишет нашему агенту форка. Чтобы быть предельно ясным, мы передадим этот запрос этому агенту. И позвольте мне просто избавиться от всего этого, верно? И написать это так. И вот это взаимоотношения. Хорошо. Итак, наш базовый агент напишет этот запрос, и он будет общаться с агентом форка. Хорошо. Мы можем сделать это самым простым способом. История запросов, суммированный пользовательский запрос. И мы сделаем это в формате YAML. Верно? Просто чтобы сделать это предельно ясным для нашего агента. Это будет суммированный пользовательский запрос. И мы хотим объекты здесь. И давайте будем еще яснее, верно? У нас есть история здесь, а затем у нас есть суммированный пользовательский запрос, а затем у нас есть сводка ответа, а затем мы хотим продолжить этот шаблон и правильно выровнять наши вкладки. Убедитесь, что все выровнено по вкладкам. Это история разговора между пользователем и агентом. Возьмите это и используйте, чтобы понять следующий запрос пользователя. Хорошо. А затем мы напишем этот следующий запрос пользователя. Заполните здесь пользовательский запрос для форка. Хорошо, это, по сути, шаблонный мета-запрос. Почему? Потому что у нас есть агент, верно? Наш базовый агент заполнит это, используя этот формат, а затем он напишет это сообщение, верно, заполненное нашему агенту форка в качестве его начального запроса. Хорошо? И это, знаете ли, создаст простую, лаконичную историю, включающую суммированные версии вашего разговора с пользователем. Таким образом, наш агент форка будет иметь историю разговора и сможет лучше понять запрос пользователя. Хорошо, так что это очень мощные вещи. Теперь у нас есть этот запрос пользователя форка. Приятно и просто. Вы можете сделать это намного сложнее. Что нам нужно сделать здесь? Нам нужно убедиться, что мы обновили наш навык, чтобы это было предельно ясно. Мы должны сделать это в отдельной инструкции здесь. Поэтому я буду использовать H3 "Пользовательские запросы сводки форка". Итак, нам нужно установить условие здесь. Итак, если пользователь запрашивает терминал форка со сводкой, то с историей разговора между вами и пользователем до сих пор и включите следующий запрос. Точно. Хорошо. Примеры. И поэтому нам нужно быть предельно ясными здесь. Это работает только для наших агентных инструментов кодирования. Хорошо. И я создам переменную здесь, потому что я не хочу постоянно переписывать это. Агентные инструменты кодирования. Точно. Инструмент также должен быть включен. Хорошо, здесь мы указываем наши агентные инструменты кодирования, и теперь мы сможем создать сводку. Здесь вещи становятся немного сложными, и здесь действительно имеет значение интеллект модели. Поэтому позвольте мне быть более конкретным здесь с этими сводками. Форк терминала, используйте облачный код для XYZ, суммируйте проделанную работу, включите сводку с сводкой. Теперь с этим мы запустим это как запрос, верно? И позвольте мне быть предельно ясным здесь. Затем я перейду к этому. Это будет то, что вы передадите в параметр запроса агентного инструмента кодирования. Хорошо, это должно быть все, что нам нужно, чтобы иметь возможность форкать окно разговора для запуска новых агентов. Давайте протестируем это. Позвольте мне просто написать пару запросов здесь. Что делает ffmpeg? Я просто настраиваю некоторую историю для сжатия и суммирования. Есть ли другие подобные инструменты? Вы можете представить, что вы работали с одним агентом некоторое время. Теперь мы хотим его форкнуть. Хорошо, теперь мы хотим создать новый разговор. Форк сессии codeex CLI. Давайте снова запустим fast. Суммировать проделанную работу. И, знаете ли, вы можете перечислить это как атрибуты, верно? Форк сессии codec cli, суммировать проделанную работу. Верно? Так что мы как бы включаем кучу функций. И позвольте мне правильно это написать. Суммировать проделанную работу. А затем здесь запрос. Понять эту кодовую базу. Затем напишите 20-строчную сводку в read me. Хорошо. Давайте посмотрим, работает ли это. Верно, у нас есть активация форка, codec cli. Он будет постепенно раскрывать работу, которую мы хотим выполнить быстро. Поэтому он выбирает модель. Он будет суммировать проделанную работу. Хорошо, так что здесь многое происходит, но все это должно обрабатываться в нашем навыке. Хорошо, давайте посмотрим, как это пойдет. Хорошо. Форк терминала red codec red. Форк пользовательского запроса сводки red. Вот оно. Форк сводки запроса с нашим разговором. Хорошо, это не совсем правильно, но это то, что будет передано агенту. Так что вы можете видеть здесь, что он фактически просто обновляет этот файл. И позвольте мне быть ясным в своих инструкциях. Если мы откроем терминал здесь, мы увидим, что это запрос, который выполняется. И вы можете видеть, что он фактически передал правильный запрос, но обновил файл. Мы не хотим, чтобы он обновлял файл. Поэтому давайте будем ясными здесь. Чтобы быть ясным, не обновляйте файл напрямую. Просто прочитайте его и используйте для создания нового запроса для нового агента форка. Хорошо. И я собираюсь использовать ключевое слово "важная информация плотная", чтобы агент действительно уважал это. Хорошо, но это здорово, верно? Мы действительно запустили это. И если мы прокрутим вверх здесь, знаете ли, вы можете видеть нашу сводку, верно? YAML сводка, верно? Пользовательский запрос, ответ агента, пользовательский запрос, ответ агента, верно? Пользователь спросил, что делает FFmpeg? Объяснил это. Есть ли другой подобный инструмент? Перечислил несколько других инструментов. Верно? Итак, мы получаем хорошую сводку проделанной работы, верно? мы фактически форкаем контекстное окно, передавая контекст другому агенту лаконично. Хорошо, так что мы почти у цели. Давайте посмотрим, сработала ли эта, знаете ли, одна строка в наших инструкциях. Итак, мы очистим. На самом деле, давайте возобновим эту сессию. И я нажму Escape, чтобы отменить это. Верно. Итак, это крутая функция в Cloud Code. Вы можете перемотать историю. Я вернусь к этой команде. И теперь я нажму вверх. И теперь мы снова сделаем этот форк. Он читает все файлы, как и ожидалось. Вот оно. Codeex help. Теперь я форкну контекстное окно. Я включу историю разговора. Вот оно. Хорошо, вот оно. Итак, он не перезаписал ни один файл. И я на самом деле забыл отменить этот файл от изменения. Поэтому я нажму Ctrl-Z там. Хорошо. И теперь, посмотрите на это. Наш агент, если мы прокрутим вверх здесь, вы можете видеть, что мы запустили нового агента. Мы используем codeex 51 mini. И вот запрос, верно? Итак, это именно то, что было передано. История запросов. У нас есть хорошая сводка предыдущего разговора и следующий запрос пользователя. И сразу же codeex запустился, верно? Мы фактически форкнули контекстное окно с хорошей сводкой, и теперь он должен понять эту кодовую базу, написать 20-строчную сводку и read me, и давайте посмотрим, что он сделал здесь. Хорошо. Так что да, это модель codeex high. Так что вы можете видеть, что она не очень хорошо отформатирована, но это преимущество форка, верно? Теперь мы можем сказать "улучшить форматирование", верно? Что-то вроде этого. Что угодно. Хорошо, вот оно. Очень хорошо, верно? Намного лучше. Здесь мы создали навык с нуля, и мы прошли через все его части. Мы собрали повторно используемый запрос, с которым может работать наш агент. У нас есть выделенный каталог инструментов. У нас есть поваренная книга конкретных вариантов использования и конкретных инструментов. И, конечно же, у нас есть этот центральный файл skill.mmarkdown, самая важная часть с парой статических переменных, которые мы можем настраивать и регулировать, которые наш агент снова, если он достаточно интеллектуален, агент и LLM будут правильно управлять. Хорошо, это было создание навыка с нуля. Навыки важны, потому что они объединяют повторно используемый код и повторно используемые запросы. Не позволяйте ни одному новому грандиозному выпуску функции или модели сбить вас с толку. Единственное, на чем вам нужно сосредоточиться, это примитивы, из которых все состоит. Контекст, модель, запрос и инструменты, основные четыре. Если вы поймете это, если вы овладеете этим, вы овладеете агентом. Вы овладеете инженерией. В 2025 и 2026 годах я немного почищу эту кодовую базу, почищу readme. Я форкну еще несколько агентов для параллельной работы в новых экземплярах. Это будет ссылка в описании, чтобы вы могли попробовать это и понять, что мы здесь построили с нуля. Если вам нравится этот формат видео, своего рода более сырое агентное кодирование, где я показываю весь процесс, своего рода за кулисами, гораздо меньше шумихи. Если вам это нравится, оставьте комментарий, дайте мне знать. Вы знаете, где меня найти каждый понедельник. Оставайтесь сосредоточенными и продолжайте строить.