知識ベースのセクション ▾

ナビゲーション

▸ ここから始める 役割別

カテゴリー

ツール 52
用語集 12

ツール

Goose + JoinGonka Gateway: プロバイダーとキーをキーリングで管理

Goose は、マシン上で動作するオープンで拡張可能なAIエージェントです。macOS、Linux、Windows向けのデスクトップアプリ、ターミナル向けのCLI、および埋め込み用のAPIを提供します。ファイルの読み取り・修正、コマンドの実行、MCP 拡張を介した外部サービスの接続が可能です。Rustで記述され、Apache 2.0ライセンスの下で配布されています。元はBlock社で開発され、現在はLinux Foundation傘下のAgentic AI Foundationに含まれています。公式リポジトリは github.com/aaif-goose/goose であり、古いblock/gooseアドレスはそこにリダイレクトされます。

Gooseはプロバイダーを宣言的に記述します。custom_providers ディレクトリにJSONファイルを置くだけで、リストに新しいモデルソースが追加されます。JoinGonka Gateway はOpenAI Chat Completionsと互換性があるため、インストーラーコマンドまたは単一のファイルで接続可能です。これにより、エージェントは分散ネットワークGonkaのモデル(DeepSeek V4 Flash、GLM-5.3 Flash、MiniMax M2.7)を統一価格(入力トークン100万あたり $0.0069)で利用できます。

Gooseを利用する上で知っておくべき重要な点が1つあります。プロバイダーのキーは設定ファイルではなく、システムのシークレットストレージに保持されます。マシンにそのようなストレージが存在するかどうかによって、インストーラー後に手動操作が必要かどうかが決まります。これについては別のセクションで説明します。以下のコマンドとメッセージは、2026年9月23日にゲートウェイを通じたgoose 1.51.0の動作確認済みです。アドレスを確認すると、3M の無料トークンが付与され、これだけで一通りの操作を試すことができます。

クイックスタート:インストールとコマンド

ステップ 1:Goose をインストールする。プロジェクトのドキュメントにある CLI の公式インストール方法:

# macOS and Linux: the script puts the binary in ~/.local/bin
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | CONFIGURE=false bash

# macOS, Homebrew
brew install block-goose-cli

CONFIGURE=false 変数は、スクリプトがインストール直後に起動する goose configure ウィザードを無効にします:プロバイダーはインストーラーが設定します。~/.local/bin ディレクトリが PATH にない場合、スクリプトがその旨を通知します。Windows 用には同じリポジトリに download_cli.ps1 スクリプトがあり、デスクトップアプリはドキュメントページからダウンロードできます。デスクトップアプリと CLI は同じ設定を読み込むため、以下はすべて両方に適用されます。確認は goose --version です。

ステップ 2:キーを取得する。gate.joingonka.ai/register で登録し、アドレスを確認して、「API-キー」セクションで jg- プレフィックス付きのキーを作成してください。1 つのキーと 1 つの残高が、ネットワークのすべてのモデルで有効です。

ステップ 3:インストーラーを実行する。

npx @joingonka/setup --tool goose

インストーラーはキーを尋ねます(シェル履歴に残らないよう、コマンドライン引数では渡されません)。そして以下を実行します:

  • ゲートウェイのアドレスとネットワークの 3 つのモデル(実際のコンテキストウィンドウ付き)を含むプロバイダーファイル custom_providers/custom_joingonka.json を、権限 600 で作成します。custom_joingonka と CUSTOM_JOINGONKA_API_KEY という名前は、Goose が「JoinGonka」という名前から自動的に導出するものと同じなので、ウィザードで入力したキーは適切な場所に保存されます;
  • JoinGonka をデフォルトプロバイダーとして、モデル DeepSeek V4 Flash で設定します。ただし、プロバイダーがまだ選択されていないか、私たちのものが選択されていてモデルが空またはネットワークから消えている場合のみです。他の選択は変更せず、試用するためのコマンドを表示します:goose session --provider custom_joingonka --model …;
  • Goose のシークレットストレージが確実にファイルベースの場合のみ、キーを secrets.yaml に保存します。そうでない場合は、残り 1 ステップであることを直接伝えます。詳細はキーに関するセクションにあります;
  • 変更されたファイルのバックアップを作成し、最後にゲートウェイへライブリクエストを送信して、キー、アドレス、モデルをすぐに検証します。

