Sezioni dell'archivio conoscenza ▾

Navigazione

▸ Inizia qui Per ruolo

Categorie

Strumenti 52
Glossario 12

Strumenti

Qwen Code dopo la chiusura di qwen-oauth: utilizzo tramite JoinGonka Gateway

Qwen Code (comando qwen) è un terminal agent open source per lo sviluppo del team Qwen di Alibaba: analizza il progetto, corregge file, esegue comandi e test direttamente dal terminale, editor o script. Il progetto nasce dal Google Gemini CLI e si sviluppa autonomamente, il codice è open con licenza Apache-2.0. L'agente supporta diversi protocolli — OpenAI, Anthropic, Gemini — quindi si connette a quasi ogni fornitore di modelli.

Iniziare con Qwen Code senza chiave era possibile tramite l'accesso gratuito all'account qwen.ai, con tipo di autorizzazione qwen-oauth. Il 15 aprile 2026 questo livello gratuito è stato chiuso, ma il comportamento di default è rimasto lo stesso: se non viene selezionato un tipo di autorizzazione, Qwen Code tenta di usare quello, e un'installazione precedente risponde con Qwen OAuth free tier was discontinued on 2026-04-15. La documentazione suggerisce di passare a un altro fornitore, e il modo più semplice è usare un endpoint compatibile con OpenAI.

JoinGonka Gateway è proprio un endpoint di questo tipo: tramite esso, Qwen Code lavora con i modelli della rete decentralizzata Gonka — DeepSeek V4 Flash, GLM-5.3 Flash e MiniMax M2.7 — a un prezzo unico di $0.0069 per milione di token in ingresso, senza abbonamento. Non ci sono modelli Qwen propri nella rete al momento, ma l'agente non ne ha bisogno: funziona con qualsiasi modello capace di invocare strumenti (tool calling). I comandi e i messaggi riportati sono stati verificati con un test reale di Qwen Code 0.24.4 tramite gateway il 23 settembre 2026. Dopo la conferma dell'indirizzo, verranno accreditati 3M token gratuiti — sufficienti per ripetere l'intero percorso personalmente.

Avvio rapido: installazione e un solo comando

Passo 1: installare Qwen Code. I metodi ufficiali dal README del progetto:

# Linux and macOS: standalone build with its own Node.js
curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.sh | bash

# Windows (PowerShell)
irm https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.ps1 | iex

# npm (requires Node.js 22 or newer)
npm install -g @qwen-code/qwen-code@latest

# Homebrew
brew install qwen-code

Lo script mette il comando in ~/.local/bin/qwen e, se necessario, aggiunge il percorso al file di configurazione della shell. Riapri il terminale e verifica: qwen --version.

Passo 2: ottenere una chiave. Registrati su gate.joingonka.ai/register, conferma l'indirizzo e crea nella sezione «Chiavi API» una chiave con prefisso jg-.

Passo 3: avviare l'installer.

npx @joingonka/setup --tool qwen-code

L'installer chiederà la chiave (non si passa tra gli argomenti della riga di comando, per non lasciarla nella cronologia della shell) e modificherà ~/.qwen/settings.json — il file che la documentazione di Qwen Code propone per la configurazione «in un unico file»:

  • inserirà la chiave nel blocco env dello stesso file con il nome JOINGONKA_API_KEY — è lì che mette le chiavi anche il comando nativo /auth; il file riceverà i permessi 600, l'ambiente della shell non cambia;
  • aggiungerà i modelli della rete alla lista modelProviders.openai — con l'indirizzo del gateway, le finestre di contesto reali e i limiti massimi di risposta; le voci degli altri tuoi provider in questa lista resteranno intatte;
  • se il tipo di autorizzazione non è selezionato o punta ancora al dismesso qwen-oauth, lo passerà a openai e imposterà come modello predefinito DeepSeek V4 Flash; una scelta funzionante di un altro tipo — anthropic, gemini, vertex-ai — non viene toccata senza il flag --model;
  • salverà una copia del file precedente, non toccherà i commenti né le altre impostazioni e alla fine invierà una richiesta reale al gateway e dirà se chiave, indirizzo e modello sono stati accettati.

Ecco come appariva l'output su un'installazione in cui restava qwen-oauth (abbreviato):

