Mga Seksyon ng Base ng Kaalaman ▾

Nabigasyon

▸ Magsimula rito Ayon sa papel

Mga Kategorya

Mga Gamit 52
Glosaryo 12

Mga Tool

Goose + JoinGonka Gateway: sariling provider at key sa keyring

Ang Goose ay isang open-source, extensible na AI agent na tumatakbo sa iyong makina: desktop app para sa macOS, Linux, at Windows, CLI para sa terminal, at API para sa embedding. Nagbabasa at nag-e-edit ito ng mga file, nagpapatakbo ng mga command, at kumokonekta sa mga external service sa pamamagitan ng MCP extensions. Nakasulat sa Rust at ipinamamahagi sa ilalim ng lisensyang Apache 2.0. Ang proyekto ay lumaki sa Block company at ngayon ay bahagi na ng Agentic AI Foundation sa ilalim ng Linux Foundation; ang canonical repository ay github.com/aaif-goose/goose, at ang lumang block/goose address ay nagre-redirect doon.

Inilalarawan ng Goose ang mga provider nito nang deklaratibo: isang JSON file sa custom_providers folder — at isa pang source ng mga model ang lalabas sa listahan. Ang JoinGonka Gateway ay nagsasalita gamit ang OpenAI Chat Completions, kaya kumokonekta ito gamit ang isang installer command o isang file. Pagkatapos nito, ang agent ay gumagana sa mga model ng desentralisadong Gonka network — DeepSeek V4 Flash, GLM-5.3 Flash, at MiniMax M2.7 — sa iisang presyo: $0.0069 bawat isang milyong input token.

May isang feature ang Goose na mabuting malaman nang maaga: ang mga provider key nito ay hindi itinatago sa config, kundi sa system secret storage. Depende sa kung mayroon kang ganitong storage sa iyong makina, malalaman kung may matitira pang isang manual step pagkatapos ng installer — ang step na ito ay tinalakay sa isang hiwalay na seksyon. Ang mga command at mensahe sa ibaba ay na-verify sa pamamagitan ng live run ng goose 1.51.0 sa pamamagitan ng gateway noong Setyembre 23, 2026. Pagkatapos kumpirmahin ang address, ang 3M na libreng mga token ay darating sa account — sapat na ito para ulitin mo ang lahat ng ito nang mag-isa.

Mabilis na simula: pag-install at isang command

Hakbang 1: i-install ang Goose. Mga opisyal na paraan para sa CLI mula sa dokumentasyon ng proyekto:

# 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

Ang variable na CONFIGURE=false ay nagpapatay sa goose configure wizard na kung hindi ay kusang pinapatakbo ng script pagkatapos ng install: ang installer ang magse-set up ng provider. Kung wala ang ~/.local/bin sa PATH, sasabihin ito ng script. Para sa Windows, may script na download_cli.ps1 sa parehong repo, at ang desktop app ay mada-download mula sa dokumentasyon; pareho silang nagbabasa ng parehong settings, kaya ang lahat sa ibaba ay gagana sa dalawa. Para i-verify — goose --version.

Hakbang 2: kumuha ng key. Magrehistro sa gate.joingonka.ai/register, i-confirm ang email, at gumawa ng key na may prefix na jg- sa seksyong "API keys". Isang key at isang balance lang ang kailangan para sa lahat ng modelo sa network.

Hakbang 3: patakbuhin ang installer.

npx @joingonka/setup --tool goose

Tatanungin ng installer ang key — hindi ito ipinapasa sa command-line arguments para hindi maiwan sa shell history — at gagawin ang sumusunod:

  • gagawa ng provider file na custom_providers/custom_joingonka.json na may address ng gateway at tatlong modelo ng network na may totoong context windows, na may permissions na 600. Ang mga pangalang custom_joingonka at CUSTOM_JOINGONKA_API_KEY — pareho sa awtomatikong ginagawa ng Goose mula sa pangalang "JoinGonka", kaya ang key mula sa wizard ay mapupunta sa tamang lugar;
  • gagawing default provider ang JoinGonka gamit ang modelong DeepSeek V4 Flash — pero kung ang provider ay hindi pa napipili o ang napili ay ang atin na may walang laman o wala nang model sa network. Hindi nito ginagalaw ang ibang pinili, sa halip ay ipi-print ang command para subukan: goose session --provider custom_joingonka --model …;
  • ilalagay ang key sa secrets.yaml, pero kung ang secret storage ng Goose ay tiyak na file-based; kung hindi, sasabihin nito nang deretso na isang hakbang na lang ang natitira — nasa seksyon tungkol sa key ang mga detalye;
  • gagawa ng backup ng mga binagong file at sa huli ay magpapadala ng live na request sa gateway para agad na ma-verify ang key, address, at modelo.

