newsmode
search
Меню
arrow_back Назад

The Age of Async Agents — Cognition's Walden Yan & OpenInspect's Cole Murray

auto_awesomeКраткое саммари

Подкаст Latent Space, в котором ведущий swyx беседует с Walden Yan — сооснователем и CPO компании Cognition (создатель Devin), автором термина «context engineering» — и Cole Murray, создателем опенсорсного проекта OpenInspect для фоновых агентов. Главная тема — переход к «эпохе асинхронных агентов»: модели Opus 4.5 и GPT 5.2 в декабре 2025 года достигли уровня, при котором путь «от спецификации к готовому pull request» стал практичным. У Cognition доля коммитов, сделанных Devin, выросла с 16% в январе до 80% в марте, а число смерженных PR увеличилось в 7 раз при росте инженерного штата всего на ~10%. Обсуждаются архитектура фоновых агентов (harness «в коробке» против «вне коробки», отделение «мозга» от машины ради безопасности), настройка репозиториев, полноценные VM, снапшоты, тестирование с видеозаписями, интеграции со Slack и GitHub, проблемы памяти и MCP, а также мульти-агентные системы. Cognition недавно объявила о раунде Series D на $1 млрд, а ключевой риск бесконтрольного vibe-кодинга формулируется так: кодовая база деградирует до уровня вашего худшего инженера.

Эпоха асинхронных агентов — Walden Yan из Cognition и Cole Murray из OpenInspect

Новый сайт AIEWF уже запущен! Приём заявок (CFP) закрывается через 2 дня, а в эти выходные мы проведём первую New Engineer Orientation — бронируйте билеты как можно скорее, они точно будут раскуплены. Пройдите опрос AI Engineering Survey и получите кредиты на сумму >$2k и бесплатные билеты на AIE WF!


Одно из центральных противоречий в индустрии агентов состоит в том, что хотя строятся крупные «декакорн»-лаборатории агентов вроде Sierra, Decagon, Notion и Cursor, одновременно верно и то, что собирать агентов своими руками ещё никогда не было так просто — благодаря множеству агентских фреймворков, таких как LangGraph, Pydantic и Flue, а также управляемым агентам от Anthropic, Gemini и Amazon. Возникла целая волна компаний, строящих собственных фоновых агентов — от Shopify до Stripe, от Paradigm до Razorpay, и даже друзья Cognition из Ramp построили собственного кодинг-агента вместе с другими друзьями из Modal.

Казалось бы, Cognition могла бы чувствовать некоторую угрозу, но это не так — даже после всего этого их раунд Series D на $1 млрд, который они только что анонсировали, был многократно переподписан:


Walden Yan, автор термина context engineering и Chief Product Officer/сооснователь Cognition, пригласил Cole Murray из OpenInspect, чтобы поговорить о том, почему the Devin is in the Details.

Полный разговор уже вышел в подкасте сегодня:

Оглядываясь назад, асинхронные агенты были самой «AGI-pilled» ставкой, которую можно было сделать в 2024 году: модели тогда ещё не были достаточно хороши для vibe-кодинга, люди недостаточно доверяли ИИ, чтобы отпустить поводья, и никто (включая раннюю Cognition) не был уверен в форм-факторах.

Теперь это очевидно:

Первая волна инструментов ИИ для кодинга сделала разработчика быстрее, но он по-прежнему сильно оставался в цикле. Tab-автодополнение в Copilot и Cursor — яркие тому примеры. Однако рабочий процесс всё ещё был сильно завязан на локальный workflow разработчика и упирался в него: разработчик в IDE, наблюдающий за моделью, принимающий или отклоняющий изменения и отправляющий код по одному взаимодействию за раз. Второй волной стали локальные агенты: Claude Code, Windsurf, панель агентов в Cursor — сначала один, а потом всё больше терминалов, работающих одновременно. Нынешняя эпоха асинхронных агентов указывает на иное будущее, сосредоточенное скорее на оркестрации агентов, которая управляет разработкой от начала до конца.

Как выразился Michael Truell из Cursor в статье The third era of AI software development:

Cursor больше не посвящён в первую очередь написанию кода. Он помогает разработчикам построить фабрику, которая создаёт их программное обеспечение. Эта фабрика состоит из флотилий агентов, с которыми они взаимодействуют как с коллегами: задают начальное направление, снабжают инструментами для самостоятельной работы и проверяют их результаты.

Агент не должен находиться исключительно внутри потока работы разработчика. Он должен быть настроен так, чтобы работать в фоне: вы можете дать ему задачу, репозиторий, машину, шелл, браузер, тесты, память и циклы ревью — чтобы он шёл и делал работу где-то ещё.

Менее чем за год настроение сместилось от избегания мульти-агентных систем:


к предложению подходов, которые действительно работают:


От введения термина «context engineering» до построения инфраструктуры, стоящей за 7-кратным ростом числа PR у Devin и скачком с 16% до 80% коммитов по репозиториям Cognition — Walden Yan наблюдал сдвиг в сторону фоновых агентов из первого ряда. В этом выпуске сооснователь и CPO Cognition Walden Yan присоединяется к swyx вместе с Cole Murray, создателем OpenInspect, чтобы разобраться, почему все строят собственного Devin, что изменилось после модельного перелома в декабре 2025 года и почему путь «от спецификации к pull request» сейчас становится реальным production-процессом.

Мы подробно разбираем архитектуру фоновых агентов: harness «в коробке» против «вне коробки», почему Devin отделяет «мозг» от машины, почему настройка репозитория по-прежнему остаётся одной из самых сложных задач, почему Docker не всегда достаточен, и как полноценные VM, снапшоты, секреты с ограниченным скоупом, GitHub-боты, интеграции со Slack и тестирование на основе видео складываются в единое целое. Walden и Cole также углубляются в память, ограничения MCP, мульти-агентную оркестрацию, ИИ-ревью кода, авто-триаж для SRE, PM-ов, отправляющих код прямо из Slack, Windsurf 2.0, гибридные системы frontier/sub-frontier и реальный режим отказа бесконтрольного vibe-кодинга: ваша кодовая база деградирует до уровня вашего худшего инженера.

И поскольку агенты поедают software… а software поедает мир… вы можете сами сделать вывод о том, что будет дальше:

Мы обсуждаем:

Почему инженерный мир пробуждается к фоновым агентам и облачным агентам. Модельный перелом декабря 2025 года, который сделал workflow «от спецификации к PR» практичным. 7-кратный рост смерженных PR у Devin и подъём с 16% до 80% коммитов. Почему Cole построил OpenInspect как опенсорсную систему фоновых агентов. Экономика агентских продуктов по $20 за место и почему монетизация даётся непросто. Что на самом деле продаёт Cognition помимо Devin: инфраструктуру, онбординг, интеграции и внедрение. Harness «в коробке» против «вне коробки» и почему архитектура имеет значение. Почему Devin отделяет мозг от машины ради безопасности и прав доступа. Настройка репозитория, секреты с ограниченным скоупом, Docker Compose и готовые для агентов dev-окружения. Почему полноценные VM важны, когда агентам нужно запускать реальные приложения и тестировать их. Android, macOS, Windows, вложенная виртуализация и работа агентов на конкретных машинах. Почему тестирование намного сложнее, чем «computer use». Скриншоты, видео-верификация и момент мержа «я знаю, что это работает». UX GitHub, Devin Review, ИИ-ревьюеры и агенты, отвечающие на комментарии к PR. Почему одного MCP недостаточно для полноценных интеграций со Slack и enterprise-системами. Память, Knowledge, навыки (skills), Claude.md и почему retrieval по-прежнему не решён. Автогенерируемые воспоминания Devin и проблема очистки памяти. Всегда включённые агенты как постоянные PM-ы для задач, тикетов и продуктовых областей. Сабагенты, мета-Devin-менеджмент и что на самом деле добавляют мульти-агентные системы. Почему чистый vibe-кодинг с авто-мержем ломается примерно через две недели. ИИ-«code smells», правила линтинга, reward hacking и Semgrep для кода, написанного агентами. GitAI, встроенный в код контекст и сохранение «почему» за изменениями кода. Локальное тестирование, mock-серверы, старые кодовые базы и подготовка компаний к агентам. Windsurf 2.0 и передача задач между локальными foreground-агентами и облачными фоновыми агентами. Авто-триаж для SRE, процессы поддержки и агенты как первые реагирующие. PM-ы, маркетинг и неинженеры, создающие pull request-ы из Slack. Бюджеты на ИИ-агентов, расходы $1k–$5k на инженера и гибридные системы frontier/sub-frontier. Подъём автономных кодинг-фабрик и кого нанимает Cognition.


Walden Yan

Cole Murray


Тайм-коды

00:00:00 Введение00:00:43 Почему все строят собственного Devin00:01:57 Разгон Devin в 2025 году: 7-кратный рост PR и 80% коммитов00:03:49 OpenInspect и подъём опенсорсных фоновых агентов00:07:59 Что на самом деле продаёт Cognition помимо Devin00:09:56 Архитектура фонового агента: harness «в коробке» против «вне коробки»00:12:08 Отделение мозга от машины00:14:07 Настройка репозитория, секреты, Docker и полноценные VM00:19:13 Почему тестирование сложнее, чем computer use00:22:40 Видео-верификация и момент мержа «я знаю, что это работает»00:23:19 UX GitHub, Devin Review и ИИ-ревью кода00:25:42 MCP, Slack и enterprise-интеграции агентов00:28:59 Память, Knowledge и всегда включённые агенты00:36:16 Сабагенты, мульти-агентная оркестрация и мета-Devin00:43:55 Vibe-кодинг, авто-мерж и деградация кодовой базы00:48:38 Инфраструктура агентов, VPC, облачные провайдеры и быстрое восстановление VM00:52:25 ИИ-«code smells», reward hacking и системы ревью кода00:56:10 Подготовка кодовых баз к агентам00:58:30 Windsurf 2.0 и передача задач от локального к облачному агенту01:01:15 Авто-триаж для SRE, PM-ы, отправляющие код, и сценарии использования агентов01:04:32 Бюджеты на агентов, гибридные модели и автономные кодинг-фабрики01:06:51 Найм в Cognition и консалтинг OpenInspect01:07:45 Заключение


Транскрипт

Введение: Walden Yan, Cole Murray и context engineering

Swyx [00:00:00]: Итак, мы в студии с Walden Yan, сооснователем Cognition, CPO.

Walden [00:00:08]: Рад быть здесь.

Swyx [00:00:09]: Крутая должность. И автор термина context engineering.

Walden [00:00:15]: Хотя, думаю, многие использовали эти термины по-разному и раньше, но я обнаружил, что людям — и внутри компании, и снаружи — понравился апгрейд от prompt engineering или «оборачивания модели» к более продуманному способу строить агентов.

