Siirry sisältöön

Goose-käyttäjille

Goose toimii laajennuksilla. Lisää sellainen, joka tuntee repoasi.

Goose tekee työnsä laajennusten kautta, ja jokainen laajennus on MCP-palvelin. Maguyva on se, joka indeksoi koodikantasi, joten Goose kysyy, missä asiat ovat, eikä listaa hakemistoja.

Free-taso: 3 repositoriota, Enintään 50 000 indeksoitua repo-riviä, ei luottokorttia.

.goosehints kertoo, miten työskennellä. Maguyva kertoo, mitä koodi sanoo nyt.

Mitä Goose-agentista pitää tietää

Neljä Goose-agentille ominaista asiaa.

// asetustiedosto

config.yaml

Laajennukset määritetään kohtaan extensions tiedostossa ~/.config/goose/config.yaml. goose configure → Add Extension kirjoittaa samanlaisen merkinnän puolestasi.

// siirto

Etälaajennus

Maguyva on streamable_http-laajennus, joten Goose yhdistää päätepisteeseen itse: ei paikallista prosessia, ei Node.js:ää. URL kuuluu kenttään uri, ei kenttään url.

// avain

headers

Goose lähettää headers-kartan jokaisen pyynnön mukana, joten avain menee Authorization-otsakkeeseen. Goose voi myös täyttää sen ympäristömuuttujasta, joka on listattu kohtaan env_keys.

// työkalusuodatin

available_tools

Laajennus voi tarjota vain osan työkaluistaan: listaa haluamasi kohtaan available_tools tai jätä se tyhjäksi, niin kaikki ovat käytössä.

Goose-vihjeet ovat työskentelysopimus. Käytä niitä.

# .goosehints
- Käytä pnpm:ää, älä npm:ää.
- Aja integraatiotestit ennen kuin julistat muutoksen valmiiksi.

Goose lataa oletuksena tiedostot AGENTS.md ja .goosehints: globaalit vihjeet tiedostosta ~/.config/goose/.goosehints, projektin vihjeet reposta ja sisäkkäiset tiedostot, kun se työskentelee alikansioissa. Vihjeet vaativat Developer-laajennuksen. Ne sopivat näihin:

  • Työkaluvalinnat ja komennot.
  • Käytännöt, joita Goose-agentin pitää noudattaa.
  • Missä dokumentaatio on.

Vihjeet kuvaavat projektia. Ne eivät vastaa kysymykseen “mikä riippuu tästä?”

Missä vihjeet ja kuori eivät enää riitä

Kolme aukkoa, jotka Goose paikkaa kuorikomennoilla tiedosto kerrallaan.

// listaus ei ole kartta

Tuntemattomassa repossa Goose suunnistaa hakemistolistauksilla ja tiedostojen luvuilla. Jokainen niistä kuluttaa kontekstia jo ennen kuin tehtävä alkaa.

// grep löytää merkkijonoja, ei kutsujia

Tekstihaku ei erota todellista kutsua kommentista, mockista tai samannimisestä metodista.

// vihjeet jäävät jälkeen

Viime neljänneksellä kirjoitettu vihjetiedosto kuvaa viime neljänneksen rakennetta. Goose noudattaa sitä silti.

Maguyva Goose-laajennuksena

Yksi extensions-merkintä antaa Goose-agentille:

  • 11 työkalua indeksoituun repoosi semanttinen, rakenteellinen (AST-), graafi- ja tekstihaku sekä symbolihaku, riippuvaiset ja tiedostojen haku.
  • Vastaukset tiedostopoluilla ja rivinumeroilla yli 285 kielellä.
  • Työkalut, jotka vain lukevat Maguyva-työkalut kyselevät indeksiä. Mikään niistä ei muokkaa tiedostojasi.

Vihjeet kertovat Goose-agentille, miten työskennellä.

Maguyva antaa Goose-agentille kartan koodista.

Kaksi työnkulkua

Ensin kartta, sitten Goose saa ajaa.

// workflow 01

Jäljitä bugi lähteeseensä

goose> miksi jotkin viennit päättyvät nollaan riviin?

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

→ Goose lukee kaksi tiedostoa, ei koko export-pakettia.
[exit 0]

Priorisoidut tulokset rajaavat haun ennen kuin Goose avaa kuoren.

// workflow 02

Tarkista riippuvaiset ennen refaktorointia

goose> jaa Notifier-luokka sähköpostiin ja tekstiviestiin

dependency_search("Notifier", dependents)
  11 viittausta 5 paketissa

→ Suunnitelma kattaa kaikki yksitoista ennen ensimmäistä muokkausta.
[exit 0]

Goose saa riippuvaisten koko listan yhdellä kutsulla eikä grep-ketjulla.

Asennus Goose-agentissa

Kolme vaihetta. Free-taso: 3 repositoriota, Enintään 50 000 indeksoitua repo-riviä, ei luottokorttia.

  1. // step 01

    Indeksoi repo osoitteessa maguyva.ai

    Valitse jo tuntemasi repo, jotta voit arvioida vastauksia.

  2. // step 02

    Lisää Maguyva config.yaml-tiedoston extensions-kohtaan

    ~/.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

    Korvaa paikkamerkki ja aloita istunto

    Korvaa mgv_xxxx omalla API-avaimellasi, aja goose session ja kysy yksi kysymys, jonka vastauksen jo tiedät. YAML on tarkka sisennyksistä: käytä välilyöntejä, älä sarkaimia.