Hinahanap ng installer ang settings directory sa parehong paraan ng Goose mismo: ~/.config/goose sa Linux at macOS, %APPDATA%\Block\goose\config sa Windows, <root>/config kapag naka-set ang GOOSE_PATH_ROOT. Ang ibang modelo ay itinatakda ng --model flag na may shortcuts na deepseek, glm, o minimax; ang tahasang tinukoy na modelo ay palaging isinusulat. Ang non-interactive mode ay kumukuha ng key mula sa environment variable:

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

Manual na pagsasaayos: file ng provider at config.yaml

Ang lahat ng ginagawa ng installer ay maaaring isulat nang manu-mano. Ang provider ay isang hiwalay na JSON file ~/.config/goose/custom_providers/custom_joingonka.json; ang pangalan ng file ay tumutugma sa field na 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
}
FieldValueMahalagang Tandaan
namecustom_joingonkaIto rin ang pangalan ng file at value ng --provider
engineopenaiAng format na OpenAI Chat Completions ay ang pangunahing landas ng gateway. Bukod dito, alam ng Goose ang anthropic at ollama
api_key_envCUSTOM_JOINGONKA_API_KEYHindi ang key, kundi ang pangalan ng secret. Walang field para sa mismong value sa file — kung saan ito hinahanap ng Goose ay tinalakay sa susunod na seksyon
base_urlhttps://gate.joingonka.ai/v1/chat/completionsKumpletong address, gaya ng nasa halimbawa ng dokumentasyon ng Goose: naiintindihan din ito ng mga lumang build
modelstatlong entry na may context_limitKung walang context_limit, kukunin ng Goose ang window mula sa sarili nitong catalog ng mga model, at para sa hindi kilalang model — 128,000 tokens, at pini-compress ang history kapag napuno na ang 80% ng window. Ang mga network model ay may window mula 200,000 hanggang 390,000
supports_streaming, requires_authtrueAng tugon ay dumarating nang naka-stream, ang mga request ay nangangailangan ng key. Huwag patayin ang stream: kung wala ito at walang limitasyon sa request, lilimitahan ng gateway ang tugon sa isang maikling default value

Walang nakalaang hiwalay na limitasyon sa tugon para sa entry ng model sa Goose. Para sa mga model na ito, hindi nito ipinapasa ang limitasyon sa request — sinuri namin ito sa log ng mga request nito — at sa streaming mode, ang gateway mismo ang naglilimita sa tugon batay sa limitasyon ng model: 32,768 tokens para sa DeepSeek V4 Flash, 8192 para sa GLM-5.3 Flash at MiniMax M2.7. Ang global variable na GOOSE_MAX_TOKENS ay hindi kailangang itakda para dito: isa lang ito para sa lahat ng provider nang sabay-sabay.

Binabasa ng Goose ang file ng provider gamit ang mahigpit na JSON parsing: isang comment o trailing comma at mawawala ang provider sa listahan. Maaari mo rin itong gawin gamit ang wizard (goose configure → Custom Providers), ngunit hindi tinatanong ng wizard ang context window — kailangan mo itong idagdag nang manu-mano.

Ang default na provider at model ay nasa ~/.config/goose/config.yaml. Ganito ito isinusulat ng Goose mismo:

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

Ang lumang layout — flat keys na GOOSE_PROVIDER at GOOSE_MODEL sa root ng file — ay gumagana rin: binabasa ito ng Goose at awtomatikong isasalin sa bago kapag nag-save ng mga setting sa unang pagkakataon, gaya ng nangyari sa amin pagkatapos ng goose configure. Ang installer sa isang blangkong file ay nagsusulat ng mga flat key — naiintindihan ito ng anumang bersyon. Ang mga environment variable na may parehong pangalan ay mas mahalaga kaysa sa file: kung nakatakda ang mga ito sa shell, hindi gagana ang pagpipiliang mula sa config.yaml, at magbibigay ng babala ang installer tungkol dito.

Saan nakatira ang key: keyring, secrets.yaml o environment variable