Swyx [00:00:33]: Для тех, кто не в курсе: у меня на экране пост Don’t Build Multi-Agents, который стоит прочитать и к которому мы, возможно, ещё вернёмся, и Cole Murray, создатель OpenInspect.

Cole [00:00:43]: Здорово быть здесь.

Swyx [00:00:43]: Так давайте поговорим об этом. Все строят собственных Devin-ов. Что происходит?

Декабрьский сдвиг: от ведения модели за руку к автономным PR

Cole [00:00:51]: Думаю, инженерный мир пробуждается к этой идее фоновых агентов, облачных агентов — как ни называй. И мне кажется, мы увидели сдвиг примерно в декабре 2025 года, когда модели Opus 4.5 и GPT 5.2 достигли уровня возможностей, на котором мы ушли от ведения модели за руку к тому, чтобы более-менее автономно ею управлять. Я имею в виду, что мы могли практически перейти от спецификации к готовому pull request — при условии, что спецификация была достаточно хороша, — с очень малым трением. И одна эта парадигма, думаю, сильно изменила то, как мы взаимодействуем с агентами, и открыла мир, в котором фоновые агенты стали гораздо практичнее.

Swyx [00:01:41]: Думаю, для Cole — все ощутили это в декабре, но у меня такое чувство, что был просто нарастающий разгон, верно? Был момент, кажется, с Sonnet 3.7, когда вы переписали Devin за одну ночь или что-то в этом роде. Так опиши 2025 год — каким он ощущался с твоей стороны.

Walden [00:02:01]: Оглядываясь назад, мы всегда считали, что идёт разгон, но даже сейчас, за последние три-четыре месяца, разгон стал ещё быстрее. Так что почти забавно говорить о том, каким большим скачком был Sonnet 3.7 — и, честно говоря, во многом это было вырезанием частей Devin, которые с этим скачком интеллекта стали уже не нужны. Но я также думаю, что многие недавние скачки — взгляните на модели вроде Opus и последние GPT — достигают уровней автономности, при которых люди реально обнаруживают, что могут просто отпустить поводья. И те, кто раньше спорил: «Нужно ли мне быть в гуще событий с моделью в IDE? Могу ли я полностью унести её в облако?» — теперь это более серьёзный разговор, и мы видим это во всех наших графиках роста. Внутри есть забавный график: число наших смерженных PR выросло в 7 раз с тех пор, как… забыл, как это называлось.

Swyx [00:02:57]: Думаю, Dev, кажется, твитнул это. Да.

Walden [00:03:01]: оно выросло примерно в 7 раз за последние, кажется, два месяца, три месяца, что-то такое. А потом смотришь на рост нашего инженерного штата — он вырос на 10% или около того.

Swyx [00:03:11]: Мы, мы боялись это публиковать. Так вот, это процент коммитов Devin по всем репозиториям Devin — было 16% в январе, а теперь 80% в марте.

Walden [00:03:25]: Прямо сейчас это большой сдвиг. И логично, что многие сейчас думают о том, чтобы купить Devin, но, может быть, также попробовать построить собственного. И мне очень весело строить Devin, так что я понимаю, почему другие тоже хотят строить собственных облачных агентов. Matt, ну, может, стоит услышать — что изначально вдохновило тебя попытаться построить OpenInspect?

OpenInspect: Ramp, облачные агенты и опенсорс

Cole [00:03:49]: OpenInspect появился в основном из наблюдений за моими клиентами — за тем, как они использовали инструменты вроде Claude, OpenAI’s Codex на тот момент, и за тем трением, с которым они сталкивались. В основном Claude использовался через Slack, и большой проблемой было то, что запускаемые сессии были привязаны к тому, кто вызвал её через Slack. И вот, если сессию запускал PM, а потом он шёл передавать контекст инженерам, инженеры не видели сессию. И это само по себе было непреодолимым препятствием, потому что PM говорит: «Эй, инженеры, можете подключиться?» — но подключаться-то не к чему, разве что они скопируют-вставят единственный пришедший ответ. И вот, видя эти проблемы, я построил похожую архитектуру у себя — просто чтобы экспериментировать, пробовать разные идеи, поскольку этот тренд ухода с localhost начинал набирать силу. И когда Ramp опубликовала свой пост в блоге, у меня уже было много готовых кусочков для этого, и я просто подумал, что будет забавно посмотреть, что Claude сможет сделать чисто на основе этого поста. И на моём X-аккаунте есть тред, где я в прямом эфире твитил, проходя через это

Cole [00:05:14]: сравнивая GPT и Claude, пока оба проходили через это.

Swyx [00:05:17]: В треде про анонс или где-то ещё?

Cole [00:05:19]: прямо после того, как его опубликовали. Можем добавить ссылку в show notes. Да, помогло то, что я уже знал, как верифицировать систему. Я знал, что искать. Думаю, Ramp проделали отличную работу, по-настоящему наглядно показав технические аспекты того, как что-то построить. Это было гораздо больше, чем просто «Эй, мы построили отличную систему». Это было «И вот как ты тоже можешь это построить». И мне это очень откликнулось — как раз из-за проблем, которые я уже видел; и, оглядываясь вокруг, я не видел в опенсорс-сообществе ничего, что соответствовало бы такому типу системы. Думаю, есть много решений, которые работают на localhost, вроде Superset, Conductor и многих других. Но ничего, что действительно работало бы в облаке. И вот я это построил и подумал, что интересно будет просто выложить это в опенсорс и дать любому фундамент, на котором можно микшировать и комбинировать поверх.

Бизнес фоновых агентов: опенсорс против Devin

Swyx [00:06:16]: То есть буквально сразу после запуска Devin появился OpenDevin, который превратился в All Hands. Не знаю, пробовал ли ты его, или…

Walden [00:06:22]: Я как раз хотел сказать: одна из вещей, которая меня очень заинтересовала в OpenInspect, — что ты не попытался превратить его во что-то, что монетизируешь. Многие из этих опенсорс-проектов потом идут и реально пытаются поднять ра…

Swyx [00:06:36]: Вот почему нет OpenDevin. Да.

Walden [00:06:38]: да, и как ты к этому подошёл? Мне это показалось очень интересным.

Cole [00:06:44]: Я подумал — и судя по тому, что я видел у своих клиентов, — что наличие системы фоновых агентов станет критической инфраструктурой внутри их компании. И поэтому я хотел выложить её в опенсорс, чтобы они могли форкнуть её и встроить любую кастомизацию, какую захотят. Но по поводу твоего вопроса — меня всё время спрашивают: «О, ты собираешься поднимать раунд? Превратишь это в сервис?»

Walden [00:07:08]: Уверен, тебе делали предложения.

Cole [00:07:09]: но в основном я не хочу этого делать по нескольким причинам. Во-первых, я не хочу конкурировать за $20 с места. Думаю, это просто очень трудный бизнес. Думаю, основные его части очень легко скопировать. Опять же, я построил это довольно быстро. И поскольку ты не владеешь, скажем так, всем стеком, монетизировать сложно. Деньги делаются на уровне песочницы — Daytona, E2b и многие другие игроки. Деньги делаются на уровне модели. А ты сидишь в этой странной серой зоне посередине: что ты вообще продаёшь? Ты продаёшь, наверное, инфраструктуру. Ты продаёшь, может быть, интеграции.

Swyx [00:07:55]: давай спросим у человека. Что ты — что ты продаёшь?

Walden [00:07:59]: Ну, тут на практике несколько слоёв, и забавно, что ты упомянул инфраструктуру, потому что когда мы начали строить Devin, нам тоже пришлось разбираться, как сделать инфраструктуру, потому что,

Swyx [00:08:10]: Вам пришлось строить это за два года до всех остальных, да?

Swyx [00:08:15]: Включая модельную сторону.

Walden [00:08:17]: Это было не… не очень отполировано в начале, когда мы просто построили это на голых VM от облачных провайдеров вроде EC2; время загрузки было таким медленным, кажется. И особенно тогда — выключение машин, их сохранение, а потом возможность снова их поднять, когда хочешь, чтобы Devin снова проснулся позже. Машина просто «остывала» минут на 10, потому что эти системы столько и занимали. Они не были построены под такое многократное гашение и поднятие. И вот нам пришлось всё это сделать. И в результате теперь одна из вещей, которую мы предлагаем, когда продаём Devin людям, — вам не нужно беспокоиться обо всей вычислительной стороне. Мы заставим это работать. Заставим работать в вашем облаке, если захотите. Но помимо продукта — а к агентам и тюнингу части про интеллект я хочу вернуться позже, — думаю, большая часть того, что мы делаем в Cognition, состоит в том, чтобы убедиться, что ваша компания учится, использует и внедряет этих кодинг-агентов. Потому что, особенно для крупнейших корпораций в мире, обнаруживается, что многие люди хотят перейти к использованию ИИ для своих повседневных задач. Но из-за того, как планируются проекты, из-за того, что не все владеют умением использовать ИИ таким образом, наличие команды инженеров, которые могут прийти, провести онбординг, настроить все нужные вам интеграции, автоматизации, чтобы реально выйти на тот уровень рычага с ИИ, — очень полезно. И вот мы это делаем. Мы выступаем мыслящими партнёрами для клиентов, с которыми работаем.

Swyx [00:09:56]: Итак, давайте поговорим об архитектурных вещах. Думаю, это всегда — это то, что было темой разговора между вами двумя. Это та ментальная модель, с которой ты хочешь начать, или что-то другое? Оставлю слово вам, ребята.

Архитектура агента: harness «в коробке» против «вне коробки»

Cole [00:10:11]: Думаю, можно начать вот с чего: что вообще за части у системы фоновых агентов. А потом, может, перейти к некоторым нюансам решений, которые можно принимать.

Swyx [00:10:22]: Но, наверное, я также — то, что, может быть, говорит Walden: агент находится как бы в этой открытой «коробке кода», полагаю. Верно? Это инфра, а вот — это агент. И у вас был спор о том, помещать ли агента сюда, внутрь, или наружу. Можешь это раскрыть?

Cole [00:10:39]: В системах фоновых агентов есть решение, которое нужно принять: где именно будет работать агент. Это обычно описывают как harness «в коробке» или «вне коробки». Запуская агента в коробке, ты идёшь на определённые компромиссы. Негативный компромисс, на который ты идёшь, — это в первую очередь безопасность. Поскольку агент работает в этой коробке, то, если ты специально не спроектируешь иначе, все твои секреты тоже должны попасть в эту коробку. А учитывая природу ИИ, он может быть непредсказуем, и ты очень легко можешь случайно слить свои секреты (exfilling) или получить другое непреднамеренное поведение. Теперь, «вне коробки» — это идея о том, что сам агент работает не напрямую в песочнице, и у нас будет, условно говоря, «мозг» агента, работающий в каком-то воркере, control plane. Эта песочница тогда служит «руками», а мозг по сути управляет и делает tool call-ы в это окружение, чтобы им манипулировать. Другой компромисс между этими двумя системами в том, что, на мой взгляд, запуск «вне коробки» гораздо сложнее, потому что у тебя появляется состояние, которым надо управлять; тогда как при запуске «в коробке» всё состояние агента находится в коробке, и да, его можно сохранять где-то ещё, но оно локализовано, и забот меньше.

