Превратите Курсор и Виндсерф в Девина стоимостью 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:
- Похоже, что Devin обладает способностью понимать изображения, что позволяет ему выполнять внешние взаимодействия и тесты, но из-за ограничений курсора мы не можем передавать изображения в качестве входных данных внутреннему ИИ - это потребовало бы изменений в его реализации.
- Во время сбора данных 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. Эта эффективность сопоставима с Девином, если не выше.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...