Забудьте про Codex и Claude Code: Goal Buddy наконец-то исправляет недостатки обоих
AAI LABS
컴퓨터/소프트웨어창업/스타트업AI/미래기술
Transcript
00:00:00Это улитка Гэри, и он обнаружил свободную нишу на рынке: создание платформы для знакомств улиток.
00:00:04Но так как он супермедленный, он хочет, чтобы Claude Code автономно выполнял его долгие задачи.
00:00:09К счастью для него, агенты стали очень хороши в выполнении долгих задач. У Claude Code есть
00:00:13команда goal, которая просто заставляет агента работать, пока задача не будет выполнена, но во время нашего
00:00:18тестирования мы обнаружили много проблем с командой goal. Поскольку Гэри недавно пережил
00:00:22развод, и мы хотим, чтобы он был счастлив, мы нашли инструмент с открытым кодом, который действительно решает проблему,
00:00:28и он работает не только с Claude Code, но и с Codex, распространяя любовь, прямо как твоя мама, которая, я
00:00:32уверен, любит тебя так же сильно, как и твой трудоустроенный брат. В Claude Code ранее была выпущена команда
00:00:38goal, которая заставляет агента работать, пока не будет достигнуто определенное условие. Мы не освещали её на нашем
00:00:42канале, но вы, вероятно, уже слышали о ней. До этого существовал плагин под названием Ralph Wiggum,
00:00:47который набрал большую популярность и, по сути, делал то же самое: использовал хуки, чтобы подавать промпт
00:00:52обратно в Claude Code до тех пор, пока условие не будет выполнено. Но дело в том, что эти условия должны быть
00:00:57точным совпадением, потому что цикл Ralph использует bash-скрипт для проверки условия, буквально как
00:01:02охранник в аэропорту, который не пропускает вас, потому что ваш мужской спрей для тела превышает допустимый
00:01:06объем багажа. Команда goal работает иначе: она берет условие и текущий контекст диалога и передает
00:01:11это небольшой модели, Haiku, и эта модель разумно оценивает, выполнена задача или нет.
00:01:17Она возвращает решение «да» или «нет», и ответ «нет» велит Claude продолжать итерации над той же задачей, как когда ваш босс
00:01:22просит вас улучшить пользовательский интерфейс, потому что он просто не может найти кнопку на странице. Так что это делает
00:01:27оценку субъективной, и для вещей, которые мы не можем количественно оценить самостоятельно, это реальное улучшение.
00:01:32Goal работает хорошо для многих задач, но у неё всё ещё много проблем. Первая проблема заключается в том, что
00:01:37она не использует базу знаний или файловую систему, которая отслеживает прогресс выполнения задачи, и, поскольку она
00:01:42этого не делает, единственным источником истины для агента становится контекст чата. Это может задеть
00:01:47вас, ведь именно ваш отец записал состояние в криптовалюте на стикере, который упал с холодильника еще в
00:01:522017 году. Как только сессия заканчивается по любой причине, а задача не была завершена, вы, конечно, можете возобновить её с помощью
00:01:58команды claude resume. Цель не будет потеряна, но единственный способ узнать, на чем она остановилась, — это
00:02:03контекст чата, а так как эта команда предназначена для долгих задач, а не для простых, всё может
00:02:08испортиться в процессе, и, конечно, при работе goal часами раздувание контекста и достижение лимитов компактизации
00:02:13рано или поздно станут реальной проблемой. После компактизации результаты работы агента ухудшаются.
00:02:18Он начнет вести себя как моя бабушка, которая из-за деменции начинает забывать название этого
00:02:22канала; мне нужно, чтобы вы, ребята, показали ей последнее видео. Еще одна проблема в том, что он не
00:02:27разбивает задачи на более мелкие. Вместо этого он просто использует основного агента и выполняет декомпозицию задачи
00:02:32самостоятельно, как обычно делает Claude Code, так что структурированного плана нет, и агент может потерять из виду
00:02:37то, что еще осталось сделать, и даже если это может хорошо работать в некоторых случаях, нечеткое
00:02:42определение того, как выглядит завершенная работа для агентов, — это никогда не бывает правильно. Goal полностью полагается на
00:02:47модель для оценки завершения, поэтому это может быть не так эффективно в некоторых случаях. Это лучше, чем
00:02:52Ralph Wiggum, который был полностью строгим, используя скрипты, но должна быть хоть какая-то метрика,
00:02:56которая говорит агенту, как выглядит завершение, совсем как ваш свадебный фотограф, который продолжал говорить
00:03:01«еще один кадр», пока всё мероприятие не закончилось. Вот где goal не дотягивает, и такие вещи
00:03:05могут казаться незначительными, но в реальных тяжелых рабочих процессах они могут привести к серьезным проблемам.
00:03:10Итак, Goal Buddy — это инструмент, созданный с одной целью: заставить команду goal работать так,
00:03:16как положено. Он решает все проблемы, о которых мы только что говорили, но он не получает столько
00:03:20внимания, сколько заслуживает, учитывая его полезность. Он как горячая няня, только вместо того, чтобы флиртовать
00:03:25с вами, она просто нянчится с вашими долгими задачами. Goal не сохраняет состояние работы
00:03:30локально, поэтому этот инструмент исправляет это и фактически заставляет goal читать и обновлять локальное состояние вместо того, чтобы полагаться на
00:03:36историю чата, и он также заканчивает с доказательствами, так что агент на самом деле знает, как выглядит завершение, прежде чем
00:03:42он начнет работу. Для отслеживания прогресса он также включает целую панель управления, где вы можете наблюдать за
00:03:46работой вашего агента, пока он работает. И чтобы справиться со всем этим, он построен на трех агентах: это
00:03:51разведчик (scout), работник (worker) и судья (judge) — по сути, стартап-команда Y Combinator, где один делает всю работу, один
00:03:56наблюдает, как он это делает, и один судит их обоих в Твиттере. Установка довольно проста: просто
00:04:01скопируйте команду установки и вставьте её в папку проекта. Он будет установлен как плагин,
00:04:06доступный как для Claude Code, так и для Codex. Как только вы начнете новую сессию, вы сможете увидеть команду,
00:04:10доступную для использования. Итак, у этих трех агентов есть строго определенная роль и уровень доступа. Поскольку этот
00:04:16инструмент создан и для Codex, агенты определены в TOML, а не в стандартном Markdown. Первый
00:04:21агент — это судья, который имеет только доступ на чтение. Он скептически анализирует сложные решения, такие как рискованные
00:04:26области, противоречивые источники и другие паттерны, чтобы убедиться, что задача выполнена безопасно. Его
00:04:31инструкции запрещают редактирование, потому что он существует только для вынесения суждений, больше ни для чего. И так как его
00:04:36задача крайне критична, усилия на рассуждение этого агента установлены на максимум, чтобы решения принимались должным образом.
00:04:42Это в точности как когда вы сочиняли ту самую смс-ку своей пассии четыре часа подряд посреди
00:04:47ночи. После завершения работы он возвращает структуру JSON с одобренными и
00:04:52отклоненными решениями вместе с обоснованием. Разведчик — это еще один агент только для чтения, который отображает активную задачу
00:04:57и создает компактную квитанцию с доказательствами для нее. Поскольку его работа — просто проверить состояние задачи,
00:05:02его усилия на рассуждения остаются низкими, прямо как у вышибалы в вашем любимом стриптиз-клубе — ему на самом деле
00:05:07не так уж и важно. И есть еще агент-работник, единственный, у которого есть доступ на редактирование. Он выполняет фактическую работу и
00:05:12ему разрешено выполнять только одну задачу за раз. Также есть роль PM (менеджера проекта), которая является основным потоком, координирующим
00:05:17рабочий процесс. Он ведет себя как настоящий менеджер проекта, выполняя минимум работы,
00:05:22насколько это возможно. Это единственный авторитет, который может действительно пометить задачу как выполненную. Основной рабочий процесс начинается с выражения
00:05:27намерения задачи правильными словами, а не расплывчато, как обычно делаем мы, homo sapiens, а так, чтобы
00:05:33агент мог правильно понять. Затем определяется оракул. Оракул — это, по сути, наблюдаемый
00:05:38сигнал, который определяет результат. Именно по нему система итерируется, чтобы увидеть, можно ли задачу
00:05:43пометить как выполненную или нет. Это может быть что угодно: набор тестов, проверка браузера, любые бенчмарки артефактов или код,
00:05:49который превращает мою микроволновку в машину времени, потому что почему бы и нет? Агенты ИИ сейчас делают всё, что угодно.
00:05:54Затем следующий шаг — surface (обзор). Он разбивает задачу на выполнимые шаги, создает панель управления и отображает
00:06:00задачи в визуальном формате. Последняя часть — PM, он в этом случае менеджер, и он поддерживает выполнение задачи
00:06:06до тех пор, пока финальный аудит не пометит цель как достигнутую. Чтобы использовать Goal Buddy, вы просто запускаете команду goal prep,
00:06:11это та, которая инициализирует рабочий процесс, и вы определяете цель, которой хотите достичь. Он
00:06:16сначала убеждается, что агенты установлены и готовы к использованию. Затем он инициирует рабочий процесс, но в отличие от
00:06:21родной команды goal, он крайне самокритичен и сначала устраняет свои собственные двусмысленности, задавая
00:06:27вам вопросы, чтобы вы могли четко определить реализацию. И точно так же, как ваша подозрительная жена,
00:06:32он будет задавать вопросы до тех пор, пока не поймет. Первый шаг фокусируется на создании файлов целей. Он помещает
00:06:38оригинальный запрос вместе с нашими ответами, а затем сопоставляет его с правильной задачей на языке,
00:06:43понятном агенту. Он содержит сводку всей информации, а затем определяет оракула,
00:06:48что является самой важной частью. Оракул для этой задачи прост: все тесты должны пройти с
00:06:53правильным поведением. Этот вид цели специфичен, потому что его можно программно
00:06:57оценить, в отличие от вашей легенды прошлой ночью, в которую ваша жена совершенно не верит. Goal Buddy разбивает весь рабочий процесс
00:07:03на маленькие выполнимые задачи. Они называются «слайсами» (slices), но, в отличие от реального мира, размер здесь не имеет значения,
00:07:08потому что маленький слайс не означает маленькую задачу; это означает что-то, что безопасно, может быть легко проверено
00:07:14и может быть запущено индивидуально. Он явно определяет безопасный размер слайса в документе. Он создает
00:07:19state.yaml, который отслеживает проект и задачи, и определяет, как будет выглядеть цикл PM. State.yaml состоит из
00:07:26всех целей и правил со всеми задачами, разбитыми по их ID и назначенному агенту. Он содержит
00:07:31поле для отслеживания активной задачи. Он также упоминает связанную панель управления, перечисляет все задачи «to-do»
00:07:36и задачи в прогрессе. В нашем случае агент-разведчик в данный момент работает и составляет карту всех
00:07:42файлов и эндпоинтов. Так что, чтобы запустить цикл, вы просто копируете эту команду и запускаете её. Она инструктирует Claude
00:07:47поставить цель выполнить всё, что указано в файле goal.md. Оттуда он выберет первую активную
00:07:52задачу, как король, а затем вызовет своих подчиненных агентов, чтобы выполнить её. Как только разведчик завершит
00:07:58работу, он обновляет файл прогресса всеми своими находками и документирует их в отдельной директории.
00:08:03Он также обновляет доску со статуса «активно» на «завершено». Затем цикл подхватывает следующую задачу, помечает её как
00:08:08активную и запускает агента-судью. Судья критически оценивает находки и выстраивает отчет
00:08:13в наименьшее количество возможных вертикальных слайсов, что является декомпозицией задачи для работника, чтобы тот мог выполнить её
00:08:18независимо. Затем он обновляет счетчик слайсов и соответственно обновляет файл состояния. Каждая задача
00:08:22явно перечисляет разрешенные файлы, как их проверить и когда остановиться. Так он определяет каждый слайс,
00:08:28чтобы у агентов был четкий ожидаемый результат, проверки и все необходимые детали. Затем один за другим он
00:08:33инициализирует агента-работника и начинает с первого слайса. Прогресс каждого агента можно отслеживать
00:08:39с помощью панели управления. Вы будете знать, что делает каждая задача, какой агент активен, какие задачи в очереди и
00:08:44какие завершены, так что вам не нужно мониторить всё самостоятельно, и вы можете уделить своим детям
00:08:48время, которое им нужно. Как только все задачи выполнены, он выполняет последний аудит в роли PM,
00:08:53убеждаясь, что все тесты были должным образом проведены. Как только аудит завершен, он помечает задачу финального аудита судьи
00:08:58как выполненную, а затем помечает цель как завершенную. После этого вам остается только начать
00:09:03молиться и надеяться, что эти агенты не галлюцинировали. В целом, это сработало довольно хорошо, учитывая
00:09:09сложность и масштаб приложения, которое мы дали, но мы думаем, что можно было добавить более эффективную параллелизацию,
00:09:13потому что он делал всё последовательно. Он обрабатывал одну задачу за раз и не использовал
00:09:18возможности параллелизации Claude Code вообще. Дарио был бы разочарован, увидев это,
00:09:23но учитывая, как хорошо он спланировал рабочий процесс, всё сработало неплохо. Также, если вам нравится наш контент,
00:09:28подумайте о том, чтобы нажать кнопку «hype», потому что это помогает нам создавать больше такого контента и охватывать больше
00:09:33людей. Мы также хотели протестировать Goal Buddy на чем-то более общем, например, на проектировании UI, чтобы увидеть, как он
00:09:38обрабатывается с задачами, которые нельзя оценить программно. Предыдущий тест был на конкретном рабочем процессе с
00:09:44четкими критериями прохождения и неудачи, но точно так же, как и вы, когда идете к парикмахеру за свежей стрижкой, некоторые задачи
00:09:49просто этого не имеют. Поэтому мы сначала дали обычной команде goal расплывчатый промпт. Она инициализировала задачи
00:09:54goal, проконсультировалась с советником и в мгновение ока выдала сайт. Будучи ленивой, она просто создала простую HTML-страницу
00:10:00и не использовала никаких фреймворков, но лендинг выглядел неплохо. Поэтому мы дали тот же самый промпт
00:10:05и Goal Buddy. Как только он запустился, он следовал тому же рабочему процессу и выдал похожую сессию вопросов,
00:10:10чтобы прояснить намерение. Здесь Goal Buddy на самом деле спросил о технологическом стеке. Обычно
00:10:14я бы назвал это «подлизыванием», но так как я серьезно отношусь к своим ИИ-агентам, я назову это тщательностью. Точно так же он
00:10:20создал доску и файл goal.md и перевел наш первоначальный запрос в правильную цель. Он также
00:10:26правильно определил оракула, но оракул в предыдущей задаче был простым: нужно было просто пройти все
00:10:31тесты. У этой задачи были другие цели: она определила задачу как выполненную, когда сервер разработки будет запущен и
00:10:36пошаговое прохождение браузера подтвердит, что все разделы работают, как определено. Вот как он превратил
00:10:41неколичественную задачу в нечто количественное. Он также снова создал state.yaml с оракулом,
00:10:47правилами, агентами и всеми перечисленными задачами, а затем начал работать таким же образом. На это потребовалось больше
00:10:52времени, чем на обычную команду goal, но в итоге он правильно реализовал приложение. Это не будет
00:10:57проблемой для улитки Гэри, но вам стоит поотжиматься тем временем, я вижу, что вы растолстели.
00:11:02В целом весь сайт работал значительно лучше, чем то, что создала простая команда goal.
00:11:07Если вы действительно хотите стать ИИ B2B SaaS-фаундером, который любит строить, а не просто смотреть туториалы,
00:11:12то вам стоит стать ИИ-профи. Внутри вы встретите единомышленников, таких же, как наша команда, с
00:11:17ресурсами из видео и кучей других полезностей. Ссылка будет в описании, и
00:11:22вы можете её проверить. На этом мы заканчиваем видео. Если вы хотите поддержать канал
00:11:27и помочь нам продолжать создавать видео, подобные этому, вы можете сделать это с помощью кнопки «суперспасибо» ниже. Как всегда,
00:11:32спасибо за просмотр, и увидимся в следующем.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video