Intro

<aside> 🔥

Windsurf는 Agentic AI라고 하는 AI assistant tool을 제공합니다. 이것이 이전에 VS Code의 Copilot, Cursor 등과 어떤 차이점이 있는지 소개합니다.

</aside>

Body

1. Previous AI Assistant tool

1.1. Development workflow without AI

VS Code의 Copilot이나 Cursor에서의 AI tool은 단순히 작은 업무를 도와주는 역할을 해왔습니다. 예를 들어, 아래처럼 하나의 전체 workflow에서 각각의 task들이 존재한다고 해봅시다!

하나의 workflow

하나의 workflow

위의 그림에서 Navigate, Autocomplete, Edits, Command, Execute, Research, grep, Add File 이라고 하는 task들을 이전에는 사람이 전부 수행했었어야 했습니다. 그러나 2022년 Chat-gpt가 나오고 2023년 Chat-gpt를 활용한 AI Assistant tool들이 나오면서 상황은 바뀌게 됩니다.

1.2. Development workflow with AI

AI Assistant tool이 도와주는 영역

AI Assistant tool이 도와주는 영역

사람이 하던 task들을 일부 AI가 가져감으로써 한 사람이 수행할 수 있는 업무의 영역이 줄어들고, 혹은 다른 영역에서도 AI의 도움을 받게 되면서 업무 생산성이 획기적으로 향상했습니다.

knowledge Sources

knowledge Sources

또한, RAG라고 하는 어떤 외부 지식을 가져오는 기술의 발전으로 기존의 학습 베이스의 AI로는 커버하지 못하는 최신의 정보들과 로컬 파일들의 정보를 가져오는 영역까지 수행할 수 있는 형태로 발전하게 됩니다.

하지만, 여전히 다른 영역에서는 AI가 하지 않는 영역도 있고, 결국엔 전체 workflow를 AI로 전부 대체하지 못한다는 한계점이 존재합니다.

2. Current AI Assistant tool

2.1. Development workflow with Agent AI

Agent

Agent

Agent향의 서비스는 사람 or AI가 하던 task들인 Edits, Execute, Research, grep 을 통합(integrate)하고 재구성하여 하나의 단위를 구성합니다.

여기서 주의할 것은 여전히 LLM 호출은 여러번 진행한다는 점입니다. Agent는 하나의 LLM 호출로 여러 task를 푸는 것이 아닌 스스로 각 단계의 action을 정의하고 그에 필요한 도구(tool)을 사용하여 해당 task를 푸는 행동(action)을 수행하여 하나의 업무 단위로 통합하여 해결하는 것을 의미합니다. 이를 통해 좀더 복잡한 task들을 해결할 수 있습니다.

Cursor에서 component라는 기능이 위와 유사할 거 같습니다.

2.2. Problems about Agent AI

Problem 1 & 2 : Scoping & Reviewing

Problem 1 & 2 : Scoping & Reviewing

모든 것들을 알아서 할 것 같은 Agent도 여전히 사람의 개입이 필요한 지점은 있습니다.

  1. Scoping(업무 범위 설정) : 어떤 문제(problem)을 어느정도 범위까지 해결하고자 하는지는 프롬프트를 작성하는 사람의 손에 달려 있습니다.
  2. Reviewing(업무 결과물 리뷰) : Agent가 해결한 방안이 정말 적절한지, 그 해결 방안을 채택할지 의사결정을 하는 부분은 여전히 사람의 손에 달려 있습니다.

Problem 3 : Parallel Dev Work

Problem 3 : Parallel Dev Work

  1. Parallel Dev work (딴짓) : Agent는 결과물을 만들어 내는데 오랜 시간이 걸리기 때문에(high latency) Agent에게 명령을 준 사람은 보통 Agent에게 업무를 시키고 다른 업무를 하게 됩니다(딥리서치의 경우 보통 5분이 걸립니다). 결국, Agent가 사람이 병렬적으로 처리하고 있는 업무를 다 소화하지 못하므로 진정한 의미의 Agent라고 보기 어려운 측면도 있습니다.

2.3. Solve

위의 3가지 문제를 해결하기 위해 Windsurf는 Flows 혹은 collaborative agents 라고 하는 방법으로 한계점을 해결합니다.

Flows or collaborative agents

Flows or collaborative agents

이전에는 AI Agent에 업무를 위임하는(delegate) 방식이였다면, Windsurf는 각 단계별로 실시간 Agent가 각 task의 전후방에서 지원을 해주면서 같이 협업하는 방식(collaborative)의 agent 서비스를 제공합니다. 이를 통해 scoping 작업이 필요가 없어지면서 Parallel Dev work 문제도 해결이 됩니다.

2.4. Limitations

하지만 그럼에도 당연히 한계는 존재합니다.

스크린샷 2025-03-17 오전 12.23.53.png

Windsurf는 다음의 4가지 한계점을 말합니다.

  1. Data-distribution issues (데이터 분포) : 학습하지 않은 general performance에서 한계가 발생할 수 있습니다. 이건 사실 agent든 non-agent든 동일하게 발생할 수 있습니다.
  2. imperfect tool calling (불완전한 도구 호출) : 해당 task를 풀기 위한 적절한 tool을 선택하지 않았을 가능성도 존재합니다.
  3. Limited tool set (툴 셋팅 한계) : 해당 툴을 사람이 할 수 있는지 개발자가 할 수 있는지 명확하지 않은 등의 문제가 존재합니다.
  4. imcomplete intent (미완성된 의도) : Prompt가 명확하지 않아 Agent가 명확하게 알아듣지 못할 경우가 존재합니다.

Conclusion

그럼에도 제가 써본 결과 충분히 좋은 IDE라고 생각합니다.

개발을 하면서 어떤 부분은 알아서 좀 했으면 좋겠고, 어떤 부분은 내가 하면 좋을거 같은 부분들이 존재합니다. 그리고 Agent라는 자동화 use-case는 내가 그 결과물을 하나하나 체크하지 않고 결과물이 완성되기 때문에 결국 **“그 결과물을 신뢰할 수 있냐”**의 문제가 있습니다. 그렇기에 collaborative라고 하는 용어로 잘 우회한 것도 좋다고 생각합니다.

결국엔 사람이 코드를 볼 필요가 없어지는 날이 오겠지만, 아직은 코드를 보는 사람은 개발자이므로 개발자의 신뢰를 얻어야 하는 단계라고 생각합니다. 그 신뢰를 얻는 단계에 Windsurf가 먼저 치고 나가는 느낌이네요.


⬅️ 이전 페이지

Make snake game

➡️ 다음 페이지

Reference

https://learn.deeplearning.ai/courses/build-apps-with-windsurfs-ai-coding-agents/lesson/p6p2f/ai-code-assistants-101

<aside>

Topics

How to Install

Make snake game

Difference previous AI assistant tools

</aside>