📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Full Tutorial: A Proven 3-File System to Vibe Code Production Apps | Ryan Carson

Peter Yang51:54

Transcription

Представьте, что к вам на порог явился очень умный инженер. У него нет контекста, нет предыстории. Вы же не скажете, знаете ли, случайному новому сотруднику: «Сделай мне игру, в которую будет супер весело играть, а затем ожидайте, что он добьется успеха». Это не ракетостроение, но я думаю, что причина, по которой у этого репозитория на GitHub около 4000 звезд, заключается в том, что люди хотят иметь процесс, которому можно следовать, чтобы получить лучшие результаты. Я бы не хотел, чтобы ИИ ушел и создал 30 задач. Я бы хотел, чтобы он создал высокоуровневый, знаете ли, дал мне пять задач, а затем я хотел бы их утвердить. Давайте поговорим о вашей трехчастной системе, а также о том, чем она отличается от типичного VIP-кодирования. >> Итак, я немного расскажу вам, как это работает. >> Хорошо, всем привет. Мой сегодняшний гость — Райан. Райан — серийный основатель, который в одиночку строит свой следующий стартап, разговаривая с ИИ несколько часов каждую ночь. И у Райана есть потрясающая трехчастная система для кодирования с ИИ, которую я действительно рад снова продемонстрировать. И мы также поговорим о том, как, знаете ли, строить ИИ-стартап в качестве единственного основателя. Итак, добро пожаловать, Райан. >> Отлично. Очень приятно быть здесь. Мне нравится описание «кодирование часами ночью». Это кажется знакомым всем. Так что это я. С нетерпением жду возможности пообщаться и поделиться кое-чем, что я узнал. >> Да. Я не знаю, есть ли у вас дети, но, знаете ли, да. У меня есть время кодировать только ночью. Просто иди обратно спать. Да. >> Итак, лучшее время — это либо поздно ночью, либо утром. Но, как вы знаете, проблема в том, что если вы собираетесь сделать одно, а потом получается два, то вы говорите: «О, черт. Завтра мне придется за это платить». Так что вам придется остановить это в определенный момент. >> Да. Давайте перейдем к делу. Давайте поговорим о вашей трехчастной системе. и, возможно, вы сможете поделиться тем, как это выглядит, а также тем, чем это отличается от типичного Vibe-кодирования. >> Да, конечно. Итак, позвольте мне дать людям некоторый контекст, чтобы они немного лучше поняли, как я сюда попал и, так сказать, мой набор навыков. Итак, я окончил Университет штата Колорадо, получил степень по информатике и устроился на первую работу веб-разработчиком. Так что я в основном учился, читая книги O'Reilly. Так что, вероятно, есть поклонники, которые любят O'Reilly. И, знаете ли, читал кулинарные книги по PHP и начал создавать. Затем, перенесемся вперед, я подумал: «Хорошо, какая проблема меня волнует?» И я понял, что нужно отправлять большие файлы, которые нельзя было отправить по электронной почте. Так что я, по сути, создал Dropbox. Он назывался Drop Send. Я построил его сам. Мы сами обслуживали наши серверы, и он был приобретен, думаю, через два года. Так что это был, так сказать, мой первый стартап, когда он был действительно основан в одиночку. это был продукт B2C, но это было захватывающе, а затем я понял, что действительно хочу масштабировать это и расширить возможности большего числа людей, поэтому мы построили онлайн-школу, обучающую кодированию, так вот где родилась Treehouse. >> Мы в итоге привлекли венчурный капитал, знаете ли, масштабировали команду до более чем 100 человек, и в итоге научили около миллиона человек кодировать. Так что потом я просто кодировал, кодировал, кодировал часами и часами и часами ночами, и моя жена говорит: «Пожалуйста, пойдем спать в какой-то момент». Так что, если я поделюсь своим экраном и покажу вам, о чем мы говорим. Хорошо, давайте я покажу вам реальный репозиторий GitHub. Он с открытым исходным кодом, так что, пожалуйста, используйте его. И я проведу вас через три файла по мере продвижения. Вот он. Итак, у нас есть три файла. Итак, файл create PRD. У нас есть файл generate tasks, а затем у нас есть файл process task list. И это просто промпты, верно? Так что я покажу вам первый, который вы будете использовать. Теперь позвольте мне быстро объяснить, как вы будете это использовать. Итак, скорее всего, вы будете использовать своего агента, и у вас появится идея для функции, которую вы хотите использовать. А затем вы поговорите об этой функции, а затем вы пометили этот файл. Так что я покажу его вам, а затем, вероятно, перейду к агенту и покажу, как это может работать. Итак, если мы немного почитаем, цель — помочь ИИ-ассистенту создать подробный PRD в Markdown. И процесс довольно прост, верно? Это четырехэтапный процесс. Вы, ИИ, получите первоначальный промпт. Затем агент задаст уточняющие вопросы, а затем он сгенерирует PRD, а затем сохранит PRD в виде файла Markdown. Мы дали ему несколько примеров уточняющих вопросов. Он может спросить, знаете ли, о проблеме, цели, целевом пользователе и т. д. А затем мы немного поговорили о структуре PRD, целевой аудитории и выводе. >> Да, уточняющие вопросы довольно важны, потому что я становлюсь таким ленивым, когда дело доходит до промптинга ИИ. Я просто говорю: «Эй, создай мне это, знаете ли, приложение для фильмов» или «Создай то». Это заставляет меня на самом деле предоставлять больше деталей. >> Да, это потому, что я люблю говорить всем: «Знаете ли вы, представьте, что к вам на порог явился очень умный инженер, верно? У него нет контекста. Знаете ли, у него нет предыстории, и вы не просто скажете, знаете ли, случайному новому сотруднику, знаете ли, «Сделай мне игру, в которую будет супер весело играть», а затем ожидайте, что он добьется успеха, или скажете: «Хорошо, мне нужно больше знать». Итак, давайте покажем вам это в действии. Позвольте мне переключиться на Ghosty. Хорошо, я перенесу вас в свой терминал, чтобы показать это в действии. Итак, я большой поклонник Ghosty. Так что, если вы на Mac и вам нужно использовать терминал, я бы очень рекомендовал Ghosty. Это потрясающе. А затем я использую T-Mox в качестве средства для снятия боли. Опять же, вы можете использовать IDE, что абсолютно нормально. Но я как-то влюбился в этот подход «голого металла». Итак, справа у меня одна панель, на которой я собираюсь запустить AMP. Итак, мы собираемся сделать это через секунду. И снова моя клавиатура HHKB доставляет мне сейчас проблемы. Итак, мы сделаем AMP и запустим его со специальной функцией под названием TUI, потому что это бета-функция, что довольно круто. А затем слева мы запустим Neoim. Итак, давайте запустим его, и мы собираемся, давайте покажем вам. Хорошо, слева у нас наш проект, и я на самом деле собираюсь использовать реальный репозиторий моего стартапа. Он называется Untangle. Это приложение на Nex.js. Это около 100 000 строк TypeScript. Так что это довольно приличный репозиторий. >> И справа у нас, очевидно, AMP, который является моим агентом по выбору, работающим в командной строке. Итак, давайте подумаем о функции, которую мы хотим выпустить. Итак, Untangle — это, по сути, приложение, которое помогает людям пройти через развод. И причина в том, что >> Да. >> Это реальная проблема, с которой сталкиваются люди. К счастью, я счастливо женат, я женат на своей замечательной жене уже 21 год. Но у меня три сестры, и мы лучшие друзья. И около 2-3 лет назад, к сожалению, моя старшая сестра развелась, и это было довольно тяжело и дорого, а затем, к сожалению, немного позже моя младшая сестра развелась, и я просто наблюдал, как это тяжело, и подумал: «Знаете что, я чувствую, что могу помочь людям пройти через этот процесс, знаете ли, помочь им заполнить все формы, наложив сверху очень умную большую языковую модель, знаете ли, это сэкономит им много денег на адвокатах, много боли. Это не адвокат. Но это делает много вещей, которые должны сэкономить вам деньги. Так что это контекст. Так что, я думаю, мы добавим небольшую функцию, когда пользователь будет проходить онбординг, чтобы попытаться понять, как пользователь относится к своему нынешнему партнеру. Итак, я собираюсь зайти сюда, и я также большой поклонник Whisper Flow. Так что я говорю большинство своих промптов. >> Я тоже. Так что я сделаю это. >> Хорошо. Хорошо. Итак, я хочу создать функцию, которая поможет нам понять, как пользователь относится к своему нынешнему партнеру. Мы хотим попытаться выяснить, находятся ли они в хороших отношениях, находятся ли они не в хороших отношениях, разговаривают ли они. Знаете ли, как выглядят эти отношения? И мы хотели бы оценить это от 1 до 10. Один — это ужасно, а 10 — это хорошие отношения. Хорошо. Так что это функция, моя своего рода «блея». Теперь мы собираемся пометить файл. Давайте посмотрим, смогу ли я вспомнить, как он называется. Create prd. Хорошо. Итак, мы пометим это и позволим ему работать и катиться. >> И это, по сути, как бы слэш-команда, верно, которую вы создали где-то? >> Нет, это буквально просто тегирование файла, чтобы поместить его в контекст. >> Хорошо. >> Так что это очень просто, верно? Это своего рода причина, по которой я создал эти промпты в формате Markdown, которые вы, по сути, тегируете в промпте. Итак, мы видим некоторые токены рассуждений. А затем теперь мы получаем ответ. Я собираюсь сохранить это довольно легко. Знаете ли, обычно я бы просмотрел и ответил на все это. Но на самом деле, чтобы ускорить это, я скажу: «Почему бы вам не выбрать то, что вы считаете лучшим для всего этого?» Хорошо. Итак, AMP собирается работать и выбрать то, что, по его мнению, лучше всего, а затем сгенерирует PRD. Так что здесь происходит этот управляемый процесс. Теперь, нужно ли вам делать что-то подобное, когда вы просто исправляете быструю ошибку? Конечно, нет, верно? Но это очень полезный способ пройти через: «Хорошо, мне нужна довольно большая функция, которую нужно написать. Мне нужен план. Я хочу пройти через это. А затем, я хочу выпустить это». >> Мм. >> Прямо сейчас он будет думать об этом. >> И вы используете что-то вроде Sonnet или >> Да. Итак, одна из интересных вещей об AMP, которая мне на самом деле сначала не понравилась, — это отсутствие селектора модели. И я помню, когда я впервые попробовал, я подумал: «Минуточку, какую модель я использую и как это работает, а также где находятся кнопки «принять» или «отклонить» изменения?» И я узнал, что AMP очень предвзято относится к выбору определенной модели, которая была высоко оптимизирована для harness агента. >> Потому что все, кто занимается разработкой с моделями, знают, что каждая модель сильно отличается, и вы не можете по-настоящему горячо менять модели, это просто не работает. И поэтому команда AMP решила использовать Sonnet 4 в качестве основного драйвера для основного агента. А затем через минуту я покажу вам эту классную функцию, где вы можете попросить Оракула помочь. И что это делает, это вызов инструмента к 03. А затем вы получаете больше рассуждений. Это немного медленнее, но вы получаете более продуманные ответы. И я склонен думать об этом как о том, что я хочу задать вопрос своему старшему инженеру и получить его мнение. Мы также используем Gemini Flash для некоторых задач суммирования. Итак, хорошо. Давайте вернемся сюда. >> Хорошо. Итак, он создал PRD. Он называется PRD partner relationships assessment MD. А затем я собираюсь пометить следующий файл, чтобы сгенерировать задачи. Давайте быстро взглянем на этот файл. Итак, мы увидим, что он называется PRD. Вот он. Я на самом деле собираюсь. Хорошо, так вы можете видеть, знаете ли, довольно простой PRD. Эта функция будет оценивать и оценивать текущую динамику отношений, цели, пользовательские истории. Что еще у нас есть? Пара открытых вопросов, метрики успеха. Так что, в принципе, то, что вы ожидаете от приличного PRD. >> Да. >> Хорошо. Итак, теперь я переключу свой экран обратно. Хорошо. Итак, мы вернулись к репозиторию GitHub, и я покажу вам наш следующий файл, который мы собираемся пометить. Это файл generate tasks. Итак, у нас есть отличный PRD, и теперь мы хотим создать конкретные атомарные задачи, которые мы хотим, чтобы агент выполнил. И снова, это промпт, который мы собираемся пометить. Правильно? Итак, цель — помочь ИИ-ассистенту создать подробный пошаговый список задач в формате Markdown. И он должен направлять разработчика через реализацию. Правильно? Итак, мы хотим получить файл Markdown, мы хотим, чтобы он был в папке tasks, мы хотим получить это имя файла. Так что это довольно просто. Опять же, у вас есть 10 шагов, которым я хочу, чтобы ИИ следовал. >> Получить PRD, проанализировать PRD, оценить текущее состояние. Фаза один, он генерирует родительскую задачу. Правильно? Так что я бы не хотел, чтобы ИИ ушел и создал, знаете ли, 30 задач. Я бы хотел, чтобы он создал высокоуровневый, знаете ли, дал мне пять задач, а затем я хотел бы их утвердить, а затем, а затем я хочу подробный. Так что именно это мы делаем здесь. Генерация родительских задач, информирование пользователя, >> ожидание подтверждения, а затем генерация подзадач. >> Да. Да. Я думаю, родительские и подзадачи довольно важны. Да. Потому что обычно он просто генерирует около 30 разных задач. >> Да. Я думаю, это и это будет улучшаться по мере улучшения моделей, верно? Но прямо сейчас, я думаю, все мы, кто занимается разработкой с этим, понимаем, что вам действительно нужно уделять внимание. >> Вы должны читать то, что говорит агент, и направлять его. Теперь, если вы просто «yolo» и «vibe coding» и веселитесь, кого это волнует? >> Но, знаете ли, я не «vibe coder». Я думаю, что многие люди, смотрящие это, не являются «vibe coder». Мы просто инженеры, которым нужно создавать реальные вещи. И поэтому эти шаги очень важны. Это то, как будет выглядеть файл. Итак, у вас есть соответствующие задачи, и это просто для того, чтобы держать контекст для агента. Эй, над какими файлами мы работаем, чтобы он мог вернуться к ним. Некоторые заметки, которые ему могут понадобиться, а затем эти задачи. И причина, по которой я использую точечную нотацию для этих задач, заключается в том, чтобы они были атомарными и понятными. Так что у вас есть, знаете ли, 1.1, 1.2 и так далее. Так что довольно просто. Давайте покажем это в действии. Я переключусь обратно. Хорошо. Хорошо, мы вернулись в Ghosty, и мы собираемся использовать этот файл generate task. Итак, давайте перейдем сюда. Несколько вещей, которые довольно забавно отметить. Sonnet теперь имеет гораздо больше контекста, верно? Так что у вас есть по крайней мере 400K. Иногда до миллиона, в зависимости от того, хотите ли вы это использовать. Однако это дороже. >> Это количество строк, которые мы изменили. Мы, очевидно, добавили около 70 строк, которые вы можете видеть здесь. Итак, давайте пометим это. И я могу на самом деле, я собираюсь пометить как PRD, так и generate tasks. Вот так. Итак, я просто помечаю оба, чтобы у агента был оба этих элемента в контексте. И мне даже не нужно говорить ему, что делать, потому что все инструкции в файле generate task есть. Итак, мы позволим ему немного поработать над этим, и мы снова откроем наш файл, чтобы вы могли видеть, что происходит. >> Да. Обычно вы, вероятно, сначала просматриваете PRD, убеждаетесь, что, знаете ли, вносите некоторые правки, а затем просите его сгенерировать задачу, верно? >> Вы бы. Да. Я бы обычно читал этот PRD немного внимательнее. >> Да. >> Но чтобы вы все не заскучали, наблюдая за этим, мы не будем читать это слишком внимательно. Интересно, что у многих агентов, таких как AMP, теперь есть списки дел. Так что вы можете видеть в правом нижнем углу, что он строит свой собственный список задач. Я должен сказать, что, знаете ли, будь то Cloud Code, Cursor CLI, AMP или любой другой агент, это довольно стандартно. Я думаю, что все они сейчас выпускают задачи. >> Вам приходится немного управлять между ними, так что вы можете видеть, что эти высокоуровневые задачи имеют смысл. Но через минуту я попрошу его выполнить эти очень подробные атомарные задачи, и не использовать свою собственную систему задач. Итак, давайте посмотрим, что он делает. Итак, он говорит: «Я сгенерировал высокоуровневые задачи на основе ваших требований, готов к генерации». Итак, я на самом деле открою этот файл. Давайте переключимся сюда. Как он называется? Он называется tasks. Вот. Хорошо, скроем это. Хорошо. Итак, у нас здесь есть соответствующие файлы. Он будет смотреть на схему, потому что мы, вероятно, будем записывать эти вещи. У него есть основная страница анкеты для оценки отношений. У него есть схема валидации ZOD и так далее. А затем пара заметок. А затем задачи. Это самое важное, верно? Итак, номер один: схема базы данных и уровень данных. Номер два: анкета оценки, пользовательский интерфейс. Номер три: логика расчета оценки. Номер четыре: отображение результатов, интерпретация. И номер пять: интеграция системы рекомендаций ИИ. Я имею в виду, это кажется мне довольно хорошим. Если бы я не записывал подкаст, я бы, вероятно, углубился в это немного больше. >> Да. >> Я дам ему немного обратной связи и скажу: «Я думаю, я скажу: «Нам нужно создать ветку, прежде чем делать все это. Так что добавьте это как первый шаг». Итак, всего шесть шагов. Я также хочу убедиться, что на самом деле, неважно, мы этого не сделаем. Так что позвольте мне удалить эту последнюю часть. Вы увидите, когда мы сгенерируем подзадачу, мы на самом деле убедимся, что мы пишем тесты. >> Хорошо. >> И причина создания ветки просто в том, чтобы вы знали, если что-то пойдет не так, вы можете просто откатить. >> Точно. Да. Так что обычно, знаете ли, я создаю ветку для любой функции, которую я создаю. Я на самом деле являюсь частью основной команды разработчиков AMP. Так что мы всегда коммитим, мы всегда создаем PR для всего, что мы делаем, чтобы их можно было объединить обратно. Итак, хорошо, он говорит: «Отлично, мы добавим первый шаг сюда». Итак, давайте перейдем сюда и обновим файл. И вы можете видеть, мы добавили «Создать ветку функции». Хорошо. Итак, теперь я покажу вам, мы на самом деле продолжим процесс и скажем «Go». Так что вы можете видеть здесь, он сказал: «Отлично, обновите список задач, чтобы включить создание ветки как шаг первый, всего шесть, готовы к генерации подзадач». Я скажу: «Да, давайте». Итак, теперь AMP собирается работать и генерировать подзадачи для каждой из этих шести родительских задач. На самом деле, знаете ли, я остановлю его. Я покажу вам кое-что очень быстро, что я хочу сделать. Я скажу: «Почему бы тебе не вызвать оракула, чтобы убедиться, что мы не упускаем никаких более крупных родительских задач?» Я, вероятно, должен был это сказать, но это пример того, как я хочу использовать немного больше вычислительных ресурсов, чтобы действительно убедиться, что я ничего не упускаю. Итак, в AMP, как я уже сказал, это вызов инструмента к 03, так что он будет использовать немного больше рассуждений. Это немного дороже. И если вы используете любой другой агент, вы, очевидно, можете переключить селектор модели, а затем сделать это, но мне нравится DX просто иметь возможность поговорить с более старшим инженером. Итак, мы видим, что он сейчас консультируется с Оракулом. И он проверит пару вещей. Это, очевидно, работает на 03, так что это будет немного медленнее. >> Да. Чтобы вернуться. >> О, это как >> Да, это, вероятно, проверит. Будет ли он проверять все ваши файлы или только этот? >> Ну, не обязательно. Так что делает это, это просто использует больше интеллекта, верно? Так что мы используем немного более тяжелую модель рассуждений. А затем говорим: «Посмотрите, что мы делаем, все, что находится в контексте». Он не делает много вызовов инструментов, верно? Так что я думаю, это ценно, что вы не получите много агентского поведения. Вы говорите: «Я просто хочу, чтобы кто-то дважды проверил, что я делаю». >> И он говорит: «Хорошо, на самом деле, нам нужно добавить еще несколько шагов». Итак, теперь другая интересная вещь об AMP, которая меня сначала сбила с толку, которую люди, вероятно, замечают, это отсутствие принятия или отклонения изменений здесь, что мне сначала не понравилось, но теперь я на самом деле научился любить это, потому что это ускоряет меня. Итак, давайте вернемся сюда и перезагрузим файл. Чтобы быть реалистичным, я скажу: «Знаете что? Я не думаю, что нам нужна автоматизированная аналитика». Так что я собираюсь вернуться сюда и сказать, что я не думаю, что нам нужна аналитика и документация. Так почему бы вам не удалить их, а затем мы продолжим. Я просто даю вам немного более реалистичный диалог, чтобы вы могли видеть, как это может выглядеть. Итак, хорошо, теперь это переключение обратно на Sonnet 4, верно? Так что теперь мы используем основной агент. Итак, мы собираемся перейти сюда. >> Вот так. Хорошо. Итак, теперь у нас есть высокоуровневые задачи. Теперь нам нужно сгенерировать все подзадачи. Давайте сделаем это. Он говорит: «Отлично, удалите аналитику. Теперь у нас есть 11 основных задач, готовых к генерации». Идите. Итак, вот мы. И снова, это не ракетостроение. Но я думаю, что причина, по которой у этого репозитория на GitHub около 4000 звезд, заключается в том, что люди хотят иметь процесс, которому можно следовать, чтобы получить лучшие результаты, верно? И проблема в том, что у нас теперь есть эти удивительные волшебные агенты, которые могут делать так много, и они так стремятся помочь, что вы можете сказать что-то. Знаете ли, это мог быть однострочный промпт, и агент начал бы работать над ним. Но было бы ли это тем, что мы на самом деле хотели? Было бы ли это направлено? Вероятно, нет. >> Так что этот процесс как бы помогает ему. Хорошо, у нас есть наши подзадачи. Они выглядят довольно хорошо. >> Для части тестирования. В идеале у вас есть тестирование на каждом шаге, верно? Вместо того, чтобы, знаете ли, в конце. >> Да, абсолютно. Давайте посмотрим на это. Создать ветку функции. Это нормально. Мы этого ожидаем. Схема базы данных и уровень данных. Я думаю, что мы хотели бы реализовать управление состоянием формы и React Hook Form, добавить валидацию формы. Я думаю, мы действительно, как вы сказали, хотим добавить тестирование в конце каждого шага. И, как вы знаете, причина, по которой вам нужно действительно заботиться о разработке, управляемой тестами, сейчас заключается в том, что это цикл, который нужен агенту, чтобы на самом деле знать, правильно ли он делает вещи. >> Да. >> И поэтому, чем быстрее вы можете ускорить этот цикл, тем быстрее вы можете создавать. Итак, я собираюсь зайти сюда и попросить его сделать это. Так что в конце каждого шага мне нужно, чтобы вы добавили тесты, чтобы мы понимали, все ли работает правильно. Пожалуйста, используйте Jest. Хорошо. Итак, он собирается изменить их. Итак, Питер, вы, очевидно, делаете это много. Вы разговариваете со многими людьми. Как вы видите, люди используют разработку, управляемую тестами, чтобы действительно ускорить свои агентские рабочие процессы? Я имею в виду, просто включить эту строку или включить ее в план — это ключ, потому что иначе, если вы этого не делаете, вы, по сути, занимаетесь «vibe coding», вы говорите: «Эй, это не работает. Исправь это. Я могу просто переходить туда-сюда в течение двух часов». Это не работает. Это все еще не работает. >> Нет, это все еще не работает. >> Так что, да. >> Хорошо. Итак, вы можете видеть. >> Да. Итак, теперь у нас есть тесты, и мы используем типы. >> И что такое Jest? Jest — это просто приятный фреймворк для тестирования для TypeScript и Nex.js. Так что это очень удобный способ быстро запускать проверки CI, чтобы убедиться, что все работает правильно. Теперь вы можете использовать самые разные фреймворки, но мне нравится Jest, и, вероятно, потому, что агент предложил его мне в какой-то момент. Хорошо, мы прошли, чтобы немного рассказать всем, что мы сделали, верно? Итак, у нас была идея для функции. Что мы сделали, так это мы зашли в AMP, мы говорили, знаете ли, весь текст функции, а затем мы пометили промпт генерации PRD, заставили его сгенерировать PRD, затем мы взяли PRD и сгенерировали высокоуровневые задачи, отредактировали эти задачи, а затем мы попросили, а затем мы использовали промпт «generate tasks», чтобы затем сгенерировать все подзадачи. Так что вот где мы находимся. Итак, у нас есть довольно подробный список задач. Знаете ли, под каждой из этих задач у нас есть, знаете ли, шесть или семь довольно подробных задач, которые являются атомарными. А затем то, что мы сделаем сейчас, это мы используем третью. Хорошо. Итак, мы вернулись к GitHub, и мы собираемся перейти к нашему третьему файлу, который называется process task list. Теперь, что это делает, это, по сути, контролирует скорость, с которой агент может двигаться. Я выбрал сказать: «Делай одну подзадачу за раз и не начинай, пока я не скажу «да» или «Y». А затем, когда вы закончите подзадачу, немедленно отметьте ее как выполненную крестиком. А затем, если все подзадачи под родительской завершены, затем сначала запустите набор тестов. Он на самом деле говорит: «Эй, помните, что нужно сделать это», если все тесты пройдут, тогда вы можете добавить его, а затем вы можете закоммитить его. Так что идея в том, что мы пытаемся создать это поведение кода, тестирования, затем коммита в итеративном, так сказать, >> это, по сути, лучшие практики разработки программного обеспечения. >> Да. Да. Точно. Так вы должны работать, если вы инженер-программист. Да. Снова, это не ракетостроение или что-то новое. Как вы сказали, это базовое поведение инженера-программиста. Итак, что мы собираемся сделать, это вернуться в Ghosty и посмотреть, как это работает. Хорошо, мы вернулись в Ghosty с AMP, и слева у нас задача, которую мы хотим выполнить, и мы на самом деле скажем агенту: «Ну, давайте начнем». Итак, я помечаю список задач процесса. Помечаю его, а затем я могу просто выполнить его, потому что в нем есть все инструкции, и тогда мы начнем его просматривать. Он говорит: «Хорошо, я должен делать только одну задачу за раз». И он знает, что должен сделать 1.1. >> Хорошо. Итак, он начинает. Итак, по сути, мы разговаривали около 20 минут, верно? И теперь он наконец-то начинает кодировать. >> Да. >> Да. >> Разве это не дико? Я имею в виду, это так отличается от «yoloing» одного промпта и затем просто наблюдения за тем, что происходит. Теперь, вероятно, это супер скучно смотреть, и я извиняюсь, но это на самом деле то, как происходит реальная разработка программного обеспечения с агентами. Итак, теперь он говорит: «Следует ли мне продолжить?» И мы скажем: «Да». Так что да, если я смогу правильно печатать сегодня. >> Хорошо. Итак, я имел в виду, что теперь у каждого, кто кодирует с агентом, есть разные мнения по этому поводу. Знаете ли, вы переходите в режим «желтого» и позволяете ему запускать любой инструмент, который он хочет, или вам нужно спрашивать разрешение? Я обычно говорю: «Не делайте никаких команд git без моего одобрения». >> Я позволяю своему агенту запускать или, по крайней мере, набирать все мои команды git, потому что мне просто легче их запомнить. Итак, >> Хорошо. Конечно, мы уже на главной ветке, но он проверяет на всякий случай. А затем он создаст ветку функции «partner relationship assessment». А затем мы увидим, как он ее раскрутит. А затем вы можете видеть, что он отметил ее как завершенную, верно? >> Да. >> Теперь, и снова, вот где мне приятно не принимать все эти изменения. Мне просто приятно видеть: «Хорошо, да, он изменил 1.1 на отмеченное». Мне не пришлось его утверждать. Так что мы просто катимся. Итак, следует ли мне продолжить? Мы скажем: «Да». >> Хорошо. Хорошо. Итак, я думаю, этот третий шаг вашей системы на самом деле требует, чтобы вы сидели здесь и смотрели, как он кодирует, потому что, знаете ли, обычно я бы пошел за кофе или что-то вроде этого. >> Здесь. Да. >> И я думаю, что я пересмотрю, или это с открытым исходным кодом, так что кто-то должен создать PR для пересмотра этого. Я думаю, знаете ли, когда я выпустил это, мы были на Sonnet 37. >> И я думаю, что с Sonnet 4 вам действительно не нужно так сильно его направлять. Что интересно. Так что мы увидим, как он будет работать над парой задач. >> Да. Эй, пока мы ждем, быстрый вопрос: когда я использовал Cursor, я мог прокручивать чат и отменять любую предыдушую контрольную точку, верно? >> Да. >> И, например, с Clock я этого не делал. Есть ли простой способ сделать это или с AMP? Есть ли простой способ вернуться? >> Если вы используете расширение VS Code, вы можете отменить. В нашем текущем CLI вы не можете. Мы сейчас это разрабатываем. Но интересно, что есть много раз, >> когда я очень обеспокоен тем, что то, что я делаю, не сработает, я просто коммичу, а затем откатываю коммит. >> Так что, >> Хорошо. >> Да. >> Да. Просто используйте git для этого. Да. >> Да. Хорошо. Итак, мы скажем «Да», давайте сделаем это. Мы сейчас работаем с схемой базы данных, что всегда весело. Мне придется сделать миграцию здесь, что мне не нравится. >> Да, база данных — это то, где все может пойти не так. Да, надеюсь. >> Но интересно, я имею в виду, но снова, вот где, если вы, знаете ли, работаете с PRD, у вас есть довольно подробный список задач, знаете ли, если вам придется изменить схему базы данных и сделать миграцию, скорее всего, все будет в порядке. Опять же, это, вероятно, не самое захватывающее зрелище для вас, но я думаю, что видеть реальную разработку программного обеспечения с агентом и то, как это на самом деле выглядит и работает. Надеюсь, это даст вам представление изнутри. >> Я имею в виду, это все равно бесконечно проще, чем писать код самому, верно? Я имею в виду, я имею в виду, знаете ли, как родитель после 9 вечера, я не могу писать код сам, но я могу печатать эти команды и >> вы можете нажать «да», вы можете читать, вы можете говорить в Whisper Flow немного. Итак, хорошо, мы скажем «да», давайте продолжим. >> Так интересно видеть, как все это происходит, и видеть, сколько вашего кода вы на самом деле читаете сейчас? Сколько вы полагаетесь на свои тесты? И, очевидно, >> вы хотите делать все это. Но интересно видеть, как это разворачивается. Знаете ли, я думаю, мы только что видели, как Митчелл Хашимото, создатель Ghosty, одного из основателей HashiCorp, недавно сказал, что он требует, чтобы все PR, которые были сгенерированы с помощью ИИ, четко указывали на это. >> О, хорошо. >> Знаете ли, что имеет смысл. И многие из них делают это сейчас. Говорится: «Соавторство с AMP» или «Соавторство с Cloud Code». >> Я имею в виду, это будет как управление каждым PR. Я не знаю. >> Да. >> Да. >> Так что это то, что я сказал. Я думаю, это будет как 99%. И мы быстро к этому придем. >> Позвольте мне спросить вас кое-что, пока мы ждем, пока эта штука генерируется: вы учили, знаете ли, миллион человек кодировать, верно? Так что, но, но, я уверен, когда вы учили, это было о циклах обучения и обучении, знаете ли, функциях и так далее. >> А теперь, думаете ли вы, что это лучший способ научиться кодировать? Просто создавать вещи, а затем задавать вопросы о коде? >> Да. Да. >> Как бы вы научились кодировать сейчас? >> Ну, интересно то, что вы, по сути, кодируете с репетитором сейчас. >> Именно. >> И это действительно зависит от студента, насколько глубоки его знания, верно? Знаете ли, как вы знаете, я просто продолжу. >> Как вы знаете, вам на самом деле не нужно понимать код, чтобы выпустить его. Теперь, теперь вы должны, верно? Потому что это немного страшно, если вы выпускаете что-то, и вы понятия не имеете, что на самом деле происходит. Но технически вы могли бы это сделать. Но проблема в том, что это похоже на строительство дома, и у вас есть робот, который умеет пользоваться пилой, верно? И это как бы: «Хорошо, вы могли бы это сделать, но что, если что-то начнет ломаться, и вы не понимаете, как было установлено сантехническое оборудование или почему эта стена там?» Так что я думаю, что есть этот очень ценный, очень, очень ценный навык понимания кода, и я думаю, что он сохранится на долгие годы, но вопрос в том, как его изучить. Так что я думаю, знаете ли, если бы ИИ существовал, по крайней мере, большие языковые модели существовали, когда я управлял Treehouse, это было бы совершенно иначе, и мы бы сказали: «Хорошо, опыт обучения заключается в том, что вы сядете и будете общаться с ИИ о чем-то, что вас волнует, верно?» Давайте продолжим. Итак, следует ли мне продолжить добавление типов TypeScript? Давайте сделаем это. Хорошо. И вы бы сказали: «Знаете ли, что вас волнует?» Знаете ли, это Warhammer, или это баскетбол, или это шитье, верно? Так что вы выбираете тему, которая вас волнует, а затем говорите: «Хорошо, что мы должны построить для этой темы, которая вас волнует, верно?» Так что, если это шитье, может быть, вы хотите создать программу, которая поможет вам разработать выкройку, верно? Или, скажем, это о баскетболе, может быть, вы хотите отслеживать своего любимого игрока NBA All-Star и отслеживать его статистику и отображать ее на экране в правом верхнем углу. Правильно? Так что главное — построить что-то, что вас волнует, верно? И я думаю, все говорят: «Ну, я не знаю, как кодировать, или я не знаю, как строить с агентами». Просто скажите: «Выберите что-то, что вас волнует, и поговорите с агентом об этом, попросите его построить это вместе с вами и объяснить по ходу дела, верно?» >> И я думаю, что именно так люди будут учиться в будущем. >> Да. Вам следует создать новую трехступенчатую систему для обучения с помощью ИИ. >> Вот так. >> Так что это объясняет, знаете ли, архитектуру и все остальное. Это моя следующая идея. Спасибо. Я украду ее. >> Так что теперь мы запускаем некоторые тесты, верно? И мы видим, работает ли то, что мы построили, на самом деле? Я не особо обращаю внимание на код. Очевидно, если бы я кодировал, я бы не разговаривал с Питером и, так сказать, не обращал бы внимания. Но, вот что происходит сейчас. Так что это своего рода реалистично. Когда мы можем добраться до, если мы сделаем шаг три? Знаете ли, шаг, нам нужно добраться до шага пять, чтобы увидеть какой-то пользовательский интерфейс или >> Ну, у нас есть, у нас есть пользовательский интерфейс анкеты для оценки в шаге три. И поэтому мы на шаге 2.6. Так что я думаю, довольно быстро мы доберемся до 3.1. И, вероятно, мы можем сказать ИИ: «На самом деле я хочу, чтобы вы создали статическую версию этого, чтобы я мог увидеть макет». И я могу вернуться и фактически пересмотреть этот рабочий процесс немного, потому что то, что я узнаю, это иногда лучше, чтобы ИИ сначала создал макет полностью статической версии пользовательского интерфейса, знаете ли, без функциональности. Просто используйте Tailwind, а затем покажите мне. И это действительно устранит много путаницы, как «Ого, я не это имел в виду» или «Это ужасно», «Давайте не будем этого делать». >> Да, я думаю, это лучшая практика, потому что это может изменить базу данных для чего-то, что вам на самом деле нужно. >> Я даже не забочусь об этом. Итак, что мы делаем? Итак, давайте сделаем это, и я на самом деле прерву это, потому что это, по сути, делает то, что мы хотим, что заключается в итерации по этим тестам. Но на самом деле я остановлю его, и я скажу: «Я на самом деле хочу пропустить шаг три и просто просмотреть пользовательский интерфейс». Сделайте статическую версию пользовательского интерфейса анкеты, просто чтобы я мог ее увидеть и убедиться, что мы на одной волне. Хорошо. Итак, AMP скажет: «Что? Мы делали весь этот процесс, что вы делаете?» Но то, что мы сделаем, это, надеюсь, >> ваш приложение Untangle в прямом эфире, и люди используют его для управления разводом? >> Оно совершенно новое. Так что мы, по сути, запустили нашу первую рекламу сегодня. >> Захватывающе. >> Да. Так что, если вы зайдете на untangle-us.com, вы можете увидеть это. Знаете ли, надеюсь, никто из вас, слушающих, не проходит через развод. Но если вы проходите, вы можете проверить это. Так что, на самом деле, пока это строится, я быстро покажу вам, как это выглядит. Итак, Untangle — это приложение, которое помогает людям пройти через развод, но оно только для Коннектикута. Так что, я думаю, это хороший пример множества стартапов, которые мы увидим, где люди решают очень специфическую вертикальную проблему. И идея в том, что развод в Коннектикуте — это не сексуальная проблема для стартапа. Но суть всего этого в том, что это специфический рынок, на котором, я думаю, я могу помочь многим людям. И поэтому я взялся за это, и я думаю, что мы увидим тысячи подобных стартапов. Так что будет интересно посмотреть, как это пойдет. >> И это только Коннектикут, потому что, например, Коннектикут имеет разные правила, чем другие штаты. >> Да. Так что, если вы не проходили через развод, вы это знаете, но к счастью, если проходили, вы очень хорошо осведомлены, что законы о разводе очень разные в каждом штате. Понятно. И болезненная часть, причина, по которой я показал эту кучу PDF-файлов, заключается в том, что в Коннектикуте есть 14 форм для развода с 277 уникальными полями, которые вы должны правильно заполнить. Это кошмар, верно? Так что здесь есть много интересных функций для создания. Так что вот что я строю. Так что это Untangle. Но давайте вернемся к коду и посмотрим, как он продвигается. Хорошо. Итак, мы вернулись с AMP и Neovim внутри Ghosty. Итак, он сказал, что создал статическую версию пользовательского интерфейса анкеты для оценки отношений. Вот что я построил. Хорошо, мы собираемся, давайте создадим, давайте получим, дайте мне секунду. Хорошо, мы запустим сервер разработки. Хорошо, мы работаем на 3000, и я думаю, что URL был case new relationship, верно? Так что давайте вернемся. Хорошо, все. Мы вернулись в браузер, и мы собираемся перейти на localhost и запустить это. Итак, мы только что запустили веб-сервер разработки, и я полагаю, что это было case, позвольте мне просто проверить. Это было case relationship case new relationship. Хорошо, все. Итак, у нас есть веб-разработчик, прошу прощения, веб-сервер разработки запущен и работает, и вы можете видеть очень простой пользовательский интерфейс. Очевидно, это не ракетостроение. Вы можете видеть: «Хорошо, мы проводим оценку отношений». Мы спрашиваем: «Как бы вы описали свое общение с супругом?» Итак, Питер, как бы вы описали свое общение с супругом? >> Давайте посмотрим. В целом, могу общаться. Еще не близок к разводу. Да. >> Хорошо. Хорошо. Насколько ваш супруг готов сотрудничать по вопросам, связанным с разводом? Надеюсь. >> Надеюсь, совершенно не готов к сотрудничеству. Надеюсь, это не произойдет. >> Надеюсь, потому что вы вообще не разводитесь. Как бы вы описали уровень конфликта? >> Есть, я думаю, низкий конфликт с супругом, высокий конфликт с детьми, верно? Низкий конфликт с супругом. Это звучит как каждые отношения в браке, связанные с родительством, в мире. Как бы вы описали эмоциональное состояние вашего супруга в отношении развода? >> Да, она будет разочарована. Как бы, знаете ли, она замужем за лучшим человеком в мире, так что она будет >> так что она, вероятно, очень расстроена. >> Она будет очень расстроена, если это произойдет. Да. >> Хорошо. Так что вот так. Хорошо. Хорошо. Итак, к сожалению, вы высококонфликтны, потому что она очень расстроена. >> О, хорошо. Хорошо. Потому что, хорошо. Да. Хорошо. Ну, я не думаю, что я целевая аудитория. >> Да. >> Надеюсь, вы и никто из смотрящих не является моей целевой аудиторией. >> Да. >> Но вы можете видеть, знаете ли, основной процесс, верно? Так что я думаю, на самом деле, я бы посоветовал людям, и я, вероятно, сделаю PR в своем собственном репозитории, это фактически добавить генерацию пользовательского интерфейса в начале. Как только вы сделаете PRD, >> мы сможем устранить много этих проблем на ранней стадии. >> Да, это потрясающе, чувак. Так что я хочу немного поговорить о правильных проблемах для решения в качестве ИИ-одиночки-основателя. Мне на самом деле очень нравится тот факт, что вы делаете эту проблему развода в Коннектикуте, потому что >> как бы, знаете ли, все 21-летние, знаете ли, я не знаю, что они делают. Они строят крутые ИИ-агенты для кодирования или >> Да. >> в Сан-Франциско, верно? Но как одинокий основатель, я думаю, что решение проблемы с очень высокой болью для нишевой аудитории, готовой много платить, кажется очень хорошим вариантом, знаете ли, как вы об этом думаете? >> Да. Так что интересно, что у меня не было идеи после того, как Treehouse был приобретен, верно? Потому что, как всем известно, когда вы начинаете компанию, вы должны быть увлечены проблемой, которую хотите решить. И вы не можете магически создать это из ниоткуда, верно? И поэтому был период времени, когда я думал: «Я не знаю, что строить». И тогда я присоединился к Intel. Я подумал, что просто изучу кремний, верно? У меня нет идеи. И я также хочу узнать, как работают корпоративные компании, потому что я никогда не работал.

