Qwen3.6-Max-Preview 릴리스 노트 / 새로운 내용

Qwen3.6-Max-Preview는 Qwen이 제공하는 독점 프리뷰 모델로, Qwen3.6-Plus에 비해 에이전시 코딩, 세계 지식, 그리고 지시 수행 능력을 향상시켰습니다.

기술 개선 및 성능

Qwen3.6-Max-Preview는 여러 주요 벤치마크에서 Qwen3.6-Plus에 비해 측정 가능한 성능 향상을 보여줍니다. 모델은 더 강력한 세계 지식과 향상된 지시 수행 능력을 보이며, 특히 에이전시 코딩 작업에 최적화되었습니다.

에이전시 코딩

Qwen3.6-Max-Preview는 SWE-bench Pro, Terminal-Bench 2.0, SkillsBench, QwenClawBench, QwenWebBench, SciCode 등 여섯 주요 코딩 벤치마크에서 최고 점수를 기록했습니다. Qwen3.6-Plus와 비교했을 때 다음과 같은 개선이 있습니다:

  • SkillsBench: +9.9
  • SciCode: +6.3
  • NL2Repo: +5.0
  • Terminal-Bench 2.0: +3.8

세계 지식 및 지시 수행

모델은 다음 벤치마크에서 Qwen3.6-Plus 대비 증가한 수치를 통해 더 강력한 세계 지식과 향상된 지시 수행 능력을 보여줍니다:

  • SuperGPQA: +2.3
  • QwenChineseBench: +5.3
  • ToolcallFormatIFBench: +2.8

API 및 통합

Qwen3.6-Max-Preview는 Alibaba Cloud Model Studio API를 통해 qwen3.6-max-preview 이름으로 제공됩니다. 또한 Qwen Studio에서 인터랙티브 채팅으로 사용할 수 있습니다.

Thinking Feature

API는 preserve_thinking 기능을 지원하며, 이를 통해 모델은 메시지의 이전 모든 턴에서 생각한 내용을 보존할 수 있습니다. 이 기능은 컨텍스트와 추론 흔적을 유지하기 위해 에이전시 작업에 권장됩니다.

Compatibility

Alibaba Cloud Model Studio는 OpenAI 사양과 호환되는 채팅 완성 및 응답 API를 포함한 산업 표준 프로토콜을 지원하며, Anthropic과 호환되는 API 인터페이스도 제공합니다.

구현 예시

Qwen3.6-Max-Preview를 사용하려면 OpenAI 호환 API와 OpenAI Python 클라이언트를 이용해 다음 환경 변수가 필요합니다:

  • DASHSCOPE_API_KEY: Alibaba Cloud Model Studio에서 발급받은 API 키.
  • DASHSCOPE_BASE_URL: 호환 모드 API의 기본 URL (베이징, 싱가포르, 미국 버지니아 지역에서 사용 가능).
  • DASHSCOPE_MODEL: 모델 이름, 다른 모델을 사용하려면 재정의합니다.
from openai import OpenAI
import os

api_key = os.environ.get("DASHSCOPE_API_KEY")
if not api_key:
    raise ValueError("DASHSCOPE_API_KEY is required.")

client = OpenAI(
    api_key=api_key,
    base_url=os.environ.get("DASHSCOPE_BASE_URL", "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"),
)

messages = [{"role": "user", "content": "Introduce vibe coding."}]
model = os.environ.get("DASHSCOPE_MODEL", "qwen3.6-max-preview")

completion = client.chat.completions.create(
    model=model,
    messages=messages,
    extra_body = {
        "enable_thinking": True,
        "preserve_thinking": True,
    },
    stream=True
)

reasoning_content = ""
answer_content = ""
 is_answering = False

print("\n" + "=" * 20 + "Reasoning" + "=" * 20 + "\n")
for chunk in completion:
    if not chunk.choices:
        continue
    delta = chunk.choices[0].delta
    if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
        if not is_answering:
            print(delta.reasoning_content, end="", flush=True)
        reasoning_content += delta.reasoning_content
    if hasattr(delta, "content") and delta.content:
        if not is_answering:
            print("\n" + "=" * 20 + "Answer" + "* 20 + "\n")
            is_answering = True
        print(delta.content, end="", flush=True)
        answer_content += delta.content

Sources