Qwen3-Coder: агентное программирование нового уровня

111
Qwen3-Coder: агентное программирование нового уровня
Qwen3-Coder: агентное программирование нового уровня

Сегодня мы представляем Qwen3-Coder — нашу самую продвинутую модель для программирования с агентными возможностями.
Модель доступна в нескольких версиях, но в первую очередь мы рады показать флагман: Qwen3-Coder-480B-A35B-Instruct.

Это Mixture-of-Experts (смешение экспертов) с общим количеством 480 млрд параметров, из которых 35 млрд активны одновременно. Модель нативно поддерживает длину контекста 256 тысяч токенов и может расширяться до 1 миллиона токенов с помощью методов экстраполяции.

Qwen3-Coder-480B-A35B-Instruct демонстрирует выдающуюся производительность как в написании кода, так и в задачах с агентными сценариями. Она устанавливает новый стандарт среди открытых моделей в таких областях, как агентное программирование, автоматизированная работа с браузером и использование инструментов, достигнув уровня, сопоставимого с Claude Sonnet 4.

Qwen3-Coder: агентное программирование нового уровня
Qwen3-Coder: агентное программирование нового уровня

Вместе с моделью мы также открываем исходный код утилиты командной строки для агентного программирования — Qwen Code.
Эта утилита основана на Gemini Code, но была адаптирована с помощью кастомных промптов и протоколов вызова функций, чтобы максимально раскрыть возможности Qwen3-Coder в задачах агентного программирования.

Qwen3-Coder без проблем интегрируется с лучшими инструментами разработчиков из сообщества.
Как базовая модель, она создана для того, чтобы быть применимой везде в цифровом мире — Агентное программирование в действии!

Qwen3-Coder — Предобучение

В области предобучения всё ещё есть куда расти — и с Qwen3-Coder мы движемся вперёд сразу по нескольким направлениям, усиливая базовые возможности модели:

  • Масштабирование по токенам: обучена на 7,5 трлн токенов с долей кода 70%, что обеспечивает выдающиеся возможности в программировании при сохранении сильных общих и математических навыков.
  • Масштабирование контекста: нативная поддержка 256K токенов с возможностью расширения до 1M с помощью YaRN, оптимизировано для работы с кодовыми репозиториями и динамическими данными (например, Pull Requests), чтобы максимально раскрыть потенциал агентного программирования.
  • Масштабирование синтетических данных: использована модель Qwen2.5-Coder для очистки и переписывания шумных данных, что значительно повысило общее качество обучающего корпуса.

Постобучение

Масштабирование Code RL: трудно решить, легко проверить

На этапе постобучения мы сделали акцент на масштабировании обучения с подкреплением для кода (Code RL).
Хотя задачи кодирования зачастую сложны для решения, их легко проверять, что делает эту область особенно перспективной для RL.
Этот подход позволяет существенно улучшить качество решений за счёт точной обратной связи и ускоренного цикла обучения.

Масштабирование Code RL: трудно решить, легко проверить
Масштабирование Code RL: трудно решить, легко проверить

В отличие от преобладающего в сообществе акцента на генерации кода уровня соревнований, мы считаем, что все задачи программирования естественным образом подходят для масштабного обучения с подкреплением, основанного на исполнении.
Именно поэтому мы расширили обучение Code RL, охватив более широкий набор реальных задач программирования.

Автоматически масштабируя тестовые наборы для разнообразных задач, мы смогли создавать высококачественные обучающие примеры и раскрыли весь потенциал обучения с подкреплением.
Это не только значительно повысило процент успешного выполнения кода, но и дало улучшения в других задачах.

Такой подход вдохновляет нас дальше исследовать задачи с высокой сложностью решения и лёгкой проверкой как благодатную почву для масштабного обучения с подкреплением.

Масштабирование обучения с подкреплением на длинных горизонтах (Long-Horizon RL)

(Нужна ли подробная расшифровка этого пункта? Могу расписать, что подразумевается под Long-Horizon RL, зачем оно нужно и какие преимущества даёт.)

swe
swe

В реальных задачах разработки ПО, таких как SWE-Bench, Qwen3-Coder должен вести многошаговое взаимодействие с окружением: планировать действия, использовать инструменты, получать обратную связь и принимать решения.

На этапе постобучения мы внедрили обучение с подкреплением на длинных горизонтах (Long-Horizon RL, или Agent RL), чтобы поощрять модель решать реальные задачи через многошаговые взаимодействия с инструментами.

