Devin Desktop проще всего принять за одно приложение с набором функций. На практике это шесть разных сред исполнения вокруг одного агента, и путаница между ними - главный источник "капризного" поведения продукта. Одно и то же слово в двух местах означает разные вещи, потому что за ним стоит разная файловая система, разные полномочия и разная граница доверия.
Наивная модель понятна: есть Devin, у него есть возможности, а где они показаны - деталь интерфейса. Из неё растёт ожидание, что настройка из редактора действует в облаке, что permission из одной сессии распространяется на все, что "агент" везде один и тот же. Каждое из этих ожиданий ломается на границе среды - обычно в неудобный момент, когда агент сделал не то, что вы считали разрешённым.
Ломается оно на том, что место исполнения задаёт и контекст, и права. Editor живёт локально и отвечает за Tab, Command, навигацию и preview, но не является автономным проектным агентом. Devin Local исполняется на вашей машине с собственной permission-моделью. Devin Cloud - на отдельной VM со своим окружением и сетью. ACP-агент обычно запускается локальным subprocess, но по чужим условиям. Cascade остаётся локально для legacy-процессов с другими modes, hooks, MCP и memories. Command Center - интерфейс управления, который сам задачу не исполняет, а собирает локальные и облачные сессии в одну очередь по статусам.
Почему сред именно несколько, а не одна универсальная. Каждая поверхность - это осознанный обмен близости к вашему состоянию на охват и автономию. Editor с его inline-механизмами Tab и Command сидит вплотную к курсору и вашему контексту, но не ведёт проект сам. Devin Cloud, наоборот, ничего не знает о том, что не попало в репозиторий и в конфигурацию облачного окружения, зато переживает закрытый ноутбук и держит долгий горизонт. Свести их в один исполнитель значило бы либо лишить локальную работу немедленности, либо навязать облачной задаче зависимость от вашей машины. Разные среды - это разные точки на одном компромиссе, а не случайное дробление.
Свести это в одну карту полезно один раз, чтобы выбирать поверхность осознанно, а не по тому, какое окно уже открыто. Ниже такая таблица: где среда исполняется, для чего она и какая у неё главная граница. К ней возвращаются, решая, куда вести конкретную работу.
Приём, который держит всё остальное, - всегда называть поверхность полностью. "Запусти тесты" неоднозначно: в Editor это терминал под вашими правами, в Devin Local - Exec под permission-правилами, в Devin Cloud - команда в чужой VM, в ACP - действие стороннего агента. Пока поверхность не названа, не определены ни контекст, ни полномочия, ни способ проверки результата.
Цена смешения конкретна. Отправить в облако задачу, которой нужны ваши локальные сервисы и незакоммиченные файлы, - получить агента, который честно работает не с тем состоянием. Выдать ACP-агенту доступ, не прочитав условия провайдера, - вынести код и биллинг за границу политики Devin: документация прямо предупреждает, что для внешних ACP-агентов privacy policy и legal terms Devin не применяются, а биллинг идёт напрямую с провайдером.
| Поверхность | Где выполняется | Для чего | Главная граница |
|---|---|---|---|
| Editor | Локально | Tab, Command, навигация, preview | Не автономный проектный агент |
| Devin Local | На вашей машине | Изменения по репозиторию, тесты, инструменты | Собственная permission-модель |
| Devin Cloud | Отдельная VM | Долгие и фоновые задачи | Отдельное окружение и сеть |
| ACP agent | Обычно локальный subprocess | Внешний совместимый агент | Условия, данные и биллинг провайдера |
| Cascade | Локально | Поддержка legacy-процессов | Другие modes, hooks, MCP и memories |
| Command Center | Интерфейс управления | Сессии, статусы, Spaces | Не исполняет задачу сам |
У каждой поверхности своя зона. Локальная правка с ясным diff - Editor или Devin Local. Долгая фоновая работа при закрытом ноутбуке - Devin Cloud. Конкретная сторонняя агентная экосистема - ACP после проверки провайдера. Старый workflow или memory - временно Cascade. Наблюдение за всем сразу - Command Center. Поверхность выбирают под задачу, а не под уже открытое окно.
Отдельная ловушка - слово "plugin", у которого здесь три разных значения. Первое - editor extension из каталога Open VSX внутри Desktop; в stable 3.7.16 прежний раздел Plugins переименован в Extensions. Второе - Windsurf Plugin, приносящий возможности Cognition в JetBrains и другие редакторы. Третье - Devin agent plugin, который упаковывает rules, skills, hooks, MCP и subagents и расширяет самого агента. Это три независимые цепочки доверия, и тип нужно называть полностью.
Проверять, где вы находитесь, стоит до, а не после действия. Посмотрите, какая поверхность активна и какой агент выбран; для ACP откройте условия провайдера; для extension - издателя, разрешения и источник обновлений; для agent plugin - что именно он приносит в rules, hooks, MCP и subagents. Каждый из этих взглядов отвечает на один вопрос: чья это среда и чьи правила в ней действуют.
Типичный провал - лечить симптом не на том слое. "Настройка не применилась" - потому что относится к другой поверхности; "агент не увидел файл" - потому что работает в облачном клоне; "команда не нашлась" - потому что живёт только в CLI или ушла в Next. Прежде чем искать баг, назовите поверхность и тип plugin - чаще всего объяснение уже в этом.