커서와 윈드서핑을 한 시간 만에 월 $500 상당의 데빈으로 바꿔보세요!

AI 실습 튜토리얼7개월 전 업데이트 AI 공유 서클
2.8K 00

이전 게시물에서는 완전 자동화된 프로그래밍을 지원하는 에이전트 AI인 Devin에 대해 설명했습니다. 커서 및 윈드서프)는 프로세스 계획, 자체 진화, 도구 확장 및 완전 자동화된 운영 측면에서 상당한 이점을 제공합니다. 이를 통해 Devin 기존 에이전트 AI 도구와 차별화되는 차세대 도구로 거듭나세요.

하지만 한동안 Devin을 사용하면서 '빌더의 사고방식'이 다시 작동하여 다음과 같은 목표를 세우게 되었습니다. 윈드서핑 와 커서를 사용하여 Devin 90%를 구현했습니다. 또한 이러한 수정 사항을 오픈소스로 공개하여 커서나 윈드서프를 1분 이내에 Devin으로 전환할 수 있으며, 이 글에서는 이러한 수정 사항의 세부 사항에 초점을 맞추고 이 예제를 사용하여 에이전트 AI 시대에 얼마나 효율적으로 구축하고 확장할 수 있는지 보여드리겠습니다. 논의를 단순화하기 위해 커서를 이 도구의 프록시로 사용하고, Windsurf를 사용하려면 어떤 작은 조정을 해야 하는지에 대한 논의로 마무리하겠습니다.

인공물프로세스 계획자기 진화도구 확장자동화된 구현가격
Devin예(자동, 완료)예(자율 학습)멀티지원$500/월
커서(수정 전)제약 조건막힘제한된 도구 세트수동 확인 필요$20/월
커서 (수정됨)데빈과 가까워집니다.be데빈에 가깝고 확장 가능여전히 확인 또는 솔루션 필요$20/월
윈드서핑 (수정됨)데빈과 가까워집니다.예, 하지만 간접적으로데빈에 가깝고 확장 가능Docker 컨테이너에서 완전한 자동화 지원$15/월

 

프로세스 계획 및 자체 진화

앞서 언급했듯이 Devin의 흥미로운 측면은 조직화된 인턴과 비슷하다는 점입니다. 작업을 실행하기 전에 계획을 세우고 실행하는 동안 계획의 진행 상황을 지속적으로 업데이트합니다. 이를 통해 AI 관리자는 현재 진행 상황을 쉽게 추적할 수 있으며, AI가 원래 계획에서 벗어나는 것을 방지하여 더 깊은 사고와 작업 완료의 질을 높일 수 있습니다.

이 기능은 인상적으로 보일 수 있지만, 실제로는 커서에서 구현하는 것이 매우 간단합니다.

커서의 경우 폴더의 루트 폴더를 열고 파일 이름이 .cursorrules 이 파일은 특별한 파일입니다. 이 파일의 특별한 점은 커서 큐 단어를 수정하여 GPT나 Claude와 같은 백엔드 빅 언어 모델에 전달할 수 있다는 것입니다. 즉, 이 파일의 모든 내용이 백엔드 AI로 전송되는 큐워드의 일부가 되어 사용자 정의에 큰 유연성을 제공합니다.

예를 들어, 이 파일에 계획의 내용을 넣어 커서와 상호작용할 때마다 최신 버전의 계획을 받도록 할 수 있습니다. 또한 이 파일에서 커서가 작업을 시작할 때 계획을 생각하고 작성하도록 요청하고 각 단계 후에 계획을 업데이트하도록 요청하는 등 더 자세한 지침을 제공할 수도 있습니다. 커서가 에이전트를 사용하여 파일을 수정하고 .cursorrules 이 파일은 그 자체로 폐쇄형 루프를 생성하는 파일입니다. 매번 파일의 내용을 자동으로 읽고, 최신 업데이트를 파악하고, 업데이트 진행 상황과 다음 단계를 생각하면서 이 파일에 기록하여 항상 최신 업데이트를 유지할 수 있도록 합니다.

마찬가지로 자기 진화 기능도 같은 방식으로 실현할 수 있습니다. 에서 .cursorrules 파일에서 사용자가 오류를 수정할 때 문서화할 수 있는 재사용 가능한 경험이 있는지 여부를 커서가 반영하고 고려하도록 프롬프트를 추가합니다. 있는 경우, 재사용 가능한 경험이 있으면 .cursorrules 문서에 관련 부분을 추가하여 프로젝트별 지식을 축적할 수 있습니다.

대표적인 예로, 현재 대규모 언어의 모델들은 지식 마감 시한이 오래되어 많은 모델에서 GPT-4o의 존재를 인지하지 못하고 있습니다. "이 모델은 존재하지만 단지 모르는 것일 뿐입니다."라고 말하면 이 경험을 .cursorrules 나중에 같은 실수를 반복하지 않도록 문서화하여 학습과 개선을 가능하게 합니다. 하지만 이 역시도 단서가 얼마나 효과적인지에 따라 달라질 수 있으며, 때로는 우리가 알고 있어야 할 지식을 놓치거나 기록하지 못할 수도 있습니다. 이 경우 자연어를 사용하여 직접 기록하도록 유도할 수도 있습니다. 이러한 보다 직접적인 접근 방식은 AI의 경험과 성장을 가능하게 할 수도 있습니다.