Sa file ng provider para sa Goose, mayroon lamang itong pangalan ng secret — CUSTOM_JOINGONKA_API_KEY. Hinahanap nito ang value nang sunod-sunod: sa environment variable na may ganitong pangalan, pagkatapos sa system secret storage (keyring, sa macOS — Keychain), pagkatapos sa file na secrets.yaml katabi ng config. Napupunta ang mga secret sa file kapag file-based ang storage ng Goose, at doon nakaimbak ang mga ito sa plain text, may mga pahintulot na 600. At sa config.yaml, hindi naghahanap ng mga key ang Goose (dokumentasyon).

Nagiging file-based ang storage kapag naka-off ang keyring — sa pamamagitan ng variable na GOOSE_DISABLE_KEYRING na may anumang value o ang string na GOOSE_DISABLE_KEYRING: true sa config.yaml, — o kapag hindi ito available: server na walang graphical session, container, CI. Sa pangalawang kaso, isinusulat ng Goose sa log ang «Keyring unavailable. Using file storage for secrets.» at kusa itong lumilipat sa file — eksaktong ito ang nakita namin sa container. Hindi marunong magsulat sa keyring ang installer, at hindi nito ito i-o-off para sa iyo: titigil na sanang makita ng Goose ang mga secret na naroon na. Kaya narito ang mga senaryo:

SitwasyonAno ang gagawin ng installerAno ang maiiwan sa iyo
Desktop na may keyring: macOS, Windows, Linux na may graphical sessionIsusulat ang provider at model, hindi isusulat ang key at sasabihin ang «ONE STEP LEFT»Isang beses na i-save ang key gamit ang wizard
Server o container na walang keyring, wala pang secrets.yamlPareho: hindi mahuhulaan ang file-based storage sa pamamagitan ng hindi direktang palatandaanDumaan sa wizard — ilalagay mismo ng Goose ang key sa secrets.yaml, at doon na ito ia-update ng installer
Nakatakda ang GOOSE_DISABLE_KEYRING o mayroon nang secrets.yamlIsusulat ang key sa secrets.yaml na may mga pahintulot na 600, mapapanatili ang ibang mga secretWala
Ang command ang nagbibigay ng key sa provider (field na auth)Hindi isusulat ang key: sa Goose, magkasalungat ang auth at api_key_envWala

Ang natitirang hakbang. Patakbuhin ang goose configure at sagutin ang mga tanong ng wizard — ganito ang hitsura ng mga ito sa aming run:

  • What would you like to configure? → Configure Providers;
  • Which model provider should we use? → JoinGonka (sa amin, ito ang nakatayo sa unahan);
  • Would you like to set CUSTOM_JOINGONKA_API_KEY? (optional) → Yes, pagkatapos sa Enter value for CUSTOM_JOINGONKA_API_KEY i-paste ang key — sa halip na mga character, lalabas ang mga parisukat. Agad na nase-save ang key;
  • Would you like to configure advanced settings? → No;
  • Select a model — kinukuha ng Goose ang listahan mula sa gateway: MiniMaxAI/MiniMax-M2.7, deepseek-ai/DeepSeek-V4-Flash-0731, zai-org/GLM-5.3-Flash. Nasa unang linya ang cursor — para mapanatili ang model na pinili ng installer, piliin gamit ang mga arrow ang DeepSeek V4 Flash. Pagkatapos ng test request, tatapusin ng wizard sa linyang «Configuration saved successfully».

Sa Goose Desktop, ganito ang landas: Settings → Models → Configure providers → JoinGonka → key → Submit. Kung ayaw mong manu-manong mag-paste ng key — ilagay ito sa isang variable at patakbuhin ang wizard mula sa parehong shell: isusulat ng Goose ang «CUSTOM_JOINGONKA_API_KEY is set via environment variable» at io-offer na i-save ang value:

read -s CUSTOM_JOINGONKA_API_KEY && export CUSTOM_JOINGONKA_API_KEY
goose configure

At para sa isang run, maaari mong ipasa ang key nang walang pag-save: CUSTOM_JOINGONKA_API_KEY=jg-your-key goose session, sa PowerShell — $env:CUSTOM_JOINGONKA_API_KEY = "jg-your-key"; goose session. Mas mahalaga ang environment variable kaysa sa naka-save na value, ngunit nabubuhay lamang ito hanggang sa isara ang shell.

Pag-verify: ano ang dapat mangyari

Una, tingnan muna kung anong mga setting ang aktwal na nakikita ng Goose:

goose info -v