Walden [00:12:08]: Думаю, многое из того, что ты упомянул, — это причина, по которой мы с самого начала построили Devin так, чтобы, как мы это называли, отделить мозг от машины. Другое, что это позволяет делать, — переиспользовать любую существующую у тебя инфраструктуру для dev-боксов, возможно. И тогда тебе не нужно так сильно беспокоиться о создании нового типа dev-бокса, в котором есть все зависимости, нужные мозгу, и, как ты упомянул, секреты, нужные мозгу. Одна вещь, с которой, как мы видели, сталкиваются некоторые клиенты: у тебя есть GitHub-приложение, и ты хочешь, чтобы Devin, твой агент, мог взаимодействовать с GitHub через это приложение, но при этом у тебя разные пользователи с разными реальными правами. Если они все взаимодействуют через одно и то же GitHub-приложение и нет реального разделения между системой, которая решает, что делать, и реальными секретами на машине, то ты упираешься в проблему: окей, разделение делать тяжело. Но на практике с Devin это намного проще, потому что мы просто говорим: что бы ты ни положил на машину — это и есть скоуп того, что пользователю и агенту дозволено делать. Так что клади на эту машину только секреты с максимально ограниченным скоупом, а мозг при этом полностью недоступен с машины. И тебе не нужно беспокоиться о том, что кто-то залезет в самые защищённые части мозга, если пользователю позволено делать с машиной что угодно.

Swyx [00:13:31]: Я как раз хотел показать — у меня есть эта схема от OpenAI, где, не знаю, это «в коробке» или «вне коробки». Это то, что они используют для описания. И ещё недавно Anthropic сделали managed agents,

Swyx [00:13:44]: вот это — их штука. Не знаю. Это всё, это всё вариации одного и того же паттерна, верно?

Cole [00:13:49]: Вот это было бы «вне коробки».

Swyx [00:13:51]: Что для них предпочтительнее, потому что меньше работы?

Cole [00:13:56]: Я бы сказал, это больше работы.

Swyx [00:13:58]: Больше работы?

Cole [00:13:58]: Но это, на мой взгляд, лучшая архитектура из двух. Просто ты берёшь на себя немного сложности, делая так.

Настройка репозитория, Docker и dev-окружения на основе VM

Walden [00:14:07]: Одна вещь, которую мало кто из других игроков делает хорошо, — это как управлять тем, что вообще лежит в коробке. И это может быть сложно по многим причинам. Допустим, у тебя большой репозиторий, который постоянно меняется и обновляется с меняющимися зависимостями. Как сделать так, чтобы рабочее окружение агента действительно оставалось актуальным, имело все нужные креды, чтобы, скажем, запустить приложение и протестировать его, и всё то, что ты хочешь от своего автономного…

Swyx [00:14:34]: То есть настройка репозитория.

Walden [00:14:35]: Именно. Так что внутри Cognition мы называем это repo setup.

Cole [00:14:39]: Самая сложная часть…

Walden [00:14:40]: Это была вечная проблема с самого основания компании — как помочь людям это настроить? Потому что не у всех есть рабочие облачные окружения «из коробки». И ты находишь, что это распространённая проблема у…

Swyx [00:14:53]: Как ты её решаешь?

Walden [00:14:53]: у твоих клиентов?

Cole [00:14:54]: Это очень распространённая проблема, и через мой консалтинг это во многом то, что я помогаю командам делать. У многих команд нет хороших настроек dev-окружения, если они вообще есть. Зачастую это «Сходи к Бобу и возьми секреты», и это, очевидно, не работает, когда агенту нужно реально это настроить. И вот, в основном большинство команд используют Docker Compose или какой-то тип микросервисов. И поэтому для…

Swyx [00:15:19]: Даже в проде?

Cole [00:15:20]: Не в проде. С OpenInspect ты используешь это в первую очередь для взаимодействия и внесения изменений в код. Есть и другие сценарии — ты можешь подключить, будь то через CLI, MCP, другие инструменты, и подцепить это к своим production-системам, в основном для SRE-сценариев. Но ты не обязательно пытаешься тестировать свой внутренний production-микросервис через эту систему.

Walden [00:15:48]: Ты упомянул Docker Compose. Думаю, одно из направлений, которое мы видели у некоторых наших друзей на раннем этапе, — использование Docker-контейнеров как уровня абстракции для их моделей. Есть много причин, по которым Docker-контейнеры — не очень. Одна в том, что Docker-контейнер не является настоящей границей безопасности, это раз. А вторая — если ты запускаешь реальные приложения, эти приложения часто сами используют Docker, и тогда тебе приходится думать о Docker-in-Docker, что довольно странно. И вот, думаю, часть по-настоящему сложного вызова — заставить VM работать; почему мы это сделали? Ну, потому что мы поняли, что для таких вещей реально нужны полноценные VM. И особенно сейчас, когда есть реальная ценность в том, чтобы запускать приложение, кликать по нему и присылать тебе записи экрана — ценность просто продолжает накапливаться поверх этого. Но это решение, в которое люди упираются, когда пытаются построить собственные системы: «О, помимо этого, поместить ли агента в машину или вне машины? Использовать ли Docker? Использовать ли что-то другое?» Что ты рекомендуешь людям сегодня?

Cole [00:16:57]: Думаю, Docker — хорошее решение, может, не для запуска агента, но для запуска твоей инфраструктуры, потому что это более-менее та же конфигурация, которую твои инженеры, вероятно, уже используют. А если нет — то я не знаю, что они используют. Но они, вероятно, уже используют Docker Compose.

Swyx [00:17:14]: У меня всегда была небольшая симпатия к web containers. Не знаю, пробовали ли вы их раньше.

Swyx [00:17:19]: Для меня они должны были быть чем-то вроде Docker Light.

Cole [00:17:22]: Правда?

Swyx [00:17:22]: Не знаю.

Cole [00:17:22]: Нет, не пробовал. Но да, думаю, любое окружение, которое ты настроил так, что оно хорошо работает для твоего разработчика, естественным образом легко настраивается и для агента. И как только ты разберёшься с этой историей локального разработчика, ты более-менее решишь и настройку окружения агента в песочнице. У OpenInspect есть хуки, где ты можешь запустить setup-SH-скрипт, который предустановит всё. Затем ты можешь заранее сделать снапшот этой сборки, чтобы она стартовала мгновенно, а есть и второй хук, чтобы потом восстановить состояние песочницы, когда она возвращается. И вот ты можешь уже иметь все эти микросервисы запущенными и по сути получить тот же опыт, что и на своей машине, внутри песочницы.

Тестирование агентов: computer use, скриншоты и реальные сценарии приложений

Walden [00:18:08]: Ещё одна вещь, о которой мы много думаем, — разные предложения VM-сервисов. Были ли у тебя клиенты, которым нужны были именно VM на macOS или именно на Windows

Walden [00:18:20]: VM?

Walden [00:18:22]: В мире есть много технологий, которые работают только на определённых типах машин, верно? Если ты строишь .NET-приложение, которое должно работать на Windows, или, может, более частый случай — если хочешь собирать iOS или macOS. Это работает?

Swyx [00:18:32]: Поддерживает ли Commission

Swyx [00:18:33]: Такой выбор?

Walden [00:18:35]: Фундаментальная архитектура, которую мы делаем, поскольку мы делаем это разделение, это поддерживает, но реальная работа над этим идёт прямо сейчас. Ещё одна вещь, поддержку которой мы недавно добавили — она в бете, — это Android-разработка. Чтобы это сделать, нам понадобилось поддержать, кажется, вложенную виртуализацию внутри наших машин, потому что сама VM — это виртуализированный инстанс Firecracker, а потом тебе нужно запустить внутри ещё один Android-эмулятор. И там есть странные проблемы с производительностью, из-за которых это всё ещё в бете. Нам надо продумать эти проблемы, но это многое открывает для всех, кто хочет заниматься Android-разработкой.

Swyx [00:19:13]: Я пытался найти референсное видео про тестирование. Не смог найти, но, кажется, ты работал над функциональностью тестирования. Почему называть это тестированием, а не computer use или, не знаю, как — какая вообще общая категория проблемы?

Walden [00:19:26]: Думаю, когда люди думают о способности ИИ запустить твоё приложение и протестировать его, они на самом деле слишком зацикливаются на части про computer use, потому что computer use, по-моему, — это буквально: окей, на какую кнопку ты хочешь нажать. Можешь ли ты выдать правильные координаты, чтобы кликнуть по этой кнопке? Думаю, тестирование — это на самом деле очень интересная

Walden [00:19:48]: задача на решение проблем для этих ИИ, потому что если хочешь делать произвольное тестирование — представь, ты делаешь изменение, которое затрагивает фронтенд и бэкенд, может, ещё какой-то более глубоко вложенный сервис. Чтобы реально протестировать это изменение, нам надо рассуждать: как сначала запустить эти приложения, чтобы они оркестрировались друг с другом с правильной версией кода? Потом — окей, как мне триггернуть фичу или как заставить нужное реально произойти? И это может быть произвольно сложно: может, тебе нужно быть админом. Может, определённая фича должна быть включена через feature flag. Может, тебе надо запустить две сессии, а потом отправить очень конкретное слово в одну из них, чтобы триггернуть определённое поведение. И понять, как это сделать, требует много контекста кодовой базы, требует много оркестрации, которую мы специально проделали. И в некоторых случаях мы обнаружили, что ни одна frontier-модель не может сделать эту полную сквозную задачу сама.

Walden [00:20:42]: Мы видели случаи, когда нам реально приходилось оркестрировать разные frontier-модели вместе, чтобы решить эту проблему совместно. Вот где мы проводим большую часть времени, когда думаем об этой задаче тестирования, а не столько над частью про computer use. Computer use, к слову, стал намного лучше с недавними моделями, и это, безусловно, упростило эту часть работы.

Swyx [00:20:58]: Особенно с 4.7, который выпустили вчера, — он, по-видимому, гораздо лучше в плане зрения, что и будет охватывать computer use.

Walden [00:21:08]: Иметь evals для всего этого — тоже то, на что уходит время. И сделать так, чтобы evals были правильными, тоже хитро. Видишь ли ты когда-нибудь клиентов, которые строят собственных агентов и которым приходится начинать поднимать evals, чтобы убедиться, что ничего не регрессирует?

