Превратите Курсор и Виндсерф в Девина стоимостью 500 долларов в месяц за час!

В предыдущем посте мы рассказали о Devin, агентном ИИ, который позволяет полностью автоматизировать программирование. с другими инструментами агентного ИИ, такими как Курсор и Windsurf), он предлагает значительные преимущества в плане планирования процесса, саморазвития, расширения инструмента и полностью автоматизированной работы. Благодаря этому Девин Станьте новым поколением инструментов, чтобы отличаться от существующих инструментов агентского ИИ.

Однако после того, как Девин поработал с ним некоторое время, мой "менталитет строителя" снова включился и заставил меня Виндсерфинг и Cursor для реализации Devin 90%. Я также выложил эти модификации в открытый доступ, так что вы можете превратить Cursor или Windsurf в Devin менее чем за минуту. Эта статья посвящена специфике этих модификаций и использует этот пример, чтобы показать, насколько эффективно они могут быть созданы и масштабированы в эпоху агентского ИИ. Чтобы упростить обсуждение, мы будем использовать Cursor в качестве прокси для этого инструмента, а в завершение обсудим, какие небольшие изменения вам нужно будет внести, если вы захотите использовать Windsurf.

артефактпланирование процессасаморазвитиеРасширение инструментаАвтоматизированная реализацияцены
ДевинДа (автоматический, полный)Да (самообучение)мультиадъювант$500/месяц
Курсор (до модификации)ограниченияЗасорениеОграниченный набор инструментовТребуется ручное подтверждение$20/месяц
Курсор (модифицированный)Близко к Девину.бытьБлизко к Девину, масштабируемыйТребуется подтверждение или решение$20/месяц
Виндсерфинг (модифицированный)Близко к Девину.Да, но косвенноБлизко к Девину, масштабируемыйПоддержка полной автоматизации в контейнерах Docker$15/месяц

 

Планирование процессов и саморазвитие

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

Хотя эта функциональность может показаться впечатляющей, на самом деле ее очень просто реализовать на Cursor.

Для Курсора откройте корневую папку с файлом с именем .cursorrules Это специальный файл. Особенность этого файла в том, что он позволяет вам изменять слова подсказки курсора для передачи в внутреннюю модель большого языка, такую как GPT или Claude. Другими словами, все, что находится в этом файле, становится частью слова реплики, передаваемого внутреннему ИИ, что обеспечивает большую гибкость при настройке.

Например, мы можем поместить содержимое плана в этот файл, чтобы каждый раз, когда мы взаимодействуем с курсором, он получал последнюю версию плана. Мы также можем предоставить более подробные инструкции в этом файле, например, попросить курсор подумать и создать план в начале выполнения задачи, а также обновлять план после каждого шага. Поскольку Курсор может использовать Агента для изменения файла, а .cursorrules Это самостоятельный файл, который создает замкнутый цикл. Он автоматически считывает содержимое файла каждый раз, понимает последнее обновление и записывает обновленный прогресс и следующие шаги в этот файл по мере того, как он думает об этом, гарантируя, что у нас всегда есть последнее обновление.

Аналогичным образом может быть реализована и самоэволюционная функция. В .cursorrules файл, мы добавляем подсказки для курсора, чтобы отразить и рассмотреть, есть ли документируемый опыт повторного использования, когда пользователь исправляет ошибку. Если да, то он обновляет .cursorrules соответствующие части документа, тем самым накапливая знания о конкретном проекте.

Типичным примером является то, что современные модели больших языков не знают о существовании GPT-4o для многих моделей из-за более раннего срока хранения знаний. Если вы скажете ей: "Эта модель существует, просто вы о ней не знаете", она запишет этот опыт в .cursorrules документируется, чтобы в будущем не повторять тех же ошибок, что позволяет учиться и совершенствоваться. Однако это зависит от эффективности подсказки - иногда она может упустить моменты и не записать знания, которые, по нашему мнению, должны быть известны. В этом случае мы можем использовать естественный язык, чтобы напрямую попросить его записать эти знания. Такой более прямой подход может также способствовать опыту и развитию ИИ.