Configured ~/.qwen/settings.json
Base URL: https://gate.joingonka.ai/v1
Default model: deepseek-ai/DeepSeek-V4-Flash-0731 (replaces qwen-oauth — that free tier was discontinued on 2026-04-15)
Switched Qwen Code to JoinGonka (auth type "openai") — this replaced your previous auth type "qwen-oauth".
To go back: run /auth (and /model) inside Qwen Code, or restore ~/.qwen/settings.json.bak.2026-09-23T04-22-32-159Z.
…
✓ Verified: the gateway accepted the key, base URL and model.

Un altro modello predefinito si imposta con il flag --model: l'abbreviazione glm, minimax o l'identificatore completo; il modello specificato esplicitamente viene sempre scritto. La modalità senza domande prende la chiave dalla variabile d'ambiente:

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

Una directory spostata tramite la variabile QWEN_HOME viene trovata autonomamente dall'installer. Un nuovo avvio aggiornerà il catalogo dei modelli, ma lascerà il modello di rete che hai scelto: Kept your current default model.

Configurazione manuale: settings.json

Tutto ciò che fa l'installer si può scrivere a mano. Il file è ~/.qwen/settings.json (oppure $QWEN_HOME/settings.json); Qwen Code lo legge come JSON con commenti. Ecco la configurazione funzionante per la rete Gonka, completa:

{
  "env": { "JOINGONKA_API_KEY": "jg-your-key" },
  "modelProviders": {
    "openai": [
      { "id": "deepseek-ai/DeepSeek-V4-Flash-0731", "name": "DeepSeek V4 Flash (Gonka)",
        "baseUrl": "https://gate.joingonka.ai/v1", "envKey": "JOINGONKA_API_KEY",
        "generationConfig": { "contextWindowSize": 380000, "samplingParams": { "max_tokens": 32768 } } },
      { "id": "zai-org/GLM-5.3-Flash", "name": "GLM 5.3 Flash (Gonka)",
        "baseUrl": "https://gate.joingonka.ai/v1", "envKey": "JOINGONKA_API_KEY",
        "generationConfig": { "contextWindowSize": 390000, "samplingParams": { "max_tokens": 8192 } } },
      { "id": "MiniMaxAI/MiniMax-M2.7", "name": "MiniMax M2.7 (Gonka)",
        "baseUrl": "https://gate.joingonka.ai/v1", "envKey": "JOINGONKA_API_KEY",
        "generationConfig": { "contextWindowSize": 200000, "samplingParams": { "max_tokens": 8192 } } }
    ]
  },
  "security": { "auth": { "selectedType": "openai" } },
  "model": { "name": "deepseek-ai/DeepSeek-V4-Flash-0731", "baseUrl": "https://gate.joingonka.ai/v1" }
}
CampoValoreCosa conta
env.JOINGONKA_API_KEYchiave jg-…La chiave stessa. La voce del modello non ha un campo per la chiave: fa riferimento a questa variabile tramite envKey
baseUrlhttps://gate.joingonka.ai/v1Con /v1 alla fine: il percorso /chat/completions lo aggiunge Qwen Code da solo. La chiave della lista openai è proprio il protocollo Chat Completions
contextWindowSizefinestra del modelloSenza questo campo Qwen Code stima la finestra dal nome del modello; in base a questo numero decide quando comprimere la cronologia
samplingParams.max_tokenstetto della rispostaFissa il limite della risposta. Senza, una volta raggiunto il limite, Qwen Code può ripetere la richiesta con un limite da 64K — oltre il tetto di qualsiasi modello della rete
security.auth.selectedTypeopenaiQuale protocollo attivare all'avvio; senza il campo Qwen Code passa al chiuso qwen-oauth
model.name, model.baseUrlmodello predefinito e suo indirizzoLa coppia indica in modo inequivocabile la voce del gateway, anche se un modello con lo stesso id è registrato presso un altro provider

Dove tenere la chiave. Il valore della variabile indicata in envKey Qwen Code lo cerca in quest'ordine: ambiente della shell, poi il primo .env trovato (.qwen/.env oppure .env dalla directory corrente verso l'alto, poi ~/.qwen/.env e ~/.env) e solo alla fine il blocco env del file. Da qui la trappola principale: una JOINGONKA_API_KEY esportata nella shell con un vecchio valore sovrascrive il file — l'abbiamo verificato di proposito e abbiamo ottenuto 401 Invalid API key con la chiave corretta in settings.json. L'installer avvisa quando rileva un valore diverso nell'ambiente.