Swyx [00:21:25]: Не столько evals в традиционном смысле, но конкретно для части про тестирование, которую только что добавили. Я только что добавил поддержку скриншотов, и в теории можно делать и видео. Мне нужно вставить плагин для этого. Но они показываются нативно, и это была очень востребованная фича, особенно после того, как вышла запись от Cursor. Думаю, это было очень показательно для всех: «О, это реально очень хорошая фича». Думаю, у вас в Devin это есть уже какое-то время.

Swyx [00:21:57]: О, да. Смотри, как работают скриншоты. Да, не знаю, есть ли тут что-то супер-неочевидное. Это типа — однажды решив, какую фичу строить, ты можешь просто запромптить, и оно по большей части сработает.

Walden [00:22:09]: Думаю, к мысли Walden — computer use это подмножество более крупной задачи тестирования, и, думаю, это очень специфично для кодовой базы, с которой ты работаешь, и это не то, что можно решить «из коробки». Тебе нужен контекст кодовой базы, чтобы реально знать, как это тестировать. И, думаю, в случае системы фоновых агентов у тебя, к счастью, эта кодовая база есть локально — то, что меняется, — и ты можешь это инспектировать и использовать, чтобы управлять моделью.

Swyx [00:22:40]: Для тех, кто не видел этого раньше: вот пример того, как это работает. После того как PR готов, ты нажимаешь «testing approved», и оно присылает тебе видео. Что мне особенно нравится — оно подписывает, тут очень мелко, но оно реально подписывает, что тестирует. И потом ты реально видишь курсор и всё остальное. Так что, не знаю, инженерия в этом — просто что захочешь показать. Потому что это один из тех, ну, немногих AGI-моментов, верно? Потому что как только я смотрю на это, я на самом деле не — я хотел бы просто мержить прямо внутри Slack вместо того, чтобы идти на GitHub, потому что мне не нужно смотреть код. Я знаю, что это работает.

Walden [00:23:19]: Может, новая фича в Cursor. Да, аннотации внизу тоже были для меня большим отличием, когда я их добавил.

Swyx [00:23:27]: Это типа — на что я смотрю? Что ты пытаешься продемонстрировать?

Walden [00:23:30]: Именно. Есть удивительно длинный хвост мелких деталей, которые в итоге сильно влияют на эту конечную метрику — как быстро ты реально мержишь код. Один опыт, на тюнинг которого мы потратили много времени на раннем этапе, — какой правильный опыт на GitHub для этих инструментов. Потому что, думаю, большинство инструментов, когда ты строишь агента, думают: о, он создаст тебе PR. Мы пытаемся пойти на шаг дальше и сказать: о, а что если мы реально сделаем так, чтобы ты мог взаимодействовать с Devin напрямую на GitHub? И вот мы сделали так, чтобы ты мог комментировать на GitHub, а Devin реально получал бы эти комментарии и отрабатывал их. Но тут есть довольно много тюнинга, который надо сделать, потому что можешь представить — у нас недавно появился, например, Devin Review. Devin Review будет постить комментарии к своему же PR, а потом Devin должен идти

GitHub-процессы: Devin Review, комментарии и автоматизация PR

Swyx [00:24:23]: Он отвечает на свои же комментарии, что реально зациклено. Так что да, мне нравится, что тут просто обновляется, что я прокомментировал. Но обычно это просто я говорю что-то вроде «Эй, замержено, исправь любые merge-конфликты».

Walden [00:24:37]: Так вот, когда Devin исправляет свои же комментарии, ты можешь испугаться: о, может, я уйду в бесконечный цикл. Но мы вложили много труда, чтобы этого не случилось — и тем, что комментарии высокосигнальны, и тем, что агент вдумчиво относится к тому, какие комментарии сразу идёт исправлять, а на какие говорит: «Погоди-ка, думаю, ты неправ». Кстати, один из моих любимых моментов — когда Devin говорит мне, что я неправ, когда я пытаюсь заставить его сделать что-то иначе. Но тюнинг этого поведения реально сильно влияет на то, насколько полезен сам опыт работы с GitHub.

Cole [00:25:06]: Думаю, в дополнение к этому — наличие ИИ-ревьюера, интегрированного в систему, это критическая часть такой фоновой системы. У OpenInspect это есть. Есть GitHub-ревьюер кода, у которого ты можешь управлять промптом. Он тоже делает комментарии. Пока не делает их автоматически. Возможность есть, но используется не полностью.

Swyx [00:25:27]: То есть нужно об этом попросить?

Cole [00:25:28]: да, нужно. Ты можешь тегнуть его на GitHub, и тогда — как бы ты ни назвал своего GitHub-бота — он отработает запрос. Он потом, если у тебя merge-конфликты или что бы ты ни попросил его разрешить, разрешит это, но пока не делает этого автоматически.

Интеграции: Slack, MCP и first-party интерфейсы агентов

Walden [00:25:42]: Ну, мне любопытно — что чаще всего в итоге запрашивают люди, чего им всё ещё не хватает поверх OpenInspect, когда ты помогаешь им внедрить его?

Cole [00:25:52]: Думаю, многое сводится к тому, чтобы реально интегрировать это в компанию. Одно дело — иметь настроенную систему фоновых агентов, но если она реально не интегрирована в твою более крупную экосистему, она не так уж полезна. Полезно уметь запускать сессии, но что мы реально хотим уметь — это подцеплять её ко всем нашим остальным системам: будь то production-база данных с read-only кредами, логи, Confluence или внутренняя система базы знаний. Думаю, вот где я вижу огромный скачок для компаний, и это может быть вызовом для компаний, которые, возможно, не очень знакомы с тем, как именно к этому подойти, особенно если они в средах с более серьёзными compliance-вещами, где контроль доступа может быть довольно большим, и как осознанно думать об этих проблемах — это, как я нахожу, одна из проблем, которые приходят с такой системой.

Walden [00:26:46]: Мы обнаружили вот что: MCP, очевидно, был этим, ну, реально большим взрывом — о, можно интегрировать со всеми этими разными штуками. Но чтобы реально сделать интеграцию правильно и получить правильный опыт, мы часто обнаруживали, что приходилось строить собственные ad hoc вещи. Думаю, Slack — отличный тому пример. Можно дать своему агенту Slack MCP, и окей, он может постить тебе сообщения обратно в Slack. Но мы реально используем Devin как коллегу в Slack, и он с самого начала был построен именно так. Но чтобы это сделать, тебе реально нужна поддержка вебхуков, которые приходят обратно, верно? И Devin должен отвечать естественным образом и, надеюсь, не слишком спамить твои треды и не раздражать людей в твоей компании. Так что нужно настроить этот опыт как раз правильно. Особенно когда много туда-сюда, мы обнаруживаем, что нам реально приходится выходить за пределы простых MCP-интеграций в этих местах.

Swyx [00:27:39]: Я только что открыл MCP-маркетплейс. Я знаю, это изрядный объём работы. Ответ в том, чтобы в итоге взять first-party контроль над всеми топовыми MCP? В этом

Walden [00:27:48]: Я бы хотел мир, где можно иметь что-то более выразительное, чем MCP. Что-то, что работает в обе стороны — не просто набор инструментов, а полноценную систему, которая взаимодействует в ответ и даёт правильный опыт со всеми этими интерфейсами.

Swyx [00:28:03]: На самом деле в спецификации MCP есть sampling, но им никто не пользуется, верно?

Walden [00:28:07]: И вот, думаю, другая часть в том, что мы обнаружили: когда спецификация MCP начинает становиться слишком сложной, она начинает терять своё изначальное обещание быть простым одношаговым подключением. Тогда нам приходится разбираться, как поддерживать все эти разные вариации вещей, и это начинает сильно напоминать просто построение first-party интеграций во многих этих случаях.

Cole [00:28:29]: Думаю, тут тоже важно, насколько это критично для твоей компании, верно? Если это что-то, через что проходит почти каждая сессия, вероятно, имеет смысл владеть этим, чтобы делать оптимизации поверх, в отличие от того, что готово «из коробки».

Swyx [00:28:43]: Отлично. Помимо MCP, что ещё — извини, ну, не знаю, не слишком ли это узко на интеграциях. Но что ещё? Какие ещё элементы построения OpenInspect или Devin, в которые вы, ребята, реально погружаетесь?

Память и Knowledge: что агенты должны запоминать

Cole [00:28:59]: Думаю, проблема, которая возникает очень часто, — это идея воспоминаний (memories) или базы знаний.

Swyx [00:29:05]: О, ну. Как ты это решаешь?

Cole [00:29:08]: пока не решил, короткий ответ.

Cole [00:29:11]: это нечто — на это есть открытый issue, кто-то о нём спрашивает.

Swyx [00:29:16]: Есть, я — D Wiki пока ничего не проиндексировал про память.

Cole [00:29:20]: Как я вижу её решение у своих клиентов — в основном через skills. Я нахожу, что skills могут быть хорошим заполнением этого пробела, или обновление Claude MD, но, думаю, память в целом — довольно нерешённая проблема, и поэтому я колеблюсь её добавлять. Думаю, есть части памяти, которые можно решить, но, думаю, в целом это очень сложная проблема retrieval.

Swyx [00:29:44]: Боже мой. RAMP ничего не написали про память? Вижу ноль результатов поиска.

Walden [00:29:50]: Нет. Память может быть довольно хитрой, чтобы сделать её правильно, потому что это и retrieval, но также и генерация воспоминаний, что может быть реально хитро. Ты не хочешь, чтобы оно просто запоминало очень специфичные детали.

Swyx [00:29:59]: Проведи нас по пути памяти Devin, потому что я знаю, что путь был.

Walden [00:30:03]: Первая версия памяти, которая задержалась на какое-то время, — это система, которую мы называем Knowledge. Идея была в том, что мы хотели, чтобы она подхватывала вещи со временем и не требовала, чтобы пользователь проактивно учил Devin вещам. Так что, окей, каждый раз, когда ты напоминаешь Devin: «Погоди, нет, это не совсем то, как ты должен использовать Git» — мы реально хотим, чтобы Devin сказал: «Эй, хочешь, чтобы я просто запомнил это на будущее?» — и чтобы ты просто быстро одобрил или отклонил, и чтобы это накапливалось со временем. Потому что я нахожу, что 95%, кажется, или какая-то безумная статистика вроде того, воспоминаний, которые есть у Devin, — все через эти автогенерируемые штуки. Очень мало кто реально хочет сесть и писать большие доки про «вот как ты должен работать с этой технологией» и т.д. Генерация и retrieval — это то, что мы пытались много тюнить на протяжении лет. Генерация: ты не хочешь, чтобы оно запоминало что-то типа — если ты один раз попросил «о, пожалуйста, открой как черновой PR», ты не хочешь, чтобы оно решило: «о, теперь все навсегда должны получать свои PR как черновые». Но какой-то перенос ты хочешь. Может, ты хочешь сказать: «о, Cole в целом любит, чтобы вещи создавались как черновые PR». То же с retrieval: если у тебя тысячи этих воспоминаний, как реально сделать, чтобы они извлекались в нужное время? И это может быть довольно хитро сделать правильно, не взрывая контекст кучей полезной, ну, бесполезной информации. Удивительное количество работы по evals, просто чтобы убедиться, что память остаётся надёжной системой по мере того, как модели приходят и уходят.

