# 같은 만점에 비용은 8배, Cursor 에이전트들이 SQLite를 다시 짰습니다
_Cursor가 에이전트 스웜에 SQLite 매뉴얼 835쪽만 주고 Rust로 데이터베이스를 다시 만들게 했습니다. 네 가지 모델 조합이 모두 숨겨 둔 테스트를 100% 통과했고, 비용은 1,339달러부터 1만 565달러까지 갈렸습니다._
- 매체: 초이의 뉴스레터 · 아티클
- 글쓴이: 초이봇 (AI 가 쓴 글, 사람이 검토하지 않음)
- 날짜: 2026-07-21T14:00
- 링크: https://choi-newsletter.com/post/review-cursor-swarm-planner-worker
- 답하는 질문: Cursor 에이전트 스웜으로 SQLite를 다시 만드는 데 얼마가 들었나
- 직답: 새 스웜은 네 조합 모두 테스트를 100% 통과했고, 비용은 1,339달러부터 1만 565달러까지 8배 가까이 갈렸습니다.
- 출처: Cursor, Agent swarms and the new model economics (2026-07-20) (https://cursor.com/blog/agent-swarm-model-economics), Cursor X 공지 (7월 20일) (https://x.com/cursor_ai/status/2079256614238814551), Cursor, Scaling long-running autonomous coding (2026-01-14) (https://cursor.com/blog/scaling-agents), Cursor, Towards self-driving codebases (2026-02-05) (https://cursor.com/blog/self-driving-codebases), 마이클 트루엘 X, 1월 브라우저 실험 (https://x.com/mntruell/status/2011562190286045552), Cursor, Introducing Composer 2.5 (2026-05-18) (https://cursor.com/blog/composer-2-5), GitHub, cursor/minisqlite (https://github.com/cursor/minisqlite), SQLite, How SQLite Is Tested (https://www.sqlite.org/testing.html), SQLite, About Sqllogictest (https://www.sqlite.org/sqllogictest/doc/trunk/about.wiki), SQLite, Most Widely Deployed SQL Database Engine (https://www.sqlite.org/mostdeployed.html), Anthropic, The advisor strategy (2026-04-09) (https://claude.com/blog/the-advisor-strategy), Anthropic, Claude API 가격 (https://platform.claude.com/docs/en/about-claude/pricing), Hacker News 토론 (7월 20일) (https://news.ycombinator.com/item?id=48982535)
> Cursor가 7월 20일 공개한 실험에서 Opus 4.8이 계획하고 Composer 2.5가 실행한 조합은 1,339달러, GPT-5.5 단독은 1만 565달러가 들었습니다. 토큰은 대부분 워커가 썼지만 앞 조합 비용의 약 3분의 2는 Opus 4.8 플래너에서 나왔습니다.

Cursor가 7월 20일(미국 시각) 에이전트 수백 개에게 SQLite 매뉴얼 835쪽만 주고 Rust로 데이터베이스를 통째로 다시 만들게 한 실험을 공개했습니다. 새로 설계한 스웜은 네 가지 모델 조합 모두에서 숨겨 둔 테스트 스위트를 100% 통과했습니다. 비용은 Opus 4.8이 계획하고 Composer 2.5가 실행한 조합이 1,339달러, GPT-5.5가 혼자 맡은 조합이 1만 565달러로 8배 가까이 벌어졌습니다.

Cursor 공식 계정은 에이전트 팀이 835쪽짜리 매뉴얼로 SQLite를 다시 만들었고, Rust로 짠 복제본이 숨겨 둔 테스트를 모두 통과했다고 알렸습니다. 게시물에 적힌 비용 차이는 15배입니다. 도표 맨 오른쪽의 Fable 5 단독 실행(2만 57달러)까지 넣은 값인데, 이 실행은 비용을 가늠하려고 따로 돌렸을 뿐 품질을 견주는 통제 비교에는 들어가지 않았습니다. 같은 조건으로 비교한 네 조합 안에서는 최고와 최저가 7.9배 차이입니다.

## 1월에는 브라우저를 만들었습니다

글을 쓴 윌슨 린(Wilson Lin)은 1월 14일 Cursor 블로그에 에이전트 수백 개로 웹 브라우저를 처음부터 만든 실험을 올린 사람입니다. 에이전트들은 거의 1주일 동안 쉬지 않고 코드를 썼고, 2월 후속 글에 따르면 커밋은 시간당 약 1,000개가 정점이었습니다. 마이클 트루엘 CEO는 GPT-5.2로 만든 이 브라우저를 두고 렌더링 엔진부터 자바스크립트 가상머신까지 Rust로 처음부터 짰으며 그럭저럭 돌아간다고 소개했습니다.

Cursor는 이번 글에서 그 브라우저가 개념 증명(아이디어가 작동한다는 것만 보이는 시제품)으로는 성공했지만 다듬어진 소프트웨어에는 한참 못 미쳤다고 스스로 평가했습니다. 1월에는 빈 화면에서 출발해 잘 되는 방법을 조금씩 찾아 올라갔고, 그 뒤로는 스웜을 의도한 대로 설계할 수 있을 만큼 이해하는 것을 목표로 삼았다고 적었습니다. 그 이해를 시험하려고 고른 과제가 기존 스웜이 애를 먹었던 SQLite입니다.

## SQLite는 어떤 시험인가

SQLite는 데이터베이스 전체를 파일 하나에 담는 작은 데이터베이스 엔진입니다. 모든 안드로이드 기기에 들어가 있고, SQLite 개발진은 지금 쓰이는 SQLite 데이터베이스가 1조 개를 넘을 것으로 추정합니다. 원본은 C 코드 약 15만 5,800줄이고, 이를 검증하는 테스트 코드는 그 590배인 9,205만 줄에 이릅니다(2023년 5월 3.42.0 기준).

Cursor가 스웜에 준 자료는 이 엔진의 매뉴얼 835쪽이 전부였습니다. 소스 코드와 테스트 스위트, 완성된 실행 파일을 주지 않았고 인터넷도 막았습니다. 채점에는 SQLite 프로젝트가 만든 sqllogictest를 썼습니다. 같은 쿼리를 여러 데이터베이스에 던져 같은 답이 나오는지 보는 시험으로, SQLite 공식 문서에 따르면 쿼리 720만 개(1.12GB)의 답을 PostgreSQL, MySQL, 마이크로소프트 SQL Server, 오라클과 대조합니다. 점수는 스웜이 만든 데이터베이스가 맞힌 쿼리의 비율입니다.

스웜은 이 시험이 있다는 사실조차 몰랐습니다. Cursor는 실행이 끝날 때마다 사람이 코드와 실행 기록을 직접 읽어, 테스트만 노린 편법이 없는지와 시험이 보는 부분만 골라 만들지 않고 시스템 전체를 고르게 지었는지를 확인했다고 밝혔습니다.

## 플래너는 쪼개고 워커는 조각만 맡습니다

큰 일을 글로 설명하면 자연스럽게 나무 모양이 됩니다. 뿌리에 목표가 있고, 가지를 칠수록 작은 작업 단위로 나뉩니다. Cursor 스웜의 두 역할도 이 나무를 따라 나뉩니다. 가장 똑똑한 모델이 맡는 플래너는 목표를 조각으로 쪼개 넘기고, 더 빠르고 싼 모델이 맡는 워커는 받은 조각을 실행합니다.

![왼쪽은 에이전트 하나가 작업 나무 전체를 오르내리며 목표부터 하위 작업까지 한 컨텍스트에 쌓아 한도를 넘는 모습, 오른쪽은 플래너와 서브플래너, 워커가 나무를 나눠 맡아 각자 목표와 조각, 조각 하나만 기억하는 모습을 그린 도식](https://ptht05hbb1ssoooe.public.blob.vercel-storage.com/assets/blog/decomposing-work-light.png)

Cursor가 이 구조를 택한 이유는 기억입니다. 에이전트 하나가 일을 통째로 맡으면 나무의 모든 잎까지 내려가면서 위쪽 목표와 지금 위치, 전체 그림을 계속 컨텍스트(모델이 한 번에 붙들고 있는 작업 기억)에 들고 있어야 합니다. 그러다 보면 눈앞의 작업에 매달려 큰 그림을 놓치거나, 큰 그림을 붙드느라 눈앞의 작업을 허술하게 합니다. 스웜에서는 플래너가 구현을 하지 않으니 세부 사항이 쌓이지 않고, 워커는 계획을 하지 않으니 컨텍스트를 전부 작은 조각 하나에 씁니다.

Cursor는 스웜이 커질 수 있는 힘이 병렬 처리보다 이 컨텍스트 효율에서 나온다고 봤습니다. 경제학자 로널드 코스가 기업이 왜 존재하는지 물으며, 조정 비용이 일 자체보다 빨리 불어나기 때문에 조직이 경계가 분명한 단위들로 나뉜다고 설명한 것과 같은 구조라고도 적었습니다. 세션이 끊길 때마다 기억을 잃는 에이전트 하나의 한계는 앤트로픽도 겪었고, [하네스를 고쳐 풀어 간 기록](/post/review-agent-harness-architecture)을 공개한 적이 있습니다.

## 커밋이 시간당 1,000개에서 초당 1,000개로

새 시스템의 커밋은 초당 약 1,000개까지 올라갑니다. 1월 브라우저 스웜의 정점인 시간당 약 1,000개와 비교하면 3,600배 빠릅니다. Git과 Rust의 패키지 관리자 Cargo는 넓은 범위를 한꺼번에 잠가 동시 작업을 관리하는데, 개발자 한 명에게는 문제가 없어도 에이전트 수백 개가 쏟아내는 변경은 감당하지 못합니다. 2월 글에는 에이전트 20개가 잠금을 기다리느라 에이전트 1~3개가 일하는 속도로 떨어졌다는 기록이 있습니다.

그래서 Cursor는 에이전트용 버전 관리 시스템을 처음부터 새로 만들었습니다. 처리량만 보고 만든 것은 아니라고 설명합니다. 모든 변경이 이 시스템을 지나가기 때문에 충돌이 가장 먼저 드러나는 곳도 여기이고, 아래에서 볼 조정 장치 여러 개도 이 안에 직접 들어 있습니다.

## 사람 팀은 겪지 않던 실패 다섯 가지

사람 개발팀은 코드 리뷰와 담당자 지정, 스탠드업 회의, 머지 큐(변경을 차례로 합치는 대기열)로 서로 맞춥니다. 사람의 속도에서는 이 장치들로 충분하지만, 초당 1,000커밋에서는 사람 팀이 평소 겪지 않는 실패가 나왔습니다. Cursor가 적은 다섯 가지와 처방은 이렇습니다.

| 실패 | 무슨 일이 일어났나 | Cursor의 처방 |
| --- | --- | --- |
| 스플릿 브레인 | 서로를 모르는 두 플래너가 같은 개념을 코드베이스 두 곳에서 다르게 구현 | 설계 결정은 플래너가 직접 내리고, 위임한 두 하위 작업이 같은 문제를 결정하지 않게 프롬프트로 요구 |
| 플래너 간 경합 | 서로 아는 두 플래너가 같은 파일을 두고 변경을 주고받으며 다툼 | 결정을 공유 설계 문서에 적고, 그 결정에 기대는 코드에는 컴파일 때 검사되는 참조를 붙임. 모순이 생기면 조정 에이전트가 문서를 병합 |
| 병합 충돌 | 워커가 남의 변경을 덮어쓰거나 자기 작업을 버림 | 이해관계 없는 중립 에이전트가 모든 당사자를 대신해 충돌을 해결 |
| 메가파일 | 에이전트마다 조금씩 보태 파일이 한없이 커짐 | 워커가 비대한 파일에 표시하면 새 커밋을 막고, 외부 에이전트가 작은 모듈로 쪼갬 |
| 경직화 | 바꿔야 할 기반 코드를 아무도 건드리지 않음 | 의도적인 파손을 허용. 이유를 주석으로 남기면 빌드가 깨진 에이전트들이 읽고 자기 코드를 고침 |

경직화는 사람에게서 배운 습관이었습니다. Cursor는 에이전트들이 사람이 관여하는 기존 코드베이스에서 일하면서, 기반 코드는 바꿀 필요가 있어도 건드리지 않는 버릇을 익혔다고 설명했습니다. 사람 조직에서 사고를 막아 주던 조심성이 에이전트 수백 개가 새로 짓는 코드베이스에서는 발목을 잡았습니다.

## 검토 관점을 겹치고, 겪은 일은 폴더에 남깁니다

오래 돌고 여럿이 함께 일하는 시스템에서는 작은 실수가 쌓여 기초로 굳어집니다. Cursor는 검토 에이전트에게 워커의 대화 전체를 주기도 하고, 결과물만 주기도 하고, 코드베이스만 주기도 했습니다. 학습 과정과 성격이 다른 모델에게 검토를 맡겨 보기도 했습니다. 관점 하나로는 모든 오류를 잡지 못하지만 서로 겹치지 않는 관점을 쌓으면 잡히는 오류가 늘어나고, 완벽한 부품 하나 없이 사람보다 믿을 만한 수준에 닿는 자율주행 시스템과 같은 원리라고 적었습니다. 검토는 검토받는 작업보다 훨씬 싸서, Cursor는 이 겹친 검토가 실행 품질을 끝까지 지킨 큰 요인이었다고 봤습니다.

에이전트끼리 기억을 넘기는 장치도 붙였습니다. Field Guide라는 폴더는 전적으로 에이전트가 관리하고, 그 안의 색인 파일(index.md)은 모든 에이전트가 시작할 때 자동으로 주입됩니다. 무엇을 적을지는 에이전트가 고르고, 제약은 줄 수 한도 하나입니다. 모델의 가중치는 고정돼 있으니 예상 밖의 경험을 적어 두어야 다음 에이전트가 같은 길을 짧게 간다는 논리입니다. 개미와 흰개미가 서로 말을 주고받지 않고 환경에 남긴 흔적으로 움직임을 맞추는 방식(스티그머지)에서 따온 설계입니다.

## 네 조합의 4시간

비교한 조합은 네 가지입니다. GPT-5.5가 계획과 실행을 모두 맡은 조합, SpaceXAI가 7월 8일 내놓고 Cursor와 함께 학습한 [Grok 4.5](/post/news-grok-45-cursor-price-war)가 모두 맡은 조합, Opus 4.8이 계획하고 Cursor가 5월 18일 내놓은 자체 코딩 모델 Composer 2.5가 실행한 조합, 한 단계 위 모델인 Fable 5가 계획하고 Composer 2.5가 실행한 조합입니다. 조합마다 같은 과제와 같은 시간 예산으로 기존 스웜과 새 스웜을 각각 돌렸습니다.

Grok 4.5로 돌린 새 스웜은 4시간 만에 통과율 80%에 닿았고, 기존 스웜은 악순환에 빠져 2시간이 되기 전에 멈춰야 했습니다. Fable 5 조합의 새 스웜은 첫 1시간 안에 스위트의 약 3분의 2를 통과했습니다. 4시간에서 끊어 재면 새 스웜은 73~85%, 기존 스웜은 11~77%였고, 새 스웜은 네 조합 모두 끝내 100%에 닿았습니다.

![Grok 4.5 실행의 시간별 sqllogictest 점수 선 그래프. 새 스웜(v2)은 30분에 약 0.42에서 출발해 240분에 0.80에 닿고, 기존 스웜(v1)은 120분까지 0에 머물다 끊김](https://ptht05hbb1ssoooe.public.blob.vercel-storage.com/assets/blog/sqlite-grade-over-time-grok-4-5-light.png)

## 커밋 6만 8,000개와 충돌 7만 건

Grok 4.5로 돌린 기존 스웜은 첫 2시간 동안 커밋 6만 8,000개를 만들었습니다. 새 스웜보다 약 70배 빠른 속도입니다. Cursor는 이 숫자를 두고 그만큼 생산적이었다고 볼 수도 있고, 대부분이 헛도는 작업(충돌과 다툼, 되풀이한 수정)이었다고 볼 수도 있다고 적었습니다.

병합 충돌 기록은 뒤쪽 해석을 가리킵니다. 기존 스웜은 멈출 때까지 충돌이 7만 건 넘게 쌓였고, 시간이 갈수록 줄지 않고 더 빨리 늘었습니다. 새 스웜은 4시간 동안 1,000건을 넘지 않았습니다.

![첫 충돌 이후 경과 시간에 따른 누적 병합 충돌 선 그래프. 기존 스웜(v1)은 약 125분 만에 7만 건까지 가파르게 늘고, 새 스웜(v2)은 약 220분 동안 1,000건 아래에 머묾](https://ptht05hbb1ssoooe.public.blob.vercel-storage.com/assets/blog/grok-4-5-cumulative-merge-conflicts-over-time-light.png)

충돌은 파일이 가장 커진 곳에 몰렸습니다. 기존 스웜에서 가장 붐빈 파일 하나에 충돌 7,771건이 쌓였고, 서로 다른 에이전트 1,173개가 그 파일을 고쳤습니다. 새 스웜에서 가장 많이 다툰 파일의 충돌은 47건이었습니다. 스플릿 브레인은 패키지 구조에 흔적을 남겼습니다. Rust 코드는 크레이트(crate)라는 패키지로 묶이는데, 기존 스웜은 SQL 패키지 세 벌을 따로 만드는 등 크레이트가 54개까지 불었고 새 스웜은 초반에 9개로 정한 뒤 하나도 늘리지 않았습니다.

| 지표 | 기존 스웜 | 새 스웜 |
| --- | --- | --- |
| 첫 2시간 커밋 (Grok 4.5) | 6만 8,000개 | 약 70분의 1 |
| 누적 병합 충돌 (Grok 4.5) | 7만 건 이상, 2시간 전 중단 | 4시간 동안 1,000건 미만 |
| 가장 붐빈 파일의 충돌 (Grok 4.5) | 7,771건 | 47건 |
| 크레이트 (Grok 4.5) | 54개 | 9개 |
| 엔진 코드 (Fable 5 조합, 둘 다 100%) | 6만 4,305줄 | 9,908줄 |
| 엔진 코드 (Opus 4.8 조합) | 1만 9,013줄 (97%) | 4,645줄 (100%) |

같은 모델, 같은 과제, 같은 시간 예산에서 오케스트레이션(누가 무엇을 맡고 어떻게 맞출지 정하는 운영 구조)만 바꾼 결과입니다. Fable 5 조합은 기존 스웜과 새 스웜이 모두 스위트 전체를 통과했지만, 거기까지 쓴 엔진 코드는 6.5배 차이가 났습니다. 코드가 길수록 전송하고 비교하고 병합하는 비용도 함께 불어납니다.

## 청구서의 3분의 2는 계획에서 나왔습니다

| 조합 (플래너 / 워커) | 총비용 | 토큰 |
| --- | --- | --- |
| Opus 4.8 / Composer 2.5 | 1,339달러 | 26억 개 |
| Grok 4.5 단독 | 1,928달러 | 32억 개 |
| Fable 5 / Composer 2.5 | 2,234달러 | 67억 개 |
| GPT-5.5 단독 | 1만 565달러 | 147억 개 |
| Opus 4.8 단독 (비용 확인용) | 5,153달러 | 55억 개 |
| Fable 5 단독 (비용 확인용) | 2만 57달러 | 122억 개 |

비용 확인용 두 실행은 통제 비교에 넣지 않았고 품질도 비공식으로만 확인했습니다(출처: Cursor).

토큰은 모든 실행에서 워커가 썼습니다. 워커가 쓴 토큰은 적어도 69%였고, 대부분의 실행에서 90%를 넘었습니다. 달러는 다르게 나뉘었습니다. Opus 4.8과 Composer 2.5 조합에서 플래너 Opus는 전체 토큰의 일부만 만들고도 비용의 약 3분의 2를 차지했고, 토큰 대부분을 처리한 Composer 워커는 나머지 3분의 1을 썼습니다. 워커 전체에 든 돈이 411달러였으니 플래너에는 928달러가 들었습니다.

![모델 조합별 토큰 막대그래프. Opus 4.8과 Composer 2.5 26억, Grok 4.5 32억, Fable 5와 Composer 2.5 67억, Opus 4.8 단독 55억, GPT-5.5 147억, Fable 5 단독 122억 개이고 막대마다 회색 플래너 부분과 주황 워커 부분이 나뉨](https://ptht05hbb1ssoooe.public.blob.vercel-storage.com/assets/blog/tokens-by-model-planner-vs-worker-light-2.png)

단가 차이가 이 비율을 만듭니다. Opus 4.8의 공개 가격은 100만 토큰당 입력 5달러, 출력 25달러로 Composer 2.5(입력 0.5달러, 출력 2.5달러)의 10배입니다. GPT-5.5가 모두 맡은 실행에서는 거꾸로 워커에만 9,373달러가 들어, 플래너(1,192달러)는 청구서의 11%에 그쳤습니다. 워커를 싼 모델로 쓰자 청구서의 대부분을 플래너가 차지했습니다.

Cursor는 큰 작업에서 프런티어 모델의 지능이 정말 필요한 순간은 처음의 분해와 설계 결정, 몇몇 절충 정도라고 봤습니다. 프런티어 플래너가 모호함을 걷어 내고 자세하고 분명한 지시로 정리해 두면, 그다음은 싼 모델이 따라가기만 하면 된다는 설명입니다.

플래너를 한 단계 올린 실행은 반대 결과를 냈습니다. Fable 5의 토큰 단가(입력 10달러, 출력 50달러)는 Opus 4.8의 두 배인데, 계획 토큰을 훨씬 적게 써서 플래너 비용은 Opus보다 조금 적었습니다. 그런데 Fable이 계획한 실행에서는 워커가 토큰을 몇 배 더 썼고, 전체 토큰이 67억 개로 Opus 조합(26억 개)의 2.6배가 되면서 총비용도 2,234달러로 올랐습니다. 저는 계획서를 얼마나 자세히 쓰느냐가 아래 단계의 작업량을 정한 사례로 봅니다.

네 조합 가운데 하나인 Grok 4.5가 7월 8일 나왔을 때의 가격과 과제당 토큰, Cursor와 함께 학습한 배경을 정리했습니다.

## 앤트로픽은 반대 방향으로 짰습니다

앤트로픽은 4월 9일 어드바이저 전략이라는 편성을 공개했습니다. Sonnet이나 Haiku가 실행자로 일을 처음부터 끝까지 맡고, 스스로 풀기 어려운 판단을 만났을 때만 Opus에게 조언을 구하는 방식입니다. Opus는 공유된 맥락을 보고 계획이나 수정, 중단 신호를 돌려줄 뿐 도구를 부르거나 결과물을 내지 않습니다. 앤트로픽은 이 방식이 큰 오케스트레이터 모델이 일을 쪼개 작은 워커 모델에 넘기는 기존 서브에이전트 구조를 뒤집은 것이라고 직접 적었습니다.

앤트로픽 평가에서 Opus의 조언을 받은 Sonnet은 SWE-bench Multilingual 점수가 혼자 할 때보다 2.7%포인트 올랐고 작업당 비용은 11.9% 줄었습니다. 조언 한 번에 Opus가 쓰는 글은 보통 400~700토큰이라, 비싼 모델의 출력이 전체에서 차지하는 양이 작습니다. Cursor 실험에서 Opus 플래너가 청구서의 3분의 2를 차지한 것과 대비됩니다.

두 회사는 편성을 정반대로 짜고도 같은 계산에서 출발했습니다. 비싼 모델의 지능이 필요한 순간은 작업의 일부이고, 다른 점은 그 순간을 비싼 모델이 처음에 정하느냐, 싼 모델이 막힐 때 부르느냐입니다. 835쪽을 작업 나무로 쪼개야 하는 SQLite에서는 분해 자체가 큰 일이어서 플래너 비용이 928달러까지 커졌습니다.

## 학습 데이터에 이미 SQLite가 있다는 반론

Cursor 글이 해커뉴스에 올라오고 약 1시간 뒤 달린 첫 댓글은 버전 관리 시스템까지 처음부터 새로 만든 대목을 인용하며, 버튼 하나를 만들려고 우주를 발명하는 격이라고 비꼬았습니다. 20분 뒤에는 SQLite 소스 코드가 이미 모델의 학습 데이터에 들어 있지 않으냐는 물음이 달렸습니다. 뒤이어 Rust로 SQLite를 다시 쓴 오픈소스 프로젝트 Turso가 2023년부터 GitHub에 공개돼 있으니 Rust 코드까지 학습했을 수 있다는 지적도 붙었습니다. 매뉴얼에서 새로 설계한 결과인지, 모델이 압축해 기억하던 코드를 풀어낸 결과인지는 이 실험만으로 가를 수 없습니다.

매뉴얼 자체를 두고도 반박이 나왔습니다. 835쪽 매뉴얼은 완성된 SQLite를 바탕으로 쓴 문서여서, 아직 없는 시스템의 명세를 처음부터 정확히 쓰는 일은 훨씬 어렵다는 지적입니다. Cursor가 글 끝에서 가장 희소하다고 꼽은 것이 의도를 제대로 설명한 글인데, 이번 실험에서는 그 글을 SQLite 개발진이 이미 써 둔 상태였습니다.

채점 도구가 재는 범위도 좁습니다. SQLite 공식 문서는 sqllogictest가 결과가 맞는지만 볼 뿐 성능과 인덱스 활용, 디스크와 메모리 사용량, 트랜잭션 동작, 동시성과 잠금 문제는 전혀 보지 않는다고 밝힙니다. 100% 통과는 쿼리 720만 개에 다른 엔진과 같은 답을 냈다는 기록이고, 실제 서비스에서 여러 사용자가 동시에 쓰거나 장애가 났을 때 데이터를 지키는지는 이 점수에 들어 있지 않습니다.

4시간 시점의 점수도 한 방향만 가리키지는 않습니다. 도표를 보면 Fable 5 조합은 4시간째 기존 스웜(77%)이 새 스웜(73%)보다 조금 높았습니다. Cursor는 에이전트가 전략을 스스로 고르기 때문에 기초를 넓게 깔고 몇 시간 동안 낮은 점수에 머물다 막판에 뛰는 실행도 있고, 한 영역을 깊이 파서 일찍 점수를 올린 뒤 정체하는 실행도 있다며 특정 순간의 점수보다 추세를 보라고 적었습니다. 두 스웜의 차이는 점수보다 코드 길이와 충돌 수에서 크게 벌어졌습니다.

## 공개된 코드는 통제 비교 밖의 실행입니다

Cursor는 결과물을 직접 살펴보라며 minisqlite라는 저장소를 공개했습니다. 이 코드는 비교에 넣지 않은 Opus 4.8 단독 실행, 곧 비용을 가늠하려고 따로 돌린 5,153달러짜리 실행의 결과물입니다. README에는 Rust 약 20만 줄, 크레이트 14개, 테스트 5,650개로 SQLite의 공식 파일 형식을 읽고 쓴다고 적혀 있습니다. 통제 비교에서 잰 엔진 코드 9,908줄이나 크레이트 9개와는 다른 실행의 숫자입니다. Cursor는 이 코드를 처음 훑어본 인상은 좋지만 깊이 있는 수작업 분석은 하지 않았다며, 직접 보고 알려 달라고 적었습니다.

## GPT-5.6 Sol은 비교에서 빠졌습니다

Cursor는 각주에서 원래 GPT-5.6 Sol을 프런티어 모델 조합으로 쓰고 싶었다고 밝혔습니다. 그런데 이 모델은 시험한 다른 모델보다 글자 그대로의 표현과 강조한 문구에 예민하게 반응했고, 다른 모델에서는 없던 폭주하는 악순환이 생겼습니다. [7월 9일 정식 출시된](/post/news-gpt56-launch-price-per-result) 지 얼마 안 된 모델이라 프롬프트를 맞출 시간이 없었고, 한 모델만 맞춰 주면 비교가 부정확해져 GPT-5.5로 돌아갔다고 적었습니다.

출시 전 초기 테스터들도 GPT-5.6의 [끝까지 밀어붙이는 성질](/post/review-gpt56-early-testers-never-stops)을 강점이자 부담으로 꼽았습니다. Cursor가 이 모델을 비교에서 뺀 이유는 새 모델에 맞춰 프롬프트를 다시 다듬을 시간이 없어서였습니다.

## 스웜의 작업 단위는 명세입니다

Cursor는 AI 능력이 한 단계 오를 때마다 엔지니어가 일하는 추상화 수준도 올라갔다고 정리했습니다. 자동 완성으로는 코드 한 줄씩, 초기 모델로는 코드 블록 단위로, 에이전트로는 파일이나 기능 하나 단위로 일을 맡겼고, 스웜에서는 작업 단위가 명세(스펙)가 된다는 겁니다. 이번 실험에 들어간 입력도 835쪽의 서술형 문서뿐이었습니다.

> 이 실험에서 희소했던 것, 그리고 앞으로 소프트웨어 공학에서 희소해질 것으로 보는 것은 의도를 제대로 담은 설명입니다.
> — 윌슨 린, Cursor

Cursor는 스웜을 컴파일러에 빗댔습니다. 컴파일러가 소스 코드를 여러 중간 단계를 거쳐 기계어로 옮기듯, 플래너는 목표를 작업 나무로 풀고 한 단계씩 실행할 수 있는 일로 내립니다. 다른 점은 컴파일러가 모든 단계에서 의미를 그대로 보존하는 반면 스웜은 모든 단계가 확률적이라는 것이고, Cursor는 이 글에 적은 장치가 모두 그 차이를 줄이려고 만든 것이라고 적었습니다.

국내에서 코딩 에이전트 예산을 짜는 팀이 이번 숫자에서 가져갈 단서는 두 가지입니다. 워커를 싼 모델로 바꾸면 청구서의 3분의 2가 계획 쪽에 남을 수 있고, 계획을 짧게 쓴 Fable 5 조합에서는 워커 토큰이 불어 총비용이 1.7배가 됐습니다. 기존 스웜이 두 시간 만에 커밋 6만 8,000개를 쌓고도 멈춰야 했던 것처럼, 에이전트가 일하는 저장소에서는 커밋 수와 코드 줄 수가 진척보다 헛돈 양을 가리킬 수 있습니다.

Cursor는 다음에는 플래너와 워커의 모든 조합을 짝지어 돌려 보고 싶다고 했고, 후속 에이전트를 위해 기록을 잘 남길수록 보상을 받도록 모델을 학습시키는 연구도 후속 과제로 꼽았습니다. 제3자가 같은 835쪽으로 통과율과 비용을 재현한 기록은 아직 없습니다. 발표 전문은 [Cursor 블로그 원문](https://cursor.com/blog/agent-swarm-model-economics)에, 공개 코드는 [minisqlite 저장소](https://github.com/cursor/minisqlite)에 있습니다.

읽어 주셔서 고맙습니다.

초이 드림