E una nota sui progetti: un .qwen/settings.json di progetto con un proprio modelProviders non integra ma sostituisce la lista della directory home — dentro quel progetto i modelli del gateway spariranno da /model. La chiave non va messa affatto nel file di progetto: insieme a esso finirebbe nel repository.

Le modifiche a modelProviders la sessione in corso le recepisce senza riavvio — basta riaprire /model. Senza editor fa lo stesso il wizard /auth → Custom Provider.

Autorizzazione e modelli: come Qwen Code sceglie con cosa lavorare

Qwen Code offre due scelte indipendenti: il tipo di autorizzazione — quale protocollo attivare e da dove recuperare le chiavi — e il modello. Il tipo è memorizzato in security.auth.selectedType e il comportamento del programma di installazione dipende da questo:

Valore in selectedTypeAzione del programma di installazione
vuoto o qwen-oauthInstalla openai e il modello predefinito dalla rete Gonka; un piano a pagamento privato non è considerato una scelta valida, ma il programma avviserà dell'avvenuta sostituzione e spiegherà come ripristinare la precedente
openaiMantiene il modello selezionato, sia esso del gateway o di un altro provider, aggiornando solo il catalogo
anthropic, gemini, vertex-aiNessuna modifica: questa è una configurazione operativa. Con il flag --model, cambierà il modello avvisando su come tornare indietro

All'interno della sessione, il comando /model cambia il modello. Nella nostra prova, ha mostrato tutte le voci del gateway con l'etichetta del protocollo e, sotto l'elenco, la finestra di contesto, l'indirizzo e il nome della variabile con la chiave:

Select Model

  1. [openai] MiniMax M2.7 (Gonka) (MiniMaxAI/MiniMax-M2.7)
› 2. [openai] DeepSeek V4 Flash (Gonka) (deepseek-ai/DeepSeek-V4-Flash-0731)
  3. [openai] GLM 5.3 Flash (Gonka) (zai-org/GLM-5.3-Flash)

Modality:       text-only
Context Window: 380,000 tokens
Base URL:       https://gate.joingonka.ai/v1
API Key:        JOINGONKA_API_KEY

La selezione effettuata tramite /model viene mantenuta tra le sessioni. Per un'esecuzione singola, il modello viene impostato con il flag -m seguito dall'identificatore: qwen -m zai-org/GLM-5.3-Flash. Un modello leggero separato per i suggerimenti e il classificatore di permessi viene impostato tramite /model --fast; finché non è disponibile, questo compito viene svolto dal modello principale.

Quale modello scegliere. Poiché il prezzo di tutti i modelli della rete è lo stesso, la scelta dipende dal comportamento. Ecco come si sono comportati in Qwen Code 0.24.4 con lo stesso compito: leggere un file e trovare un errore (verificato il 23 settembre 2026):

ModelloContesto / rispostaComportamento in Qwen Code
DeepSeek V4 Flash380K / 32768Scelta del programma di installazione: finestra ampia e il limite di risposta più alto della rete. Ha risolto il compito in due passaggi
GLM-5.3 Flash390K / 8192Modello di ragionamento: la risposta più precisa; il ragionamento arriva in uno stream separato e rientra nel limite di risposta
MiniMax M2.7200K / 8192Risposta corretta in due passaggi in circa sette secondi; il ragionamento arriva in uno stream separato e non viene incluso nel testo della risposta

Ragionamento in GLM-5.3 Flash. Il programma di installazione assegna a ogni modello dei samplingParams, ma in questo caso Qwen Code non aggiunge il livello di ragionamento alla richiesta: il comando /effort non raggiunge i modelli della rete e GLM-5.3 Flash ragiona sempre. Se serve un selettore, è possibile dichiarare i livelli direttamente nella voce del modello:

{
  "id": "zai-org/GLM-5.3-Flash",
  "capabilities": {
    "reasoning": { "profile": "openai-effort", "efforts": ["low", "high"], "defaultEffort": "high" }
  },
  …
}

