Secciones de la base de conocimientos ▾

Navegación

▸ Empiece aquí Por roles

Categorías

Herramientas 52
Glosario 12

Herramientas

Qwen Code tras el cierre de qwen-oauth: trabajando a través de JoinGonka Gateway

Qwen Code (comando qwen) es un agente de terminal de código abierto para desarrollo del equipo Qwen en Alibaba: analiza el proyecto, corrige archivos, ejecuta comandos y pruebas, desde la terminal, el editor o scripts. El proyecto nació a partir del Google Gemini CLI y se desarrolla de forma independiente; el código está bajo la licencia Apache-2.0. El agente admite varios protocolos (OpenAI, Anthropic, Gemini), por lo que casi cualquier proveedor de modelos puede conectarse a él.

Comenzar a trabajar con Qwen Code sin clave era posible gracias al inicio de sesión gratuito a través de una cuenta qwen.ai — tipo de autorización qwen-oauth. El 15 de abril de 2026, este nivel gratuito se cerró, pero el comportamiento por defecto permaneció igual: si no se selecciona el tipo de autorización, Qwen Code intenta usarlo, y una instalación antigua responde con la línea Qwen OAuth free tier was discontinued on 2026-04-15. La documentación sugiere cambiar a otro proveedor, y lo más fácil es hacerlo a través de un endpoint compatible con OpenAI.

JoinGonka Gateway es precisamente ese endpoint: a través de él, Qwen Code funciona con los modelos de la red descentralizada Gonka — DeepSeek V4 Flash, GLM-5.3 Flash y MiniMax M2.7 — al precio único de $0.0069 por millón de tokens de entrada, sin suscripción. Actualmente no hay modelos Qwen propios en la red, pero el agente no los necesita: funciona con cualquier modelo capaz de invocar herramientas. Los comandos y mensajes a continuación se verificaron en una ejecución real de Qwen Code 0.24.4 a través de la puerta de enlace el 23 de septiembre de 2026. Tras confirmar la dirección, llegarán a su cuenta 3M tokens gratuitos, suficientes para repetir todo el proceso usted mismo.

Inicio rápido: instalación y un solo comando

Paso 1: instalar Qwen Code. Los métodos oficiales del README del proyecto:

# 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

El script coloca el comando en ~/.local/bin/qwen y, si hace falta, añade la ruta al archivo de configuración del shell. Abre de nuevo la terminal y comprueba: qwen --version.

Paso 2: obtener una clave. Regístrate en gate.joingonka.ai/register, confirma tu dirección y crea en la sección «Claves de API» una clave con el prefijo jg-.

Paso 3: ejecutar el instalador.

npx @joingonka/setup --tool qwen-code

El instalador te pedirá la clave (no se pasa como argumento de línea de comandos para que no quede en el historial del shell) y editará ~/.qwen/settings.json, el archivo que la documentación de Qwen Code propone para configurar «en un solo archivo»:

  • escribirá la clave en el bloque env del propio archivo bajo el nombre JOINGONKA_API_KEY, justo donde también coloca las claves su propio comando /auth; el archivo recibirá permisos 600 y el entorno del shell no cambiará;
  • añadirá los modelos de la red a la lista modelProviders.openai, con la dirección de la pasarela, ventanas de contexto reales y topes de respuesta; las entradas de tus otros proveedores en esa lista se conservarán;
  • si el tipo de autorización no está elegido o sigue apuntando al ya cerrado qwen-oauth, lo cambiará a openai y establecerá DeepSeek V4 Flash como modelo predeterminado; si has elegido otro tipo que funciona —anthropic, gemini, vertex-ai— no lo tocará sin el flag --model;
  • guardará una copia del archivo anterior, no tocará los comentarios ni el resto de la configuración y, al final, enviará una petición real a la pasarela y te dirá si se han aceptado la clave, la dirección y el modelo.

Así se veía la salida en una instalación donde quedaba qwen-oauth (recortada):

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.

El flag --model establece otro modelo predeterminado: el atajo glm, minimax o el identificador completo; el modelo indicado explícitamente siempre se escribe. El modo sin preguntas toma la clave de una variable de entorno:

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

El instalador encuentra por sí solo el directorio trasladado con la variable QWEN_HOME. Si lo ejecutas de nuevo, actualizará el catálogo de modelos pero dejará el modelo de red que hayas elegido: Kept your current default model.

Configuración manual: settings.json

