Skip to Content
aicentos

Goose

Goose で aicentos を使う —— カスタム OpenAI 互換 provider の宣言

最終更新:

Goose は Block がオープンソース化したコーディングエージェントで、OpenAI 互換エンドポイントを指す方法を 2 つサポートしています。内蔵の openai provider を流用して host を書き換えるか、独立したカスタム provider を宣言するかです。後者をおすすめします。エンドポイント情報がまとまり、複数の設定を併存させやすくなります。

準備

まずコンソールの「API キー」ページで、Goose 専用のキーを作成してください(名前は goose のようにすると使用量の追跡に便利です):

設定値

項目値
カスタム provider ファイル~/.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-Key"

~/.zshrc または ~/.bashrc に書き込めば永続化できます。キーを config.yaml に書かないでください。公式は環境変数またはシステムのキーチェーンを使うことを明確に推奨しています。

2. カスタム provider の宣言

~/.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/ ディレクトリを走査して自動登録するため、その後は GUI 内で切り替えることもできます。

テスト

まず非対話セッションで検証します:

goose run -t "1+1 はいくつですか?一文で答えてください"

正常に返れば接続成功です。

注意事項

  • base_url は完全なパスまで書いてください(ここでは /v1/chat/completions 付き)。多くのクライアントの書き方とは異なります。パスを明示的に指定したい場合、新しいバージョンでは base_path フィールドにも対応しており、こちらの優先度は URL の解析より高くなります。
  • 環境変数は config.yaml より優先されます。shell で OPENAI_HOST を export していると、ファイル内の設定が黙って上書きされます。切り分けるときは先に env | grep -i openai を実行してください。
  • provider を選択しない限り、Goose は正常に起動しません。config.yaml に設定を書いただけで goose configure を一度も実行していないと、No provider configured と出ることがあります —— よくある誤解です。設定項目自体は YAML 形式であり、.env ではありません。
  • dynamic_models: true のとき、Goose はエンドポイントの /v1/models を呼び出してモデル一覧を取得します。特定のモデルだけを公開したい場合は、このフィールドを削除するか false にしてください。
  • もう 1 つの簡易な方法は内蔵 provider の流用です:config.yaml で GOOSE_PROVIDER: openai を設定し、OPENAI_HOST と OPENAI_BASE_PATH でエンドポイントを組み立てます。手間は少ないですが、環境変数との結合が強く、上記の上書き問題に引っかかりやすい点に注意してください。
  • 切り分けの順序:provider 名と JSON ファイル名が完全一致しているか → base_url に完全なパスが含まれているか → 環境変数が見えているか → 残高は十分か。

関連リンク