In questo modo Qwen Code inizierà a inviare reasoning_effort, e per GLM-5.3 Flash il valore low disabilita completamente il ragionamento — maggiori dettagli nella panoramica del modello. Nella nostra prova con "defaultEffort": "low", Qwen Code ha inviato reasoning_effort: "low" e il modello ha risposto senza il blocco di ragionamento.

Verifica: cosa dovrebbe succedere

Il controllo più rapido è un singolo run. Mettete in una cartella vuota un calc.py con una funzione di somma che in realtà sottrae, e chiedete di trovare il bug:

qwen -p "Read calc.py and tell me in one sentence whether it has a bug."

L'agente deve chiamare da solo lo strumento di lettura e rispondere nel merito. Così ha risposto GLM-5.3 Flash (avvio con -m zai-org/GLM-5.3-Flash):

Yes, there is a bug: the `add` function subtracts instead of adding (`return a - b`), so `print(add(2, 3))` prints `-1` instead of `5`.

Nell'interfaccia (qwen senza argomenti) l'intestazione mostrerà il modello scelto — API Key | DeepSeek V4 Flash (Gonka) — e la stessa richiesta funzionerà così:

> Read calc.py and tell me in one sentence whether it has a bug.
  ✓ Read calc.py, README.md

  ◆ Yes, calc.py has a bug: the add function returns the difference (a - b) instead of the sum (a + b). …

  ➜ demo · DeepSeek V4 Flash (Gonka) · 380.0k Context 5.1% used

Il comando /stats mostra richieste e token per modello, mentre il pannello del gateway riporta lo stesso consumo nella sezione "Utilizzo".

Modalità di approvazione in -p. Senza flag, il run singolo va in modalità Ask Permissions: non c'è nessuno a cui chiedere conferma, quindi gli strumenti che richiedono autorizzazione — comandi di shell, modifica e scrittura di file — semplicemente non vengono passati al modello. Alla richiesta di eseguire ls, nel nostro run l'agente ha risposto che non dispone di tale strumento. Per le modifiche aggiungete --approval-mode auto-edit, per i comandi --yolo; quest'ultimo Qwen Code lo accompagna con un avviso che la sandbox non è attiva.

Se qualcosa va storto, la diagnosi di solito si legge direttamente dal messaggio:

Cosa si vedeCosa significaCosa fare
No auth type is selected. Please configure an auth type …Il tipo di autorizzazione non è selezionatoAvviate l'installer o inserite "selectedType": "openai", come nell'esempio sopra
Qwen OAuth free tier was discontinued on 2026-04-15 …Nelle impostazioni è rimasto il qwen-oauth dismessoAvviate l'installer: cambierà il tipo e vi dirà cosa ha sostituito
[API Error: 401 Invalid API key]Il gateway non ha accettato la chiaveControllate il blocco env e se nella shell o nel .env c'è una variabile JOINGONKA_API_KEY con un vecchio valore: ha la precedenza sul file
429 Model "…" is currently overloaded in the Gonka network (rate limit)Il modello sulla rete ha esaurito la capacità disponibileRiprovate dopo un minuto o cambiate modello; lo stato è visibile sulla pagina di stato
Request timeout after 151s …, poi Retrying provider attemptLa rete sotto carico non ha iniziato a rispondere entro due minuti e mezzoQwen Code riproverà la richiesta da solo; se si protrae, cambiate modello

Quanto costa

Un agente consuma token in modo diverso da una chat: ad ogni tua frase Qwen Code aggiunge un system prompt e le descrizioni degli strumenti, e il compito richiede diversi passaggi. Nel nostro test, ogni richiesta qwen -p trasportava circa 13 mila token in ingresso prima ancora di iniziare, e "leggi il file, trova l'errore" ha richiesto due passaggi e circa 27 mila token. Nell'interfaccia ci sono più strumenti e dopo la risposta Qwen Code esegue richieste di servizio con lo stesso modello, ad esempio suggerimenti per la replica successiva: /stats ha mostrato 4 richieste per lo stesso compito e circa 79 mila token in ingresso.

Tramite JoinGonka Gateway i token costano $0.0069 per milione in entrata e $0.021 per milione in uscita: il prezzo è uguale per tutti i modelli della rete e viene aggiornato in questa pagina da una fonte in tempo reale.