Todo lo que hace el instalador se puede escribir a mano. El archivo es ~/.qwen/settings.json (o $QWEN_HOME/settings.json); Qwen Code lo lee como JSON con comentarios. La configuración funcional para la red 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" }
}
CampoValorQué importa
env.JOINGONKA_API_KEYclave jg-…La clave en sí. La entrada del modelo no tiene un campo para la clave: hace referencia a esta variable mediante envKey
baseUrlhttps://gate.joingonka.ai/v1Con /v1 al final: la ruta /chat/completions la añade Qwen Code por su cuenta. La clave de la lista openai es precisamente el protocolo Chat Completions
contextWindowSizeventana del modeloSin esto, Qwen Code estima la ventana a partir del nombre del modelo; con este número decide cuándo comprimir el historial
samplingParams.max_tokenstope de respuestaFija el límite de respuesta. Sin esto, al alcanzar el límite, Qwen Code puede repetir la solicitud con un límite desde 64K, por encima del techo de cualquier modelo de la red
security.auth.selectedTypeopenaiQué protocolo activar al arrancar; sin este campo Qwen Code recurre al cerrado qwen-oauth
model.name, model.baseUrlmodelo por defecto y su direcciónEl par apunta sin ambigüedad a la entrada de la puerta de enlace, incluso si un modelo con el mismo id está dado de alta en otro proveedor

Dónde guardar la clave. El valor de la variable de envKey lo busca Qwen Code en orden: el entorno del shell, luego el primer .env que encuentre (.qwen/.env o .env desde el directorio actual hacia arriba, después ~/.qwen/.env y ~/.env) y solo después el bloque env del archivo. De ahí la trampa principal: una JOINGONKA_API_KEY exportada en el shell con un valor antiguo sobrescribirá el archivo — lo comprobamos a propósito y obtuvimos 401 Invalid API key con la clave correcta en settings.json. El instalador avisa cuando detecta otro valor en el entorno.

Y una advertencia sobre los proyectos: un .qwen/settings.json de proyecto con su propio modelProviders no complementa la lista del directorio personal, sino que la reemplaza — dentro de ese proyecto los modelos de la puerta de enlace desaparecerán de /model. No conviene poner la clave en el archivo del proyecto en absoluto: junto con él acabará en el repositorio.

La sesión en curso recoge las modificaciones de modelProviders sin reiniciarse: basta con volver a abrir /model. Sin editor, lo mismo hace el asistente /auth → Custom Provider.

Autorización y modelos: cómo elige Qwen Code con qué trabajar

Qwen Code tiene dos elecciones independientes: tipo de autorización —qué protocolo activar y de dónde obtener las claves— y modelo. El tipo se almacena en security.auth.selectedType y de él depende cómo actúe el instalador:

Valor en selectedTypeQué hará el instalador
nada o qwen-oauthInstalará openai y el modelo por defecto de la red Gonka; la tarifa privada no se considera una elección de trabajo, pero el instalador indicará que la reemplazó y cómo revertirla
openaiMantendrá el modelo seleccionado —de la pasarela u otro proveedor— y solo actualizará el catálogo
anthropic, gemini, vertex-aiNo lo tocará: es una combinación funcional. Con el flag --model lo cambiará e indicará cómo volver al anterior

Dentro de una sesión, el comando /model cambia el modelo. En nuestra ejecución mostró todas las entradas de la pasarela con la etiqueta del protocolo, y debajo de la lista, la ventana de contexto, la URL base y el nombre de la variable de entorno con la clave:

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 elección desde /model se guarda entre sesiones. Para una sola ejecución, el modelo se define con el flag -m seguido del identificador: qwen -m zai-org/GLM-5.3-Flash. Un modelo ligero independiente para sugerencias y clasificación de permisos se define con /model --fast; mientras no exista, esta tarea la realiza el principal.

Qué modelo elegir. El precio de todos los modelos de la red es el mismo, por lo que la elección depende del comportamiento. Así se comportaron en Qwen Code 0.24.4 ante la misma tarea —leer un archivo y encontrar un error (verificado el 23 de septiembre de 2026):

