Goose
Использование aicentos в Goose — объявление кастомного OpenAI-совместимого провайдера
Обновлено:
Goose — опенсорсный кодинг-агент от Block, который может указывать на OpenAI-совместимый эндпоинт двумя способами: переиспользовать встроенного провайдера openai, переопределив host, либо объявить отдельного кастомного провайдера. Рекомендуется второй вариант: данные эндпоинта собраны в одном месте, и удобно держать несколько конфигураций одновременно.
Подготовка
Сначала создайте на странице «API Key» в консоли отдельный ключ для Goose (рекомендуемое имя goose — так проще отслеживать расход):
- Консоль: https://aicentos.com
- Создание ключа: https://aicentos.com/keys
- Пополнение при нехватке баланса: https://aicentos.com/wallet
Конфигурация для заполнения
| Поле | Значение |
|---|---|
| Файл кастомного провайдера | ~/.config/goose/custom_providers/aicentos.json |
| engine | openai |
| base_url | https://aicentos.com/v1/chat/completions |
| api_key_env | AICENTOS_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: trueGoose обращается к эндпоинту/v1/modelsза списком моделей; если нужно показывать только заданные модели, удалите это поле или поставьтеfalse. - Есть и более простой вариант — переиспользовать встроенного провайдера: в config.yaml задайте
GOOSE_PROVIDER: openai, а эндпоинт соберите изOPENAI_HOSTиOPENAI_BASE_PATH. Так проще, но связь с переменными окружения сильнее и легко напороться на описанную выше проблему перекрытия. - Порядок диагностики: совпадает ли имя провайдера с именем JSON-файла полностью → содержит ли
base_urlполный путь → видны ли переменные окружения → хватает ли баланса.
Полезные ссылки
- Документация по кастомным провайдерам: https://block.github.io/goose/docs/api/providers/custom