В результате только по .cursorrules документация и несколько советов и рекомендаций, мы можем добавить возможности планирования процессов и саморазвития Девина к нашим существующим инструментам программирования Agentic AI.

Если используется Windsurf, есть одно отличие: вероятно, по соображениям безопасности, он не позволяет ИИ напрямую изменять .windsurfrules Файл. Поэтому нам нужно разделить его на две части, используя другой файл (например, файл scratchpad.md). На сайте .windsurfrules В документации говорится, что перед каждым обдумыванием следует заглянуть в Scratchpad и обновить план там. Этот косвенный метод может оказаться не таким эффективным, как размещение его непосредственно на .cursorrules Это работает в том смысле, что все еще требует, чтобы ИИ вызывал агента и думал, основываясь на обратной связи, но это действительно работает.

 

Расширение инструмента

Одно из главных преимуществ Devin перед Cursor - возможность использовать больше инструментов. Например, он можетВызовите браузер для поиска, просмотра веб-страниц и даже используйте интеллектуальные возможности LLM для анализа контента!. Хотя Cursor не поддерживает эти функции по умолчанию, к счастью, поскольку мы можем использовать их с помощью .cursorrules Прямой контроль над словом подсказки курсора и возможность выполнения команд создают еще один замкнутый цикл. Мы можем подготовить заранее написанные программы (например, библиотеки Python или инструменты командной строки), а затем добавить их в .cursorrules Курсор знакомится с этими инструментами, чтобы уже сейчас научиться ими пользоваться и добиваться поставленных целей.

Фактически, сами инструменты могут быть написаны за считанные минуты с помощью Cursor. Например, для функциональности просмотра веб-страниц можно использовать Devin.cursorrules Эталонная реализация приведена в Есть некоторые технические решения, о которых следует знать, например, использование средств автоматизации браузера (например, playwright), а не библиотеки запросов Python для веб-сайтов с интенсивным использованием JavaScript. Кроме того, чтобы лучше взаимодействовать с LLM и помочь ему понять и просмотреть последующий контент, вместо того чтобы просто извлекать текстовое содержимое веб-страницы с помощью красивого супа, мы следуем определенным правилам преобразования его в формат Markdown, который сохраняет более подробную базовую информацию (например, имена классов и гиперссылки) и поддерживает способность LLM писать последующие краулеры на более базовом уровне.

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

Что касается использования Cursor собственного интеллекта для глубокого анализа, то здесь все довольно сложно. С одной стороны, Cursor в какой-то степени обладает такой возможностью - в обоих вышеупомянутых инструментах, когда мы печатаем содержимое веб-страницы в stdout, это становится частью сигнала Cursor для LLM, который позволяет ему интеллектуально анализировать это текстовое содержимое. Однако, с другой стороны, Devin обладает уникальной способностью пакетной обработки относительно больших объемов текста с помощью LLM так, как это не может сделать Cursor. Для этого мы реализовали дополнительный инструмент - очень просто задать API-ключ в вашей системе, а затем вызвать GPT, Claude или родной LLM API, чтобы дать Cursor возможность выполнять пакетную обработку текста с помощью LLM. В своей эталонной реализации я использовал собственный нативный vllm кластера, но его очень просто модифицировать - достаточно удалить строку base_url.

Несмотря на эти изменения, все еще есть два инструмента, которые не могут быть реализованы из-за ограничений Cursor:

  1. Похоже, что Devin обладает способностью понимать изображения, что позволяет ему выполнять внешние взаимодействия и тесты, но из-за ограничений курсора мы не можем передавать изображения в качестве входных данных внутреннему ИИ - это потребовало бы изменений в его реализации.
  2. Во время сбора данных Devin не отмечается как бот алгоритмами защиты от краулинга, в то время как наши инструменты веб-поиска часто сталкиваются с CAPTCHA или блокируются. Возможно, это можно исправить, и я все еще изучаю этот вопрос, но это, безусловно, одно из уникальных преимуществ Devin.

