Przejdź do treści

Dla użytkowników Devin Desktop

Devin Desktop edytuje plik.
Maguyva widzi repo.

Devin Desktop (IDE Windsurf) to edytor, a Devin Local to agent. W monorepo agent nadal potrzebuje mapy tego, który plik ma znaczenie. Maguyva indeksuje Twój kod i udostępnia go z powrotem przez MCP (semantyczne, AST, grafowe i tekstowe), więc pytanie „gdzie odbywa się uwierzytelnianie” zwraca rzeczywisty przepływ uwierzytelniania, a nie siedem atrap testowych.

Plan Free: 3 repozytoria, Do 50 tys. zindeksowanych linii repo, bez karty kredytowej.

Devin Desktop edytuje to, na co wskażesz. Maguyva mówi Devin Local, na jaki plik wskazać.

Co robi każda warstwa

Cztery elementy. Każdy ma swoje zadanie.

// edytor

Devin Desktop

Gdzie Ty i Devin Local naprawdę pracujecie.

// ręczny kontekst

@ wzmianki + .devin/rules/

Ręczny kontekst wygrywa, dopóki repo nie jest duże.

// baza kodu

Maguyva

Automatycznie pozyskiwane fakty o kodzie przez MCP.

// kto płaci

Workspace'y, nie użytkownicy

Bez osobnych opłat za każdego agenta. Zobacz cennik

Devin Desktop to edytor. Korzystaj z niego.

IDE nie jest problemem. Devin Local, autouzupełnianie, edycje wielu plików i .devin/rules/ są świetne i już z nich korzystasz do:

  • Podpowiedzi inline i edycji Devin Local w otwartym pliku.
  • Edycji wielu plików, gdy zmiana jest lokalna.
  • .devin/rules/ dla konwencji repo i reguł stylu.
  • Wzmianek @, by wciągnąć konkretny plik do kontekstu.

Rób tak dalej. Nic z tego nie znika.

Ale w prawdziwym monorepo (TypeScript z zależnościami workspace, usługi w języku Python, mieszane pakiety) kontekst agenta pęka w momencie, gdy istotny plik nie jest jeszcze na radarze Devin Local.

Ręczne obejścia, które już wypróbowałeś, i gdzie zawodzą

Cztery ręczne obejścia zestawione z ich trybem awarii. Lewo = co robisz dzisiaj. Prawo = gdzie to zawodzi.

// the fix

// wspomnij o plikach

Wzmiankujesz @ trzy pliki, które Twoim zdaniem mają znaczenie. Devin Local edytuje w nich bez zarzutu.

// where it breaks

// wzmiankowanie to zgadywanie

Działa, gdy już wiesz, które pliki są zaangażowane. Cały sens narzędzi kontekstowych polega na wydobyciu plików, o których nie wiedziałeś, że trzeba o nich wspomnieć.

// the fix

// wklej fragmenty

Wklejasz 200 linii z innego pakietu do Devin Local, żeby dać mu wystarczający kontekst.

// where it breaks

// wklejony kod się dezaktualizuje

Fragment wklejony o 9 rano nie odzwierciedla rebase'a, który Twój kolega z zespołu wprowadził o 11. Devin Local edytuje na podstawie fantomowej wersji pakietu.

// the fix

// napisz dokument kontekstowy

Piszesz plik .devin/rules/ lub markdown z architekturą. Dziś jest aktualny.

// where it breaks

// dokumentacja dezaktualizuje się szybciej niż kod

Wszystko, co napiszesz ręcznie, z czasem odbiega od stanu faktycznego. Kod jest źródłem prawdy. Dokument opisujący warstwę kolejki jest poprawny przez tydzień, a potem błędny na zawsze.

// the fix

// trzymaj się plików reguł

Dodajesz .devin/rules/ dla nazewnictwa, lintowania i komend budowania. Świetne dla zachowania.

// where it breaks

// reguły ≠ indeks

.devin/rules/ to dobre miejsce na “zawsze uruchamiaj pnpm tsc -b przed commitem.” To nie jest przeszukiwalny indeks każdego symbolu, pliku i miejsca wywołania w Twoim monorepo.

