Перейти к содержимому

Для пользователей Goose

Goose работает на расширениях. Добавьте то, что знает ваш репозиторий.

Goose выполняет работу через расширения, и каждое расширение — это MCP-сервер. Maguyva — то самое, что индексирует вашу кодовую базу, поэтому Goose спрашивает, где что лежит, а не перебирает каталоги.

Тариф Free: 3 репозитория, До 50 тыс. проиндексированных строк, без банковской карты.

.goosehints — для того, как работать. Maguyva — для того, что код говорит сейчас.

Что нужно знать о Goose

Четыре факта именно о Goose.

// файл конфигурации

config.yaml

Расширения задаются в extensions в ~/.config/goose/config.yaml. Команда goose configure → Add Extension пишет такую же запись за вас.

// транспорт

Удалённое расширение

Maguyva — расширение streamable_http, так что Goose сам подключается к эндпоинту: никаких локальных процессов, никакого Node.js. URL указывается в uri, а не в url.

// ключ

headers

Goose отправляет карту headers с каждым запросом, поэтому ключ указывается в заголовке Authorization. Goose также может подставить его из переменной окружения, перечисленной в env_keys.

// фильтр инструментов

available_tools

Расширение может открывать только часть своих инструментов: перечислите нужные в available_tools или оставьте поле пустым, чтобы получить все.

Подсказки Goose — это рабочее соглашение. Используйте их.

# .goosehints
- Используй pnpm, а не npm.
- Запускай интеграционные тесты, прежде чем считать изменение готовым.

По умолчанию Goose загружает AGENTS.md и .goosehints: глобальные подсказки из ~/.config/goose/.goosehints, подсказки проекта из репозитория и вложенные файлы, когда работает в подпапках. Для подсказок нужно расширение Developer. Им место для:

  • Выбора инструментов и команд.
  • Соглашений, которым должен следовать Goose.
  • Того, где лежит документация.

Подсказки описывают проект. На вопрос “что от этого зависит?” они не отвечают.

Где подсказок и оболочки уже не хватает

Три пробела, которые Goose закрывает командами оболочки, файл за файлом.

// список каталогов — это не карта

В незнакомом репозитории Goose ориентируется по спискам каталогов и чтению файлов. Каждое такое действие тратит контекст ещё до начала задачи.

// grep находит строки, а не вызывающих

Текстовый поиск не отличает настоящий вызов от комментария, мока или метода с тем же именем.

// подсказки отстают

Файл подсказок, написанный в прошлом квартале, описывает структуру прошлого квартала. Goose всё равно ему следует.

Maguyva как расширение Goose

Одна запись в extensions даёт Goose:

  • 11 инструментов для вашего проиндексированного репозитория семантический, структурный (AST), графовый и текстовый поиск, а также поиск символов, зависимые и получение файлов.
  • Ответы с путями к файлам и номерами строк по более чем 285 языкам.
  • Инструменты только для чтения Инструменты Maguyva обращаются к индексу. Ни один из них не меняет ваши файлы.

Подсказки говорят Goose, как работать.

Maguyva даёт Goose карту кода.

Два рабочих процесса

Сначала карта, потом пусть Goose работает.

// workflow 01

Проследить баг до источника

goose> почему некоторые выгрузки заканчиваются с нулём строк?

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

→ Goose читает два файла, а не весь пакет export.
[exit 0]

Ранжированные результаты сужают поиск ещё до того, как Goose откроет оболочку.

// workflow 02

Проверить зависимых перед рефакторингом

goose> раздели класс Notifier на email и SMS

dependency_search("Notifier", dependents)
  11 ссылок в 5 пакетах

→ План покрывает все одиннадцать до первой правки.
[exit 0]

Goose получает полный список зависимых одним вызовом, а не цепочкой grep.

Настройка в Goose

Три шага. Тариф Free: 3 репозитория, До 50 тыс. проиндексированных строк, без банковской карты.

  1. // step 01

    Проиндексируйте репозиторий на maguyva.ai

    Выберите тот, который вы уже знаете, чтобы оценить ответы.

  2. // step 02

    Добавьте Maguyva в extensions в 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

    Замените заглушку и начните сессию

    Замените mgv_xxxx своим API-ключом, запустите goose session и задайте вопрос, ответ на который вы уже знаете. YAML чувствителен к отступам: пробелы, а не табы.