в огромной, вы знаете, компании из 100 000 человек. Так что я пошел и просто учился, а потом, знаете, когда я увидел, как мои сестры проходят через развод, я подумал: "Почему это так ужасно?" Как, почему это так дорого? Как, это не похоже на то, что должно происходить. Хм, это кажется неуместным, и я думаю, что как основатель, когда вы чувствуете это ощущение, как будто "почему это так?" Это не должно быть так, это всегда семя для идеи, и, к сожалению, вы не можете создать этот момент. >> Да. >> И, и я думаю, вы правы, как, это не сексуальная идея стартапа, но это может быть очень реальная важная компания, потому что она решает то, что действительно, действительно существует. Знаете, вы либо платите от 15 000 до 40 000 долларов за развод, либо платите 300 долларов за Untangle, а затем, вероятно, пару тысяч за услуги адвоката, верно? >> Да. >> Итак, я бы призвал людей подумать о реальных проблемах в своей жизни. Хм, последнее, что я скажу, хм, хотя Trios была моей самой успешной компанией финансово, хм, это был трудный стартап. И причина в том, что мы продавали витамин, а не болеутоляющее. И я уверен, что люди слышали эту аналогию раньше, но вы действительно хотите решить проблему или построить компанию, которая является болеутоляющим, а не витамином. И что я имею в виду под этим, так это то, что обучение программированию — это то, что вы делаете, потому что вы хотите стать лучше, верно? Вы делаете это, потому что хотите быть умнее. Вы делаете это, потому что хотите лучшей работы, верно? Вот почему это витамин. Хм, в то время как развод — это болеутоляющее. Как, это острый болезненный момент в вашей жизни, от которого вы хотите избавиться, верно? Хм, и поэтому, если вы можете найти болеутоляющее, это всегда лучше, чем витамин. Так что будьте осведомлены об этом. >> Вы руководили примерно 100 сотрудниками или что-то в этом роде, верно? Как, как бы вы сказали, и я чувствую, что многие люди как бы гонятся за этим, они хотят быть во главе большой команды и так далее. Итак, как вы сравниваете свою жизнь тогда с нынешней, когда просто программируете по ночам? >> Итак, я люблю, знаете ли, не иметь 100 сотрудников. Хм, >> да, >> замечательно расти команду, заботиться о ней, делать все возможное и быть успешным и нанимать много людей. Хм, но это отвлекает вас от действий, и, как я уже сказал, в начале я был единственным основателем, когда запустил Drops. Это был я. Я написал код, я занимался поддержкой клиентов, маркетингом и всем этим. Хм, а потом вы переходите к Treehouse, где, знаете ли, начали его с другом, а затем он рос, и мы нанимали и нанимали, и я отстранился от всего кода. И я думаю, что сейчас мы находимся в фазе, когда вы абсолютно можете быть компанией из одного человека. Хм, и, знаете ли, размер этой компании может быть не таким большим, как у компании с 20, 100, тысячей сотрудников, но, возможно, это не то, чего вы хотите. Хм, и поэтому с Untangle, знаете ли, я специально решил построить его сам. Хм, и я решил, что буду заниматься бутстрэппингом, и я буду делать все сам. И это просто радостно, как, иметь возможность выпускать и создавать, знать и понимать и двигаться так быстро, как я хочу. Хм, это так удивительно. Какое удивительное время быть основателем. Хм, теперь, почему я присоединился к AMP? Потому что я хочу, есть другая часть меня, которая хочет дать возможность как можно большему количеству людей делать то, что делаю я. Верно? Если я могу дать возможность тысяче, миллиону, знаете ли, 10 миллионам, 100 миллионам людей делать то, что я делаю с Untangle, или выпускать лучшее программное обеспечение внутри своей команды и получать повышение, знаете ли, создавать вещи, которые действительно меняют мир. Какая удивительная возможность, верно? >> И я не собирался строить еще одну, знаете ли, компанию по разработке агентов. Хм, так что это просто имело смысл построить Untangle внутри AMP, знаете ли? >> Да. Я, я, я думаю, что у Antgo гораздо больше шансов на успех, чем у другой компании по разработке агентов. Так что >> да, я думаю, поле битвы довольно установлено на поле битвы агентов по программированию. И, знаете ли, я верю, что у AMP есть хорошие шансы победить, но это будет битва, верно? Хм, так что >> я думаю, это очень важно, чувак. Я думаю, многие люди этого не осознали. Как, сейчас лучшее время быть соло-основателем ИИ, чем когда-либо. И вам не нужно, как, привлекать венчурное финансирование и делать все эти великие сумасшедшие вещи, верно? Потому что, как, если вы, как генеральный директор компании из 100 человек, да, вы, вероятно, просто на совещаниях каждые 30 минут снова, как, весь день >> в течение девяти часов в день. >> Да. Я думаю, я не знаю, можете ли вы об этом говорить, но это зависит от того, какой образ жизни вы хотите, верно? И, знаете ли, сколько денег вы хотите заработать. >> Да. Я думаю, это огромно. И я хочу отдать должное Джейсону Фриду и DHH, потому что они говорят это уже 20 лет, верно? Да. Где идея заключается в том, что вы можете построить замечательный бизнес, который откроет вам финансовые возможности и будет намного меньше, верно? Так что вы можете представить, хорошо, скажем, у меня была очень хорошо оплачиваемая работа, знаете ли, в качестве инженера, и у меня были, знаете ли, льготы и 401k, и, знаете ли, сколько денег мне нужно было бы зарабатывать в год? Это как разумная сумма, но это не миллионы, верно? А потом вы думаете, подождите минутку. Как, если я построю свою собственную компанию, и это, по сути, я или я и подрядчик, или, может быть, я и один сотрудник, вам не нужно строить очень большой бизнес, чтобы иметь хотя бы такую же удивительную жизнь. А потом это может быть намного лучше, потому что вы просто получаете денежный поток и в конечном итоге становитесь богатым. Но дело в том, что вы контролируете свое время, верно? Так что люди понимают ценность своего времени, верно? И это может быть сексуально и захватывающе быть основателем Кремниевой долины, который финансируется венчурным капиталом, верно? Но правда в том, что это безумие. Вы вообще не контролируете свое время. У вас есть совет директоров, у вас есть, знаете ли, сотни сотрудников, о которых нужно заботиться, кормить и защищать, и у вас есть конкуренты, которые пытаются вас убить, и у вас нет времени, верно? Так что, я думаю, вам нужно как-то сбалансировать эти вещи. И интересно, потому что я думаю, что в прошлом я хотел построить компанию, которая была бы, знаете ли, сексуальной и огромной, и люди бы говорили: "Вау, Райан построил эту огромную компанию". И мне это сейчас неважно. Это как, я хочу работать над проблемой, которая меня волнует. Я хочу работать с людьми, которых я уважаю, и я хочу иметь возможность контролировать свое время и заботиться о своей семье. И это на самом деле высшее богатство, верно? Так что да, больше власти всем, кто слушает и хочет построить компанию самостоятельно. Вы абсолютно можете, реально сейчас. Вам больше никто не нужен, если вы сами по себе. Вау. >> Да. Это мой план для моих детей, чтобы они встали на этот путь, чтобы избежать всего этого крысиного бега, знаете ли. >> Аминь. >> Да. >> Да. Мы все пытаемся, как, сделать наших детей как можно более самостоятельными. Да. Точно. И сказать, знаете ли, если у вас есть какие-либо вопросы, сначала спросите ИИ, верно? Потому что очень вероятно, что вы продвинетесь намного дальше. >> И просто одна маленькая история, это довольно интересно присоединиться к AMP. Я думаю, я на 22-м дне, может быть, сейчас. Хм, знаете ли, и AMP — это большая кодовая база, верно? И это так дико, что все, что мне нужно сделать, это открыть репозиторий в AMP и задать AMP вопрос и сказать, знаете ли, как, где в кодовой базе это происходит, знаете ли, и он разбирается, а затем я скажу, хорошо, какой разработчик над этим работал, верно? И я выясню это. А затем я могу перейти в Slack, например, и задавать гораздо более умные вопросы, верно? Я могу обратиться к инженеру, который над этим работал. Я точно знаю, где, знаете ли, находится код и что он делает, и я могу задать очень умный, быстрый вопрос, который не замедлит их. >> А, и это просто пример одной вещи в жизни, которую вы можете сделать, примените это к чему угодно, верно? Хм, мы намного мощнее сейчас благодаря агентам. Это просто безумие. >> Да, я полностью согласен. Хорошо, чувак. Итак, где люди могут найти Untangled, а также AMP? >> Итак, если вы хотите использовать AMP, просто зайдите на ampcode.com. Хм, круто то, что вы можете зарегистрироваться бесплатно. Мы даем вам 10 долларов, чтобы использовать его бесплатно. Так что просто пользуйтесь и свяжитесь со мной в X. Так что я просто Райан Карсон, верно? Так что свяжитесь со мной в X, скажите мне, что вы используете его. Я буду вас подбадривать, если у вас возникнут какие-либо проблемы. Я позабочусь о том, чтобы мы передали это нужному человеку. Так что попробуйте. Получайте удовольствие. Хм, тогда, если вы хотите найти меня, как я уже сказал, я просто Райан Карсон везде, но я живу и дышу в X весь день, каждый день. Мне это нравится. Хм, а затем, если вы хотите, надеюсь, вы не разводитесь в Коннектикуте, но если вы это делаете, просто зайдите на untangle-us.com и дайте мне знать, что вы думаете. >> Отлично, Райан. Да, было здорово связаться с вами в X. Я думаю, у меня есть своего рода соотношение любви-ненависти к X, но, знаете ли, приятно видеть вас там, и да, спасибо, что прошли через все это. Это очень практично. >> Спасибо, Питер. Ценю это.