00:00:00[МУЗЫКА]
00:00:02Привет, меня зовут Марио.
00:00:04Я родом из страны Арнольда Шварценеггера,
00:00:06что вы, вероятно, еще не заметили
00:00:09судя по моему очень хорошему английскому.
00:00:12Я хочу начать с того, что мы
00:00:13весь день бегали с нашим четырехлетним ребенком
00:00:16по Лондону.
00:00:17Мы смотрели динозавров, мумий, зашли в Nandos, конечно,
00:00:24и еще кучу всего, что я уже забыл.
00:00:26Я очень, очень устал.
00:00:28И если вы не поймете ничего из того, что я говорю,
00:00:31просто поднимите руку и скажите: «Дедуля, проснись».
00:00:36Причина, по которой я здесь, на самом деле другой человек,
00:00:39который сегодня здесь, в Кокнивилле.
00:00:40Назовем его Штетер Пайнбургер.
00:00:44Еще в 2025 году, кажется, где-то в апреле,
00:00:53он сказал мне и Армину Ронахеру, которого вы также можете знать
00:00:58по Flask и Sentry: «Чувак, эти кодинг-агенты,»
00:01:02«они реально работают».
00:01:04А я такой: «Ой, да заткнись ты».
00:01:06Извините, я еще и ругаюсь.
00:01:09Совсем нет.
00:01:10А через месяц мы собрались в этой квартире на 24 часа
00:01:13на всю ночь и просто позволили себе погрузиться в этих железных парней,
00:01:19в этот вайб-код и вайб-шлак.
00:01:21И с тех пор никто из нас толком...
00:01:23...мы больше не спим, в общем-то.
00:01:27Мы создавали кучу вещей, многое из которых
00:01:32мы на самом деле никогда не использовали, потому что это фишка 2025-го,
00:01:3626-го года.
00:01:37Мы создаем много всего, но мы не создаем много того,
00:01:39чем реально пользуемся.
00:01:40Мы написали много кода.
00:01:42И в конце концов это привело меня к мысли:
00:01:46«Эй, я ненавижу все существующие кодинг-агенты или среды».
00:01:50«Насколько сложно написать такой самому?»
00:01:53А Питер такой: «О, я просто хочу сделать одну штуку».
00:01:56«Никто о ней, вероятно, не услышит».
00:01:58«И это будет персональный ассистент,»
00:02:01«потому что я всегда хотел такого иметь».
00:02:03Большинство из вас, вероятно, знают, чем закончилась его история.
00:02:05Так что сегодня я расскажу вам свою гораздо менее впечатляющую историю.
00:02:08Но я надеюсь, что смогу передать пару уроков,
00:02:11как говорят в индустрии, которые мне удалось извлечь
00:02:16за последние пару месяцев.
00:02:17Итак, Pi.
00:02:19В начале был Cloud Code.
00:02:21На самом деле, было копирование и вставка из ChatGPT.
00:02:25Мы все делали это в начале, в 2023-м.
00:02:27Затем появился... кто помнит оригинальный GitHub Copilot?
00:02:32Да, кстати, сколько из вас инженеры?
00:02:35Сколько из вас используют кодинг-агенты,
00:02:37вроде Cursor, Cloud Code?
00:02:39Окей.
00:02:40Конкурс популярности: Cloud Code?
00:02:43Codex CLI?
00:02:45Cursor?
00:02:48Open—
00:02:48[НЕРАЗБОРЧИВО]
00:02:49Да.
00:02:50Open code?
00:02:50Anti-gravity.
00:02:51О, не так много.
00:02:52Кто-нибудь пользуется этим?
00:02:55Вы мне нравитесь.
00:02:56Мы выпьем по пиву позже.
00:02:58В общем, это то, что происходило в 2025 году
00:03:03и раньше.
00:03:04Начиналось с копипаста из ChatGPT.
00:03:06Все это в основном работало криво.
00:03:07В основном это были отдельные функции, которые лень писать.
00:03:10Затем появился GitHub Copilot прямо в Visual Studio
00:03:13Code, где вы просто жмете Tab, Tab, Tab до посинения,
00:03:15что иногда работало, но чаще — нет.
00:03:17Иногда он также просто выдавал куски GPL-кода,
00:03:22вроде инвертированного квадратного корня Джона Кармака
00:03:25и тому подобное, что было довольно забавно.
00:03:29А потом появился Adir.
00:03:30Кто-нибудь помнит Adir?
00:03:31Да.
00:03:32Старички.
00:03:33Привет.
00:03:33Ага.
00:03:37У вас седые волосы.
00:03:37Вы явно знаете Adir.
00:03:41Был еще AutoGPT.
00:03:43Вероятно, не многие.
00:03:44Да, окей.
00:03:45Он знает вообще все.
00:03:48И вот в конце концов появился Cloud Code.
00:03:51Думаю, они выпустили его в ноябре,
00:03:52как бету в 2024-м.
00:03:55Но реально его стали использовать больше... что вы сказали?
00:03:59Только в феврале.
00:04:01Да, февраль, март, где-то так, 2025-го.
00:04:03И я такой: «Мне нравится».
00:04:05Это круто.
00:04:06Команда Cloud тоже крутая.
00:04:07Они есть в соцсетях.
00:04:08Они все очень хорошие и талантливые люди.
00:04:13И они, по сути, создали целый жанр.
00:04:15Я знаю, что были предшественники вроде Adir и AutoGPT,
00:04:18но ничего подобного не было.
00:04:20И это, по сути, была вся эта тема с агентным поиском.
00:04:22Вместо того чтобы, как Cursor, лезть в вашу кодовую базу,
00:04:25индексировать всё, строить AST и индексировать их тоже.
00:04:29И это как-то не особо работало.
00:04:31Они просто сказали: «Э-э».
00:04:33«Мы обучили наши модели с подкреплением»
00:04:35«просто использовать файловые инструменты, bash-инструменты,»
00:04:37«чтобы исследовать ваш код на лету и находить места, которые»
00:04:41«нужно понять, чтобы потом изменить этот код».
00:04:44И это сработало так хорошо, что, да, мы
00:04:46перестали спать, потому что внезапно
00:04:48смогли выдавать гораздо больше кода, чем раньше вручную.
00:04:52Тогда всё было просто и предсказуемо,
00:04:54и это идеально вписывалось в мой рабочий процесс.
00:04:57Отлично.
00:04:58Но затем они попали в ловушку, в которую большинство из нас,
00:05:05вероятно, попадает.
00:05:06Машины могут писать так много кода.
00:05:08Почему бы не позволить им написать все фичи, которые только
00:05:11можно вообразить, верно?
00:05:11Разве это не здорово?
00:05:12Давайте добавим эту фичу, и ту фичу,
00:05:14и эту, и вон ту.
00:05:15И в итоге вы получаете нечто вроде машины Гомера Симпсона —
00:05:18я даже не знаю, как это назвать.
00:05:20Я называю это космическим кораблем.
00:05:21И Cloud Code теперь — это космический корабль.
00:05:23Он делает столько всего, что вы, скорее всего, используете
00:05:26от силы 5% того, что он предлагает.
00:05:28Знаете вы в общей сложности около 10%.
00:05:30А остальное, оставшиеся 90% —
00:05:33это своего рода темная материя ИИ и агентов.
00:05:36Никто не знает, что он там на самом деле делает.
00:05:37И лично я нахожу это не очень полезным,
00:05:40потому что я всё еще считаю, что вам нужно
00:05:43понимать, что делает агент.
00:05:45Этот парень может в какой-то степени не согласиться.
00:05:49И мы здесь, на TESOL, и они тоже
00:05:51любят управление контекстом или проектирование контекста,
00:05:54как мы это называли.
00:05:55И в итоге я обнаружил, что Cloud Code не был
00:05:58хорошим инструментом в плане наблюдаемости
00:06:01и реального управления вашим контекстом.
00:06:04А еще было вот это.
00:06:06Кому нравится в Cloud Code вот это
00:06:09бесконечное, необъяснимое мерцание?
00:06:10Ну, вообще-то я знаю, как это объяснить и почему это происходит,
00:06:13но они до сих пор это не исправили.
00:06:15Вот Тарик.
00:06:16Он действительно классный.
00:06:16Я его обожаю.
00:06:17Он их DevRel, в основном в Твиттере, и он потрясающий.
00:06:21Но иногда он также говорит сомнительные вещи,
00:06:24вроде: «Наш терминальный интерфейс теперь — это игровой движок».
00:06:27Ну, вы должны знать, что у меня бэкграунд в разработке игр.
00:06:30Это то, откуда я пришел.
00:06:31И когда я читаю нечто подобное,
00:06:32это меня немного задевает,
00:06:34потому что это, блин, просто терминальный интерфейс, чувак.
00:06:37Это не игровой движок.
00:06:38Поверь мне.
00:06:39Единственная причина, по которой ты думаешь, что это движок,
00:06:41это потому, что вы используете React в терминале,
00:06:44и требуется целых 12 миллисекунд,
00:06:45чтобы перестроить весь граф вашего интерфейса.
00:06:49Просто не делай так, парень.
00:06:51Это не игровой движок, окей?
00:06:54И вот Митчелл, который пишет Ghosty,
00:06:56сказал: «Чувак, это оскорбительно».
00:06:59«Не сваливай всё на Ghosty или любой другой терминал».
00:07:02«Твой код — мусор».
00:07:04«Терминалы могут рендерить на скорости в сотни»
00:07:05«кадров в секунду, меньше миллисекунды на кадр».
00:07:09Так что не надо ля-ля, ясно?
00:07:12В итоге мерцание они исправили.
00:07:15Но потом началось другое.
00:07:16Они будто полностью поддались этому «вайб-кодингу».
00:07:20И вы чувствуете это каждый день, когда используете Cloud Code.
00:07:23Опять же, я не хочу умалять их усилия
00:07:27и их результаты.
00:07:28Cloud Code по-прежнему лидер категории по веской причине.
00:07:30Они изобрели эту штуку, и они отлично справляются.
00:07:32Просто я лично — старый человек,
00:07:34который любит предсказуемые и простые инструменты.
00:07:37А это просто перестало отвечать моим задачам и потребностям.
00:07:41Так что да.
00:07:42Кроме того, они делают много вещей в фоновом режиме,
00:07:44манипулируя вашим контекстом.
00:07:46Летом 2025 года я собрал несколько инструментов,
00:07:50которые позволяли мне перехватывать запросы,
00:07:52идущие к их бэкенду из Cloud Code, и выяснять,
00:07:55какой именно дополнительный текст
00:07:58впрыскивается в ваш контекст за вашей спиной.
00:08:00И всё это было очень вредно,
00:08:01а еще постоянно менялось.
00:08:04Буквально каждые день-два выходил новый релиз,
00:08:06каждый день или через день выходил
00:08:08новый релиз, где менялось то, что внедряется в какой момент,
00:08:11что, по сути, ломало ваши существующие рабочие процессы.
00:08:13Это был просто нестабильный инструмент.
00:08:14И теперь я понимаю это с их точки зрения.
00:08:16Им нужно экспериментировать.
00:08:17И у них огромная пользовательская база.
00:08:18А экспериментировать очень сложно,
00:08:19когда у тебя огромная аудитория.
00:08:21Но им было все равно.
00:08:23Так что всем нам пришлось страдать.
00:08:25Вы работаете с этим новым инструментом.
00:08:27Вы пытаетесь создать предсказуемые рабочие процессы.
00:08:31А затем поставщик инструмента меняет крошечную деталь
00:08:35«под капотом», из-за чего LLM начинает
00:08:36творить безумие в ваших налаженных процессах.
00:08:38Это просто неприемлемо в долгосрочной перспективе.
00:08:39Мне нужен контроль над этим.
00:08:40Я не могу полагаться на то, что они обеспечат стабильность.
00:08:46Поэтому я считаю, что вследствие дизайна интерфейса
00:08:52им приходится ограничивать вашу видимость процессов.
00:08:54Лично мне это не очень нравится.
00:08:56Но это лишь мои предпочтения.
00:08:57Я понимаю, что большинство людей
00:08:58будет довольно тем объемом информации,
00:09:00который предоставляет Cloud Code.
00:09:03Выбора моделей здесь, очевидно, ноль,
00:09:06так как это, так сказать, родной инструмент Anthropic.
00:09:09Это не то чтобы минус, потому что модели Claude—
00:09:12они мне нравятся.
00:09:13Они действительно хороши.
00:09:15И расширяемость здесь практически нулевая.
00:09:17Вам это может показаться забавным, ведь у них
00:09:19есть целая система хуков и все такое.
00:09:21Но если сравнить это с возможностями Pi,
00:09:25интеграция здесь не такая глубокая.
00:09:28Все в основном базируется на запуске процесса,
00:09:32когда срабатывает событие хука, что очень затратно,
00:09:36если приходится перезапускать процесс снова и снова.
00:09:40В итоге я разочаровался в Cloud Code,
00:09:42не потому что он был ужасен.
00:09:44Просто он перестал мне подходить.
00:09:47Зато за этот период он стал подходить гораздо большему числу людей.
00:09:50Очевидно, они все делают правильно, но не для меня,
00:09:54потому что я «старой закалки».
00:09:56И тогда я начал искать другие варианты.
00:09:59Был Codex CLI, который мне совсем не понравился.
00:10:01Поначалу претензии были и к интерфейсу, и к модели,
00:10:05но ситуация изменилась, по крайней мере, в плане модели.
00:10:08Codex сейчас действительно весьма неплох.
00:10:10Затем появился AMP.
00:10:12Команда, стоящая за ним, раньше работала в Sourcegraph.
00:10:15Они отделились от Sourcegraph.
00:10:20И они супер-инженеры.
00:10:21Им удалось создать коммерческую среду для кодинга,
00:10:25в которой они убирают функции вместо того, чтобы их добавлять.
00:10:28И большинство их решений кажутся мне очень логичными.
00:10:33Так что, если ищете коммерческую среду для разработки,
00:10:36я бы определенно рекомендовал AMP, он хорош.
00:10:39Factory Troye — примерно та же история, тоже отличный,
00:10:44хотя они не так склонны к экспериментам, как AMP.
00:10:47И еще есть OpenCode — это опенсорсная среда,
00:10:50которую используют многие.
00:10:53У меня большой опыт в опенсорсе.
00:10:55Я занимаюсь открытым ПО уже, ну, 17 лет.
00:11:00Я управлял и крупными, и мелкими опенсорс-проектами.
00:11:04Так что эта тема мне очень близка.
00:11:05И я подумал: дам шанс OpenCode,
00:11:08раз это мне так близко по духу.
00:11:12И, наряду с AMP, у них одна из самых приземленных
00:11:15и прагматичных команд в этой сфере.
00:11:16Они не пытаются пустить пыль в глаза функциями,
00:11:18которыми вы, скорее всего, никогда не воспользуетесь.
00:11:20Они стараются поддерживать «путь наименьшего сопротивления»,
00:11:23который при этом очень стабилен.
00:11:26У них также есть здравые мысли о том,
00:11:27что значат ИИ-агенты для кодинга для нашей
00:11:29профессии, и мне это лично импонирует.
00:11:32Проблема с OpenCode в том, что он тоже не очень хорош
00:11:37в управлении вашим контекстом.
00:11:38Например, на каждом шаге он вызывает sessionCompaction.prune,
00:11:44который делает следующее.
00:11:46Он обрезает все результаты до последних 40 000 токенов.
00:11:52Кстати, кто здесь знает, что такое кэширование промптов?
00:11:56Что это делает с вашим кэшем промптов?
00:11:58У OpenCode и Anthropic была интересная история.
00:12:05В итоге Anthropic, по моему мнению, совершенно справедливо
00:12:11заявили: ребята, так дело не пойдет.
00:12:14Публично об этом никогда не объявлялось,
00:12:17но Тарек объясняет это здесь.
00:12:19Если вы приходите в спортзал, ведете себя неподобающе
00:12:22и злоупотребляете инвентарем — вас забанят.
00:12:25И я думаю—
00:12:27у меня нет прямых доказательств,
00:12:28но я полагаю, что именно в этом причина
00:12:30неприязни между Anthropic и OpenCode.
00:12:33И я полностью согласен, ну, или по крайней мере
00:12:36считаю, что Anthropic здесь абсолютно правы.
00:12:39Не нужно портить инфраструктуру.
00:12:42Есть и другие моменты, например, OpenCode
00:12:44поставляется с поддержкой LSP (Language Server Protocol)
00:12:46прямо из коробки.
00:12:48Возвращаясь к инженерии контекста,
00:12:51допустим, вы даете агенту задачу
00:12:53изменить несколько файлов.
00:12:55Что это означает на практике?
00:12:57Он будет вносить правки одну за другой
00:13:02в целый ряд файлов.
00:13:03Какова вероятность, что после первой правки из десяти,
00:13:09так сказать, код скомпилируется?
00:13:12Что происходит, когда вы меняете код построчно?
00:13:15Сколько времени нужно, чтобы он снова стабилизировался
00:13:17и начал чисто компилироваться?
00:13:19Этого не случится сразу.
00:13:20Он не скомпилируется после первой правки, и вероятно,
00:13:22не скомпилируется после второй, и так далее.
00:13:24И если вы после этого спросите: «Дорогой LSP-сервер,
00:13:28я только что изменил одну строку в этом файле.
00:13:30Все сломалось?»
00:13:31То LSP-сервер ответит: «Да, всё окончательно сломано».
00:13:34И эта функция делает вот что: она
00:13:36внедряет эту ошибку сразу после вызова
00:13:39инструмента как обратную связь для модели.
00:13:43Мол: «То, что ты сделал — неверно».
00:13:45А модель в недоумении: «Какого черта, чувак?»
00:13:47Я еще не закончил редактирование.
00:13:49Зачем ты мне это говоришь?
00:13:50Очевидно, что все еще в процессе.
00:13:51Но если делать так часто, модель просто сдастся.
00:13:54И это ведет к очень плохим результатам.
00:13:58Так что я не фанат использования LSP в таком ключе.
00:13:59Я считаю, что это ужасная идея — держать его включенным.
00:14:02Есть естественные точки синхронизации,
00:14:03где вам нужны линтинг и проверка типов
00:14:06и все прочее.
00:14:07Это происходит, когда агент считает, что он закончил. Только тогда.
00:14:10Недавно кое-что изменилось.
00:14:14Вот пример одной сессии OpenCode, где каждое сообщение
00:14:20становится отдельным JSON-файлом.
00:14:22Каждое гребаное сообщение — отдельный JSON на диске.
00:14:26Для меня это признак того, что архитектуре
00:14:29всего проекта не уделили достаточно внимания.
00:14:31И если я теряю доверие к базе,
00:14:33я больше не хочу пользоваться этим инструментом.
00:14:35Повторюсь, я считаю команду действительно талантливой.
00:14:37Думаю, они итерировались очень быстро
00:14:39и создали нечто супер-полезное для многих,
00:14:42это очевидно.
00:14:43Просто определенные решения, которые я бы не принял,
00:14:46заставили меня задуматься о создании своего решения.
00:14:50Затем был еще такой момент.
00:14:51OpenCode по умолчанию поставляется с сервером.
00:14:54То есть в основе архитектуры лежит сервер.
00:14:56А клиенты к нему подключаются.
00:14:57Терминальный интерфейс — лишь один из клиентов.
00:15:00Есть еще десктопный интерфейс.
00:15:01И я не знаю...
00:15:03Это обернулось уязвимостью в безопасности,
00:15:05удаленное выполнение кода было вшито по умолчанию.
00:15:09И это тоже... если вы так гордитесь своей
00:15:12серверной инфраструктурой или архитектурой,
00:15:15то я предполагаю, что вы взрослые инженеры,
00:15:18которые подумали и о безопасности тоже.
00:15:20Но, видимо, этого не произошло.
00:15:21И это оставалось открытым долгое время.
00:15:23Опять же, я никого не виню.
00:15:25Такое случается, если вы работаете
00:15:27в индустрии, которая несется на таких скоростях,
00:15:31которых мы раньше никогда не видели.
00:15:33Просто я не хочу пользоваться инструментом с такими проблемами.
00:15:36Таковы были мои наблюдения касательно существующих
00:15:42решений для кодинга.
00:15:42AMP и Droid могли бы стать тем, что я бы использовал.
00:15:45Но снова — нет контроля.
00:15:47В случае с AMP они даже решают, какие модели вам использовать.
00:15:50И это всегда одна модель для конкретного типа задач.
00:15:53А мне это не подходит.
00:15:55Что касается Droid, он кажется чуть более открытым.
00:15:58Но в то время, когда я его пробовал,
00:16:00он просто не—
00:16:02я не увидел в нем большого преимущества перед Cloud Code.
00:16:07Затем я заглянул в бенчмарки совсем по другой причине
00:16:10и наткнулся на Terminal Bench.
00:16:12Кто знает, что такое Terminal Bench?
00:16:15Окей, вкратце: это среда для оценки
00:16:20агентов или кодинга, в которой есть набор задач по использованию ПК
00:16:24и программированию—
00:16:24простите, я старый и устал, потому что у меня 4-летний ребенок.
00:16:31Там есть ряд задач по управлению компьютером и кодингу,
00:16:35которые агент или LLM внутри оболочки агента
00:16:39должны выполнить.
00:16:40Их там около 82 штук.
00:16:43И они очень разнообразны.
00:16:44От «исправь мои настройки окон» до «напиши мне
00:16:48симуляцию Монте-Карло» или что-то в этом роде.
00:16:51И у них есть таблица лидеров.
00:16:52В этой таблице вы видите комбинацию
00:16:54оболочки ИИ-агента и модели.
00:16:57И у них есть собственный агент под названием Terminus.
00:17:03И я считаю его гениальным, потому что это
00:17:06один из самых эффективных каркасов в бенчмарке.
00:17:09Мы увидим это чуть позже.
00:17:11Что именно он делает?
00:17:12Что ж, всё, что получает модель, — это сессия TMUX.
00:17:17И всё, что она может делать, — это отправлять нажатия клавиш
00:17:19и считывать обратно последовательности кодов VT.
00:17:23Так что это своего рода самый маленький, минимальный интерфейс,
00:17:27который модель может иметь для вашего компьютера.
00:17:31И это показывает лучшие результаты во всей таблице лидеров.
00:17:36Так что же это говорит нам о существующих каркасах кодинг-агентов?
00:17:39Нужны ли нам все эти функции, чтобы модели
00:17:41действительно работали эффективно?
00:17:43Для меня лично дело не только в том, что модель
00:17:48на самом деле хороша.
00:17:49Дело также во мне как пользователе, человеке,
00:17:51имеющем способ взаимодействия с моим агентом, с моделью.
00:17:54И Terminus — это, очевидно, не тот пользовательский или
00:17:58разработческий опыт, который я хочу.
00:18:00Но это говорит нам о том, что все эти функции, которые есть
00:18:03в каркасах для кодинга, возможно, не нужны,
00:18:08чтобы получать хорошие результаты от агентов.
00:18:10Никаких файловых инструментов, субагентов, веб-поиска, ничего.
00:18:13На основе всех этих выводов есть два тезиса.
00:18:16Мы находимся на стадии «экспериментируем и смотрим, что выйдет».
00:18:18И никто не имеет ни малейшего представления о том, как должен
00:18:21выглядеть идеальный кодинг-агент или идеальный каркас.
00:18:23Мы пробуем и минимализм, и полноценные «рои космических кораблей»,
00:18:27команды агентов, отсутствие контроля, полную автономию
00:18:30и всё остальное.
00:18:31Я думаю, что этот этап еще не завершен.
00:18:33Мы еще не ответили на вопрос, как это
00:18:35должно выглядеть в идеале и что станет отраслевым
00:18:37стандартом.
00:18:38И второе — нам нужны лучшие способы
00:18:40экспериментировать с кодинг-агентами.
00:18:42То есть нам нужно, чтобы они могли самомодифицироваться
00:18:47и становиться гибкими.
00:18:48Чтобы мы могли быстро проверять идеи
00:18:50и смотреть, можно ли сделать это чем-то вроде индустриального
00:18:53стандарта, новым рабочим процессом, который мы все примем.
00:18:58Итак, основная идея была —
00:18:59и она очень проста, это не высшая математика —
00:19:01отсечь всё лишнее и создать минимальное расширяемое ядро.
00:19:05Есть некоторые удобства.
00:19:06Это не чистый лист.
00:19:09Это Py.
00:19:10И общий девиз: адаптируйте своего кодинг-агента
00:19:13под свои нужды, а не наоборот.
00:19:16Он поставляется с четырьмя пакетами: пакетом ИИ,
00:19:21который является просто простой абстракцией над провайдерами,
00:19:24использующими разные протоколы передачи.
00:19:27Так что очень легко общаться со всеми провайдерами
00:19:29и переключаться между ними в одном контексте или сессии.
00:19:34Ядро агента, которое является обобщенным циклом
00:19:36агента с вызовами инструментов, верификацией
00:19:38и так далее.
00:19:39А также стриминг, терминальный интерфейс,
00:19:42в котором около 600 строк кода, и он на удивление
00:19:47хорошо работает, хотя и не был написан ИИ-«кленкером».
00:19:51И сам кодинг-агент, который является одновременно и SDK,
00:19:54который вы можете использовать в фоновом режиме,
00:19:57или полноценным кодинг-агентом с терминальным интерфейсом.
00:20:02Это весь системный промпт.
00:20:05В нем нет ничего лишнего по сравнению с системными
00:20:08промптами других кодинг-агентов.
00:20:10Это в токенах.
00:20:13Оказывается, топовые модели обучены с подкреплением знать,
00:20:16что такое кодинг-агент.
00:20:18Так зачем вы продолжаете твердить им, что они кодинг-агенты,
00:20:21и объяснять, как им выполнять задачи по кодингу?
00:20:27YOLO по умолчанию, почему так?
00:20:30У большинства каркасов сейчас есть два режима.
00:20:33Либо агент может делать всё, что захочет,
00:20:36либо он должен спрашивать вас: «Вы действительно
00:20:40хотите удалить этот файл?»,
00:20:41«Вы точно хотите вывести список файлов в этой директории?»
00:20:44и так далее.
00:20:44Здесь есть разные оттенки серого.
00:20:47Но в конечном итоге всё сводится к тому, что пользователь
00:20:49должен одобрять каждое действие агента.
00:20:52И тогда мы в безопасности.
00:20:53Я считаю, это неправильно, потому что это ведет к усталости.
00:20:55И люди либо отключат это вовсе (режим YOLO),
00:20:58либо будут просто жать Enter, ничего не читая.
00:21:01Так что я не думаю, что это решение.
00:21:02Контейнеризация — тоже не выход,
00:21:04если вы беспокоитесь об утечке данных
00:21:06и инъекциях в промпты.
00:21:07Но я думаю, это единственное, что...
00:21:10Я считаю это лучшей основой по сравнению с барьерами
00:21:14вроде подтверждений или диалогов.
00:21:17Здесь всего четыре инструмента: чтение, запись,
00:21:19редактирование файла и Bash.
00:21:21Bash — это всё, что вам нужно.
00:21:22Чего там нет?
00:21:23Нет MCP, субагентов, планирования, фонового
00:21:25Bash, встроенных списков дел.
00:21:26Вот что вы можете использовать вместо этого.
00:21:28Для MCP используйте CLI-инструменты плюс навыки
00:21:30или создайте расширение, которое мы скоро увидим.
00:21:34Почему нет субагентов?
00:21:35Потому что они не поддаются наблюдению.
00:21:36Вместо этого используйте tmux и запустите агента снова.
00:21:41У вас будет полный контроль над выводом и вводом агента,
00:21:44и вы сможете видеть всё, что происходит в субагенте.
00:21:48Интересно, что режим командной работы
00:21:50в code spawn теперь делает практически то же самое.
00:21:55Нет режима планирования — просто создайте файл plan.md.
00:21:57У вас будет сохраненный артефакт вместо
00:21:59какого-то корявого интерфейса, который не особо
00:22:02вписывается в окно вашего терминала.
00:22:04И вы сможете использовать его в нескольких сессиях.
00:22:07Нет фонового Bash — он не нужен, у нас есть tmux.
00:22:09Это одно и то же.
00:22:11Нет встроенных списков дел — заведите todo.md.
00:22:13То же самое.
00:22:14Или создайте всё это сами так, как вам нравится.
00:22:17И именно это позволяет Py, будучи супер-расширяемым.
00:22:21Вы можете создавать кастомные инструменты.
00:22:22Вы можете давать LLM инструменты, которые сами определите.
00:22:26Я думаю, ни один другой каркас кодинг-агентов
00:22:28сейчас этого не предлагает, если только не форкнуть open code.
00:22:31Здесь этого делать не нужно.
00:22:32Вы просто пишете простой TypeScript-файл,
00:22:34и он загружается автоматически.
00:22:37Вы также можете написать кастомный интерфейс.
00:22:39Навыки — это, очевидно, шаблоны промптов и темы.
00:22:43Всё это можно упаковать, выложить в NPM или Git
00:22:46и установить одной командой, что очень удобно.
00:22:49И всё обновляется «на лету» (hot reload).
00:22:51Я разрабатывал собственные расширения,
00:22:53специфичные для проекта или задачи, прямо внутри проекта в Py.
00:22:59И как только агент модифицирует расширение, я просто перезагружаю его.
00:23:05И он немедленно обновляет весь запущенный код,
00:23:10что очень круто.
00:23:11На практике это означает, что вы можете делать свою очистку контекста.
00:23:14Я думаю, это одна из вещей, с которыми людям стоит
00:23:16экспериментировать больше, так как текущие реализации
00:23:19сжатия контекста пока не очень хороши.
00:23:21Шлюзы разрешений — их легко реализовать
00:23:23в 50 строках кода и покрыть то,
00:23:24что делают другие каркасы, если вам это нужно.
00:23:27Кастомные провайдеры — регистрируйте прокси самохостинг-моделей.
00:23:31Мне всё равно.
00:23:32Вам не нужно, чтобы я делал это за вас.
00:23:33Вы можете сделать это сами, или ваш ИИ-помощник поможет.
00:23:37Или переопределите любой встроенный инструмент.
00:23:38Измените работу функций read, write, edit и bash.
00:23:41Без проблем.
00:23:42У меня есть версия этих инструментов,
00:23:43которая работает через SSH на удаленной машине.
00:23:47У меня это заняло пять минут, но оно работает.
00:23:51И у вас есть полный доступ к TUI, так что вы можете
00:23:54писать совершенно кастомные интерфейсы в кодинг-агенте.
00:23:58Кстати, Cloud Code был выпущен, и кому-то потребовалось
00:24:02всего пять минут, чтобы повторить его в Py с большими функциями.
00:24:05PyMessenger — я понятия не имею, что он делает,
00:24:07но, похоже, это чат-комната для нескольких агентов Py,
00:24:10которые общаются между собой в кастомном интерфейсе.
00:24:13Мы можем посмотреть, что они делают, и да, это просто работает.
00:24:18Или PyMess — если вам скучно, просто поиграйте в игру,
00:24:23пока агент работает, верно?
00:24:24Вы можете это сделать.
00:24:25Или PyAnnotate — откройте веб-сайт,
00:24:28над которым сейчас работаете, делайте пометки прямо во фронтенде
00:24:31и давайте обратную связь агенту прямо в контексте.
00:24:35Передайте это обратно в контекст, и пусть он всё исправит.
00:24:39Или то, что использую я — File Switch It.
00:24:42Я не хочу переключаться в IDE или редактор.
00:24:43Я просто хочу быстро взглянуть на измененный файл.
00:24:46Всё это — расширения.
00:24:48Ничего из этого не встроено, и у людей уходит
00:24:50от пары минут до одного вечера,
00:24:52чтобы собрать всё это так, как им хочется.
00:24:56PyWavic — тоже не знаю, что это.
00:25:00Py также поставляется с древовидной структурой.
00:25:01Не буду сейчас это объяснять.
00:25:03Просто загляните на py.dev.
00:25:04Ваша сессия — это дерево, а не линейный список чатов.
00:25:07Так что вы можете имитировать субагентов:
00:25:09прочитать все файлы в директории,
00:25:11резюмировать их, вернуться в корень бесебы,
00:25:14взять это резюме с собой и делать основную работу.
00:25:19Ничего не вбрасывается за вашей спиной.
00:25:22Агенты, навыки, полное отслеживание затрат.
00:25:24Многие каркасы этого не делают.
00:25:26Open code делает это не лучшим образом.
00:25:29Экспорт в HTML, формат JSON, безголовый поток JSON и прочее.
00:25:33А это вообще работает?
00:25:34Ну вот, terminal bench.
00:25:35Позвольте мне увеличить масштаб.
00:25:36Не могу.
00:25:37Это потрясающе.
00:25:38Вот Py идет сразу за Terminus 2, используя Claude Opus 4.5.
00:25:45Это было в октябре, когда в Py даже не было сжатия контекста.
00:25:49Время демо, пропускаем это. Выступление против «кленкеров»,
00:25:51потому что они ломают опенсорс.
00:25:54Если вы связаны с проектом этого парня,
00:25:56то к вам в репозиторий придут сотни людей из OpenClaw
00:26:02и завалят вас мусором от ИИ-ботов.
00:26:06Так что мне пришлось придумать пару мер.
00:26:09Я изобрел «OSS vacation» (отпуск от опенсорса).
00:26:11Я просто закрыл все тикеты и PR на пару недель
00:26:14и работал над вещами самостоятельно.
00:26:16Всё важное в любом случае сообщат позже
00:26:20или напишут в Discord.
00:26:21Затем я также внедрил кастомную схему доступа,
00:26:26где у меня есть markdown-файл в репозитории.
00:26:28Если кто-то открывает PR, а его имени
00:26:32нет в этом markdown-файле, PR автоматически закрывается.
00:26:34Мне всё равно.
00:26:35Сначала представьтесь человеческим голосом в тикете.
00:26:39Напишите тикет, который не выглядит как спам,
00:26:42потому что всё остальное, скорее всего, написано ботом.
00:26:45И как только вы это сделаете, я с радостью вас одобрю.
00:26:47Вы попадете в этот файл и сможете отправлять PR
00:26:50в репозиторий.
00:26:51Всё, о чем я прошу, — это подтверждение личности человека.
00:26:53И Митчелл из Ghosty взял это и создал
00:26:57проект под названием Vouch, который легче применить
00:27:00к вашим собственным открытым репозиториям.
00:27:02И это был Py.
00:27:03Идите и пробуйте его.
00:27:05На этом у меня всё.
00:27:06[АПЛОДИСМЕНТЫ]
00:27:07[ИГРАЕТ МУЗЫКА]