Ключевая сложность Agent RL — масштабирование среды. Чтобы решить эту задачу, мы создали масштабируемую систему, способную одновременно запускать 20 000 независимых сред, используя инфраструктуру Alibaba Cloud.
Эта инфраструктура обеспечивает необходимую обратную связь для масштабного обучения с подкреплением и поддерживает масштабируемую оценку моделей.

Результат: Qwen3-Coder достигает лучших среди открытых моделей результатов на SWE-Bench Verified, причём без дополнительного масштабирования на этапе тестирования.

Программирование с Qwen3-Coder

Qwen Code

Qwen Code — это CLI-инструмент для исследовательских целей, созданный на основе Gemini CLI, но с улучшенным парсером и поддержкой инструментов для работы с моделями Qwen-Coder.

Убедитесь, что у вас установлен Node.js версии 20+:

Установить его можно следующей командой:

curl -qL https://www.npmjs.com/install.sh | sh

Затем установите Qwen Code через npm:

npm i -g @qwen-code/qwen-code

Другой способ — установить из исходного кода:

git clone https://github.com/QwenLM/qwen-code.git
cd qwen-code && npm install && npm install -g

Qwen Code поддерживает OpenAI SDK при вызове LLMs, и вы можете экспортировать следующие переменные среды или просто поместить их в файл .envfile.

export OPENAI_API_KEY="your_api_key_here"
export OPENAI_BASE_URL="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
export OPENAI_MODEL="qwen3-coder-plus"

Теперь наслаждайтесь программированием с Qwen-Code и Qwen, просто набрав: qwen!

Claude Code

Помимо Qwen Code, теперь вы можете использовать Qwen3‑Coder вместе с Claude Code.
Достаточно запросить API-ключ на платформе Alibaba Cloud Model Studio и установить Claude Code, чтобы начать работать с кодом.

npm install -g @anthropic-ai/claude-code

Вот перевод:


Мы предоставили два способа для бесшовной работы с Qwen3‑Coder при программировании.

Дополнительная опция 1: прокси-API Claude Code

export ANTHROPIC_BASE_URL=https://dashscope-intl.aliyuncs.com/api/v2/apps/claude-code-proxy
export ANTHROPIC_AUTH_TOKEN=your-dashscope-apikey

Тогда вы сможете использовать Claude Code с Qwen3-Coder!

Дополнительная опция 2: пакет npm claude-code-config для настройки маршрутизатора
claude-code-router предназначен для настройки различных моделей бэкэнда для Claude Code. Команда DashScope также предоставляет удобное расширение npm config, а именно claude-code-config, которое обеспечивает стандартную конфигурацию для claude-code-router с поддержкой DashScope. Запустите установку:

npm install -g @musistudio/claude-code-router
npm install -g @dashscope-js/claude-code-config

а затем запустите конфигурацию:

ccr-dashscope

Вот перевод с дополнением:


Команда автоматически создаст конфигурационные JSON‑файлы и директории плагинов для ccr.
(При необходимости вы можете вручную отредактировать их по пути:
~/.claude-code-router/config.json и ~/.claude-code-router/plugins/.)

Запустите Claude Code через ccr:

ccr code

Cline

Настройте Qwen3-Coder-480B-A35B-Instruct на cline ‒ Перейдите в настройки конфигурации Cline ‒ Для API Provider выберите «OpenAI Compatible» ‒ Для OpenAI Compatible API Key введите ключ, полученный от Dashscope ‒ Установите флажок «Use custom base URL» и введите: https://dashscope-intl.aliyuncs.com/compatible-mode/v1 ‒ Введите qwen3-coder-plus

 

API

Вы можете получить прямой доступ к API Qwen3‑Coder через Alibaba Cloud Model Studio.
Ниже приведён пример того, как использовать эту модель через Qwen API:

import os
from openai import OpenAI

# Create client - using intl URL for users outside of China
# If you are in mainland China, use the following URL:
# "https://dashscope.aliyuncs.com/compatible-mode/v1"
client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)

prompt = "Help me create a web page for an online bookstore."


# Send request to qwen3-coder-plus model
completion = client.chat.completions.create(
    model="qwen3-coder-plus",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": prompt}
    ],
)

# Print the response
print(completion.choices[0].message.content.strip())

Вот перевод:


Дальнейшая работа

Мы продолжаем активно работать над повышением производительности нашего агентa для программирования, стремясь сделать его способным брать на себя всё более сложные и рутинные задачи в разработке ПО, освобождая человеческие ресурсы для творческой работы.

Скоро появятся новые варианты Qwen3‑Coder разного размера, которые сохранят высокую производительность при снижении затрат на развёртывание.

Кроме того, мы активно исследуем, может ли агент для программирования достичь способности к самообучению — это захватывающее и вдохновляющее направление развития.