インストーラーは設定ディレクトリを Goose 本体と同じ方法で見つけます:Linux と macOS では ~/.config/goose、Windows では %APPDATA%\Block\goose\config、GOOSE_PATH_ROOT が設定されている場合は <root>/config。別のモデルは --model フラグで指定し、省略形 deepseek、glm、minimax が使えます。明示的に指定されたモデルは常に書き込まれます。プロンプトなしモードでは環境変数からキーを取得します:

JOINGONKA_API_KEY=jg-your-key npx @joingonka/setup --tool goose --model glm --non-interactive

手動設定:プロバイダーファイルとconfig.yaml

インストーラーが行うすべてのことは、手動で行うことも可能です。プロバイダーは個別のJSONファイル ~/.config/goose/custom_providers/custom_joingonka.json です。ファイル名は name フィールドと一致させる必要があります:

{
  "name": "custom_joingonka",
  "engine": "openai",
  "display_name": "JoinGonka",
  "description": "JoinGonka Gateway — Gonka AI inference (OpenAI-compatible)",
  "api_key_env": "CUSTOM_JOINGONKA_API_KEY",
  "base_url": "https://gate.joingonka.ai/v1/chat/completions",
  "models": [
    { "name": "deepseek-ai/DeepSeek-V4-Flash-0731", "context_limit": 380000 },
    { "name": "zai-org/GLM-5.3-Flash", "context_limit": 390000 },
    { "name": "MiniMaxAI/MiniMax-M2.7", "context_limit": 200000 }
  ],
  "supports_streaming": true,
  "requires_auth": true
}
フィールド値重要なポイント
namecustom_joingonkaファイル名および --provider の値となります
engineopenaiOpenAI Chat Completions形式 — ゲートウェイの主なルートです。Gooseは他に anthropic および ollama にも対応しています
api_key_envCUSTOM_JOINGONKA_API_KEYキーそのものではなくシークレット名です。ファイル内に値自体を記述するフィールドはありません。Gooseがどこで参照するかは次章で解説します
base_urlhttps://gate.joingonka.ai/v1/chat/completionsGooseのドキュメント例と同じフルアドレスです。古いビルドでもこの形式はサポートされています
modelscontext_limit を含む3つのエントリーcontext_limit を指定しない場合、Gooseはモデルカタログからコンテキストウィンドウを取得し、不明なモデルの場合は128,000トークンを適用します。また、ウィンドウの80%が埋まると履歴を圧縮します。ネットワークモデルのウィンドウサイズは200,000から390,000です
supports_streaming, requires_authtrueレスポンスはストリーミングで届き、リクエストにはキーが必要です。ストリーミングを無効にしないでください:無効にすると、リクエスト内に上限がない場合、ゲートウェイはレスポンスをデフォルトの短い値に制限します

Gooseのモデル設定には、レスポンスの個別上限という概念はありません。そのようなモデルの場合、リクエスト内に制限は一切送信されません(リクエストログで確認済み)。ストリーミングモードでは、ゲートウェイがモデル固有の上限に基づいてレスポンスを制限します(DeepSeek V4 Flashは32,768トークン、GLM-5.3 FlashとMiniMax M2.7は8,192トークン)。このためにグローバル変数 GOOSE_MAX_TOKENS を設定する必要はありません。これはすべてのプロバイダーに共通で適用されます。

Gooseはプロバイダーファイルを厳密なJSONパーサーで読み取るため、コメントや末尾のカンマがあるとリストからプロバイダーが消えてしまいます。ウィザード(goose configure → Custom Providers)で作成することもできますが、ウィザードはコンテキストウィンドウの値を尋ねてこないため、手動で追記する必要があります。

デフォルトのプロバイダーとモデルは ~/.config/goose/config.yaml に保存されます。Goose自身は以下のように記録します:

