Jalankan Goose pada endpoint custom serasi OpenAI.

Updated 2026-07-29

Penyedia openai Goose menerima override hos. Tetapkan GOOSE_PROVIDER=openai, arahkan OPENAI_HOST ke https://api.apisrouter.com, eksport satu kunci, dan seluruh gelung ejen, termasuk panggilan alat, dihalakan melalui satu endpoint dengan setiap model katalog boleh dicapai mengikut id.

Jawapan pantas: kekalkan penyedia openai, gantikan hos.

Goose menghantar laluan endpoint custom yang didokumentasikan: kekalkan GOOSE_PROVIDER ditetapkan kepada openai dan gantikan ke mana penyedia itu mengarah. OPENAI_HOST menggantikan hos lalai api.openai.com, OPENAI_API_KEY mengesahkan, dan GOOSE_MODEL memilih model mengikut id tepat. Laluan permintaan berasingan: OPENAI_BASE_PATH secara lalai adalah v1/chat/completions dan biasanya tidak memerlukan perubahan. Perhatikan bentuknya dengan teliti, kerana ia terbalik daripada kebanyakan alat dalam kelas ini: OPENAI_HOST mengambil hos kosong, https://api.apisrouter.com, tanpa akhiran /v1. Bahagian /v1/chat/completions berada dalam OPENAI_BASE_PATH. Melampirkan /v1 pada hos menggandakan laluan dan menghasilkan 404 yang kelihatan seperti gateway yang rosak.

export GOOSE_PROVIDER=openai
export OPENAI_HOST=https://api.apisrouter.com   # hos kosong, tiada /v1
export OPENAI_API_KEY=sk-APIsRouter-...
export GOOSE_MODEL=claude-sonnet-4-6

goose session

Bagaimana Goose bertutur dengan penyedianya.

Goose (block di GitHub, lebih kurang 51K bintang) ialah ejen kejuruteraan autonomi daripada Block yang merancang tugas, mengedit fail, menjalankan arahan shell, dan memandu sambungan berasaskan MCP. Semua itu berada pada satu perbualan model: setiap langkah gelung adalah permintaan /v1/chat/completions dengan definisi alat dilampirkan, jadi konfigurasi penyedia menentukan di mana seluruh ejen berjalan. Konfigurasi berlapis. Laluan interaktif ialah goose configure, yang untuk penyedia openai meminta kunci API dan hos custom pilihan, kemudian menulis tetapan bukan-rahsia seperti GOOSE_PROVIDER dan GOOSE_MODEL ke ~/.config/goose/config.yaml; aplikasi desktop mendedahkan tetapan penyedia yang sama melalui UI-nya. Rahsia dikendalikan secara berasingan: kunci pergi ke keychain sistem atau datang daripada pembolehubah persekitaran, dan kunci yang ditampal terus ke dalam config.yaml diabaikan dan bukan dibaca. Pembolehubah persekitaran mengatasi fail, itulah yang menjadikan laluan env di atas berfungsi di mana-mana daripada shell komputer riba kepada runner CI. Kerana Goose meneruskan GOOSE_MODEL sebagai rentetan biasa, id boleh menjadi apa sahaja yang dilayani endpoint di sebalik OPENAI_HOST: id Claude hari ini, id Kimi atau Qwen esok, hanya satu pembolehubah berbeza.

Laluan deklaratif: fail penyedia custom.

Melebihi override env, dokumentasi Goose semasa juga menerangkan penyedia custom deklaratif: fail JSON yang dijatuhkan ke dalam ~/.config/goose/custom_providers/ (direktori konfigurasi per-platform pada Windows) yang mendaftarkan penyedia bernama bersebelahan yang terbina. Fail itu mengisytiharkan enjin (openai untuk endpoint chat-completions), pembolehubah persekitaran mana yang memegang kunci, URL endpoint, dan model yang ditawarkan penyedia itu. Perhatikan konvensyen URL di sini, kerana ia terbalik lagi: tidak seperti OPENAI_HOST, base_url penyedia custom ialah URL permintaan penuh termasuk laluan, https://api.apisrouter.com/v1/chat/completions. Setiap entri models membawa context_limit supaya Goose tahu tetingkap yang boleh dimuatnya. Fail deklaratif adalah padanan lebih baik apabila anda mahu gateway muncul sebagai penyedia bernama sendiri dalam senarai penyedia Goose, dengan pembolehubah kunci sendiri, dan bukan menduduki slot openai. Override env adalah padanan lebih baik untuk CI dan pertukaran pantas. Kedua-duanya berakhir pada endpoint yang sama; pilih satu dan elakkan menindannya.