결과적으로 .cursorrules 문서와 몇 가지 팁과 요령을 참고하면 기존 에이전틱 AI 프로그래밍 도구에 Devin의 프로세스 계획 및 자체 진화 기능을 추가할 수 있습니다.

윈드서핑을 사용하는 경우 한 가지 차이점이 있습니다. 아마도 보안상의 이유로 AI가 직접적으로 .windsurfrules 파일입니다. 따라서 다른 파일(예: scratchpad.md). In .windsurfrules 문서에는 각 사고 과정 전에 스크래치패드를 확인하고 거기서 계획을 업데이트해야 한다고 명시되어 있습니다. 이 간접적인 방법은 직접 배치하는 것만큼 효과적이지 않을 수 있습니다. .cursorrules AI가 에이전트에게 전화를 걸어 피드백을 바탕으로 생각해야 한다는 점에서 여전히 작동하지만 실제로는 작동합니다.

 

도구 확장

커서에 비해 Devin의 주요 장점 중 하나는 더 많은 도구를 사용할 수 있다는 점입니다. 예를 들면 다음과 같습니다.브라우저를 불러서 검색하고, 웹을 탐색하고, LLM 인텔리전스를 사용하여 콘텐츠를 분석할 수도 있습니다!. 커서는 기본적으로 이러한 기능을 지원하지 않지만 다행히도 이러한 기능을 .cursorrules 커서의 프롬프트 단어를 직접 제어하고 커서에 명령 실행 기능이 있다는 사실은 또 다른 폐쇄 루프를 만듭니다. 미리 작성된 프로그램(예: Python 라이브러리 또는 명령줄 도구)을 준비한 다음 이를 .cursorrules 커서가 이러한 도구에 대해 소개하여 커서가 지금 바로 사용법을 익히고 작업을 완료할 수 있도록 합니다.

실제로 도구 자체는 커서를 사용하여 몇 분 안에 작성할 수 있습니다. 예를 들어 웹 브라우징 기능의 경우 Devin.cursorrules 참조 구현은 다음에서 제공됩니다. 자바스크립트 집약적인 웹사이트의 경우 Python의 요청 라이브러리 대신 브라우저 자동화 도구(예: playwright)를 사용하는 등 몇 가지 기술적인 결정에 유의해야 할 사항이 있습니다. 또한, 단순히 아름다운 수프를 사용하여 웹 페이지의 텍스트 콘텐츠를 추출하는 것이 아니라, LLM과 더 잘 소통하고 후속 콘텐츠를 이해하고 크롤링하는 데 도움을 주기 위해 클래스 이름과 하이퍼링크 등 보다 자세한 기본 정보를 보존하고 보다 기본적인 수준에서 후속 크롤러를 작성하는 LLM의 기능을 지원하는 마크다운 형식으로 변환하는 특정 규칙을 따릅니다.

마찬가지로 검색 도구의 경우, 작은 세부 사항이지만 Bing과 Google 모두 API 검색이 클라이언트 측 검색보다 훨씬 품질이 떨어지는데, 이는 주로 다른 팀에서 API와 웹 인터페이스를 유지 관리하기 때문입니다. 하지만 DuckDuckGo는 이러한 문제가 없으므로 레퍼런스 구현에서는 DuckDuckGo의 무료 API를 사용합니다.

심층 분석을 위한 자체 인텔리전스 사용과 관련하여, 이는 비교적 복잡합니다. 위의 두 도구 모두에서 웹 페이지의 콘텐츠를 stdout으로 인쇄할 때 해당 텍스트 콘텐츠가 LLM에 대한 Cursor의 단서의 일부가 되어 해당 텍스트 콘텐츠를 지능적으로 분석할 수 있습니다. 하지만 반대로 Devin은 LLM을 사용하여 상대적으로 많은 양의 텍스트를 일괄 처리할 수 있는 고유한 기능을 가지고 있는데, 이는 Cursor가 할 수 없는 방식입니다. 이를 위해 추가 도구를 구현했는데, 시스템에서 API 키를 미리 설정한 다음 도구가 GPT, Claude 또는 기본 LLM API를 호출하도록 하여 Cursor가 LLM을 사용하여 텍스트 일괄 처리를 할 수 있도록 하는 매우 간단한 방법입니다. 제 레퍼런스 구현에서는 자체 네이티브 vllm 클러스터를 사용하지만 수정은 매우 간단합니다. base_url 줄을 제거하기만 하면 됩니다.