active_provider: custom_joingonka
providers:
  custom_joingonka:
    enabled: true
    model: deepseek-ai/DeepSeek-V4-Flash-0731
    configured: true

古いレイアウトであるファイルルートのフラットな GOOSE_PROVIDER および GOOSE_MODEL キーも機能します。Gooseは設定保存時に自動的に新しい形式へ変換します(goose configure 実行後など)。インストーラーは空のファイルに対してはこのフラットなキーを書き込み、どのバージョンでも認識されるようにしています。環境変数はファイルよりも優先されます。シェルで設定されている場合、config.yaml の選択は反映されず、インストーラーがその旨を警告します。

キーの保存場所:keyring、secrets.yaml、または環境変数

Goose のプロバイダーファイルにはシークレット名 CUSTOM_JOINGONKA_API_KEY しかありません。値は次の順番で探されます: 同名の環境変数、次にシステムのシークレットストア(keyring、macOS では Keychain)、次に設定ファイルの隣にある secrets.yaml。シークレットがファイルに書き込まれるのは Goose のストアがファイルベースの場合で、そこでは平文のまま、パーミッション 600 で保存されます。なお config.yaml 内で Goose がキーを探すことは一切ありません(ドキュメント)。

ストアがファイルベースになるのは、keyring が無効化されている場合 — 任意の値を持つ環境変数 GOOSE_DISABLE_KEYRING、または config.yaml 内の GOOSE_DISABLE_KEYRING: true という行 — あるいは利用できない場合です: グラフィカルセッションのないサーバー、コンテナ、CI など。後者の場合、Goose はログに「Keyring unavailable. Using file storage for secrets.」と出力し、自動的にファイルへ切り替わります — まさにコンテナで見たとおりです。インストーラーは keyring に書き込むことができず、またあなたに代わって無効化することもありません。そうすると Goose が既に保存されているシークレットを見られなくなるからです。そこから以下のシナリオが導かれます:

状況インストーラーの動作あなたに残る作業
keyring のあるデスクトップ: macOS、Windows、グラフィカルセッション付き Linuxプロバイダーとモデルを設定し、キーは書き込まず「ONE STEP LEFT」と表示ウィザードで一度だけキーを保存する
keyring のないサーバーまたはコンテナで、secrets.yaml がまだない同じ: 間接的な手がかりからファイルストレージを推測できないウィザードを進める — Goose がキーを secrets.yaml に保存し、以降インストーラーはそこで更新する
GOOSE_DISABLE_KEYRING が設定されている、または secrets.yaml が既にあるキーを secrets.yaml にパーミッション 600 で書き込み、他のシークレットは保持するなし
キーをプロバイダーにコマンドで渡す(auth フィールド)キーを書き込まない: Goose では auth と api_key_env は排他的なし

残りのステップ。 goose configure を実行し、ウィザードの質問に答えてください — 私たちの実行では次のようになりました:

  • What would you like to configure? → Configure Providers;
  • Which model provider should we use? → JoinGonka(私たちの環境では先頭にありました);
  • Would you like to set CUSTOM_JOINGONKA_API_KEY? (optional) → Yes、続いて Enter value for CUSTOM_JOINGONKA_API_KEY でキーを貼り付け — 文字の代わりに四角が表示されます。キーはすぐに保存されます;
  • Would you like to configure advanced settings? → No;
  • Select a model — リストは Goose がゲートウェイから取得します: MiniMaxAI/MiniMax-M2.7、deepseek-ai/DeepSeek-V4-Flash-0731、zai-org/GLM-5.3-Flash。カーソルは最初の行にあります — インストーラーが選んだモデルを維持するには、矢印キーで DeepSeek V4 Flash を選択してください。テストリクエストの後、ウィザードは「Configuration saved successfully」という行で終了します。

Goose Desktop ではパスは次のとおりです: Settings → Models → Configure providers → JoinGonka → キー → Submit。手入力でキーを貼り付けたくない場合は、環境変数に入れて同じシェルからウィザードを起動してください: Goose は「CUSTOM_JOINGONKA_API_KEY is set via environment variable」と表示し、値を保存するか尋ねてきます:

read -s CUSTOM_JOINGONKA_API_KEY && export CUSTOM_JOINGONKA_API_KEY
goose configure

また、保存せずに一度だけキーを渡すこともできます: CUSTOM_JOINGONKA_API_KEY=jg-your-key goose session、PowerShell では $env:CUSTOM_JOINGONKA_API_KEY = "jg-your-key"; goose session。環境変数は保存済みの値より優先されますが、シェルを閉じるまでしか有効ではありません。

確認:期待される動作

まず、Gooseが実際にどのような設定を認識しているかを確認しましょう:

goose info -v

「goose Configuration」ブロックには、GOOSE_PROVIDER: custom_joingonkaとモデルIDを含むGOOSE_MODELの行があるはずです。次に、対話セッションなしの単発実行です。空のディレクトリに明らかなバグを含むファイルを置き、それを見つけるよう依頼します。

goose run --no-session -t "Read calc.py and tell me in one sentence whether it has a bug."

--no-sessionフラグは実行を履歴に保存しません。ヘッダーには● new session · custom_joingonka deepseek-ai/DeepSeek-V4-Flash-0731のような行が表示され、続いてツール呼び出し——cat calc.pyコマンドを伴う▸ shell——そして見つかったバグを含む回答が表示されます。1回の実行で別のモデルを指定するには--modelを使います:zai-org/GLM-5.3-FlashまたはMiniMaxAI/MiniMax-M2.7。2026年9月23日の私たちの実行では、ネットワーク上の3つのモデルすべてが「リクエスト → ツール → 結果 → 回答」のサイクルを通過しました。Goose CLIはデフォルトでモデルの推論を非表示にします——ターミナルに出力する場合は、GOOSE_CLI_SHOW_THINKING=1変数で表示できます。ゲートウェイ側では、リクエストは管理画面で確認できます:「使用状況」セクション、「モデル別」と「キー別」の内訳です。

何か問題が発生した場合、診断は通常メッセージから直接読み取れます:

表示される内容意味対処法
Error missing required key CUSTOM_JOINGONKA_API_KEY: Configuration value not foundGooseが環境変数にもシークレットストアにもキーを見つけられなかったウィザードでキーを保存してください。secrets.yamlにキーがあるのにエラーが続く場合、Gooseはシークレットをkeyringに保存するようになったので、ウィザードでもう一度キーを保存してください
Authentication failed … Status: 401 Unauthorized. Response: Invalid API key.ゲートウェイがキーを受け付けなかったキーを再度保存してください——空白なしで全体を。環境変数CUSTOM_JOINGONKA_API_KEYは保存された値より優先されることに注意してください
Error Unknown provider: custom_joingonkaプロバイダーファイルが読み込めなかった:コメント、末尾のカンマ、またはJSONのタイプミスファイルを修正するか、削除してインストーラーを再実行してください:壊れたファイルの上にインストーラーは何も書き込まず、そのファイル名を告げるだけです
Bad request (400): Model "…" not found. Available: …モデル名のタイプミスゲートウェイが利用可能な識別子を自ら列挙します——必要なものをコピーしてください
Rate limit exceeded: Model "…" is currently overloaded in the Gonka network (rate limit)ピーク時にモデルのネットワーク内の空き容量がなくなったGooseは自動的にリクエストを再試行しますが、短い間隔で行います。モデルを変更するか——セッション内で/model、または実行時に--model——1分待ってください。ネットワークの状態はステータスページで確認できます
402残高が不足しています「請求」セクションで口座にチャージしてください。キーは機能しています

料金について

エージェントのトークン消費はチャットとは異なります。Gooseの標準構成では、モデルに18種類の組み込みツールが提供されるため、今回の実行では質問の前にすでに約4,600の入力トークンが消費されていました。「ファイルを読み込んでエラーを探す」というタスクには2〜3ステップと10,000〜15,000トークンが必要で、そのほとんどが入力分です。さらに、Gooseはセッション名を決めるために短いリクエストを自動で行います。不要な拡張機能は goose configure → Toggle Extensions でオフにすることが、入力トークンを削減する最も簡単な方法です。