ModeloContexto / respuestaCómo se comporta en Qwen Code
DeepSeek V4 Flash380K / 32768Elección del instalador: ventana grande y el límite de respuesta más alto de la red. Resolvió la tarea en dos turnos
GLM-5.3 Flash390K / 8192Modelo de razonamiento: la respuesta más precisa, el razonamiento llega en un hilo separado y está incluido en el límite de respuesta
MiniMax M2.7200K / 8192Respuesta correcta en dos turnos y aproximadamente siete segundos; el razonamiento llega en un hilo separado y no aparece en el texto de la respuesta

Razonamiento en GLM-5.3 Flash. El instalador asigna samplingParams a cada modelo, y en este caso, Qwen Code no añade el nivel de razonamiento a la solicitud: el comando /effort no llega a los modelos de la red, y GLM-5.3 Flash piensa siempre. Si necesitas un interruptor, declara los niveles directamente en la entrada del modelo:

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

Entonces, Qwen Code comenzará a enviar reasoning_effort, y en GLM-5.3 Flash el valor low desactiva el razonamiento por completo; detalles en la revisión del modelo. En nuestra ejecución con "defaultEffort": "low", Qwen Code envió reasoning_effort: "low" y el modelo respondió sin el bloque de razonamiento.

Verificación: qué debería suceder

La prueba más rápida es una ejecución puntual. Coloca en un directorio vacío un calc.py con una función de suma que en realidad resta, y pídele que encuentre el error:

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