Cole [00:31:31]: Можешь ли поделиться чем-то про очистку памяти (memory pruning)? И про темпоральный аспект памяти?

Swyx [00:31:36]: Удаление и забывание?

Walden [00:31:39]: На сегодня то, что можно делать, — оно может редактировать воспоминания. И вот, если твоё воспоминание раньше говорило «о, Cole любит открывать всё как черновой PR», то можешь представить — «Нет, не делай так». И тогда оно скажет: «О, хочешь, чтобы я обновил воспоминание на „Cole теперь хочет всё как открытые PR“?» Думаю, при этом мы не знаем, будет ли это финальной версией системы. Что бы у нас здесь ни было, оно, вероятно, перенесётся в новую систему, которую мы придумаем. Но, думаю, одно большое отличие между «два года назад» и «сегодня» в том, что эти агенты реально хороши в использовании всего, что напоминает файловую систему, нативно. И поэтому часть нас думает: о, может, нам перестроить воспоминания так, чтобы они ощущались больше как файловая система, по которой мы позволяем агенту навигировать самому? Это было интересное исследование. Также похожие идеи в пространстве scale.

Swyx [00:32:35]: Я прямо сейчас открываю штуку с памятью OpenClaude. Так вот, память — у OpenClaude есть эта штука вроде ежедневного журнала памяти, верно? И ты можешь… то есть это файловая система, по которой ты можешь делать grep и которая является источником истины. Не знаю, лучший ли он. Вероятно, супер-шумный, но по крайней мере, если ты что-то теряешь, ты можешь это обнаружить, или можешь применить какой-то алгоритм забывания к более древним воспоминаниям, которые больше не извлекаются, или что-то такое. Не знаю.

Walden [00:33:01]: Одна вещь, которую мы пытаемся делать, чтобы раздвинуть границы того, как использовать агентов в твоей компании, — позволить агенту по сути иметь очень похожий файл, memory.md или что-то такое, и просто быть твоим постоянным PM-ом для определённого набора задач, может быть. Так что у нас есть какие-то Slack-каналы внутри, может, Slack-канал, посвящённый конкретному продукту вроде DeepWiki. И можешь представить, что — или ты хочешь Devin, который никогда не останавливается, он просто всегда бодрствует, но у него есть этот memory dock, который он может просто поддерживать для себя: окей, какие у нас приоритеты номер один из того, что надо исправить и приоритизировать? Кто ответственен за какую-то предстоящую работу? Может, он даже — Devin даже будет тегать тебя на какой-то регулярной основе. И вот это был интересный ход — увидеть: окей, как мы реально можем использовать Devin не только для инженерии? Можем ли мы подняться выше инженерного процесса, и, может, это просто Devin, создающий тикеты, которые потом, может, делают какие-то люди, но потом, может, делают другие Devin-ы.

Swyx [00:34:00]: Одна из моих более забавных автоматизаций — иди исследуй конкурентов и просто предлагай мне что-то на еженедельной основе. Вот такая автоматизация. Не могу её сейчас найти, но по сути она просто типа «Посмотри на конкурентов и предложи что-нибудь». «И вот три вещи, которые ты предложил, которых я больше не хочу» — и ты просто вставляешь это в промпты. Но я бы хотел, чтобы — например, когда я отклоняю PR, я бы хотел, чтобы это обновляло память, чтобы мне потом не приходилось возвращаться и обновлять запланированный синк, но в общем, реквест фичи.

Walden [00:34:31]: что? Мы, может, скоро это поменяем. Кстати, OpenInspect — за то время, что ты с ним, было ли что-то, что ты пытался реализовать, но потом пришлось откатить и сделать по-другому?

Архитектура OpenInspect: вебхуки, control plane и состояние агента

Cole [00:34:41]: Пока ничего, но кое-что у меня на уме. Изначально я построил это так, что каждая из интеграций живёт как собственный пакет. И вот у тебя есть Slack-бот, который обрабатывает вебхуки и по сути взаимодействует с control plane. По мере того как система становится более интегрированной, конкретно с интеграцией GitHub-бота, я подумываю свести всё это в центральный control plane, потому что особенно сейчас я хочу начать — и запрос, который ко мне приходит, — это возможность мониторить реальные пул-реквесты, которые мержатся, а также просто отслеживать

Swyx [00:35:19]: Что у меня открыто?

Cole [00:35:21]: Что у меня открыто? Сколько из них мержится? Сколько комментариев появляется? Просто чтобы понимать здоровье системы. И вот в случае GitHub-приложения у тебя только один вебхук. И тогда вопрос: положить ли мне этот вебхук в пакет GitHub-бота? Это странно. Не очень логично, чтобы он там жил, потому что этот пакет скорее про ревьюер кода. Или централизовать его? Так что это то, что у меня на уме — принять это решение. Думаю, другое, чего мы коснулись раньше, — harness «в коробке» против «вне коробки». Думаю, в долгосрочной перспективе архитектура в итоге вернётся к «вне коробки». Некоторые из более новых инструментов, которые я добавил, делают вызовы обратно в control plane, чтобы у тебя не было секретов в песочнице. И вот, думаю, долгосрочно я, вероятно, вынесу самого агента из коробки, но, думаю, пока всё в порядке.

Сабагенты и мульти-агентные системы: когда параллелизм помогает или вредит

Swyx [00:36:16]: Просто быстрый вопрос про вынос агента из коробки. Одна вещь, в которую я очень верю в этом году, — это агенты, вызывающие других агентов, или спавнящие сабагентов, или как ни назови. Делает ли это сложнее или проще? Не могу понять. Потому что если harness в коробке, ты можешь просто поднять больше коробок. Если harness вне коробки, тогда это менее просто, потому что у тебя есть «единорог-питомец» harness-а, живущий вне коробки.

Cole [00:36:45]: В теории это было бы так же, верно? Запустил ли один агент много сабсессий внутри себя — OpenInspect, например, может запускать сабсессии и реально создавать другие окружения, а потом мониторить их. В случае «вне коробки» это по сути была бы просто дополнительная запущенная сессия. И вот эта сессия тоже работает вне коробки. Она работает в твоём worker plane, где бы ты это ни запускал. И дальше тебе реально просто нужно думать о том, как твой верхнеуровневый агент с ней взаимодействует. Думаю, это может быть сложнее, просто потому что у тебя теперь более трудная архитектура. Но, думаю, если ты разобрался один раз, дальше, вероятно, нормально.

Swyx [00:37:26]: Ну, тогда я просто открываю это для тебя в плане — я называю это мета-Devin-менеджментом. То есть Devin-ы, вызывающие Devin-ов, или Devin, планирующий Devin-ов, или запрашивающий траектории, или что-то такое. Что вы построили или сняли с продакшена, что угодно?

Cole [00:37:46]: Думаю, одна из удивительных вещей, которые мы видели, — что многие способы, которыми эти отдельные агенты работают друг с другом и которыми ты хочешь, чтобы они распараллеливали свою работу, всё ещё в основном следуют той же схеме «менеджер — сабагенты». И многие, думаю, в восторге от мира, где у тебя рои агентов, которые общаются друг с другом повсюду. Мы реально дали Devin MCP, чтобы они могли произвольно слать сообщения другим Devin-ам и создавать новых Devin-ов и т.д. Но, наверное, это почему-то создаёт реально хаотичный мир в этом смысле. И вот мы всё же обнаружили, что наиболее практичное использование на повседневной основе — это один-единственный Devin.

Cole [00:38:33]: Разобраться, как сегментировать работу и заставить других Devin-ов работать над ней относительно изолированно, каждый со своими коробками, не разделяя машины, чтобы было очень мало места для конфликтов, — вот тот режим, который тебе надо создавать сегодня.

Swyx [00:38:50]: Отмечу эксперименты от Cursor, верно? Это работа Wilson Lin по переходу от одного агента к мульти-агентам, и ты, очевидно, знаменито на стороне «не строй мульти-агентов». Но они прошли весь путь только чтобы прийти к вот этому, что в точности то, что есть у Devin, я думаю.

Cole [00:39:08]: Думаю, в какой-то момент будет ревизия того поста про

Swyx [00:39:12]: Расскажи об этом

Cole [00:39:12]: Думаю, мульти-агенты были совершенно невозможны год назад. Сегодня ты видишь больше мульти-агентных экспериментов, но можно спорить — действительно ли это мульти-агенты, или это просто tool call-ы? Есть люди, которые создают сабагентов, чтобы пойти найти файл XYZ, реализацию XYZ. Это даёт очень приятные преимущества по управлению контекстом, потому что все tool call-ы и токены, которые он тратит, потом схлопываются обратно просто до ответа для главного агента. Есть много преимуществ в том, чтобы делать так. Мы по сути заставляем Devin делать это с Deep Bookie — делаем вызов к Deep Bookie, он возвращает тебе результаты, но это ощущается как tool call, верно? Это не то, чтобы эти два соавтора реально разговаривали друг с другом туда-сюда. Но, думаю, то, что даёт мне больше всего веры, что мульти-агенты могут реально быть возможны, — это как раз то, что я сказал раньше: Devin иногда реально говорит мне, что я неправ, и возражает, и, думаю, это демонстрирует уровень зрелости и коммуникации сегодня, который делает мульти-агентный мир возможным. Могут ли два агента, которые видели разную информацию, сойтись и реально выяснить, кто прав, какая реализация правильная? Они не просто поддакивающие «да-да». Claude, наверное, раньше просто говорил, как там, «Ты прав», или,

Swyx [00:40:25]: «Ты абсолютно прав.»

Cole [00:40:26]: «Ты абсолютно прав.» Да.

Swyx [00:40:28]: Ты видел, ты видел

Cole [00:40:29]: Эпоха закончилась

Swyx [00:40:30]: Прикол с приложением Codex в Topic? Это приложение Codex. Внутри Settings есть маленькая пасхалка, верно? Так что если зайти в Themes или Appearance, там все эти цветовые коды, и наверху «absolutely», и это цвета Topic. Что за прикол. В общем.

Поведение модели: возражения, состязательные промпты и скептицизм агента

Cole [00:40:53]: Обожаю эту пасхалку. Ты сам её обнаружил?

Swyx [00:40:54]: Нет, кто-то твитил об этом, и я такой: «Это правда?» Потому что иногда люди просто твитят что-то, чтобы тебя завести. Но да, вот, в цветах Topic.

Cole [00:41:06]: Да. Так что да, мы выходим из этого режима, где оно просто говорит «ты абсолютно прав», и они могут вести реальные разговоры и реальные обмены туда-сюда.