JoinGonka Gateway を経由する場合、トークン料金は入力が $0.0069(100万トークンあたり)、出力が $0.021(100万トークンあたり)です。この価格はネットワーク内の全モデル共通で、このページにはライブソースから反映されています。

シナリオ消費量ゲートウェイ経由の料金
単発タスク:ファイルを読み、エラーを探す10-15K トークン数セントの数分の1
活発な1日の作業3-7M トークン数セント
活発な1ヶ月の開発~150M トークン約1ドル

右列の概算は2026年9月時点の価格に基づいています。比較として、Gooseでモデルを利用する際の支払い方法は以下の通りです:

方法支払いモデル制限事項
ACP 経由での Claude, ChatGPT, Gemini サブスクリプション月額固定料金ベンダー側のクォータおよび制限更新のタイミングに依存
ベンダーのキーを直接使用従量課金(ベンダー価格)セッションの長さに応じて料金が増加
JoinGonka Gatewayプリペイド式従量課金ダッシュボードで利用状況を可視化。サブスクリプションや月間クォータ制限なし

正確な利用状況と残高は、ダッシュボードの「利用状況(Usage)」および「請求(Billing)」セクションで確認できます。なぜデフォルトが DeepSeek V4 Flash なのか(ネットワーク内で最大の回答容量を持つため)については、モデル解説 を参照してください。

作業上の注意点

確認モード。 デフォルトではGooseは auto モードで動作します — 完全に自律的で、何も尋ねずにファイルを編集・削除し、コマンドを実行し、拡張機能を使用します。自分のプロジェクトでは便利ですが、他人のコードではモードを厳格化することをお勧めします:

# inside a session
/mode smart_approve

# permanently, as a line in config.yaml
GOOSE_MODE: smart_approve
モードGooseの動作
auto確認なしで行動 — デフォルトモード
smart_approve低リスクのアクションは自動的に通過させ、それ以外は確認する
approveすべてのツール呼び出しの前に確認する
chat会話のみ:ツールも編集もなし

これはGoose自体の機能であり、モデルプロバイダーには依存しません。

モデルの切り替え。 セッション内では — IDを伴う /model コマンド、例えば /model zai-org/GLM-5.3-Flash;1回の実行では — goose run と goose session の --model フラグ;恒久的には — goose configure または config.yaml の model 行です。プロバイダーはそのまま変わりません。推論するGLM-5.3 Flashは複雑なロジックに適していますが、回答の上限は8192トークンで、その一部は推論に使われます — 詳細はモデルレビューをご覧ください。

無人実行。 goose run はスクリプトやCIに適しています:-q フラグは出力にモデルの回答のみを残し、--output-format json は解析用の結果を返します。--max-turns(エージェントが人間の介入なしに行うターン数)と --max-tool-repetitions(同じ引数で同じツールを連続して呼び出せる回数)の制限がループを防ぎます。

プライバシー。 Gooseの匿名使用統計はデフォルトで無効です(GOOSE_TELEMETRY_ENABLED)。ゲートウェイはプロンプトや回答の内容を保存しません — 統計には消費の集計のみが残ります。

Gooseは1つのコマンド npx @joingonka/setup --tool goose または1つのファイルでJoinGonka Gatewayに接続できます。custom_providers にプロバイダー custom_joingonka を設定します(engine: openai、アドレス https://gate.joingonka.ai/v1/chat/completions、正しい context_limit を持つモデル)。さらに config.yaml でプロバイダーとデフォルトモデルを設定します。Gooseのキーはconfigではなくkeyringまたは secrets.yaml に保持します。keyringを使用している環境では、goose configure → Configure Providers → JoinGonka → キーの入力という手順で完了し、モデル選択ではDeepSeek V4 Flashを残すのが最適です。検証には goose run を行い、ダッシュボードの「使用状況」セクションを確認してください。DeepSeek V4 Flash、GLM-5.3 Flash、MiniMax M2.7の価格は同じであるため、予算ではなく振る舞いに応じてモデルを選択してください。

もっと知りたいですか?

他のセクションを探索するか、Gonkaを今すぐ獲得し始めましょう。

キーと無料トークンを取得 →