Qwen3.6-Max-Preview 版本說明 / 新功能

Qwen3.6-Max-Preview 是一個專有模型的早期預覽,旨在於代理式程式編寫、世界知識與指令遵循方面較 Qwen3.6-Plus 帶來顯著提升。目前仍在積極開發中,Qwen 團隊預期在後續版本中會有進一步的增益。

技術改進與效能

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 可透過阿里雲 Model Studio API 以 qwen3.6-max-preview 取得。該模型亦可在 Qwen Studio 上進行互動聊天。

思考功能

API 支援 preserve_thinking 功能,允許模型保留所有先前回合訊息中的思考內容。建議在代理式任務中使用此功能,以維持上下文與推理痕跡。

相容性

阿里雲 Model Studio 支援業界標準協議,包括相容於 OpenAI 規範的聊天完成與回應 API,以及相容於 Anthropic 的 API 介面。

實作範例

要使用 Qwen3.6-Max-Preview,透過相容 OpenAI 的 API 以及 OpenAI Python 客戶端,需要設定以下環境變數:

  • DASHSCOPE_API_KEY: Your API Key from Alibaba Cloud Model Studio.
  • DASHSCOPE_BASE_URL: The base URL for compatible-mode API (available for Beijing, Singapore, and US Virginia regions).
  • DASHSCOPE_MODEL: The model name, override for override for different models.
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