Swyx [00:41:13]: Ты можешь и запромптить его быть более состязательным или как угодно. Да. Окей. Да, то есть, для меня это больше интеллекта, верно? Это не просто что-то, что является тупым инструментом, оно реально возражает тебе, я думаю. Да.

Cole [00:41:24]: когда ты упомянул, конечно, посты в блоге. Был один блог, где они скормили рой агентов вместе и построили браузер.

Swyx [00:41:34]: Это, думаю, был тот самый.

Cole [00:41:36]: Можно иметь, типа

Swyx [00:41:37]: Думаю, это тот же самый

Cole [00:41:37]: Создание его. Мы обнаружили удивительный успех в том, чтобы — не делать рой или что-то такое, просто иметь одного Devin, он сам управляет своим контекстом. Просто дай ему поработать какое-то время и дай ему какие-то безумные задачи. Думаю, мы попросили его пересобрать систему Windows OS. И он умудрился это сделать, просто работая достаточно долго. Это

Swyx [00:41:55]: Это была штука Andrew?

Cole [00:41:58]: было много демо, которые мы в итоге не выложили, потому что в какой-то момент мы бы просто выкладывали слишком много кучи демо. Но мне это нравится, потому что это показывает, что, думаю, у мульти-агентной темы всё ещё есть немного волнующей привлекательности, которая, может, всё ещё превосходит реальную дельту, которую она добавляет к возможностям этих систем. Но это безусловно будущее. Думаю, мы движемся в этом направлении, и мы уже видим прогресс, который там достигается.

Swyx [00:42:25]: Если бы я сделал одно совсем мелкое возражение, потому что я пока не очень в нём уверен

Cole [00:42:33]: Давай

Swyx [00:42:33]: Но у меня был Ryan Lopopolo из OpenAI в подкасте, и он настоящая «slop-пушка», верно? О боже, это мой кодинг-агент закончил. Я скачал эту штуку, Peon Ping. Не знаю, слышали ли вы о ней. Она берёт звуковые паки из популярных игр вроде Command and Conquer и Warcraft, и потом проигрывает их каждый раз, когда закончил. И вот это типа «Work» или что-то, «At your command» или что-то такое. В общем, что я вынес из кодовой базы Cursor и из штуки Ryan — что есть подход «slop-пушки», где ты пытаешься ослабить узкое место одного агента, и я чувствую, что это, вероятно, очень важная вещь, которую надо попытаться решить. Не думаю, что кто-то реально её решил. Потому что тогда у тебя просто больше ревьюер-slop-а поверх агент-slop-а, чтобы попытаться всё это укротить. Ryan, вероятно, очень сильно возразит, что я говорю, будто он её не решил, но он считает, что он — он считает, что он полностью её решил. Но, думаю, это всё же — думаю, это очень важно, потому что это узкое место, верно? Я чувствую, Devin иногда медленный, потому что я думаю: ну да, это очень читаемо и очень разумно, но также это медленнее, чем могло бы быть, если бы я просто — я хочу кнопку, чтобы просто сказать: «Просто разгони это в 1000 раз дальше параллельно и просто посмотри, что будет», да? И не знаю, осуществимо ли это в какой-то момент в будущем.

Ревью кода, энтропия и ИИ-slop

Walden [00:43:55]: Я — и мы тоже проводили эксперименты внутри, где мы по сути пытались построить целые продукты, настоящие продукты, которые мы знали, что в итоге отгрузим, но пока — давай попробуем посмотреть, сможем ли мы сделать это чисто vibe-кодингом поверх друг друга, авто-мерж, вообще без ревью кода. И вот есть этот бенчмарк: сколько недель ты можешь так продержаться, прежде чем скажешь: «У нас самая мусорная кодовая база».

Walden [00:44:18]: «Давай-ка реально перепишем её с нуля.»

Swyx [00:44:19]: Запусти новую фабрику, да. Что ты обнаружил?

Walden [00:44:21]: Думаю, мы обнаружили, что состояние дел на декабрь было такое: ты можешь, вероятно, продержаться так около двух недель. К концу этих двух недель ты обнаружишь, что — эй, ты хочешь поменять цвет кнопки. Ну, оказывается, эта кнопка реализована в 10 разных местах, и у них всех эти разные вариации, и о, ты забыл одну из них, и на самом деле в одном месте она чуть другого цвета. И ты такой: «Окей, с этим слишком тяжело работать. Давай-ка реально делать ревью кода одновременно». И убедимся, что мы держим наш софт под контролем, реально немного его чистя и убеждаясь, что это сделано масштабируемым образом.

Cole [00:44:54]: Думаю, развивая это, идея о том, что тебе не надо смотреть на код, — это, по-моему, в целом плохая идея. И мем, который у меня на этот счёт

Walden [00:45:03]: На каком сроке, ладно, ты думаешь это утверждение станет правдой?

Cole [00:45:06]: Думаю, вероятно, ещё какое-то время будет правдой, что тебе стоит продолжать смотреть на свой код. Проблема, в которую упирается много команд, с которыми я работаю и которые принимают AI-native, AI-first кодинг, — мем, который у меня есть, в том, что твоя кодовая база деградирует до уровня твоего худшего инженера, потому что тот инженер, который очень рьян насчёт ИИ и не аудирует свой код, — его паттерн начинает цементироваться в коде, и теперь ИИ ссылается на его паттерны. И вот теперь его блок if/else, который представляет собой 20 if/else туда-сюда, ИИ видит это как паттерн того, как тут делаются вещи, и начинает потом экспоненциально растить этот slop. И я нахожу, к твоей мысли, довольно хороший подход к этому — иметь запланированную чистку, будь то людьми или через системы, которые ищут дублирование. Они потом его устраняют. Иначе ты в итоге получишь 12 хелперов для форматирования даты. И тебе надо это устранять, потому что иначе оно продолжит разрастаться.

Swyx [00:46:09]: В разумных пределах, думаю, нормально иметь какое-то дублирование, а потом иногда — сборку мусора, верно? Да. То, о чём я много говорил с разными инженерными лидерами, — что ты хочешь быть очень строгим насчёт границ между модулями, и это твоя работа как архитектора, как CTO, как угодно — сказать: «Окей, вот жёсткий контракт между вами и вами. Что бы вы ни делали внутри этого чёрного ящика — ваше дело. Делайте что угодно. Но между этими — давайте будем чертовски ясны, и любое движение должно быть согласовано человеком или мной». И на этом всё. Не знаю, есть ли у тебя какие-то ещё модификации или советы.

Walden [00:46:44]: Ну, наверное, в целом на тему того, где люди могут быть полезны, я обнаружил, что — потому что некоторые из этих реально глубоких инфра-проблем — иногда просто наличие человека с реально глубокой экспертизой может сильно изменить дело. Я реально видел, как это проявляется при построении агентов. Так вот, у нас было несколько друзей, которые пробовали строить собственных кодинг-агентов, и, думаю, одна и та же проблема, в которую, как я неоднократно слышал, многие из них упирались, — это проблема типа: «О, Grep реально медленный на машинах наших агентов». И вот многие из них — полагаю, потому что они используют ИИ и у них самих нет супер-глубоких инфра-знаний — говорят: «Окей, мы пойдём построим собственный кастомный Grep-индекс. Он будет реально быстрым», и используют это как обход этой проблемы. Когда мы упёрлись в эту проблему примерно, может, полтора года назад, когда мы были в ранних днях построения Devin, у нас, очевидно, тогда не было ИИ. Мы просто спросили нашего, как это сделать. Можно просто заменить новый Grep-индекс, так что.

Детали инфраструктуры: Grep, файловые системы и песочницы

Swyx [00:47:45]: Что значит вы вручную закодили Devin? Что?

Walden [00:47:48]: Это типа — можешь поверить, мы вручную написали этот код? И у нас были наши инфра-люди, которые реально потрясающие, они в это вникали и такие: «О, что? Мы осознали, что на самом деле корневая причина этой проблемы реально простая, но тонкая деталь» — а именно, что многие из этих виртуальных машин в основе своей не используют настоящие файловые системы. Они используют эти сетевые файловые системы, где вещи на самом деле кэшируются по сети в S3. Так что когда ты делаешь Grep, ты на самом деле делаешь сетевые вызовы каждый раз, когда делаешь это, и вот почему Grep крайне медленный на этих машинах. И вот, опять же, это возвращает к — что за вся безумная инфра-работа, которую нам пришлось проделать, чтобы реально заставить эти машины работать. Если ты попытаешься сделать это сам, есть тонны мелких деталей вроде этой, и вот нам в итоге пришлось заменить ту сетевую файловую систему. Но

Swyx [00:48:35]: Думаю, об этом есть статья, верно? Silas написал одну про виртуальную файловую систему.

Walden [00:48:38]: О, это была совсем другая штука. Та

Swyx [00:48:39]: О, это другая штука

Walden [00:48:40]: Формат хранения файлов BlockDev

Swyx [00:48:42]: Я открою

Walden [00:48:42]: Это формат файловой системы, который мы построили, чтобы VM можно было очень быстро поднимать и гасить. По сути, интуиция за этим такая: представь, у тебя терабайт диска, а твой агент написал поверх этого диска всего сотню строк кода. Сколько времени, скажем, занимает сохранить и заново поднять этот диск? И большинство систем, поскольку ты не оптимизируешь под этот случай, — это просто работа порядка терабайта, потому что тебе надо сохранить всё это и поднять обратно. В нашей системе мы пытаемся построить файловую систему, которая инкрементально надстраивается одна на другую. Так что каждый раз, когда ты сохраняешь и поднимаешь машину обратно, ты делаешь работу, пропорциональную по сути только диффу в файловой системе. И вот это сбривает много времени в процессе загрузки Devin. Думаю, это сейчас уже устарело. У нас внутри Devin есть более новая система. Но да, тут есть много крошечных деталей, которые надо сделать правильно, чтобы реально получить хороший повседневный опыт Devin.

Swyx [00:49:39]: Это технически не агенты, но это инфра агентов, и когда ты продаёшь агента как компания, ты продаёшь агента плюс инфру агента.

Walden [00:49:46]: По крайней мере так, как мы это делаем. И другое — приятная вещь в том, что инфра агента делается вместе: мы можем теперь развёртывать Devin в любом окружении, какое захотим. Нам не нужно ждать, пока какой-то нижележащий инфра-провайдер тоже пойдёт и поддержит VPC, или on-prem, или FedGovCloud, например. Так что мы можем реально пойти и разобраться: окей, раз мы владеем инфраструктурой, как нам это для вас настроить?

Облачные провайдеры: Modal, Daytona и enterprise-песочницы

Swyx [00:50:12]: Тогда как ты зависим от Cloudflare.