ScenarioConsumoTramite Gateway
Task singolo in qwen -p: leggere il file, trovare l'errore~27K tokenfrazioni di centesimo
Lo stesso task nell'interfaccia, con richieste di servizio~79K tokenfrazioni di centesimo
Giornata di lavoro attivo3-7M tokenpochi centesimi
Mese di sviluppo attivo~150M tokencirca un dollaro

Le stime nella colonna di destra si basano sui prezzi di settembre 2026. Per confronto, come è possibile pagare i modelli in Qwen Code:

MetodoModello di pagamentoLimiti
qwen-oauthera gratuitochiuso il 15 aprile 2026
Alibaba Cloud Coding Planimporto fisso al mesequote lato vendor, chiave separata sk-sp-…
Alibaba Cloud Token Planper token, per team e aziendeendpoint regionale e chiave Alibaba Cloud
JoinGonka Gatewayper token, saldo prepagatoconsumo visibile nel pannello; niente abbonamenti o quote mensili

Le richieste di servizio si possono disattivare dove non necessarie: suggerimenti per la replica successiva — "ui": { "enableFollowupSuggestions": false }, memoria automatica in background — "memory": { "enableManagedAutoMemory": false, "enableManagedAutoDream": false }. Consumo esatto e saldo residuo nel pannello, nelle sezioni "Utilizzo" e "Fatturazione". Il motivo per cui DeepSeek V4 Flash è selezionato di default è spiegato in dettaglio nella recensione del modello.

Cosa considerare nel lavoro

Modalità di approvazione. Nell'interfaccia Qwen Code parte in modalità Auto: lettura, ricerca e modifiche all'interno del progetto sono consentite subito, mentre i comandi della shell e altre azioni rischiose vengono valutati da un classificatore, una richiesta separata al modello. Le altre modalità — Plan, Ask Permissions, Auto-Edit e YOLO — si cambiano con Shift+Tab (su Windows — Tab) o con il comando /approval-mode; la modalità predefinita si imposta tramite la chiave tools.approvalMode.

Lavoro in background. Di default Qwen Code gestisce la memoria automatica: dopo le conversazioni estrae note sul progetto e sulle tue preferenze, e una volta al giorno le pulisce (Dream) — con lo stesso modello. In un'esecuzione singola si nota: qwen -p potrebbe non terminare per diversi minuti dopo la risposta, finché il task in background attende il modello. Per script e CI disabilita la memoria automatica (chiavi nella sezione sopra) e imposta dei tetti massimi: --max-wall-time, --max-session-turns, --max-tool-calls.

Immagini. I modelli della rete sono testuali (Modality: text-only in /model). Per gli screenshot assegna un modello intermediario di un altro provider con il comando /model --vision: riassumerà l'immagine in testo, e il modello principale continuerà il lavoro.

Statistiche. Qwen Code invia statistiche di utilizzo anonime di default; si disattivano con "privacy": { "usageStatisticsEnabled": false }. Il gateway non conserva il contenuto dei prompt e delle risposte — solo gli aggregati di consumo.

Vicini di rete. Anche i laboratori i cui modelli sono serviti dalla rete rilasciano i propri agenti: DeepSeek ha DeepSeek Harness, MiniMax ha MiniMax Code, Z.ai, gli autori di GLM, ha ZCode. Tutti si connettono allo stesso gateway con la stessa chiave e consumano lo stesso saldo.

Qwen Code è l'agente da terminale open source del team Qwen e, dopo la chiusura del piano gratuito qwen-oauth, necessita di un proprio fornitore di modelli. La via più rapida è npx @joingonka/setup --tool qwen-code: l'installer scriverà la chiave nel blocco env del file ~/.qwen/settings.json, aggiungerà DeepSeek V4 Flash, GLM-5.3 Flash e MiniMax M2.7 in modelProviders.openai con i limiti reali, imposterà security.auth.selectedType su openai e verificherà la connessione con una richiesta live. Tutti e tre i modelli della rete sono funzionanti: di default è impostato DeepSeek V4 Flash, mentre GLM-5.3 Flash e MiniMax M2.7 si selezionano con il comando /model. La verifica si effettua con qwen -p su un file con errore e controllando la sezione "Utilizzo" nel pannello; paghi per i token effettivi a un prezzo unico di rete Gonka.

Vuoi saperne di più?

Esplora altre sezioni o inizia a guadagnare GNK subito.

Ottieni chiave e token gratuiti →