Перейти до вмісту

Для користувачів 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 чутливий до відступів: пробіли, а не таби.