El agente debe invocar por su cuenta la herramienta de lectura y responder con sustancia. Así respondió GLM-5.3 Flash (ejecución 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`.

En la interfaz (qwen sin argumentos), el encabezado mostrará el modelo seleccionado —API Key | DeepSeek V4 Flash (Gonka)— y la misma solicitud funcionará así:

> 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

El comando /stats mostrará las solicitudes y los tokens por modelo, y el panel del gateway mostrará el mismo consumo en la sección «Uso».

Modo de aprobación en -p. Sin flags, la ejecución puntual va en modo Ask Permissions: no hay nadie para confirmar, así que las herramientas que requieren permiso —comandos de shell, edición y escritura de archivos— simplemente no se le pasan al modelo. Ante la petición de ejecutar ls, el agente en nuestra prueba respondió que no tenía esa herramienta. Para ediciones añade --approval-mode auto-edit; para comandos, --yolo; este último Qwen Code lo acompaña con una advertencia de que la sandbox no está activada.

Si algo sale mal, el diagnóstico normalmente se lee directamente en el mensaje:

Lo que se veQué significaQué hacer
No auth type is selected. Please configure an auth type …No se ha seleccionado el tipo de autorizaciónEjecuta el instalador o escribe "selectedType": "openai", como en el ejemplo anterior
Qwen OAuth free tier was discontinued on 2026-04-15 …En la configuración quedó un qwen-oauth ya cerradoEjecuta el instalador: cambiará el tipo y te dirá qué reemplazó
[API Error: 401 Invalid API key]El gateway no aceptó la claveRevisa el bloque env y si hay una variable JOINGONKA_API_KEY con un valor antiguo en el shell o en .env: tiene prioridad sobre el archivo
429 Model "…" is currently overloaded in the Gonka network (rate limit)El modelo en la red se quedó sin capacidad libreReintenta en un minuto o cambia de modelo; el estado se ve en la página de estado
Request timeout after 151s …, luego Retrying provider attemptLa red bajo carga no empezó a responder en dos minutos y medioQwen Code reintentará la solicitud por su cuenta; si se alarga, cambia de modelo

Cuánto cuesta

Un agente gasta tokens de forma diferente a un chat: por cada frase suya, Qwen Code añade un prompt del sistema y descripciones de herramientas, y la tarea requiere varios turnos. En nuestra prueba, cada consulta qwen -p consumía cerca de 13 mil tokens de entrada antes de entrar en materia, y la tarea «lee el archivo, encuentra el error» ocupó dos turnos y cerca de 27 mil tokens. En la interfaz hay más herramientas, y tras la respuesta, Qwen Code utiliza el mismo modelo para hacer solicitudes auxiliares —por ejemplo, la sugerencia de la siguiente réplica: /stats mostró 4 solicitudes y cerca de 79 mil tokens de entrada para la misma tarea.

A través de JoinGonka Gateway, los tokens cuestan $0.0069 por millón de entrada y $0.021 por millón de salida; el precio es igual para todos los modelos de la red y se muestra en esta página desde una fuente en tiempo real.

EscenarioConsumoVía Gateway
Tarea única en qwen -p: leer archivo, encontrar error~27K tokenscentésimas de centavo
La misma tarea en la interfaz, con solicitudes auxiliares~79K tokenscentésimas de centavo
Día de trabajo activo3-7M tokenspocos centavos
Mes de desarrollo activo~150M tokensalrededor de un dólar

Las estimaciones de la columna derecha corresponden a los precios de septiembre de 2026. Como comparación, cómo se puede pagar por los modelos en Qwen Code:

MétodoModelo de pagoQué limita
qwen-oauthera gratuitocerrado el 15 de abril de 2026
Alibaba Cloud Coding Plancantidad fija al mescuotas del lado del proveedor, clave separada sk-sp-…
Alibaba Cloud Token Planpor tokens, para equipos y empresasendpoint regional y clave de Alibaba Cloud
JoinGonka Gatewaypor tokens, saldo prepagoconsumo visible en el panel; sin suscripciones ni cuotas mensuales

Las solicitudes auxiliares se desactivan donde no son necesarias: sugerencias de la siguiente réplica — "ui": { "enableFollowupSuggestions": false }, memoria automática en segundo plano — "memory": { "enableManagedAutoMemory": false, "enableManagedAutoDream": false }. El consumo exacto y el saldo restante se encuentran en el panel, en las secciones «Uso» (Usage) y «Facturación» (Billing). Por qué DeepSeek V4 Flash está seleccionado por defecto se analiza en detalle en la revisión del modelo.

Qué tener en cuenta al trabajar

Modos de aprobación. En la interfaz, Qwen Code inicia en modo Auto: la lectura, búsqueda y edición dentro del proyecto están permitidas de inmediato, mientras que los comandos de shell y otras acciones riesgosas son evaluadas por un clasificador, que es una solicitud separada al modelo. El resto de los modos — Plan, Ask Permissions, Auto-Edit y YOLO — se alternan mediante Shift+Tab (en Windows — Tab) o el comando /approval-mode; el modo por defecto se establece con la clave tools.approvalMode.

Trabajo en segundo plano. Por defecto, Qwen Code mantiene una memoria automática: tras las conversaciones, extrae notas sobre el proyecto y sus preferencias en segundo plano, y una vez al día las limpia (Dream), utilizando el mismo modelo. En una ejecución única esto es notable: qwen -p puede no terminar durante varios minutos después de la respuesta, mientras la tarea en segundo plano espera al modelo. Para scripts y CI, desactive la memoria automática (claves en la sección anterior) y establezca límites de ejecución: --max-wall-time, --max-session-turns, --max-tool-calls.

Imágenes. Los modelos de la red son solo de texto (Modality: text-only en /model). Para capturas de pantalla, asigne un modelo intermediario de otro proveedor mediante el comando /model --vision: este describirá la imagen con texto y el modelo principal continuará el trabajo.

Estadísticas. Qwen Code envía estadísticas de uso anónimas por defecto; se desactivan con "privacy": { "usageStatisticsEnabled": false }. La puerta de enlace (Gateway) no guarda el contenido de los prompts ni las respuestas, solo los agregados de consumo.

Vecinos de red. Los laboratorios cuyos modelos son atendidos por la red también lanzan sus propios agentes: en DeepSeek es DeepSeek Harness, en MiniMax es MiniMax Code, y en Z.ai (autores de GLM) es ZCode. Todos ellos se conectan a la misma puerta de enlace con la misma clave y utilizan un único saldo.

Qwen Code es un agente de terminal abierto del equipo de Qwen, y tras el cierre del qwen-oauth gratuito, necesita su propio proveedor de modelos. El camino rápido es npx @joingonka/setup --tool qwen-code: el instalador escribirá la clave en el bloque env del archivo ~/.qwen/settings.json, añadirá DeepSeek V4 Flash, GLM-5.3 Flash y MiniMax M2.7 a modelProviders.openai con límites reales, cambiará security.auth.selectedType a openai y probará la conexión con una consulta en vivo. Funcionan los tres modelos de la red: por defecto se utiliza DeepSeek V4 Flash, mientras que GLM-5.3 Flash y MiniMax M2.7 pueden seleccionarse con el comando /model. La verificación se realiza con qwen -p sobre un archivo con error y revisando la sección "Uso" en el panel; usted paga por los tokens reales a un precio único en la red Gonka.

¿Quieres saber más?

Explora otras secciones o empieza a ganar GNK ahora mismo.

Obtener clave y tokens gratuitos →