Sa block na «goose Configuration» dapat may mga linyang GOOSE_PROVIDER: custom_joingonka at GOOSE_MODEL na may identifier ng modelo. Pagkatapos — isang beses na pagpapatakbo nang walang interactive na session: maglagay ng file na may halatang bug sa isang walang laman na direktoryo at ipahanap ito.

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

Hindi iniimbak ng flag na --no-session ang pagpapatakbo sa history. Sa header lalabas ang linyang tulad ng ● new session · custom_joingonka deepseek-ai/DeepSeek-V4-Flash-0731, pagkatapos ang tawag sa tool — ▸ shell na may command na cat calc.py — at ang sagot na may nahanap na bug. Ang ibang modelo para sa isang run ay itinatakda ng --model: zai-org/GLM-5.3-Flash o MiniMaxAI/MiniMax-M2.7. Sa aming pagpapatakbo noong Setyembre 23, 2026, ang cycle na «request → tool → result → answer» ay naipasa ng lahat ng tatlong modelo ng network. Ang pag-iisip ng mga modelo ng CLI Goose ay nakatago bilang default — maipapakita ang mga ito gamit ang variable na GOOSE_CLI_SHOW_THINKING=1 kung ang output ay pupunta sa terminal. Sa panig ng gateway, makikita ang request sa dashboard: seksyong «Usage», breakdown na «By models» at «By keys».

Kung may nangyaring mali, karaniwang mababasa ang diagnosis mismo mula sa mensahe:

Ano ang nakikitaAno ang ibig sabihinAno ang gawin
Error missing required key CUSTOM_JOINGONKA_API_KEY: Configuration value not foundHindi nakita ng Goose ang key sa environment o sa secrets storageI-save ang key gamit ang wizard. Kung ang key ay nasa secrets.yaml at nananatili pa rin ang error, ang mga secret ng Goose ay nasa keyring na ngayon — i-save muli ang key gamit ang wizard
Authentication failed … Status: 401 Unauthorized. Response: Invalid API key.Hindi tinanggap ng gateway ang keyI-save muli ang key — buo, walang spaces. Tandaan na ang variable na CUSTOM_JOINGONKA_API_KEY sa environment ay mas mahalaga kaysa sa naka-save na value
Error Unknown provider: custom_joingonkaHindi nabasa ang provider file: comment, trailing comma, o typo sa JSONAyusin ang file o tanggalin ito at patakbuhin muli ang installer: sa ibabaw ng sirang file, walang isinusulat ang installer, pinapangalanan lang nito ang file
Bad request (400): Model "…" not found. Available: …Typo sa pangalan ng modeloAng gateway mismo ang naglilista ng mga available na identifier — kopyahin ang kailangan
Rate limit exceeded: Model "…" is currently overloaded in the Gonka network (rate limit)Naubos ang libreng kapasidad ng modelo sa network sa peak hoursKusang inuulit ng Goose ang request, pero may maiikling pause. Palitan ang modelo — /model sa session o --model sa run — o maghintay ng isang minuto; ang estado ng network ay nasa status page
402Naubos ang pondo sa balanceMag-top up sa seksyong «Billing»; gumagana pa rin ang key

Magkano ito

Ang agent ay gumagastos ng tokens nang iba kaysa sa chat. Sa standard configuration pa lang, nagpapadala na ang Goose ng mga deskripsyon ng labing-walong built-in tool sa modelo, at sa aming run, bawat galaw ay may dala nang mga 4.6 libong input tokens bago pa ang iyong tanong. Ang gawaing «basahin ang file at maghanap ng error» ay umabot ng dalawa hanggang tatlong galaw at 10-15 libong tokens, halos lahat ay input; isa pang maikling request ang ginagawa ng Goose mismo para mag-isip ng pangalan ng session. Ang mga hindi kailangang extension ay pwedeng i-off sa goose configure → Toggle Extensions — ito ang pinakamadaling paraan para bawasan ang input.

Sa pamamagitan ng JoinGonka Gateway, ang mga token ay nagkakahalaga ng $0.0069 bawat milyon sa input at $0.021 bawat milyon sa output — ang presyo ay pareho para sa lahat ng modelo sa network at kinukuha sa pahinang ito mula sa live source.

SenaryoGastosSa pamamagitan ng Gateway
Isang beses na gawain: magbasa ng file, maghanap ng error10-15K tokensmga sentimo
Isang araw ng aktibong trabaho3-7M tokensilang sentimo
Isang buwan ng aktibong development~150M tokensmga isang dolyar

