Goose
Goose で aicentos を使う —— カスタム OpenAI 互換 provider の宣言
最終更新:
Goose は Block がオープンソース化したコーディングエージェントで、OpenAI 互換エンドポイントを指す方法を 2 つサポートしています。内蔵の openai provider を流用して host を書き換えるか、独立したカスタム provider を宣言するかです。後者をおすすめします。エンドポイント情報がまとまり、複数の設定を併存させやすくなります。
準備
まずコンソールの「API キー」ページで、Goose 専用のキーを作成してください(名前は goose のようにすると使用量の追跡に便利です):
- コンソール:https://aicentos.com
- キーの作成:https://aicentos.com/keys
- 残高不足のときのチャージ:https://aicentos.com/wallet
設定値
| 項目 | 値 |
|---|---|
| カスタム provider ファイル | ~/.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-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-4oGoose は起動時に 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に完全なパスが含まれているか → 環境変数が見えているか → 残高は十分か。
関連リンク
- カスタム Provider ドキュメント:https://block.github.io/goose/docs/api/providers/custom