Полностью автоматизированная реализация

Последняя интересная функция - полностью автоматизированное выполнение. Поскольку Devin работает в полностью виртуализированной облачной среде, мы можем с уверенностью позволить ему выполнять различные команды, не опасаясь LLM-атак или некорректного выполнения опасных команд. Даже если вся система будет удалена, ее можно восстановить, просто запустив новый контейнер. Однако Cursor работает на локальной хост-системе, поэтому безопасность является серьезной проблемой. Поэтому в режиме агента Cursor нам нужно вручную подтверждать каждую команду перед ее выполнением. Это приемлемо для относительно простых задач, но теперь, благодаря продуманному планированию процессов и способности к саморазвитию, Cursor способен решать и долгосрочные сложные задачи, поэтому такой тип взаимодействия кажется несовместимым с его возможностями.

Для решения этой проблемы я пока не нашел решения на основе Cursor (обновление: 17 декабря 2024 г. Cursor также добавляет эту возможность, называемую режимом Yolo, но по-прежнему не поддерживает разработку в Docker), но Windsurf учитывает это. Как видно из его дизайна, он стремится к форме продукта в стиле Devin, а текущий редактор кода является лишь промежуточной формой. Более конкретно, Windsurf имеет функцию, которая может подключаться непосредственно к контейнеру Docker и запускать его там, или, если у нас есть файл конфигурации, она может помочь нам запустить новый контейнер Docker, выполнить инициализацию и отобразить локальную папку. Таким образом, все выполняемые команды (за исключением изменений в локальной папке) выполняются в контейнере Docker без влияния на хост-систему, что значительно повышает безопасность.[Образец конфигурации].

Кроме того, в нем реализован механизм черных/белых списков, который автоматически отклоняет команды из черного списка и разрешает команды из белого списка. Для команд, которые не попали ни в черный, ни в белый список, LLM интеллектуально определяет, есть ли риск для хост-системы - например, если он хочет удалить файл в папке, он запросит у пользователя подтверждение, но такие команды, как pip install Обычные команды, такие как эти, просто разрешены. Обратите внимание, что эта функция, похоже, включена только при работе в контейнерах Docker. Если мы выполняем команды на хост-системе, то ситуация все равно похожа на Cursor и требует частого подтверждения. Кроме того, автоматическое выполнение команд должно быть включено в конфигурации.

 

резюме

Таким образом, мы видим, что, хотя форма продукта и философия дизайна Devin действительно очень продвинуты, разрыв между ними и существующими инструментами агентского ИИ не так велик, как может показаться с точки зрения технического порога. Используя такие популярные инструменты, как Cursor и Windsurf (всего $15-20 в месяц), мы можем реализовать функциональность Devin 90% менее чем за час и использовать его для выполнения сложных задач, которые мы не могли выполнить до модификации. Например, я поручил Cursor проанализировать доходность популярных технологических акций за последние 5 лет для углубленного анализа данных, и он предоставил очень подробный и исчерпывающий отчет. Кроме того, я попросил Windsurf проанализировать время публикации 100 самых популярных постов в моем блоге и визуализировать данные в стиле графика вкладов на GitHub - задачи, которые он может полностью автоматизировать. Такие задачи невозможны с помощью традиционных Cursor и Windsurf - их может выполнить только Девин, но с помощью некоторых простых модификаций мы можем достичь результатов инструмента $20/месяц с помощью инструмента $500/месяц. Я даже провел более глубокий эксперимент: будучи разработчиком, совершенно незнакомым с front-end разработкой, я потратил полтора часа на создание доски объявлений, как front-end, так и back-end. Эта эффективность сопоставима с Девином, если не выше.

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...