Maguyva to warstwa pod spodem

To nie zamiennik Devin Desktop. Warstwa kontekstu repo, która opiera się na obsłudze MCP w Devin Local.

  • Semantyczne + AST + graf + tekst wyszukiwanie po znaczeniu, strukturze, zależności lub dosłownym tekście. Każdy wynik zwraca ścieżkę pliku i numer linii.
  • Między pakietami domyślnie miejsca wywołań i elementy importujące ten kod w każdym pakiecie monorepo, nie tylko w tym, który ma otwarty Devin Local.
  • Z uwzględnieniem gałęzi Maguyva widzi wersję kodu, którą edytuje Devin Local.
  • Uzupełniające, nie konkurencyjne .devin/rules/ nadal robi swoje. Wzmianki @ nadal robią swoje. Maguyva wypełnia lukę, której one nie wypełniają.

Devin Local edytuje plik, na który wskażesz.

Maguyva mówi agentowi, na jaki plik wskazać.

Trzy przepływy pracy w monorepo

Między pakietami, między językami. Ugruntowane na rzeczywistym grafie wywołań, a nie na grep Devin Local.

// workflow 01

Znajdź przepływ uwierzytelniania między pakietami, bez wspominania czegokolwiek

devin> gdzie w tym monorepo odbywa się uwierzytelnianie?

graph::query("authentication flow")
  packages/web/src/auth/session.ts:42       middleware
  packages/api/src/auth/jwt.ts:88           weryfikacja tokenu
  packages/shared/src/auth/types.ts:12      AuthContext
  packages/admin/src/auth/admin-only.ts:31  bramka rbac

→ 4 punkty wejścia w 4 pakietach, uszeregowane wg gęstości wywołań.
[exit 0]

Nie wspomniałeś o pliku. Nie wkleiłeś fragmentu. Devin Local ma cztery istotne pliki, we właściwej kolejności, i może wykonać ugruntowaną edycję.

// workflow 02

Znajdź prawdziwą implementację, nie atrapę testową

devin> jak normalizePhoneNumber obsługuje E.164?

semantic::query("normalize phone E.164")
  packages/shared/util/phone.ts:88     normalizePhoneNumber()  ← prawdziwa impl.
  packages/api/test/phone.spec.ts:14   jest.mock(...)          ← atrapa
[exit 0]

Nazwy kłamią. Atrapy przesłaniają prawdziwy kod. Maguyva stawia prawdziwą implementację wyżej niż atrapę testową, we wszystkich pakietach.

// workflow 03

Sprawdź zasięg wpływu, zanim zrefaktoryzujesz

devin> co wywołuje QueueDispatcher.publish w całym monorepo?

graph::callers(QueueDispatcher.publish)
  3 w packages/billing/*
  1 w packages/audit/*
  1 w packages/notifications/*
  1 w services/python-worker/*  ← między językami przez stub gRPC
[exit 0]

Między pakietami, a przy poliglotycznym repo — także między językami, miejsca wywołań pojawiają się od razu. Diff opiera się na rzeczywistych elementach importujących ten kod, a nie na wynikach grepa w Devin Local.

Konfiguracja z Devin Desktop

Trzy kroki. Plan Free: 3 repozytoria, Do 50 tys. zindeksowanych linii repo, bez karty kredytowej.

  1. // step 01

    Zaindeksuj repo na maguyva.ai

    Wybierz monorepo, w którym najbardziej doskwierał Ci brak kontekstu.

  2. // step 02

    Dodaj Maguyva jako serwer MCP w Devin Desktop

    ~/.config/devin/mcp_config.json

    {
      "mcpServers": {
        "maguyva": {
          "url": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
          }
        }
      }
    }
  3. // step 03

    Zadaj jedno pytanie, na które już znasz odpowiedź

    Nie zaczynaj od całej firmy. Zacznij od jednego repo i jednego sprawdzalnego pytania, np. „co wywołuje formatInvoice w różnych pakietach?”