Ang mga estimate sa kanang column ay base sa presyo noong Setyembre 2026. Bilang paghahambing — kung paano ka makakabayad para sa mga modelo sa Goose:

ParaanModel ng pagbabayadAno ang limitasyon
Subscription sa Claude, ChatGPT o Gemini sa pamamagitan ng ACPfixed na halaga bawat buwanmga quota at limit update windows sa panig ng vendor
Direct vendor keybase sa tokens ayon sa presyo ng vendortumaataas ang bill kasabay ng haba ng session
JoinGonka Gatewaybase sa tokens, prepaid balancekita ang gastos sa dashboard; walang subscriptions o monthly quotas

Ang eksaktong gastos at natitirang balance ay nasa dashboard, sa mga seksyong «Usage» at «Billing». Kung bakit DeepSeek V4 Flash ang default — na may pinakamalaking output limit sa network — ay detalyadong tinalakay sa model review.

Mga dapat isaalang-alang sa pagtatrabaho

Mode ng mga kumpirmasyon. Bilang default, gumagana ang Goose sa mode na auto — ganap na autonomous: kusa nitong ine-edit at tinatanggal ang mga file, nagpapatakbo ng mga command, at gumagamit ng mga extension nang walang tinatanong. Sa sarili mong proyekto, ito ay maginhawa; sa code ng iba, mas mabuting higpitan ang mode:

# inside a session
/mode smart_approve

# permanently, as a line in config.yaml
GOOSE_MODE: smart_approve
ModePaano kumilos ang Goose
autoKumikilos nang walang kumpirmasyon — default na mode
smart_approveKusang nilalampasan ang mga low-risk na aksyon, nagtatanong para sa iba
approveNagtatanong bago ang bawat pagtawag sa tool
chatNakikipag-usap lang: walang tool, walang edit

Ito ay katangian ng Goose mismo, hindi ito nakadepende sa provider ng modelo.

Pagpapalit ng modelo. Sa loob ng session — command na /model na may identifier, halimbawa /model zai-org/GLM-5.3-Flash; para sa isang run — flag na --model sa goose run at goose session; permanente — goose configure o linyang model sa config.yaml. Nananatili ang provider. Ang nag-iisip na GLM-5.3 Flash ay mahusay para sa magulong logic, pero ang ceiling ng sagot nito ay 8192 token, at bahagi nito ay napupunta sa pag-iisip — mga detalye sa review ng modelo.

Mga pagpapatakbo nang walang pagmamatyag. Ang goose run ay angkop para sa mga script at CI: ang flag na -q ay nag-iiwan lang ng sagot ng modelo sa output, ang --output-format json ay nagbibigay ng resulta para sa parsing. Ang mga limiter na --max-turns (kung gaano karaming hakbang ang ginagawa ng agent nang walang tao) at --max-tool-repetitions (kung ilang beses na sunod-sunod na matatawag ang isang tool na may parehong argumento) ay proteksyon laban sa pag-loop.

Privacy. Ang anonymous na usage statistics sa Goose ay naka-off bilang default (GOOSE_TELEMETRY_ENABLED). Hindi iniimbak ng gateway ang nilalaman ng mga prompt at sagot — mga aggregate ng gastos lang ang natitira sa statistics.

Ang Goose ay kumokonekta sa JoinGonka Gateway gamit ang isang command — npx @joingonka/setup --tool goose — o sa pamamagitan ng isang file: provider na custom_joingonka sa custom_providers (engine: openai, address na https://gate.joingonka.ai/v1/chat/completions, mga modelong may tapat na context_limit) pati na rin ang default provider at modelo sa config.yaml. Hindi itinatago ng Goose ang key sa config, kundi sa keyring o sa secrets.yaml: sa machine na may keyring, isang hakbang na lang ang natitira — goose configure → Configure Providers → JoinGonka → key, at sa pagpili ng modelo, mainam na iwanan ang DeepSeek V4 Flash. Para sa pag-verify — goose run at tingnan ang seksyong "Usage" sa dashboard; ang presyo ng DeepSeek V4 Flash, GLM-5.3 Flash, at MiniMax M2.7 ay pareho, kaya ang pagpili ng modelo ay base sa pag-uugali, hindi sa budget.

Gusto mo pang matuto?

Galugarin ang iba pang mga seksyon o simulang kumita ng GNK ngayon.

Kumuha ng key at libreng tokens →