Transcription
Упряжь — это некоторый код вокруг ИИ-агента, который делает его более эффективным. Почему мы видели, как люди создают эти упряжи для конкретных случаев использования, иногда с конкретной задачей, вы просто хотите немного микроменеджмента. Вы просто хотите быть более предписывающим в отношении того, как эта задача выполняется. [музыка] Я покажу вам, как это работает, а затем мы поговорим о том, как я это построил. Итак, интерфейс, который я построил для своей упряжи, — это терминальный пользовательский интерфейс. Ядро упряжи работает на SDK агента Claude, а затем оно подключено к реальным инструментам. Итак, оно подключено [музыка] к Sentry Vercel, а затем оно подключено к Linear и GitHub для выполнения [музыка] задач. Я думаю, мы все проделали хорошую работу. Но теперь я понял, что эти агенты могут помочь нам решить очень-очень специфические проблемы, ограничивая эту работу. Это действительно изменило мое представление о том, как выполняется работа. [музыка] Все говорят, что дело не в модели, а в упряжи. Но знаете что? Не все говорят, что такое [музыка] упряжь. В сегодняшнем выпуске "Как я ИИ" я собираюсь развеять миф об упряжи, написать свою собственную упряжь и показать вам, как вы можете сделать то же самое, и объяснить вам, почему пользовательская упряжь имеет смысл и может быть лучше, чем просто использование Claude Code или Codec. Давайте приступим. Этот выпуск представлен bolt.new. New — это конструктор ИИ-приложений для людей, у которых есть идеи и которые хотят их реализовать. Большинство ИИ-инструментов выдают код, который отлично выглядит в демо-версии и разваливается, как только [музыка] вы пытаетесь сделать с ним что-то реальное. Или они запирают вас на своей собственной платформе без реального выхода. Bolt [музыка] отличается. Вы описываете, что хотите построить. MVP стартапа, целевую страницу, внутренний инструмент, побочный проект, и Bolt генерирует готовый к производству код за считанные минуты. Подключите Stripe или любой другой платежный шлюз. Подключите свой домен и разверните его вживую. Основатели используют Bolt для создания бизнесов, приносящих реальный [музыка] доход. Менеджеры по продуктам выпускают прототипы, которыми их команды действительно пользуются. Дизайнеры и маркетологи запускают кампании, не стоя в очереди. Любой может создавать. Инженеры могут выпускать. Все [музыка] выигрывают. Вам просто нужна идея и выходные. Проверьте это на bolt.new/howiai. Прежде чем я перейду к тому, как построить упряжь, давайте поговорим о том, что такое упряжь. И я сделаю это максимально просто для всех вас. Упряжь — это некоторый код вокруг ИИ-агента. Да, вы услышали это здесь первыми. Упряжь — это просто код вокруг ИИ-агента, который делает его более эффективным. Может ли этот код содержать ИИ? Конечно. Должен ли этот код содержать ИИ? Не обязательно. Какова цель упряжи? Сделать ИИ лучше. Это так просто, и мне кажется, что то, как люди об этом говорили, сделало это такой загадкой, что я хотел сделать это очень ясным для всех вас. Это просто написание большего количества кода вокруг вашего ИИ, чтобы сделать его более полезным для конкретного случая использования. Итак, из чего состоит упряжь? Ну, у упряжи будет конкретный контекст. Она сможет выполнять конкретные действия, и у нее будет цель конкретных результатов. Это так же просто. И я хочу поговорить о том, когда имеет смысл строить упряжь, а когда нет. И я думаю, вы захотите построить упряжь, когда один и тот же рабочий процесс требует одной и той же настройки и одних и тех же результатов. И поэтому это похоже на то, когда вы бы создали ИИ-агента. И на самом деле, иногда вы можете взаимозаменять некоторые из этих концепций, но на самом деле это происходит, когда существует своего рода комбинация детерминированных и недетерминированных рабочих процессов, пошаговых процессов, инструментов, случаев использования, которые вы хотите, чтобы ваш ИИ следовал для выполнения конкретной задачи. Обычно эти задачи немного сложнее, и именно поэтому появились эти упряжи для кодирования, например, кодирование — это задача, которую нужно выполнить. Она требует конкретных инструментов. которая обычно проходит через своего рода стандартный рабочий процесс, и поэтому упряжи для кодирования очень популярны. Но вы также можете делать такие вещи, как управление инцидентами на производстве, где вам нужно пройти через конкретный процесс, подготовка PR к выпуску, обработка эскалаций поддержки, управление миграциями, даже нетехнические случаи использования, такие как проведение исследований очень специфическим образом или консолидация документов очень специфическим образом. Вот как и почему вы бы использовали упряжь. Итак, как я решил, какую упряжь мне построить? Ну, я посмотрел на свой бизнес Chat Purity и подумал: что я делаю повторяющеся и последовательно, что, по моему мнению, ИИ мог бы делать хорошо, что, по моему мнению, мы могли бы делать лучше, если бы мы были более структурированы в отношении ИИ и того, как мы его использовали. И я подумал, что исправление ошибок, вы все, если вы слушали этот подкаст, послушайте, я выпускаю код, поэтому я выпускаю ошибки. Исправление ошибок — это очень специфический рабочий процесс, для которого мы создали некоторые пользовательские внутренние инструменты, которые я обычно делал с помощью Claude Code или Codec, но у меня была гипотеза, что я мог бы лучше справиться с сортировкой ошибок, если бы я построил свою собственную упряжь. И поэтому я выбрал отладку Sentry и, извините за контент Claude, здесь. Отладка Sentry и отладка проблем Sentry. Действительно выяснение проблемы с помощью некоторых наших пользовательских внутренних инструментов, а затем выполнение всех последующих действий, которые мы выполняем при закрытии ошибок, было хорошей первой упряжью. Она включала кодирование. Ей требовался пользовательский контент и пользовательский контекст. Были конкретные результаты, которые я хотел убедиться, что мы соблюдаем, например, отслеживание всего в Linear и написание последующей документации, которую могла бы использовать остальная часть команды инженеров. И поэтому мы выбрали отладку наших ошибок Sentry. Под "мы" я имею в виду меня и Codec, мы выбрали отладку Sentry как хороший пример использования для демонстрации того, как построить упряжь. Теперь, почему бы мне просто не использовать инструмент для кодирования ИИ напрямую? Ну, я использовал инструменты для кодирования ИИ напрямую. И я думаю, что проблема с использованием универсального инструмента для кодирования и почему мы видели, как люди создают эти упряжи для конкретных случаев использования, заключается в том, что иногда с конкретной задачей вы просто хотите немного микроменеджмента. Вы просто хотите быть более предписывающим в отношении того, как эта задача выполняется. И поэтому, если вы можете определить правильные рабочие процессы, вы можете быть более эффективными, более последовательными и получать лучшие результаты, если вы построите упряжь. Итак, для этого конкретного случая использования, вы знаете, с прямым ИИ-инструментом, таким как Claude Code, мне пришлось бы объяснять, что я хочу, чтобы агент делал. Так что мне пришлось бы сказать: "Дорогой агент, пожалуйста, исправь эту ошибку. Вот она по ссылке. Вместо этого, с этой упряжью, я могу буквально просто вставить ссылку, и агент уже знает мое намерение, уже знает, что нужно сделать". Вторая вещь, о которой я не особо беспокоился, но которая интересна, когда вы создаете свою упряжь, это то, что вы можете быть очень предписывающим в отношении того, какие инструменты ему разрешено использовать, а какие нет. Например, если вы хотите создать упряжь только для расследования, вы можете убедиться, что ваша упряжь, ваш редактор кода никогда не писал код. Он только исследовал и объяснял первопричину. Вы также можете повторять один и тот же процесс с течением времени, если вы кодируете его в упряжи. И поэтому, если вам нужен очень точный пошаговый поток, включая результаты. Итак, для нас, каждый раз, когда мы исправляли ошибку Sentry, мы хотим, чтобы она была задокументирована в Linear. Мы хотим очень конкретный отчет. Мы можем даже захотеть связаться с клиентами, которых это затронуло. Вы можете закодировать это в навыке, но опять же, вам придется за ним присматривать. Когда мы создали эту упряжь, мы знали, что это будет происходить каждый раз. А затем с точки зрения модели вы можете делать многомодальную маршрутизацию и всевозможные интересные вещи способами, которые вы не могли бы сделать с универсальной моделью ИИ. Итак, я покажу вам, как это работает, а затем мы поговорим о том, как я это построил. Хорошо. Итак, интерфейс, который я построил для своей упряжи, — это терминальный пользовательский интерфейс, опять же, как Claude Code или Codec, что-то, что вы запускаете в своем пользовательском интерфейсе. И просто чтобы вы знали, ваша упряжь не обязательно должна быть TUI. Она не обязательно должна быть CLI. Она даже не обязательно должна иметь буквы. Это может быть веб-приложение. Я сделал это в TUI. Во-первых, потому что я давно ничего не строил. Я думал, это будет весело. И во-вторых, я просто хочу показать, что создание собственной пользовательской упряжи означает, что вы можете создавать свой собственный пользовательский интерфейс для этих ИИ-агентов. Итак, упряжь — это весь опыт, включая человеческий опыт, который делает ее более полезной и простой в использовании. И поэтому этот TUI довольно легко вызвать. Я просто запускаю TUI. Вы можете увидеть его здесь. Он довольно милый. Он сделан милым. Я использую эту библиотеку под названием Ink, которая помогает создавать милые TUI. Я не думаю, что они бы сказали "милый", но я скажу "милый". И вы можете видеть здесь, что этот терминальный пользовательский интерфейс действительно отражает структуру самой упряжи. Итак, вы видите все запуски, которые он сделал до сих пор, ошибки и как он их исправил, а затем своего рода наш процесс упряжи, который заключается в том, что он собирает доказательства, потоково передает действия, а затем создает некоторые артефакты. И поэтому я на самом деле заставлю его исследовать эту ошибку Sentry здесь. Это одна из тех, где наши операции редактирования иногда теряются агентами. И это теперь запустило нашу специальную упряжь. Итак, что он сделает, это начнет этот запуск расследования. Он запустит сеанс SDK Claude, который является фундаментальной частью того, как я это построил. Он начнет собирать доказательства и выдвигать гипотезу о первопричине того, что вызывает эту проблему, и как мы можем ее исправить. Теперь, как вы можете видеть, я выбрал "расследовать", а не "исправлять". Итак, расследование не должно касаться и изменять файлы. И опять же, это то, что мне пришлось бы запросить у агента и сказать: "Я хочу, чтобы ты только расследовал. Я не хочу, чтобы ты выпускал исправление". Но вместо этого я могу просто нажать "вставить" эту ошибку Sentry, и она уже в деле. Этот выпуск представлен Customer IO. Вы здесь, потому что вы предпочитаете использовать ИИ, а не говорить о нем. С Customer IO вы описываете кампанию, которую хотите создать, и ИИ-агент создает ее для вас: аудиторию, сообщения и время. Вы просматриваете ее, вносите любые изменения, которые хотите, и запускаете. Вместо того, чтобы тратить часы на сборку инструментов и рабочих процессов, вы можете сосредоточиться на работе, которая действительно способствует росту. Каждая кампания привязана к результатам, поэтому вы можете видеть, что работает, а что [музыка] дальше. Более 9000 брендов используют customer.io для преобразования данных, которые у них уже есть, в сообщения, которые клиенты запоминают. Посетите customer.io/howi, чтобы попробовать сегодня. customer io больше влияния от каждого сообщения. Пока это работает, я просто покажу вам немного о том, как это работает и как я это построил. Хорошо, вот высокоуровневая архитектура приложения. Итак, фронтенд — это терминальный пользовательский интерфейс или вызов CLI упряжи, который мы называем запуском. Итак, он выполняет задачу. Каждая задача имеет конкретный ввод. Обычно это ошибка Sentry. А затем есть конкретные флаги, которые я установил для упряжи, которые позволяют ей редактировать исходный код, изменять входные данные или даже отправлять сообщения клиентам только в том случае, если я помечаю и одобряю это. Итак, опять же, это просто немного больше контроля над тем, как работает агент. Ядро упряжи работает на Claude Agent SDK, и поэтому все планирование агента выполняется через Claude Agent SDK, который имеет некоторые примитивы Claude Code, включая поиск файлов и запись файлов и все те вещи, которые мы находим полезными. А затем то, что действительно интересно в этой упряжи, и вы видели это в других упряжах, таких как OpenClaude, это то, что она может создавать свои собственные артефакты в своем хранилище файлов. И поэтому у нас есть это хранилище артефактов. Я покажу его вам через минуту. И оно в основном сохраняет все доказательства из этих запусков в файловой системе, чтобы агент мог использовать их в будущем. А затем оно подключено к реальным инструментам. Итак, оно подключено к Sentry Vercel, облачному SDK. Оно использует Sonnet 46, потому что я думаю, что это правильная модель для этой работы. А затем оно подключено к Linear и GitHub для выполнения задач. Теперь, что действительно интересно, так это то, что вы можете запрашивать это пользовательским образом. Так что вместо общего "ты Claude Code, не совершай ошибок, ты наш, вы знаете, своего рода гений модели", я говорю конкретно, что ты работаешь внутри упряжи чат-инженерии. Это специфично для чата. Это не система кодирования с открытым концом. Мы хотим использовать эти артефакты как источник истины. И вот план атаки на очень конкретную проблему. И то, что я хочу, чтобы вы вернули, это X, Y и Z. И опять же, мне не нужно копировать и вставлять это. Так что мне даже не нужно помещать это в навык, где, надеюсь, оно будет вызвано правильным образом. Я фактически закодировал это в очень конкретном шаге в упряжи, чтобы убедиться, что модель следует этому каждый раз. И поэтому внутри моей упряжи есть несколько таких пользовательских запросов. Есть артефакты, которые генерируются. Есть политики инструментов относительно того, какие инструменты могут быть вызваны, а какие нет. И затем я решил снова использовать Claude Sonnet 46, который, я думаю, действительно является правильной моделью для этого конкретного рабочего процесса. Хорошо, я хочу немного поговорить о коде и о том, как вы его генерируете, а затем просто заглянуть за кулисы. Я фактически запустил параллельные сеансы Claude Code и Codec и, по сути, сказал: "Помогите мне построить упряжь. Я думаю, я хочу использовать Claude Agent SDK. Вот что я хотел бы, чтобы он делал", а затем закрыл глаза и попытался это сделать. Честно говоря, это не было однократным. Я не знаю, было ли это из-за моих запросов или модели были странными. Это был GPT 5.5 и Opus, но оба они действительно хотели построить что-то очень детерминированное. Так что они действительно сопротивлялись включению какого-либо ИИ в упряжь, и мне пришлось очень-очень конкретно запрашивать, чтобы получить то, что я хочу. Так что я бы сказал, если бы вы пытались сделать это, я бы был очень конкретен в отношении рабочего процесса. Я бы был очень конкретен в отношении инструментов. Я бы был очень конкретен в отношении того, где имеют смысл пользовательские запросы. А затем я бы предложил использовать SDK агента либо от Claude, либо от OpenAI для запуска большей части этого, потому что без этого запроса я просто не получил того, что хотел от этих моделей. Второе, что я скажу, как ни странно, Codec сделал лучшую работу по созданию агента, но он использовал Claude Agent SDK для фактической реализации агента. Так что мы охватываем модели и агентов кодирования здесь. Но сама упряжь довольно проста. Она имеет своего рода высокоуровневый индекс того, как добраться до TUI, а затем у нее есть, я не знаю, восемь файлов с конкретными вещами, которые она может делать. Так что она может искать ошибки в Sentry. У нее есть адаптер Sentry для эффективного использования API Sentry очень специфическим образом. Так что вместо использования общего API, вместо того, чтобы ваш агент кодирования блуждал по всем этим трассировкам, я очень точен в отношении того, что, по моему мнению, вам нужно извлечь из отчета об ошибке, что полезно, а что нет, и сделал этот соединитель очень предвзятым. У нее есть аналогичная интеграция с Linear, интеграция с Vercel, интеграция с GitHub. И поэтому опять же, не то, как вы можете использовать эти инструменты в целом, а именно то, как вы будете использовать эти инструменты при поиске ошибки. А затем, после использования этих инструментов и источников данных, ошибка идентифицирована и отсортирована, затем здесь есть файл артефактов, который выводит и выдает конкретные артефакты, которые я хочу видеть после завершения запуска ошибки. И этот пакет артефактов выглядит примерно так. Итак, это буквально просто запуск задачи, который включает все сообщения, отчеты, так что это была ошибка Sentry? Вот краткое изложение того, что мы обнаружили. Вот любые журналы, которые мы считаем релевантными, что сделал рабочий процесс Claude, а затем сводка вывода. А затем мы также выводим этот красивый HTML-файл, который я могу вам показать, который показывает, что произошло и как все это работало, а также отчет рабочего процесса. Итак, я покажу вам эти результаты. Просто открываю этот код для вас. Опять же, он довольно прост. Он дает мне все инструкции о том, куда поместить мои конкретные API-ключи. А затем я могу просто запустить его таким очень предвзятым образом. Итак, в дополнение к запуску TUI, который позволяет мне как бы перемещаться по пользовательскому интерфейсу и использовать эту упряжь, что-то, что я, как человек, могу захотеть сделать, он также имеет встроенные очень простые инструменты командной строки, где если я просто быстро хочу запустить эту упряжь против конкретных проблем с конкретными флагами использования инструментов, я определенно могу это сделать. И что интересно в этом, так это то, что да, я построил эту упряжь, и вы можете видеть здесь, я построил этот забавный пользовательский интерфейс, чтобы я мог использовать его в забавной форме, и это делает лучшую демонстрацию, но на самом деле эта упряжь — это структурированный способ дать агентам задачу выполнять эти расследования на более простом уровне. И поэтому вы можете представить, что, хотя я разработал TUI для человека, фактически давая своего рода полностью интеллектуальному агенту специальную упряжь для решения конкретной проблемы с агентами, я думаю, именно так вы получите реальную отдачу и действительно пользовательские результаты от таких вещей, как агенты кодирования, такие как Claude Code. И поэтому этот процесс действительно открыл мне глаза, мы так привыкли к открытому полю чата, как будто я просто ввожу, и агент будет делать хорошую работу, и я думаю, мы все проделали хорошую работу, но теперь я понял, что эти агенты могут помочь нам решить очень-очень специфические проблемы, используя других агентов, и, ограничивая эту работу, мы можем фактически выполнять конкретные задачи очень эффективно, а затем использовать универсального агента для их оркестрации. Так что это действительно изменило мое представление о том, как выполняется работа. Как вы можете видеть здесь, опять же, это всего лишь пара файлов. Это действительно не так уж много. адаптеры к источникам данных. Несколько рабочих процессов, в частности, этот рабочий процесс охотника за ошибками, который просто проходит через то, как именно мы хотим искать ошибки, включая то, как мы хотим составлять сводки отчетов об ошибках, а затем несколько файлов с точки зрения запуска TUI или CLI. И затем, как я уже сказал, у нас есть эта папка артефактов, которая обновляется каждый раз, когда происходит запуск, где я могу щелкнуть и фактически увидеть, что именно произошло в результате запуска. Итак, давайте посмотрим, хорошо ли прошел этот запуск и что я могу узнать. Итак, теперь у меня есть полный контекст. Вот краткое описание расследования, и я могу его найти. Итак, это охотник за ошибками C7. Давайте посмотрим, смогу ли я найти его. Вот он. Вот краткое описание расследования по этому редактированию документа. Операции были потеряны. Я подтвердил доказательства. Итак, он говорит, да, определенно было предупреждение Sentry. Оно затронуло 150 пользователей. Оно все еще происходит ежечасно. Это предупреждение, так что это не фактическая ошибка. И журналы Vercel были недоступны, поэтому мы не смогли использовать эти данные. А затем он нашел вероятные первопричины. Итак, недопустимый исходный диапазон или перекрывающийся исходный диапазон. И поэтому он определил пару потенциальных первопричин, а также слепое пятно в этой конкретной функции. Он точно указал, где в поверхности продукта находится проблема, а затем как я бы фактически проверил это, получив необработанное событие Sentry, чтобы увидеть, верны ли выявленные ими проблемы. он определяет, следует ли выпустить проблему в Linear, и говорит, да, мы определенно должны создать проблему в Linear, чтобы исправить это, и поэтому это должно быть назначено кому-то, и тогда он не рекомендует включать режим исправления и фактически исправлять это. Итак, опять же, это очень конкретный результат. Я хотел сказать: "Каковы все доказательства, ранжируйте первопричины, дайте предложение по следующему шагу, если нам нужно проверить это дальше, скажите мне, если мне нужно назначить это кому-то в Linear, а затем скажите мне, можете ли вы исправить это", и они говорят: "Нет, я думаю, я пока не могу это исправить, мне нужно немного больше информации", и все это построено, потому что я проделал этот очень специфический рабочий процесс и закодировал его в том, что мы называем упряжью, которая просто является кодом вокруг агента. Итак, как бы вы построили свою собственную упряжь? Я думаю, надеюсь, вы все еще со мной. Не так уж много из этого прошло мимо вас. Просто чтобы повторить, я просто определил конкретный рабочий процесс. Я определил, как будет выглядеть запуск задачи. Я принял очень предвзятые решения относительно инструментов или источников данных. Так что я не просто сказал: "Используйте API", хотя это может быть частью вашей упряжи, я сделал адаптеры, которые делали вызовы к этим внешним API и инструментам очень специфическими. Я подумал о том, какими могут быть структурированные артефакты этого рабочего процесса. Я решил, какие правила и разрешения я хочу дать этой упряжи, а какие нет. Я решил, хочу ли я использовать Claude Code или Codec или маршрутизатор моделей для фактического запуска этих вещей. А затем я создал поверхность для взаимодействия с этим агентом. Итак, я создал TUI, чтобы я мог фактически смотреть и работать с этой упряжью. Это может быть TUI. Это может быть CLI. Это может быть веб-приложение. Но я создал какой-то способ взаимодействия с этим. Итак, вот что вам нужно сделать. Определите рабочий процесс. Действительно запишите его на, знаете ли, прозаической бумаге, HTML или markdown. Определите, какие источники данных вам нужны, а затем подключите все это к Claude Code или к Codec, как я сделал, и пусть он построит вашу собственную упряжь, а затем протестируйте ее на реальных данных. Итак, вот и все. Я действительно надеюсь, что вы уйдете от этого, осознав, что эти загадочные термины, такие как упряжь, не так уж загадочны. Упряжь — это просто придание некоторой структуры работе ИИ. Да, Cursor — это очень сложная упряжь. Да, Codec и Claude Code — это очень сложные упряжи для кодирования, но в конечном итоге это код, который оборачивает этих ИИ-агентов и эти вызовы ИИ, чтобы сделать их более эффективными в выполнении очень конкретной задачи. И поэтому, независимо от того, делаете ли вы это очень предписывающим образом, как я только что показал, где я хочу показать вам, как я сортирую ошибки Sentry, провожу расследование и передаю их команде, или вы делаете это в широком смысле, как эти универсальные агенты кодирования, которые просто имеют доступ к инструментам, контексту и методам, которые улучшают рабочий процесс кодирования. Это все, что такое упряжь. Вы можете думать об упряжах, которые вы можете построить. Вы можете построить их в терминале. Вы можете построить их для CLI. Вы можете даже построить их как веб-приложения. Я начинаю выдвигать гипотезу, что обертка — это просто упряжь, и это улучшит все, что я кодировал за последние три года. Это был полностью обучающий опыт для меня здесь, на How I AI. Это моя самая первая упряжь, которую я построил в прямом эфире на шоу. Надеюсь, она будет вам полезна. И если вы заинтересованы в том, чтобы я строил другие вещи и развеивал мифы об ИИ, дайте мне знать в комментариях. Спасибо, что присоединились к How I AI. Большое спасибо за просмотр. Если вам понравилось это шоу, пожалуйста, поставьте лайк и подпишитесь здесь на YouTube, или, что еще лучше, оставьте нам комментарий со своими мыслями. Вы также можете найти этот подкаст на Apple Podcasts, Spotify или в вашем любимом приложении для подкастов. Пожалуйста, рассмотрите возможность оставить нам оценку и отзыв, которые помогут другим найти шоу. Вы можете увидеть все наши выпуски и узнать больше о шоу на howiaipod.com. До следующего раза.