Загрузка...

Goose: настройка ИИ-агента через RouterAI (Claude, GPT-6, DeepSeek)

Goose

Goose — открытый (Apache-2.0) ИИ-агент, который не только подсказывает код, но и сам выполняет задачи: создаёт и правит файлы, запускает команды, тесты и сборку. Работает как Desktop-приложение и как CLI, а возможности расширяются через MCP-серверы (расширения). Проект перешёл под крыло Agentic AI Foundation (AAIF); на момент написания актуальна версия 1.55.0.

Goose умеет работать с любым OpenAI-совместимым endpoint, поэтому к нему легко подключить RouterAI: одним ключом доступны Claude, GPT, DeepSeek и другие модели из каталога, работа из России без VPN, оплата в рублях.

Требования

  • macOS, Linux или Windows (Desktop и CLI доступны на всех трёх платформах)
  • API-ключ из личного кабинета RouterAI
  • Модель с поддержкой вызова инструментов (tool calling): Goose строит работу агента на нём. Подходят все модели из раздела «Выбор модели» ниже

Установка

Desktop

  • macOS: скачайте приложение со страницы установки или выполните brew install --cask block-goose
  • Linux (Debian/Ubuntu): скачайте .deb со страницы релизов и выполните sudo dpkg -i goose_*.deb; для Fedora/RHEL есть .rpm, также доступен Flatpak
  • Windows: скачайте zip-архив, распакуйте и запустите исполняемый файл

CLI

macOS, Linux и Windows (Git Bash, MSYS2, WSL):

curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash

Без интерактивной настройки: CONFIGURE=false bash вместо bash. Через Homebrew: brew install block-goose-cli. Обновление — goose update.

Если установщик предупредил, что goose не в PATH, добавьте каталог ~/.local/bin:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
goose --version

Подключение к RouterAI

В Goose три способа подключить RouterAI: custom provider в Desktop (удобнее всего), встроенный провайдер OpenAI через переменные окружения и custom provider через CLI или JSON-файл. Для всех способов:

Параметр Значение
Base URL (API URL) https://routerai.ru/api/v1
API-ключ ключ из личного кабинета, sk-xxxxxxxxxxxxxxxx
Формат API OpenAI Compatible (Chat Completions)

Способ 1: Desktop, Add a custom provider

При первом запуске Goose показывает экран «Welcome to goose». Если провайдер уже был настроен, откройте боковое меню → Settings → вкладка Models → Configure providers.

Goose Desktop: выбор Connect to a Provider и пункт Add a custom provider

  1. Нажмите Connect to a Provider, затем Add a custom provider.
  2. В окне Add Custom Provider выберите Configure manually (вариант Start from a provider template подставляет настройки известных провайдеров, для RouterAI он не нужен).

В форме оставьте Provider Type = OpenAI Compatible и заполните поля (номера совпадают с метками на кадре):

  1. Display Name — RouterAI.
  2. API URL — https://routerai.ru/api/v1. Поле API Base Path оставьте пустым.

Goose Desktop: форма Add Custom Provider, поля Display Name и API URL

Ниже в той же форме (номера совпадают с метками на втором кадре):

  1. Включите флажок This provider requires an API key и вставьте ключ в поле API Key.
  2. В Available Models перечислите модели через запятую, например anthropic/claude-sonnet-5.5, anthropic/claude-haiku-5.5, deepseek/deepseek-v4.1-flash, openai/gpt-6-luna.
  3. Оставьте включённым Provider supports streaming responses и нажмите Create Provider.

Goose Desktop: поля API Key, Available Models и кнопка Create Provider

После создания Goose покажет «Connected to RouterAI» и кнопку Get Started. Ключ Desktop хранит в системной связке ключей (или в secrets.yaml, если связка недоступна), а настройки провайдера — в файле custom_routerai.json в каталоге ~/.config/goose/custom_providers/.

Способ 2: встроенный провайдер OpenAI и переменные окружения

Подходит для CLI и скриптов. Провайдер OpenAI строит адрес запроса из двух частей: OPENAI_HOST (корень прокси) и OPENAI_BASE_PATH (по умолчанию v1/chat/completions). Для RouterAI достаточно указать только хост:

export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxx"
export OPENAI_HOST="https://routerai.ru/api"
export GOOSE_PROVIDER="openai"
export GOOSE_MODEL="anthropic/claude-sonnet-5.5"

Запрос уйдёт на https://routerai.ru/api/v1/chat/completions. Равноценный вариант: OPENAI_HOST="https://routerai.ru/api/v1" вместе с OPENAI_BASE_PATH="chat/completions". Не смешивайте: /v1 в хосте и v1/... в пути дадут двойной /v1/v1.

⚠ Ключ для провайдеров Goose берёт из переменных окружения или связки ключей. Ключ, записанный в config.yaml, игнорируется.

Чтобы настройки не вводить каждый раз, добавьте export в ~/.zshrc или ~/.bashrc. Переменные GOOSE_PROVIDER и GOOSE_MODEL имеют приоритет над config.yaml для текущего процесса.

Способ 3: custom provider через CLI

Удобно, если нужно несколько endpoint'ов или отдельное имя в списке провайдеров. Запустите goose configure, выберите Custom Providers → Add A Custom Provider и ответьте на вопросы: API Type (OpenAI Compatible), Name, API URL (https://routerai.ru/api/v1), Authentication Required, Available Models, Streaming Support.