{
  "name": "apisrouter",
  "display_name": "APIsRouter",
  "engine": "openai",
  "api_key_env": "APISROUTER_API_KEY",
  "base_url": "https://api.apisrouter.com/v1/chat/completions",
  "models": [
    { "name": "claude-sonnet-4-6", "context_limit": 200000 },
    { "name": "claude-opus-4-7",   "context_limit": 200000 },
    { "name": "kimi-k2.7-code",    "context_limit": 200000 }
  ],
  "supports_streaming": true,
  "requires_auth": true
}

Memilih model untuk ejen autonomi.

Aliran kerja praktikal ialah mengekalkan set tugas anda tetap dan menggilirkan GOOSE_MODEL merentas dua atau tiga calon untuk beberapa sesi setiap satu. Kerana setiap calon dihalakan melalui kunci yang sama, pandangan penggunaan per-kunci mengharga setiap eksperimen tanpa sebarang pembukuan di pihak anda.

  • Goose menjalankan tempoh tanpa pengawasan: rancang, edit, jalankan, baca output, ulang. Kebolehpercayaan panggilan alat lebih penting daripada kefasihan mentah, itulah sebab claude-sonnet-4-6 dan claude-opus-4-7 adalah lalai yang dipilih orang ramai untuk gelung utama.
  • Id dilaraskan pengekodan seperti kimi-k2.7-code berbaloi diuji untuk sesi penuh refactor; melalui gateway ujian itu adalah satu perubahan GOOSE_MODEL, bukan migrasi penyedia.
  • Sesi panjang mengumpul konteks. Model dengan tetingkap 200k sebenar, diisytiharkan secara jujur melalui context_limit dalam laluan deklaratif, membolehkan Goose membawa lebih banyak sejarah sesi sebelum meringkaskan.
  • Untuk penggunaan berskrip atau CI, id pertengahan (gpt-5.4, qwen3.7-max) selalunya mencapai piawaian untuk tugas bersempadan jelas pada sebahagian kecil perbelanjaan frontier; ukur pada tugas anda sendiri sebelum lalai kepada yang lebih tinggi.

Bayar mengikut penggunaan · bawah harga rasmi

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModelHarga RasmiHarga Kami
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
Claude Opus 4.7$5.00 / $25.00 per M$4.00 / $20.00 per M
GPT-5.4$2.50 / $15.00 per M$2.00 / $12.00 per M
Kimi K2.7 Code$0.95 / $4.00 per M$1.00 / $4.00 per M
Qwen 3.7 Max$2.50 / $7.50 per M$2.50 / $7.50 per M

Mod kegagalan khusus Goose.

/v1 dilampirkan pada OPENAI_HOST. Pembolehubah hos mengambil hos kosong; laluan berada dalam OPENAI_BASE_PATH, yang sudah secara lalai v1/chat/completions. https://api.apisrouter.com/v1 sebagai hos menghasilkan permintaan /v1/v1/... dan 404. Ini adalah kesilapan paling biasa, tepat kerana setiap alat lain mahukan akhiran /v1. Konvensyen URL-penuh dalam fail penyedia custom. base_url deklaratif ialah URL permintaan lengkap termasuk /v1/chat/completions, konvensyen bertentangan dengan OPENAI_HOST. Menyalin hos kosong ke dalam fail penyedia custom merosakkannya sama pastinya seperti menyalin URL penuh ke dalam OPENAI_HOST. Kunci dalam config.yaml tidak mengesahkan. Goose membaca rahsia daripada keychain atau persekitaran, dan mengabaikan nilai kunci yang diletakkan dalam config.yaml. Jika 401 berterusan selepas mengedit fail, itulah sebabnya; eksport pembolehubah itu atau jalankan semula goose configure dan masukkan kunci apabila diminta. Sesi desktop tidak melihat eksport shell. Aplikasi desktop tidak mewarisi apa-apa daripada profil terminal anda. Konfigurasikan penyedia melalui UI tetapan desktop, atau lancarkan daripada shell yang mempunyai pembolehubah ditetapkan. Sumber konfigurasi bertindan. Eksport OPENAI_HOST lama boleh mengatasi apa yang baru anda tetapkan dalam config.yaml, kerana persekitaran mengatasi fail. Apabila penghalaan kelihatan salah, cetak pembolehubah berkaitan dalam shell yang sama yang melancarkan Goose sebelum menyalahkan mana-mana lapisan.