이러한 수정에도 불구하고 커서의 제한으로 인해 구현할 수 없는 두 가지 도구가 여전히 존재합니다:

  1. Devin은 이미지 이해 기능을 갖추고 있어 프론트엔드 상호작용과 테스트를 수행할 수 있는 것으로 보이지만, 커서의 한계로 인해 이미지를 백엔드 AI에 입력으로 전달할 수 없으므로 구현을 변경해야 합니다.
  2. 데이터 수집 중 크롤링 방지 알고리즘에 의해 봇으로 표시되지 않는 반면, 당사의 웹 검색 도구는 종종 캡차가 발생하거나 차단되는 경우가 있습니다. 이 문제는 고칠 수 있는 문제일 수도 있고 아직 연구 중이지만 Devin의 고유한 강점 중 하나인 것은 분명합니다.

완전 자동화된 구현

마지막으로 흥미로운 기능은 완전 자동화된 실행입니다. Devin은 완전히 가상화된 클라우드 환경에서 실행되므로 LLM 공격이나 위험한 명령의 잘못된 실행에 대한 걱정 없이 다양한 명령을 자신 있게 실행할 수 있습니다. 시스템 전체가 삭제되더라도 새 컨테이너를 시작하기만 하면 복구할 수 있습니다. 하지만 Cursor는 로컬 호스트 시스템에서 실행되므로 보안에 대한 우려가 큽니다. 그렇기 때문에 Cursor의 에이전트 모드에서는 명령을 실행하기 전에 각 명령을 수동으로 확인해야 합니다. 비교적 간단한 작업에서는 이러한 방식이 적합하지만, 이제 정교한 프로세스 계획과 자체 진화 기능을 갖춘 Cursor는 장기적으로 복잡한 작업도 처리할 수 있으므로 이러한 유형의 상호 작용은 그 기능과 호환되지 않는 것처럼 보입니다.

이 문제를 해결하기 위해 아직 Cursor를 기반으로 한 솔루션을 찾지 못했지만(업데이트: 2024년 12월 17일 Cursor에도 Yolo 모드라는 기능이 추가되었지만 여전히 Docker에서의 개발을 지원하지 않음), Windsurf는 이를 고려하고 있습니다. 디자인에서 볼 수 있듯이 Devin 스타일의 제품 형태를 지향하고 있으며, 현재 코드 편집기는 그 중간 형태에 불과합니다. 좀 더 구체적으로 설명하자면, Windsurf에는 Docker 컨테이너에 직접 연결하여 실행하거나 구성 파일이 있는 경우 새 Docker 컨테이너를 시작하고 초기화를 수행하며 로컬 폴더를 매핑하는 데 도움이 될 수 있는 기능이 있습니다. 따라서 실행되는 모든 명령(로컬 폴더 변경 제외)은 Docker 컨테이너에서 이루어지며 호스트 시스템에 영향을 미치지 않으므로 보안이 크게 강화됩니다.[샘플 구성]

또한 블랙리스트/화이트리스트 메커니즘을 도입하여 블랙리스트에 있는 명령은 자동으로 거부하고 화이트리스트에 있는 명령은 허용합니다. 블랙리스트나 화이트리스트에 포함되지 않은 명령의 경우 LLM은 호스트 시스템에 위험이 있는지 지능적으로 판단합니다(예: 폴더의 파일을 삭제하려는 경우 사용자에게 확인을 요청하지만 다음과 같은 명령은 허용합니다). pip install 이와 같은 일반 명령은 간단히 허용됩니다. 이 기능은 Docker 컨테이너에서 실행할 때만 활성화되는 것으로 보입니다. 호스트 시스템에서 명령을 실행하는 경우에는 여전히 커서와 유사한 환경이 제공되며 자주 확인해야 합니다. 또한 구성에서 자동화된 명령 실행을 사용하도록 설정해야 합니다.

 

요약

따라서 Devin의 제품 형태와 디자인 철학은 실제로 매우 발전된 것이지만, 기술적인 측면에서 볼 때 기존 에이전틱 AI 도구와의 격차는 생각만큼 크지 않다는 것을 알 수 있습니다. 커서나 윈드서프처럼 널리 사용되는 툴을 사용하면 1시간 이내에 Devin 90%의 기능을 구현할 수 있고, 수정 전에는 할 수 없었던 복잡한 작업도 수행할 수 있습니다. 예를 들어, 심층적인 데이터 분석을 위해 지난 5년간 인기 기술 주식의 수익률을 분석하는 작업을 Cursor에 할당했는데, 매우 상세하고 포괄적인 보고서를 제공했습니다. 또한 블로그에서 가장 인기 있는 100개의 게시물의 게시 시간을 크롤링하고 데이터를 GitHub 기여도 그래프 스타일로 시각화하도록 했는데, 이 작업은 완전히 자동화할 수 있습니다. 이러한 종류의 작업은 기존의 커서나 윈드서프에서는 불가능하지만, 간단한 수정을 통해 $20/월 도구의 결과를 $500/월 도구로 달성할 수 있습니다. 더 심층적인 실험도 해봤는데, 프론트엔드 개발에 전혀 익숙하지 않은 개발자로서 1시간 30분 동안 프론트엔드와 백엔드 모두에서 작업 보드를 만들었습니다. 이 효율성은 Devin과 비슷하거나 더 높은 수준입니다.

© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...