Andrej Karpathy: От Vibe Coding к Agentic Engineering (часть 3/3) (
источник):
Ведущий: И когда агенты делают всё больше — какой человеческий навык становится не менее, а более ценным?
Андрей Карпатый: Хороший вопрос. Сейчас ответ такой: агенты — это вроде сущностей-стажёров. Это поразительно. Ты, по сути, остаёшься главным по эстетике, суждению, вкусу и немного по надзору.
Один из моих любимых примеров странности агентов — для MenuGen ты регистрируешься через Google, а кредиты покупаешь через Stripe, и у обоих есть email. Мой агент при покупке кредитов пытался привязать их к Google-email через email из Stripe. Не было устойчивого user ID — он пытался сматчить email-адреса. Но ты можешь использовать разные email для Stripe и Google, и средства не свяжутся. Вот такие ошибки они до сих пор делают. Зачем вообще использовать email для кросс-корреляции средств? Они могут быть произвольными, можно использовать разные email и т.д. Это очень странная вещь.
Поэтому человек должен отвечать за этот конкретный план. Я даже не очень люблю plan mode. То есть, конечно, он полезен. Но есть что-то более общее: ты должен с агентом проектировать очень детальную спеку, по сути документацию, и потом давать агенту её реализовывать. Ты отвечаешь за надзор и за верхнеуровневые категории. Агенты делают много под капотом, и ты не паришься о деталях.
Например, по поводу массивов и тензоров в нейросетях. Между PyTorch, NumPy, Pandas и т.д. куча мелких различий в API. Я уже забыл, keepdims или keepdim, dim или axis, reshape или permute или transpose. Я больше этого не помню — потому что и не надо. Эти детали обрабатывает «стажёр» с отличной памятью.
Но ты по-прежнему должен знать, что есть базовый тензор, есть view поверх него, и можно манипулировать view одного и того же storage, или иметь разный storage, что менее эффективно. Так что фундаментальное понимание никуда не делось — чтобы не копировать память без нужды и т.д.
Но детали API ушли. Ты отвечаешь за вкус, инженерию, дизайн, осмысленность, за то, чтобы запрашивать правильное — например, что вот тут должны быть уникальные user ID, к которым всё привязывается. То есть ты делаешь часть дизайна и разработки, а инженеры заполняют пробелы. Сейчас мы примерно там. И, думаю, это сейчас все видят.
Ведущий: Есть ли шанс, что вкус и суждение со временем будут значить меньше — или потолок просто будет расти?
Андрей Карпатый: Хороший вопрос. Я надеюсь, что улучшится. Сейчас не улучшается, наверное, потому что это не часть RL. Нет ни эстетического ревордa, ни косвенной награды, либо она недостаточно хороша.
Когда смотришь на код, иногда у меня лёгкий инфаркт — это не всегда суперкрасивый код. Часто раздутый, много копипасты, неуклюжих абстракций, всё хрупкое. Работает, но реально мерзкое. Надеюсь, в будущих моделях это улучшится.
Хороший пример — мой проект microGPT, где я пытался максимально упростить тренировку LLM. Модели это ненавидят. Не могут. Я раз за разом просил LLM упростить ещё, упростить ещё. Не выходит. Чувствуешь, что ты вне RL-контуров. Очевидно, это «выдирание зубов», а не скорость света. Так что да, человек пока остаётся главным. Но, думаю, ничего фундаментально это не блокирует. Просто лабы пока не сделали.
Ведущий: Давай вернусь к зазубренному интеллекту. Ты писал об этом мощную заметку — про «животных против призраков». Идея в том, что мы строим не животных, мы призываем призраков. Это зазубренные формы интеллекта, сформированные данными и функциями вознаграждения, а не внутренней мотивацией, любопытством, эмпауэрментом — тем, что появилось у животных через эволюцию. Почему эта рамка важна, и что она реально меняет в том, как мы их строим, деплоим, оцениваем и вообще доверяем им?
Андрей Карпатый: Да. Я писал про это, потому что пытаюсь уложить в голове, что это вообще такое. Если у тебя хорошая модель того, чем они являются и не являются, ты компетентнее их используешь.
Я не уверен, что у этой рамки есть какая-то «реальная сила» — может, это немного философствование. Но я думаю, надо просто принять, что это не животные интеллекты. Если на них наорать — они не станут работать лучше или хуже, никакого эффекта. Это всё статистические симуляционные контуры, где субстрат — претрейн. Это статистика, а сверху прикручивается RL — он как бы добавляет «отростки».
Может, это просто mindset, с которым я подхожу: что вероятнее всего сработает или не сработает, как это модифицировать. Но у меня нет «вот пять очевидных шагов, как улучшить твою систему». Это скорее про подозрительное отношение и постепенную выработку понимания. Вот с этого начинается.
Ведущий: Окей, ты глубоко погружён в работу с агентами, которые не просто чатятся. У них реальные права, локальный контекст, они реально действуют от твоего имени. Как выглядит мир, когда мы все начнём в нём жить?
Андрей Карпатый: Думаю, многие здесь воодушевлены тем, как выглядит нативно-агентное окружение, и тем, что всё придётся переписывать. Сейчас всё фундаментально написано для людей и должно быть переоформлено. Когда я использую разные фреймворки и библиотеки, у них всё ещё доки, написанные для людей.
Это моё любимое раздражение. Зачем вы продолжаете говорить мне, что делать? Я не хочу ничего делать. Какой кусок текста мне скопировать в агента? Каждый раз, когда мне говорят «зайди по этому URL» — ну блин. Поэтому, думаю, все воодушевлены тем, как декомпозировать рабочие нагрузки на сенсоры над миром и актуаторы над миром. Как сделать всё agent-native. Сначала описать агентам, потом много автоматизации вокруг. Структуры данных, легко читаемые LLM-ам.
Так что я надеюсь, что появится много agent-first инфраструктуры. И вот для MenuGen — когда я писал блог-пост про MenuGen, основная проблема была не в коде, а в деплое в Vercel: мне приходилось работать с кучей разных сервисов, всё связывать, лазить по их настройкам и меню, конфигурить DNS — это было очень раздражающе.
Хороший пример того, чего бы я хотел: дать LLM промпт «собери MenuGen», и ничего самому не трогать — оно задеплоено в интернете. Это был бы хороший тест на то, насколько наша инфраструктура становится agent-native. И в конечном счёте мы движемся к миру, где у людей и организаций есть агенты-представители. Мой агент договорится с твоим агентом о деталях встречи и т.п. Думаю, мы примерно туда и идём. И, думаю, все здесь этому рады.
Ведущий: Мне очень нравится визуальная аналогия с сенсорами и актуаторами. Я об этом не думал — суперинтересно. Окей, думаю, мы должны закончить вопросом про образование, потому что ты, вероятно, один из лучших в мире в умении делать сложные технические концепции простыми и глубоко продумывать, как вокруг этого выстраивать обучение. Что по-прежнему стоит изучать глубоко, когда интеллект становится дешёвым и мы переходим в следующую эру ИИ?
Андрей Карпатый: Да. Недавно был твит, который меня поразил — я думаю о нём через день: «ты можешь аутсорсить мышление, но не можешь аутсорсить понимание». Очень хорошо сказано.
Потому что я по-прежнему часть системы. Информация всё ещё должна как-то попадать ко мне в мозг, и я чувствую, что становлюсь бутылочным горлышком — даже в плане «что мы вообще пытаемся построить, зачем это стоит делать, как направлять моих агентов». Так что в конечном счёте кто-то должен направлять мышление и обработку. И это фундаментально упирается в понимание.
И поэтому я был так воодушевлён LLM-базами знаний — это способ обрабатывать информацию. Каждый раз, когда я вижу новую проекцию данных, я получаю инсайт. Это просто много промптов для генерации синтетических данных поверх какого-то фиксированного набора.
Мне нравится: каждый раз, когда я читаю статью, у меня вики достраивается из этих статей. И я люблю задавать вопросы. В конечном счёте это инструменты для усиления понимания. И понимание остаётся бутылочным горлышком — потому что нельзя быть хорошим режиссёром без него. LLM сами по себе не блестят пониманием — оно по-прежнему уникально на твоей стороне. Так что инструменты для этого мне кажутся невероятно интересными.
Ведущий: Жду с нетерпением, чтобы вернуться через пару лет и проверить, не автоматизировали ли нас полностью, и не взяли ли они на себя и понимание тоже. Андрей, огромное спасибо. Очень ценю.