Siapa yang menghalakan Goose melalui gateway.

  • Jurutera yang menjalankan Goose sebagai pemandu harian yang mahu Claude, GPT, Kimi, dan Qwen dicapai di sebalik satu kunci dan bukan satu set kelayakan setiap vendor.
  • Pasukan yang meletakkan Goose ke dalam CI atau tugas berjadual. Laluan hanya-env bermaksud runner memerlukan tepat dua pembolehubah penghalaan dan satu rahsia, mudah disuntik dan mudah diputarkan.
  • Pembangun yang membandingkan model ejen pada tugas sebenar. Setiap calon adalah satu nilai GOOSE_MODEL terhadap endpoint yang sama, dihargakan secara automatik oleh penggunaan per-kunci.
  • Pasukan platform yang mahu perbelanjaan ejen kelihatan per kunci dan per model pada satu permukaan pengebilan, dan bukan menyesuaikan beberapa papan pemuka vendor.
  • Pembangun tanpa akses kepada pengebilan vendor tertentu. Akses berasaskan top-up tanpa keperluan kad menghapuskan kebergantungan pendaftaran setiap penyedia.

Sahkan endpoint dan nyahpepijat sesi pertama.

Sahkan gateway melayani id dalam GOOSE_MODEL sebelum memulakan sesi; senarai /v1/models adalah ejaan berwibawa, termasuk akhiran versi. Kegagalan sesi pertama adalah konsisten. 404 bermaksud hos dan laluan dibentuk salah, hampir selalu /v1 dalam OPENAI_HOST. 401 bermaksud kunci tiada di tempat Goose mencari: tidak dieksport dalam shell yang melancarkannya, tiada dalam keychain, atau berada tidak berguna di dalam config.yaml. Ralat model-tidak-ditemui daripada gateway adalah kesilapan taip id dalam GOOSE_MODEL. Jika sesi bermula tetapi panggilan alat berkelakuan pelik, semak anda berada pada model yang benar-benar menyokong penggunaan alat; id dalam jadual di atas semuanya menyokong. Sebaik sahaja gelung berjalan, konsol APIsRouter menunjukkan model per permintaan, kiraan token, dan perbelanjaan. Ejen autonomi adalah beban kerja di mana ini paling penting: sesi panjang, giliran panggilan alat banyak, dan pandangan penggunaan adalah cara anda melihat apa yang benar-benar dikos satu petang Goose.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" | head -50

Soalan lazim

Bolehkah Goose memandu model Claude atau Kimi melalui penyedia openai-nya?

Ya. Penyedia openai adalah klien protokol, bukan kunci vendor: dengan OPENAI_HOST mengarah ke endpoint berbilang vendor, GOOSE_MODEL boleh menjadi mana-mana id yang dilayani, termasuk Claude, Kimi, dan Qwen, dan gelung ejen dengan panggilan alat berfungsi tanpa berubah.

Adakah OPENAI_HOST memerlukan akhiran /v1?

Tidak, dan menambahnya merosakkan penghalaan. OPENAI_HOST mengambil hos kosong (https://api.apisrouter.com); laluan permintaan berada dalam OPENAI_BASE_PATH, yang secara lalai adalah v1/chat/completions. Ini adalah kebalikan konvensyen yang digunakan kebanyakan alat.

Apakah perbezaan antara override env dan fail penyedia custom?

Override env menghalakan semula penyedia openai terbina: paling pantas untuk disediakan, ideal untuk CI. JSON penyedia custom dalam ~/.config/goose/custom_providers/ mendaftarkan gateway sebagai penyedia bernama sendiri dengan pembolehubah kunci dan senarai model sendiri. Endpoint yang sama sama ada; pilih satu.

Mengapa Goose mengabaikan kunci API yang saya letakkan dalam config.yaml?

Mengikut reka bentuk. Goose membaca rahsia daripada keychain sistem atau pembolehubah persekitaran dan mengabaikan kunci dalam config.yaml. Eksport OPENAI_API_KEY (atau pembolehubah api_key_env anda), atau masukkan kunci melalui goose configure atau tetapan desktop supaya ia mendarat dalam keychain.

Adakah CLI dan aplikasi desktop berkongsi konfigurasi ini?

Mereka berkongsi config.yaml dan keychain, tetapi bukan persekitaran shell anda: pembolehubah yang dieksport dalam terminal mencapai sesi CLI yang dilancarkan daripada terminal itu, bukan aplikasi desktop. Konfigurasikan aplikasi desktop melalui UI tetapannya, atau bergantung pada fail konfigurasi yang dikongsi ditambah keychain.

Model mana yang patut dinamakan GOOSE_MODEL untuk kerja ejen?

Mulakan dengan claude-sonnet-4-6 untuk gelung utama; ia tahan dengan baik pada penggunaan alat berbilang langkah. Uji kimi-k2.7-code pada sesi penuh refactor dan id pertengahan pada tugas CI bersempadan jelas. Di sebalik satu endpoint setiap ujian adalah perubahan satu pembolehubah.