Przejdź do treści

Dla użytkowników Goose

Goose działa na rozszerzeniach. Dodaj takie, które zna twoje repo.

Goose wykonuje pracę przez rozszerzenia, a każde rozszerzenie to serwer MCP. Maguyva to to, które indeksuje twoją bazę kodu, więc Goose pyta, gdzie co leży, zamiast listować katalogi.

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

.goosehints do tego, jak pracować. Maguyva do tego, co kod mówi teraz.

Co warto wiedzieć o Goose

Cztery fakty specyficzne dla Goose.

// plik konfiguracji

config.yaml

Rozszerzenia trafiają pod extensions w ~/.config/goose/config.yaml. goose configure → Add Extension zapisze za ciebie taki sam rodzaj wpisu.

// transport

Rozszerzenie zdalne

Maguyva to rozszerzenie streamable_http, więc Goose sam łączy się z endpointem: bez lokalnego procesu, bez Node.js. URL trafia do uri, nie do url.

// klucz

headers

Goose wysyła mapę headers z każdym żądaniem, więc klucz trafia do nagłówka Authorization. Goose może go też uzupełnić ze zmiennej środowiskowej wymienionej w env_keys.

// filtr narzędzi

available_tools

Rozszerzenie może udostępnić tylko część narzędzi: wypisz te, których chcesz, w available_tools albo zostaw puste, żeby mieć wszystkie.

Wskazówki Goose to umowa robocza. Korzystaj z nich.

# .goosehints
- Używaj pnpm, nie npm.
- Uruchom testy integracyjne, zanim uznasz zmianę za gotową.

Goose domyślnie wczytuje AGENTS.md i .goosehints: globalne wskazówki z ~/.config/goose/.goosehints, wskazówki projektu z repo, a w podfolderach także zagnieżdżone pliki. Wskazówki wymagają rozszerzenia Developer. To dobre miejsce na:

  • Wybór narzędzi i komendy.
  • Konwencje, których Goose ma przestrzegać.
  • To, gdzie leży dokumentacja.

Wskazówki opisują projekt. Nie odpowiadają na “co od tego zależy?”

Gdzie wskazówki i powłoka przestają wystarczać

Trzy luki, które Goose łata komendami powłoki, plik po pliku.

// listing to nie mapa

W nieznanym repo Goose orientuje się listingami katalogów i odczytami plików. Każdy z nich zużywa kontekst, zanim zadanie w ogóle się zacznie.

// grep znajduje ciągi, nie wywołujących

Wyszukiwanie tekstowe nie odróżni prawdziwego wywołania od komentarza, atrapy czy metody o tej samej nazwie.

// wskazówki się rozjeżdżają

Plik wskazówek napisany w zeszłym kwartale opisuje układ z zeszłego kwartału. Goose i tak się go trzyma.

Maguyva jako rozszerzenie Goose

Jeden wpis w extensions daje Goose:

  • 11 narzędzi dla zaindeksowanego repo wyszukiwanie semantyczne, strukturalne (AST), grafowe i tekstowe, a do tego wyszukiwanie symboli, zależności i pobieranie plików.
  • Odpowiedzi ze ścieżkami plików i numerami linii w ponad 285 językach.
  • Narzędzia tylko do odczytu Narzędzia Maguyva odpytują indeks. Żadne z nich nie edytuje twoich plików.

Wskazówki mówią Goose, jak pracować.

Maguyva daje Goose mapę kodu.

Dwa przepływy pracy

Najpierw mapa, potem niech Goose działa.

// workflow 01

Prześledź błąd do źródła

goose> dlaczego niektóre eksporty kończą się z zerem wierszy?

semantic_search("export job empty result")
  src/export/runner.ts:118   flushBatch()
  src/export/filters.ts:40   applyTenantFilter()

→ Goose czyta dwa pliki, a nie cały pakiet export.
[exit 0]

Uszeregowane wyniki zawężają poszukiwania, zanim Goose otworzy powłokę.

// workflow 02

Sprawdź zależności przed refaktoryzacją

goose> rozdziel klasę Notifier na e-mail i SMS

dependency_search("Notifier", dependents)
  11 odwołań w 5 pakietach

→ Plan obejmuje wszystkie jedenaście przed pierwszą edycją.
[exit 0]

Goose dostaje pełną listę zależności jednym wywołaniem zamiast łańcucha grepów.

Konfiguracja w Goose

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

  1. // step 01

    Zaindeksuj repo na maguyva.ai

    Wybierz takie, które już znasz, żeby móc ocenić odpowiedzi.

  2. // step 02

    Dodaj Maguyva do extensions w config.yaml

    ~/.config/goose/config.yaml

    extensions:
      maguyva:
        name: maguyva
        type: streamable_http
        uri: https://maguyva.tools/mcp
        enabled: true
        headers:
          Authorization: Bearer mgv_xxxx
        timeout: 300
    
  3. // step 03

    Podmień placeholder i rozpocznij sesję

    Zamień mgv_xxxx na swój klucz API, uruchom goose session i zadaj pytanie, na które znasz już odpowiedź. YAML jest wrażliwy na wcięcia: spacje, nie tabulatory.