Cole [00:50:15]: так Cloudflare запускает control plane. Из песочниц поддерживается Modal. Контрибьютор только что добавил Daytona. E2B в роадмапе, и, думаю, на месте есть абстракция, так что если какой-то контрибьютор хочет добавить нового провайдера, он может это добавить.

Walden [00:50:32]: Ну, что — как клиенты, с которыми ты работаешь, — они в целом потом идут заключать контракт с одним из этих сторонних провайдеров? Они пытаются делать VM in-house?

Cole [00:50:44]: большинство из них, что я вижу, используют Modal. Думаю, у Modal отличный

Walden [00:50:48]: Респект Modal.

Swyx [00:50:48]: Респект Modal.

Cole [00:50:50]: Думаю, у Modal отличное предложение. Оно охватывает все нужные тебе куски песочницы, снапшоты — довольно большой из них, и учитывая, что они также предлагают GPU, думаю, это довольно приятное предложение в целом.

Swyx [00:51:04]: тут без споров.

Walden [00:51:07]: Modal отличный, особенно, думаю, их контейнерное предложение — самое естественное, и поэтому особенно если ты готов отказаться от требований полноценной VM, Modal — реально обширное место, где можно что-то быстро поднять.

Swyx [00:51:20]: Есть ли момент — так, Modal очень Python-ориентированный, а у меня ощущение, что большинство нагрузки реально сместилось в JavaScript. Не знаю, есть ли у вас такое же ощущение. Так что, окей, когда я начинал Landspace, и IE, и все эти штуки, у меня было примерно 50/50 Python и JS, верно? Грубо. Думаю, сейчас это неверно. Думаю, JS победил. Не знаю, есть ли у вас… может, я преувеличиваю, и может, для cognition есть C#, Java и что угодно. Но для новых greenfield-приложений — есть ли у вас такое ощущение? Получаете такой посыл? Имеет ли это значение?

Cole [00:51:52]: Думаю, большинство библиотек, которые я вижу в этом пространстве, Python-native в первую очередь, особенно в

Cole [00:51:58]: пространстве observability. При этом, думаю, есть довольно большая привлекательность в том, чтобы иметь всю систему на одном языке. Особенно когда у тебя и фронтенд, и бэкенд общаются, ты можешь иметь один центральный тип, что очень приятно.

Swyx [00:52:11]: Это мой аргумент против Modal — что тогда тебе надо запускать JS. Ты можешь запускать JS внутри Modal. Просто это один лишний шаг, который не нативен для рантайма. Не знаю, есть ли

Walden [00:52:22]: Не знаю

Swyx [00:52:23]: Отзывы. Есть у тебя цифры? Не знаю.

Walden [00:52:25]: единственное, что мне не нравится в Python, — это что когда ИИ пишет Python, он всегда делает страннейшие паттерны, и

Swyx [00:52:32]: О, потому что он мешает два и три или что?

Walden [00:52:34]: Думаю, что-то про смешивание двух и трёх, да. Я не знаю, видишь ли ты это. Оно всегда пытается делать hasattr на объектах, типа

Cole [00:52:41]: О боже.

Walden [00:52:41]: Но это типа — а ты не должен так делать. Оно должно выдавать ошибку, если бы там

Swyx [00:52:45]: Потому что он обучается на коде библиотек?

Cole [00:52:47]: Думаю, это больше похоже на

Cole [00:52:48]: Из того, что я видел, это больше похоже на механизм reward hacking, где оно по сути не хочет

Walden [00:52:54]: Оно никогда не выдаст ошибку.

Cole [00:52:54]: Оно не хочет, чтобы код упал. И поэтому оно — даже когда оно знает, что атрибут есть, оно вызовет getattr на a, и для многих моих клиентов, которые перешли к более автономному кодингу, мы внесли это как правило линтинга: если ты делаешь getattr, твой пул-реквест упадёт.

Сигнатуры slop-а: комментарии, обратная совместимость и типы

Swyx [00:53:12]: О, это забавная тема. Можешь рассказать подробнее? Что ещё является признаком ИИ-кодинга, против чего тебе надо ставить заслоны?

Walden [00:53:21]: Так вот, мы как раз перед этим говорили про Opus 4.7. Одна из вещей, которую любит делать эта новая модель, — она пишет много комментариев. Не то чтобы она комментирует каждую строку, но пишет абзацы, целые PRD, поверх каждой функции. Но скажу, к её чести: это не slop-описания вроде тех, что были раньше. «О, вот что делает эта функция». Это типа «О, вот реально рассуждение и почему мы выбрали этот подход, и какие были альтернативы, и почему нам не стоит делать эти альтернативы». Всё ещё слишком много информации, но я задаюсь вопросом — может, это на самом деле направленно верно, если ты хочешь системы, которые могут сами себя поддерживать в долгосрочной перспективе.

Swyx [00:54:04]: О, они пишут спеки прямо в коде (inline).

Walden [00:54:05]: Держат весь контекст и в коде тоже. Да.

Swyx [00:54:07]: То есть ты одобряешь?

Walden [00:54:09]: Я — но в то же время это такая хитрая проблема. Может, мы просто дадим нашим пользователям какую-то настройку, насколько многословным ты хочешь это видеть. Мне это не полюбилось. Честно, я просто — мне нравится комментарий, но, пожалуйста, убери его. Но я мог бы — я мог бы представить мир, где, может, что-то в этом роде станет реальностью. Не знаю, знаете ли вы про GitAI. Так что

Swyx [00:54:32]: Мы об этом говорили, да.

Walden [00:54:33]: GitAI, идея за ним в том

Swyx [00:54:34]: Я открою

Walden [00:54:35]: Что если ты запускаешь агента, то сами промпты, которые ты отправляешь агенту, должны храниться рядом с кодом внутри Git-метаданных, чтобы будущие агенты могли на них ссылаться, может, боты ревью кода могли на них ссылаться. И это идеальный мир, где твой контекст того, почему были приняты решения, постоянно живёт рядом с твоим кодом. И вот это, может, более скрытая версия этого подхода — писать огромные PRD на каждый комментарий.

Swyx [00:55:01]: Я жду настоящего «бычьего» сценария, где мы вообще избавимся от Git. Мы не — я пока не там, но я ищу этого, потому что это был бы большой сдвиг.

Cole [00:55:11]: На тему видимого slop-а — паттерн, который я часто вижу конкретно в GPT-моделях, это обратная совместимость любой ценой

Cole [00:55:21]: Где оно делает эти странные import-export, чтобы ему не пришлось менять имена там, где были модули. И я видел, как Claude 4.6 тоже начинает так делать.

Cole [00:55:33]: И опять же, думаю, это то самое поведение reward hacking, где оно не хочет, чтобы случился сбой, и ты можешь это устранить через Semgrep или другие инструменты, где такое поведение довольно легко выявить. Но это то, чему учишься только через ремесло — просто видя паттерны кода. Нетипизированные кортежи — реально большая проблема: опять же, просто пихай туда any, dict string any. И снова, ты можешь устранить это через линтинг.

Локальное тестирование, mock-серверы и готовые к ИИ кодовые базы

Swyx [00:56:01]: Отлично. Да. Какие-то ещё — итак, линтинг, какие-то ещё инструменты? Devin Review, конечно. Теперь не такой бесплатный, но всё равно использую.

Walden [00:56:10]: Ну, одна вещь, которую, думаю, мы пытаемся рекомендовать командам по мере того, как они используют больше ИИ-агентов, — это возвращает к той самой штуке про локальное тестирование. В конечном счёте ты хочешь, чтобы твой агент мог сделать всё целиком — не просто написать код, но реально запустить его и протестировать. А многие кодовые базы не обязательно были построены под это с самого начала. Например, тебе, вероятно, нужна локальная настройка БД, локальный Docker Compose и Postgres, чтобы было так, что тебе не нужно давать агенту какие-то безумные продакшен-креды, чтобы реально запустить и протестировать его код. Мы также внутри сделали большой сдвиг, чтобы многие из наших ключевых компонентов кода были тестируемы как чисто локальная разработка без необходимости реально интегрироваться с какими-либо живыми сервисами по этой причине. И, честно, чем старше компания, тем больше тебе надо менять, чтобы сместиться в этом направлении. Но ты можешь использовать ИИ, чтобы помочь тебе выполнить эту миграцию сегодня.

Swyx [00:57:02]: Чем старше, чем старше компания, тем больше тебе надо менять, чтобы делать локальную разработку?

Walden [00:57:05]: Думаю, да.

Swyx [00:57:06]: Или я неправильно понимаю? То есть ты говоришь

Walden [00:57:08]: Или зачастую

Swyx [00:57:08]: Большинство людей просто строят с полной интеграцией со всем своим хозяйством, и нет кодового пути, чтобы переключить это на локальный режим.

Walden [00:57:14]: Особенно когда есть много разных сервисов и у тебя микросервисная архитектура — сделать этот сдвиг, чем больше кодовая база, тем тяжелее это. Наверное, если бы ты построил это правильно с самого начала, думаю, это было бы возможно. Но также — есть много компаний в мире, которые начали до того, как Docker стал штукой, и поэтому ты вынужден делать миграцию в какой-то момент.

Swyx [00:57:35]: Ну, Devin хорош, очень хорош в создании mock-серверов. Верно? Так что, и нет, ну — один из проектов, который я реально хочу — это типа Little Snitch. Не знаю, слышали ли вы о нём.

Cole [00:57:44]: Я запускаю Little Snitch на своём компьютере.

Swyx [00:57:46]: Это просто типа — есть «человек посередине», но оно показывает тебе весь трафик, идущий туда-сюда. Но потом отсюда ты можешь реконструировать сервер, верно? И потом создать локальные mock-и, так что ты можешь локально замокать всё, если просто понаблюдаешь трафик немного.

Cole [00:57:58]: Это интересная идея.

Swyx [00:58:01]: круто. Не знаю, выйдет ли из этого что-то, но я хотел, может, немного поговорить про утечку CloudCode, потому что обычно если у меня в гостях человек из Anthropic, я не могу говорить про утечку CloudCode. Вы, ребята, что-нибудь вынесли из CloudCode? Я

Walden [00:58:19]: Так что если я скажу

Cole [00:58:19]: Я вижу это в первый раз

Walden [00:58:19]: Меня не очень заинтересовала утечка. Мы не потратили на неё много времени

Walden [00:58:24]: Если бы я сказал, но

Swyx [00:58:25]: Я просто, я просто закидываю удочку насчёт

Cole [00:58:28]: нет, я не очень,

Cole [00:58:29]: Исследовал её особо.

Windsurf, локальные агенты и облачные агенты

Swyx [00:58:30]: Справедливо. Окей, ещё одна последняя вещь перед тем, как мы закончим. Windsurf 2.0 — вы, ребята, отгрузили ещё одну штуку. Так что мета-контекст в том, что ты используешь фоновых агентов достаточно, и иногда тебе захочется вынести их на передний план. И эта маленькая передача от локального к облачному трудна для работы. И вот Devin — или Cognition — только что это сделали.

