Skip to Content
aicentos

Goose

Использование aicentos в Goose — объявление кастомного OpenAI-совместимого провайдера

Обновлено:

Goose — опенсорсный кодинг-агент от Block, который может указывать на OpenAI-совместимый эндпоинт двумя способами: переиспользовать встроенного провайдера openai, переопределив host, либо объявить отдельного кастомного провайдера. Рекомендуется второй вариант: данные эндпоинта собраны в одном месте, и удобно держать несколько конфигураций одновременно.

Подготовка

Сначала создайте на странице «API Key» в консоли отдельный ключ для Goose (рекомендуемое имя goose — так проще отслеживать расход):

Конфигурация для заполнения

ПолеЗначение
Файл кастомного провайдера~/.config/goose/custom_providers/aicentos.json
engineopenai
base_urlhttps://aicentos.com/v1/chat/completions
api_key_envAICENTOS_API_KEY
Модельимя модели из «витрины моделей» в консоли

Шаги настройки

1. Задайте переменную окружения для API Key

export AICENTOS_API_KEY="sk-ваш-API-ключ"

Для постоянного действия добавьте её в ~/.zshrc или ~/.bashrc. Не пишите ключ в config.yaml — официальная документация прямо рекомендует переменные окружения или системное хранилище ключей.

2. Объявите кастомного провайдера

Создайте ~/.config/goose/custom_providers/aicentos.json (в Windows — %APPDATA%\Block\goose\config\custom_providers\):

{
  "name": "aicentos",
  "engine": "openai",
  "display_name": "aicentos",
  "description": "Модели, подключённые через aicentos",
  "api_key_env": "AICENTOS_API_KEY",
  "base_url": "https://aicentos.com/v1/chat/completions",
  "models": [
    {
      "name": "gpt-4o",
      "context_limit": 128000
    }
  ],
  "supports_streaming": true,
  "dynamic_models": true
}

Обязательные поля: name, engine, display_name, base_url, models; engine принимает openai / anthropic / ollama.

Имена моделей — по «витрине моделей» в консоли, см. Поддерживаемые модели.

3. Задайте по умолчанию в config.yaml

Отредактируйте ~/.config/goose/config.yaml:

GOOSE_PROVIDER: aicentos
GOOSE_MODEL: gpt-4o

При запуске Goose сканирует каталог custom_providers/ и регистрирует провайдеров автоматически; позже можно переключаться и в графическом интерфейсе.

Проверка

Сначала проверьте в неинтерактивной сессии:

goose run -t "Ответь одним предложением: сколько будет 1+1"

Если ответ возвращается нормально, подключение выполнено.

Примечания

  • В base_url указывайте полный путь (здесь — с /v1/chat/completions): это отличается от привычки большинства клиентов. Если нужно явно задать путь, в новых версиях есть поле base_path, у которого приоритет выше разбора URL.
  • Переменные окружения имеют приоритет над config.yaml. Если в shell уже экспортирован OPENAI_HOST, он молча перекроет конфигурацию из файла; при диагностике сначала выполните env | grep -i openai.
  • Goose нормально стартует, только если провайдер выбран. Если конфигурация записана в config.yaml, но goose configure ни разу не выполнялся, может появиться No provider configured — это частое недопонимание: параметры конфигурации в формате YAML, а не .env.
  • При dynamic_models: true Goose обращается к эндпоинту /v1/models за списком моделей; если нужно показывать только заданные модели, удалите это поле или поставьте false.
  • Есть и более простой вариант — переиспользовать встроенного провайдера: в config.yaml задайте GOOSE_PROVIDER: openai, а эндпоинт соберите из OPENAI_HOST и OPENAI_BASE_PATH. Так проще, но связь с переменными окружения сильнее и легко напороться на описанную выше проблему перекрытия.
  • Порядок диагностики: совпадает ли имя провайдера с именем JSON-файла полностью → содержит ли base_url полный путь → видны ли переменные окружения → хватает ли баланса.

Полезные ссылки