Dlaczego architektura dwóch mózgów?
Większość asystentów piszących kod korzysta z pojedynczego modelu, który musi zdecydować, co zbudować i napisać kod źródłowy. Podczas długich sesji okno kontekstowe modelu zapełnia się, co powoduje „dryf kontekstu” (context drift) – model zapomina wcześniejsze decyzje i generuje sprzeczny lub powielony kod. Cursor rozwiązuje ten problem, dzieląc wysiłek intelektualny:
- Agenci planujący (Planner agents) działają na najpotężniejszych modelach (w szkicu wspomniano o Opus 4.8 lub Fable 5). Rozbijają oni ogólne zapytanie na hierarchię zadań, rozstrzygają niejasności i rejestrują decyzje projektowe.
- Agenci wykonawczy (Worker agents) działają na szybszych modelach o wysokiej przepustowości (Composer 2.5). Przejmują oni konkretne zadania od planistów i generują fragmenty kodu.
Oddzielenie „co” od „jak” zapobiega przeciążeniu, które paraliżuje systemy oparte na pojedynczym modelu. Każdy model mieści się w rozmiarze kontekstu dopasowanym do jego roli, co pozwala uniknąć gwałtownego wzrostu zużycia tokenów, który zmusza projektantów do skracania promptów.
Skalowanie roju
Wczesne wersje roju Cursor przetwarzały około tysiąca commitów na godzinę. Po przebudowie w architekturze „split-brain” system osiągnął około tysiąca commitów na sekundę. Ta prędkość ujawniła nowe wąskie gardło: narzędzia do kontroli wersji nie były przystosowane do tak dużego współzawodnictwa (contention). Gdy dwaj planiści wydawali nakładające się instrukcje, w repozytorium mogła pojawić się powielona logika – problem, który zespół nazywa „błędami split-brain”.
Cursor okiełznał ten chaos za pomocą trzech zabezpieczeń:
- Współdzielone dokumenty projektowe – Każdy planista zapisuje swoje decyzje w centralnym dokumencie powiązanym z wygenerowanym kodem. Agenci wykonawczy podążają za tymi linkami, dzięki czemu ten sam projekt nie jest odtwarzany w innym miejscu.
- Wielowymiarowe przeglądy – Trzej agenci sprawdzają każdy inny fragment pracy (pełny zapis, tylko wynik lub tylko kod). Ta wzajemna weryfikacja wyłapuje niespójności, które mogłyby zostać przeoczone przy pojedynczym spojrzeniu.
- Samodzielnie utrzymywane przewodniki terenowe – Agenci prowadzą „folder wiedzy” z zaskakującymi odkryciami i pułapkami. Gdy zaczyna nowy agent wykonawczy, sprawdza on folder, aby uniknąć powtarzania znanych błędów, co zapewnia pamięć krótkotrwałą dla całego roju.
Środki te zapewniają spójność bazy kodu mimo potoku zmian.
Benchmarki, które mają znaczenie
Cursor przetestował hybrydowy rój, przebudowując całą dokumentację SQLite – 835-stronicową implementację w języku Rust – zadanie, które wystawia na próbę zarówno poprawność, jak i rozmiar. Wyniki były uderzające:
- Dokładność – Hybrydowa konfiguracja (planista + agenci Composer) osiągnęła 100% poprawności, konsekwentnie pokonując pojedyncze uruchomienie najbardziej zaawansowanego wspomnianego modelu (GPT-5.5).
- Rozmiar kodu – Hybrydowy rój wygenerował 9 908 linii kodu silnika, w porównaniu do 64 305 linii z wcześniejszego, monolitycznego roju.
- Koszt – Uruchomienie pojedynczej instancji GPT-5.5 kosztowało około 10 565 USD. Podejście hybrydowe wydało zaledwie 411 USD na flotę agentów wykonawczych.
Różnica w kosztach wynika z zastosowania Composer 2.5, który w szkicu opisany jest jako oferujący wydajność porównywalną z flagowymi modelami przy ułamku ceny za milion tokenów. Przenosząc większość zużycia tokenów na ten tańszy model, rój utrzymuje ogólne wydatki na niskim poziomie bez poświęcania jakości.
Podsumowanie
- Połączenie potężnego planisty z tanim wykonawcą przynosi wielokrotne (o rzędy wielkości) korzyści w zakresie szybkości, zwięzłości kodu i kosztów.
- Projekt eliminuje dryf kontekstu poprzez przypisanie „co” do modeli typu frontier, a „jak” do modeli specjalistycznych.
- Koszty operacyjne i wymagania infrastrukturalne pozostają największymi przeszkodami dla szerszego wdrożenia.
