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 の 6 つの主要コーディングベンチマークで最高スコアを達成しています。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 でインタラクティブチャットとしても利用できます。
思考機能
API は preserve_thinking 機能をサポートしており、モデルがメッセージのすべての前のターンからの思考内容を保持できるようにします。この機能は、コンテキストと推論の痕跡を維持するためにエージェントタスクに推奨されます。
互換性
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