Тот же результат даёт JSON-файл ~/.config/goose/custom_providers/routerai.json (Windows: %APPDATA%\Block\goose\config\custom_providers\):

{
  "name": "routerai",
  "engine": "openai",
  "display_name": "RouterAI",
  "description": "RouterAI OpenAI-compatible gateway",
  "api_key_env": "ROUTERAI_API_KEY",
  "base_url": "https://routerai.ru/api/v1",
  "models": [
    { "name": "anthropic/claude-sonnet-5.5", "context_limit": 1000000 },
    { "name": "deepseek/deepseek-v4.1-flash", "context_limit": 1048576 }
  ],
  "supports_streaming": true,
  "requires_auth": true
}

Ключ передаётся через переменную из api_key_env:

export ROUTERAI_API_KEY="sk-xxxxxxxxxxxxxxxx"
goose run --provider routerai --model anthropic/claude-sonnet-5.5 -t "Привет!"

Выбор модели

Все четыре модели ниже проверены в связке с Goose: ответ получен, инструменты (создание файла, shell) вызываются. Актуальные идентификаторы и цены — в каталоге RouterAI.

Модель Для чего
anthropic/claude-sonnet-5.5 основная модель для кода и многошаговых задач агента, контекст 1 млн токенов
anthropic/claude-haiku-5.5 быстрые и недорогие правки, вопросы по коду
openai/gpt-6-luna альтернатива из семейства GPT-6 для повседневных задач
deepseek/deepseek-v4.1-flash экономичный вариант для больших объёмов работы

Сменить модель в Desktop: боковое меню → Settings → Models → Switch models, затем выберите провайдера RouterAI и модель из списка (или Use custom model, чтобы ввести идентификатор вручную). В CLI модель для одной сессии задаётся флагом --model.

Goose Desktop: Settings, вкладка Models с провайдером RouterAI и кнопками Switch models и Configure providers

Проверка подключения

Сначала убедитесь, что ключ и endpoint работают:

curl https://routerai.ru/api/v1/chat/completions \
  -H "Authorization: Bearer $ROUTERAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "anthropic/claude-haiku-5.5", "max_tokens": 64, "messages": [{"role": "user", "content": "Привет!"}]}'

Затем дайте Goose простую задачу, которая требует инструментов. В CLI:

goose run --no-session -t "Создай файл hello.txt с текстом RouterAI works и прочитай его"

Goose CLI: goose run через провайдер openai с OPENAI_HOST RouterAI, агент создаёт и читает файл

В Desktop введите тот же запрос в чате. Если подключение настроено верно, агент вызовет инструменты записи файла и shell, а в ответе вернёт содержимое файла.

Goose Desktop: агент создаёт файл и читает его через RouterAI, модель anthropic/claude-sonnet-5.5

Счётчики стоимости в интерфейсе Goose не отражают списания в рублях. Фактический расход смотрите в личном кабинете RouterAI.

MCP-расширения

Расширения Goose построены на Model Context Protocol, поэтому к агенту можно подключить любой MCP-сервер. Встроенные расширения (Developer, Analyze, Summon, Skills и другие) включены по умолчанию и дают агенту работу с файлами и командами.

В Desktop откройте боковое меню → Extensions → Add custom extension. Укажите Extension Name, Type (STDIO для локального сервера), Command (например, npx -y @modelcontextprotocol/server-filesystem /path), при необходимости Timeout и Environment Variables. В CLI то же делает goose configure → Add Extension. Список готовых серверов — в каталоге расширений.

Goose Desktop: форма Add custom extension с полями Extension Name, Type, Command, Timeout и Environment Variables

Выбор модели влияет на работу с расширениями: чем лучше модель вызывает инструменты, тем надёжнее агент использует MCP-серверы. Для сложных цепочек берите anthropic/claude-sonnet-5.5.

Решение проблем

404 Not Found

Адрес запроса собран неверно. Текст ошибки содержит итоговый URL: например, https://routerai.ru/api/v1/v1/chat/completions значит, что /v1 указан и в хосте, и в OPENAI_BASE_PATH. Используйте пару OPENAI_HOST=https://routerai.ru/api без OPENAI_BASE_PATH или https://routerai.ru/api/v1 + chat/completions. В custom provider указывайте https://routerai.ru/api/v1 в API URL.

401 Unauthorized

Ключ не дошёл до запроса. Проверьте, что OPENAI_API_KEY экспортирован в том же терминале, откуда запускается goose, и не пуст. Ключ в config.yaml Goose игнорирует. В Desktop заново введите ключ в Settings → Models → Configure providers и перезапустите приложение.

Error missing required key

Для custom provider из JSON-файла не задана переменная из api_key_env. Выполните export ROUTERAI_API_KEY="..." до запуска goose (имя переменной должно совпадать с полем api_key_env).

Model not found (400)

Идентификатор модели написан неверно или такой модели нет. Ошибка перечисляет доступные модели; сверьте точный id с каталогом, id всегда вида провайдер/модель.

Агент отвечает, но не выполняет действий

Модель не поддерживает вызов инструментов. Goose использует tool calling, поэтому выбирайте модели из раздела «Выбор модели».

402 Payment Required

Недостаточно средств на балансе. Пополните баланс в разделе Биллинг.

Что дальше