Vai al contenuto

Per gli utenti di Goose

Goose funziona con le estensioni. Aggiungine una che conosce il tuo repo.

Goose lavora tramite estensioni, e ogni estensione è un server MCP. Maguyva è quella che indicizza il tuo codebase, così Goose chiede dove si trovano le cose invece di elencare directory.

Piano Free: 3 repository, Fino a 50K righe di repository indicizzate, senza carta di credito.

.goosehints per come lavorare. Maguyva per ciò che dice il codice adesso.

Cosa sapere su Goose

Quattro fatti specifici di Goose.

// file di configurazione

config.yaml

Le estensioni stanno sotto extensions in ~/.config/goose/config.yaml. goose configure → Add Extension scrive per te lo stesso tipo di voce.

// trasporto

Un’estensione remota

Maguyva è un’estensione streamable_http, quindi Goose si collega da solo all’endpoint: nessun processo locale, niente Node.js. L’URL va in uri, non in url.

// chiave

headers

Goose invia la mappa headers a ogni richiesta, quindi la chiave va nell’header Authorization. Goose può anche riempirla da una variabile d’ambiente elencata in env_keys.

// filtro strumenti

available_tools

Un’estensione può esporre solo una parte dei suoi strumenti: elenca quelli che vuoi sotto available_tools, oppure lascialo vuoto per averli tutti.

Gli hint di Goose sono un accordo di lavoro. Usali.

# .goosehints
- Usa pnpm, non npm.
- Esegui i test di integrazione prima di dichiarare conclusa una modifica.

Per impostazione predefinita Goose carica AGENTS.md e .goosehints: gli hint globali da ~/.config/goose/.goosehints, quelli di progetto dal repo e i file annidati mentre lavora nelle sottocartelle. Gli hint richiedono l’estensione Developer. Sono il posto giusto per:

  • Scelte di strumenti e comandi.
  • Convenzioni che Goose deve seguire.
  • Dove si trova la documentazione.

Gli hint descrivono il progetto. Non rispondono a “cosa dipende da questo?”

Dove gli hint e la shell non bastano

Tre lacune che Goose colma con comandi di shell, un file alla volta.

// un elenco non è una mappa

In un repo sconosciuto, Goose si orienta con elenchi di directory e letture di file. Ognuno consuma contesto prima ancora che inizi il compito.

// grep trova stringhe, non chiamanti

Una ricerca testuale non distingue una chiamata reale da un commento, un mock o un metodo con lo stesso nome.

// gli hint vanno alla deriva

Un file di hint scritto lo scorso trimestre descrive la struttura dello scorso trimestre. Goose lo segue comunque.

Maguyva come estensione di Goose

Una voce in extensions dà a Goose:

  • 11 strumenti sul tuo repo indicizzato ricerca semantica, strutturale (AST), a grafo e testuale, più ricerca dei simboli, dipendenti e recupero file.
  • Risposte con percorsi file e numeri di riga su oltre 285 linguaggi.
  • Strumenti che leggono e basta Gli strumenti di Maguyva interrogano l’indice. Nessuno modifica i tuoi file.

Gli hint dicono a Goose come lavorare.

Maguyva dà a Goose una mappa del codice.

Due flussi di lavoro

Prima la mappa, poi lascia lavorare Goose.

// workflow 01

Risalire a un bug fino all’origine

goose> perché alcune esportazioni finiscono con zero righe?

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

→ Goose legge due file, non l’intero pacchetto export.
[exit 0]

I risultati classificati restringono la ricerca prima che Goose apra una shell.

// workflow 02

Controllare i dipendenti prima di un refactoring

goose> dividi la classe Notifier in email e SMS

dependency_search("Notifier", dependents)
  11 riferimenti in 5 pacchetti

→ Il piano copre tutti e undici prima della prima modifica.
[exit 0]

Goose ottiene l’elenco completo dei dipendenti con una sola chiamata invece che con una catena di grep.

Configurazione in Goose

Tre passaggi. Piano Free: 3 repository, Fino a 50K righe di repository indicizzate, senza carta di credito.

  1. // step 01

    Indicizza un repo su maguyva.ai

    Scegline uno che già conosci, così puoi valutare le risposte.

  2. // step 02

    Aggiungi Maguyva a extensions in 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

    Sostituisci il segnaposto e avvia una sessione

    Sostituisci mgv_xxxx con la tua chiave API, esegui goose session e fai una domanda di cui conosci già la risposta. YAML è sensibile all’indentazione: usa spazi, non tabulazioni.