Walden [00:58:50]: Думаю, для меня самый большой пробел, который это пытается закрыть, — это, опять же, как сделать процесс тестирования настолько быстрым, насколько возможно. Когда оно может тестировать само и присылать тебе видео, это просто магия. Иногда есть просто реально трудные вещи, которые тебе всё же нужно стянуть локально. И мы просто хотим, чтобы Windsurf был твоим локальным командным центром для всех твоих агентов — фоновых, локальных, — и можешь представить: «О, окей, этому агенту нужно, чтобы я кое-что проверил. Я стяну это, переведу других своих агентов в фон, пойду протестирую. Окей, бум, готово. К следующему», верно? У тебя есть какая-то проблема, которую надо исправить в фоне, — просто клик, одобрить. Окей, настроил, запусти фонового агента, чтобы пойти её исправить. Я бы хотел мир, где мне не надо покидать это окно. Тогда, может, другое окно — мне надо разобраться, как перестать тратить так много времени в Slack, но, может, когда-нибудь мы захотим собрать все эти инструменты воедино.

Swyx [00:59:38]: И требует ли это, чтобы бинарники были в точности одинаковыми для локального против облачного?

Walden [00:59:46]: Так вот, забавная штука здесь в том, что поведение между локальными агентами и облачными агентами, думаю, на самом деле немного отличается в их идеальном состоянии. Думаю, локальных агентов ты хочешь видеть чуть более быстрыми и позволять пользователю принимать решения по вещам. Не пытаться автономно идти тестировать. В режиме фонового агента, где ты его запускаешь, думаю, агент должен просто исходить из того, что следующее сообщение, которое я отправлю пользователю, должно содержать всё, что пользователю от меня нужно, и не запускаться и останавливаться — продолжай работать и не останавливайся, пока у тебя нет тестирования — пока у тебя нет полного отчёта.

Swyx [01:00:19]: То есть это просто чуть другой промпт.

Walden [01:00:20]: Но по многим причинам — из-за всей работы, которую мы делаем, чтобы убедиться, что Devin работает с разными Git-провайдерами, что он работает с разными ОС и VM, — мы хотим, чтобы как можно больше этой логики было общим. Так что для наших собственных практических целей мы пытаемся разделять как можно больше.

Swyx [01:00:36]: Да. То есть я не могу представить, сколько работы — переходить туда-сюда, так что поздравляю с отгрузкой этого.

Swyx [01:00:45]: окей. Что-то ещё, что нам стоит осветить перед тем, как мы свернёмся? Просто что бы вы там ни обсуждали за обедом.

Walden [01:00:52]: может, сценарии использования. Какие, по-твоему, самые большие вещи, которые твои клиенты пытаются делать со своими облачными агентами сегодня?

Cole [01:00:59]: Хочешь просто спросить ещё раз, чтобы мы могли получить чистую склейку?

Swyx [01:01:02]: Потому что он пил воду. Да.

Walden [01:01:04]: Вещь, о которой я хотел поговорить, — сценарии использования. Что, по-твоему, главные вещи, с которыми твои клиенты приходят к тебе сегодня: «Эй, вот почему мы хотим настроить облачных агентов»?

Cole [01:01:15]: Думаю, самый простой и распространённый сценарий, который я вижу у всех, — это SRE-сценарии. Идея в том, что — где бы ни шли наши алерты, в Slack, или Datadog, или куда угодно, — мы хотим, чтобы агент был первым реагирующим на это. И это не обязательно значит, что агент реально решает проблему, но просто возможность собрать этот контекст заранее — огромна. Потому что, опять же, этот агент интегрирован в production-логи, базу данных. У него полная видимость, а со временем и плейбуки — как решать определённые проблемы. И вот это огромный выигрыш для команд, потому что мгновенно у тебя может быть полная траектория того, что происходит внутри системы, и зачастую реально пул-реквест прямо из этого, что довольно классный поток, который реально пережить: ошибка — пул-реквест — готово. OpenInspect поддерживает триггер для этого тоже, так что это может происходить полностью автономно.

Swyx [01:02:09]: Из Datadog конкретно, или просто

Сценарии использования: PM-ы, поддержка, безопасность и SRE

Cole [01:02:11]: он поддерживает Sentry, поддерживает обобщённый вебхук, и если кто-то хочет добавить Datadog, он может. Другие сценарии, которые я вижу, — это сценарии для не-разработчиков, будь то PM или маркетинговая команда. Я вижу много команд, где идея того, кто на самом деле контрибьютит код, начинает меняться. И во многих случаях PM, если есть просто быстрый багфикс, PM больше не создаёт issue. PM просто промптит через Slack, и пул-реквест потом создаётся. И вот, думаю, это огромный выигрыш. Думаю, этот тренд продолжится, где мы видим модификации кода, происходящие вне инженерии. Последний распространённый сценарий, который я вижу, — это поддержка клиентов. И вот, когда они сталкиваются с проблемой у клиента, они не до конца уверены, почему происходит это поведение. Раньше тот мир был: «Эй, есть баг, когда они попытались использовать эту фичу. Мы не знаем, что происходит». Ну, они теперь тегают это в Slack. Опять же, весь этот полный контекст готов. Они могут потом просто тегнуть инженерию и иметь полное понимание этой проблемы и полностью обойти прежние болевые точки типа «О, можешь получить от них больше информации?»

Walden [01:03:24]: Единственное, что я бы добавил поверх этого, что, думаю, я видел, — это непрерывное сканирование безопасности, непрерывное ревью безопасности — тоже очень большой. SRE-сценарий внутри мы воспринимаем как авто-триаж, потому что мы просто хотим, чтобы каждое сообщение, которое приходит и является алертом, баг-репортом, Devin просто начинал триажить ещё до всего остального. И мы так сильно вложились в этот сценарий, что по сути попытались сделать так, чтобы тебе вообще никогда не приходилось покидать Slack, чтобы взаимодействовать с этим. Так что, опять же, делая взаимодействия с Devin супер-плавными с момента, когда приходит репорт, до того, как он отвечает на репорт, и возможность задавать ему вопросы прямо там с полным контекстом кодовой базы обо всех проблемах. Очень связано с поддержкой клиентов тоже — думаю, одна вещь, которую мы обнаружили: CLI иногда могут быть очень трудны для людей, которые не технические. А онлайн чат-интерфейс, в котором любой может задавать вопросы и который супер-интуитивен и не предполагает, что у тебя есть какие-то технические знания, но при этом имеет доступ ко всем частям твоей кодовой базы, — супер-полезен для поддержки, для продавцов, для любого, кому может понадобиться получить ответы на свои вопросы о кодовой базе. Так что да, отличное замечание.

Swyx [01:04:32]: Это потенциально может быть очень дорогой сценарий. Есть ли какое-то правило, какое-то эмпирическое правило — сколько людям стоит на это тратить? Потому что у тебя неограниченный бюджет, но у других людей нет, да? Не знаю, это вообще отвечаемый вопрос, потому что, очевидно, это зависит от многих факторов. Но, наверное, типа

Cole [01:04:51]: Думаю, это реально зависит от того, как люди это используют. Думаю, если люди используют это ответственно и получают от этого ценность, то ты можешь типа определить бюджет. Распространённые цифры, которые я слышу, — где-то от 1000 на инженера до 5000 на инженера. Я не слышал ничего в районе 50 000 на инженера для ориентира.

Стоимость моделей, умная маршрутизация и компромиссы frontier

Swyx [01:05:12]: Мы туда доберёмся.

Walden [01:05:13]: Я видел, я видел, как цифры доходят так высоко, точно. Думаю, это также, думаю, будет большой темой грядущего года: мы увидим очень дорогие, очень умные frontier-модели, и мы также увидим людей, которые скажут: «Знаешь что? Мне больше не нужен frontier для многого из того, что я делаю», потому что некоторые frontier-модели на самом деле достаточно хороши для многой работы.

Swyx [01:05:36]: Также респект — ты пионер Smartfind, который является миксом.

Walden [01:05:39]: Мне реально интересен мир, где у тебя по сути есть гибридные системы frontier и sub-frontier, где ты используешь sub-frontier часть, чтобы быть реально быстрым, реально эффективным, и обращаешься к frontier части системы, чтобы по большей части всё же получать frontier-производительность.

Swyx [01:05:54]: Я пытаюсь искать, но поиск в Twitter совершенно сломан. Поле «from» просто полностью пропало. Это очень печально, потому что я реально хочу

Walden [01:06:04]: Не переживай. Возможно, мне придётся в какой-то момент сделать новый пост о возвращении Smartfind.

Swyx [01:06:10]: Anthropic теперь официально это перенял. Окей, круто. Думаю, на этом всё. Это реально отличное обсуждение, и здорово было заполучить вас, ребята. Фоновые агенты — теперь это штука, и все их строят. Мы, но мы много говорили про production-заботы и про то, ну, почему ты захотел бы предложить одну архитектуру вместо другой. Да, многое впереди, чего стоит ждать.

Walden [01:06:35]: Прямо сейчас в этом пространстве есть настоящий дух времени, думаю, — для компаний желание превратить себя в эти автономные кодинг-фабрики. И да, мы много делаем, чтобы это поддержать. И вот любые слушатели приглашаются прийти пообщаться с нами об этом — будь то используя Devin или работая с нами.

Подведение итогов: найм, консалтинг и внедрение агентов

Swyx [01:06:51]: Найм?

Swyx [01:06:53]: что конкретно, просто дай типа один профиль, который очень интересен.

Walden [01:06:58]: Думаю, люди недооценивают роль продуктовых инженеров с реально высоким вкусом в этом пространстве прямо сейчас.

Swyx [01:07:05]: И тест — это что ты отгрузил от начала до конца, что является продуктом со вкусом.

Walden [01:07:10]: Если ты отгружал вещи, которые считаешь со вкусом и которыми гордишься, тебе стоит, тебе стоит прийти пообщаться с нами.

Cole [01:07:15]: Для меня — любые бизнесы, которые ищут развития своей инженерной организации, большая часть консалтинга, который я делаю, как раз об этом. Команды, которые, может, начинают своё ИИ-путешествие, будь то с Cursor или Claude Code, но они ищут кого-то, кто поможет им сориентироваться в state-of-the-art и за его пределами — за рамками того первоначального развёртывания. Как уже упоминалось, есть большой объём усилий от «ты развернул фонового агента» до «как нам реально полностью интегрировать это в компанию и по-настоящему реализовать истинную ценность этого».

Swyx [01:07:45]: Окей. Что ж, спасибо вам, ребята, что пришли.

Walden [01:07:47]: Спасибо, что позвали нас.

Обсуждение этого эпизода

Latent.Space