DeepSeek V4 Pro GA Deep Dive — Agent Capability Surge, Responses API, and the Technical Path to Challenging Fable 5

1. Introduction: The Silent Launch That Shook the AI Industry

In the early hours of August 13, 2026, DeepSeek quietly updated a single line of text on its API pricing page — the version string for deepseek-v4-pro was changed from the preview label to DeepSeek-V4-Pro-0813. No press conference, no technical blog post, not even a social media announcement. Yet this “silent launch” triggered a wave of discussion that far exceeded typical product releases.

The reason is simple: this is the first time an open-source model has truly stood on the same stage as closed-source flagship models in agent capabilities.

Based on DeepSeek’s internal benchmark comparisons across 10 agent-focused tests, the V4 Pro GA version approaches or even surpasses Anthropic’s Claude Fable 5 — currently the world’s most recognized closed-source frontier model, priced at $10/M input tokens and $50/M output tokens. V4 Pro, by contrast, is priced at ¥3/M ($0.44) input and ¥6/M ($0.87) output, a price difference spanning two orders of magnitude.

This article provides a deep technical analysis of the DeepSeek V4 Pro GA release, covering architecture innovations, agent capability improvements, API protocol design, the Harness toolchain, pricing strategy, and technical benchmarking against Fable 5.


2. Architecture Panorama: 1.6T MoE + Hybrid Attention + mHC

2.1 Model Specifications at a Glance

DeepSeek V4 Pro GA Architecture Parameters
┌──────────────────────────────────────────────┐
│  Total Parameters: 1.6T (1,600,000,000,000)  │
│  Active Parameters: ~49B (49,000,000,000)     │
│  Activation Ratio: ~3.06%                     │
│  Architecture: MoE (Mixture of Experts)       │
│  Experts: 1 shared + 384 routed               │
│  Active Experts per Token: 6                  │
│  Context Window: 1M tokens                    │
│  Max Output: 384K tokens                      │
│  Pre-training Data: 33T tokens                │
│  Inference Modes: Non-Think / High / Max      │
│  License: MIT                                 │
└──────────────────────────────────────────────┘

The V4 Pro GA shares the exact same architecture parameters as the preview version — 1.6T total parameters, ~49B active parameters, 1M context window. This means all performance improvements from preview to GA come exclusively from post-training improvements, not architectural changes.

2.2 Hybrid Attention Mechanism: CSA + HCA

The central architectural innovation of V4 Pro is its hybrid attention mechanism. To maintain acceptable inference costs at a 1M token context window, DeepSeek designed a two-level attention compression scheme:

Hybrid Attention Data Flow
┌─────────────────────────────────────────────────────────┐
│                 Input Sequence (1M tokens)                │
│                            │                             │
│         ┌──────────────────┼──────────────────┐         │
│         ▼                  ▼                  ▼         │
│    ┌─────────┐      ┌──────────┐      ┌──────────┐     │
│    │  CSA    │      │  HCA     │      │  CSA     │     │
│    │  Sparse │      │  Dense   │      │  Sparse  │     │
│    └────┬────┘      └────┬─────┘      └────┬─────┘     │
│         │                │                 │           │
│         └────────────────┼─────────────────┘           │
│                          ▼                             │
│                   Output Sequence (1M tokens)           │
└─────────────────────────────────────────────────────────┘

CSA (Compressed Sparse Attention)
  Step 1: KV Compression — every m tokens → 1 compressed KV entry
  Step 2: Lightning Indexer — Top-K selection of relevant blocks
  Step 3: Core Attention — Multi-Query Attention
  Step 4: Grouped Output Projection

HCA (Heavily Compressed Attention)
  Compression Rate: 128:1 (fixed)
  Strategy: Dense attention over all compressed KVs
  Scenario: Global long-range signal aggregation

CSA (Compressed Sparse Attention) partitions the input sequence into compressed blocks and uses a Lightning Indexer to sparsely select Top-K blocks for attention computation. HCA (Heavily Compressed Attention) applies dense attention over all blocks at a 128:1 fixed compression rate, handling global semantic capture.

The combined effect is remarkable: at 1M token context, V4 Pro achieves 27% of V3.2’s FLOPs and 10% of its KV Cache requirement.

# Simulating CSA+HCA hybrid attention computation
import math
import numpy as np

def simulate_hybrid_attention(seq_len=1_000_000, d_model=7168, n_heads=64):
    """
    Simulates V4 Pro hybrid attention FLOPs comparison
    Returns FLOPs estimates per stage (in GFLOPs)
    """
    # Standard full attention FLOPs = 2 * seq_len * d_model * n_heads
    full_attn = 2 * seq_len * d_model * n_heads
    print(f"Standard Full Attention: {full_attn / 1e12:.2f} TFLOPs")

    # CSA parameters
    compression_rate = 4
    n_compressed = seq_len // compression_rate
    top_k = 1024

    csa_flops = (
        seq_len * d_model * 2                    # compression
        + n_compressed * d_model                 # indexer
        + 2 * top_k * d_model * n_heads          # sparse attention
    )

    # HCA parameters
    hca_rate = 128
    n_hca = seq_len // hca_rate
    hca_flops = (
        seq_len * d_model * 2                    # compression
        + 2 * n_hca * d_model * n_heads          # dense attention
    )

    hybrid = (csa_flops + hca_flops) / 2
    print(f"CSA+HCA Hybrid Attention: {hybrid / 1e12:.2f} TFLOPs")
    print(f"Computation Reduction: {hybrid / full_attn * 100:.1f}%")

    # KV Cache estimation
    kv_full = seq_len * d_model * 2 * 2
    kv_hybrid = kv_full * 0.10
    print(f"\nStandard KV Cache: {kv_full / 1e9:.1f} GiB")
    print(f"Hybrid KV Cache: {kv_hybrid / 1e9:.1f} GiB")
    print(f"KV Cache Reduction: {kv_hybrid / kv_full * 100:.1f}%")

    return {
        "full_attention_tflops": full_attn / 1e12,
        "hybrid_attention_tflops": hybrid / 1e12,
        "compression_ratio": hybrid / full_attn,
        "kv_cache_full_gib": kv_full / 1e9,
        "kv_cache_hybrid_gib": kv_hybrid / 1e9,
    }

result = simulate_hybrid_attention()

2.3 mHC: Manifold-Constrained Hyper-Connections

Training stability is a core challenge at 1.6T MoE scale. V4 introduces mHC (Manifold-Constrained Hyper-Connections), an improvement over Kimi’s Hyper-Connections.

The core idea: constrain inter-layer residual connections within a learned manifold space, using Sinkhorn-Knopp iteration to generate doubly stochastic matrices, ensuring gradients propagate along geometrically constrained smooth paths rather than bouncing randomly between layers.

# Core mHC implementation
import torch
import torch.nn as nn
import torch.nn.functional as F

class ManifoldConstrainedHyperConnection(nn.Module):
    """
    Manifold-Constrained Hyper-Connections (mHC)
    Constrains inter-layer information flow within a learned manifold
    """
    def __init__(self, d_model, n_channels=4, sinkhorn_iters=20):
        super().__init__()
        self.d_model = d_model
        self.n_channels = n_channels

        self.map_A = nn.Linear(d_model, d_model * n_channels, bias=False)
        self.map_C = nn.Linear(d_model * n_channels, d_model, bias=False)
        self.B = nn.Parameter(torch.randn(n_channels, n_channels))
        self.sinkhorn_iters = sinkhorn_iters

    def _sinkhorn_knopp(self, X):
        """Sinkhorn-Knopp iteration for doubly stochastic matrix"""
        for _ in range(self.sinkhorn_iters):
            X = X / (X.sum(dim=-1, keepdim=True) + 1e-8)
            X = X / (X.sum(dim=-2, keepdim=True) + 1e-8)
        return X

    def forward(self, x):
        B, S, D = x.shape

        # Step 1: Map to multi-channel space
        channels = self.map_A(x)
        channels = channels.view(B, S, self.n_channels, D)
        channels = torch.sigmoid(channels)

        # Step 2: Doubly stochastic mixing
        B_matrix = self._sinkhorn_knopp(F.softplus(self.B))
        mixed = torch.einsum('bsnd,nm->bsmd', channels, B_matrix)
        mixed = torch.sigmoid(mixed)

        # Step 3: Merge channels and project back
        mixed = mixed.reshape(B, S, self.n_channels * D)
        output = self.map_C(mixed)

        return x + output

3. Agent Capability Leap: From 12.8 to 62.7 — A 390% Jump

3.1 Benchmark Overview

The most stunning data from V4 Pro GA comes from agent-focused benchmarks:

Agent Benchmark Comparison: V4 Pro Preview vs GA vs Fable 5
┌──────────────────────┬──────────┬──────────┬──────────┬──────────┐
│      Benchmark       │ Preview  │   GA     │ Fable 5  │ Change  │
├──────────────────────┼──────────┼──────────┼──────────┼──────────┤
│ DeepSWE              │  12.8    │  62.7    │  65.0*   │ +390%    │
│ NL2Repo              │  38.5    │  61.5    │  63.0*   │ +60%     │
│ DSBench-Hard         │  ~33     │  67.2    │  68.0*   │ ~2×      │
│ Terminal Bench 2.1   │  72.1    │  87.9    │  88.0    │ +22%     │
│ CyberGym             │  52.7    │  83.3    │  83.1    │ +58%     │
│ Toolathlon-Verified  │  62.0*   │  74.1    │  76.0*   │ +20%     │
│ DSBench-FullStack    │  55.0*   │  71.1    │  72.0*   │ +29%     │
│ AutomationBench      │  18.0*   │  31.8    │  30.5    │ +77%     │
│ Agents' Last Exam    │  18.0*   │  25.7    │  28.0*   │ +43%     │
│ HLE (w/ tools)       │  --      │  60.0    │  53.3    │  Beats   │
└──────────────────────┴──────────┴──────────┴──────────┴──────────┘
*Values marked with * are estimates derived from published data

DeepSWE is DeepSeek’s proprietary software engineering agent benchmark, requiring the model to enter a real open-source code repository, understand the code, modify multiple files, run tests, and iteratively fix issues. The preview’s 12.8 score meant it could barely complete any autonomous coding tasks. The GA version skyrocketed to 62.7, a nearly 5× improvement, placing it firmly in the competitive range of mainstream agent products.

On Terminal Bench 2.1 (terminal environment autonomous operation), V4 Pro scored 87.9, just 0.1 points behind Fable 5’s 88.0. On CyberGym (AI cybersecurity) and AutomationBench (automated workflow), V4 Pro actually surpassed Fable 5.

3.2 Post-Training Strategy: The “Secret Weapon”

The V4 Pro GA shares the same architecture as the preview — all agent improvements come from post-training rework. This hints at a breakthrough in DeepSeek’s agent-specific post-training data and strategy.

"""
Agent Post-Training Data Pipeline (Simulating DeepSeek's Strategy)
"""
import json
import random
from typing import List, Dict, Any

def generate_tool_use_trajectory(task: str, steps: int = 5) -> Dict[str, Any]:
    """Generate multi-step tool calling trajectory data"""
    trajectory = {"task": task, "steps": [], "final_answer": None}

    available_tools = [
        "bash_execute", "file_read", "file_write",
        "file_edit", "web_search", "code_review",
        "test_runner", "git_operations",
    ]

    for i in range(steps):
        tool = random.choice(available_tools)
        step = {
            "step_id": i,
            "thought": f"I need to use {tool} to proceed",
            "tool_call": {
                "name": tool,
                "arguments": {"command": f"echo 'step {i}'", "timeout": 30}
            },
            "observation": f"Tool {tool} returned: step {i} completed",
            "reflection": f"Step {i} is correct, moving to next"
        }
        trajectory["steps"].append(step)

    trajectory["final_answer"] = f"Task '{task}' completed in {steps} steps"
    return trajectory

def build_agent_training_data(
    num_trajectories: int = 10000, max_steps: int = 15
) -> List[Dict[str, Any]]:
    """Build agent post-training dataset"""
    tasks = [
        "Fix the bug in the authentication module",
        "Implement a new API endpoint for user management",
        "Refactor the database connection pool",
        "Write unit tests for the payment service",
        "Optimize query performance of the search endpoint",
        "Migrate CI/CD pipeline from Jenkins to GitHub Actions",
        "Implement error handling for the file upload service",
        "Add monitoring and logging to the microservice",
    ]

    training_data = []
    for _ in range(num_trajectories):
        task = random.choice(tasks)
        steps = random.randint(3, max_steps)
        trajectory = generate_tool_use_trajectory(task, steps)
        training_data.append(trajectory)

    return training_data

def quality_filter(trajectory: Dict[str, Any]) -> bool:
    """Filter high-quality trajectories"""
    if len(trajectory["steps"]) < 3:
        return False
    used_tools = set(s["tool_call"]["name"] for s in trajectory["steps"])
    if len(used_tools) < 2:
        return False
    if not all("reflection" in s for s in trajectory["steps"]):
        return False
    return True

if __name__ == "__main__":
    data = build_agent_training_data(num_trajectories=1000)
    print(f"Generated trajectories: {len(data)}")
    filtered = [t for t in data if quality_filter(t)]
    print(f"After filtering: {len(filtered)}")
    print(f"Retention rate: {len(filtered)/len(data)*100:.1f}%")

3.3 Three-Level Reasoning Effort Control

V4 Pro GA introduces three-level reasoning effort control via the reasoning_effort parameter:

Reasoning Effort Control Architecture
┌─────────────────────────────────────────────────────┐
│                   API Request                         │
│  model="deepseek-v4-pro"                             │
│  reasoning_effort="high"  ← three options            │
└──────────────────────┬──────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────┐
│              Reasoning Scheduler                      │
├─────────────────────────────────────────────────────┤
│  "none"  ──→ Skip thinking chain, direct generation  │
│               Use: simple QA, code completion        │
│               Token consumption: minimal             │
│                                                      │
│  "high"  ──→ Generate medium-length thinking chain   │
│               Use: code review, multi-step reasoning │
│               Token consumption: moderate            │
│                                                      │
│  "max"  ──→ Generate long thinking chain, deep       │
│               Use: architecture, competition, agent  │
│               Token consumption: maximum             │
└─────────────────────────────────────────────────────┘
# Three-level reasoning effort in practice
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-deepseek-key",
    base_url="https://api.deepseek.com/v1",
)

# Dynamic routing based on task type
class ReasoningEffortRouter:
    def __init__(self, client: OpenAI):
        self.client = client

    def route(self, task_type: str, prompt: str) -> str:
        effort_map = {
            "simple_qa": "none",
            "code_completion": "none",
            "text_format": "none",
            "code_review": "high",
            "debugging": "high",
            "multi_step_reasoning": "high",
            "architecture_design": "max",
            "competitive_programming": "max",
            "long_horizon_agent": "max",
        }
        effort = effort_map.get(task_type, "high")
        return self._call(prompt, effort)

    def _call(self, prompt: str, effort: str) -> str:
        response = self.client.chat.completions.create(
            model="deepseek-v4-pro",
            reasoning_effort=effort,
            messages=[{"role": "user", "content": prompt}],
        )
        return response.choices[0].message.content

4. Responses API and Codex Integration: Reshaping the Agent Protocol Layer

4.1 Native Responses API Support

The most critical API change in V4 Pro GA is native support for the OpenAI Responses API format. Previously, DeepSeek only supported Chat Completions. The addition of Responses API means DeepSeek can directly interface with Codex and other Responses-based agent frameworks.

DeepSeek API Protocol Layered Architecture
┌─────────────────────────────────────────────────────┐
│                   Upper Layer Applications            │
│  Codex  │  Claude Code  │  Cursor  │  Custom Agent   │
└──────────┬───────────────┬──────────┬────────────────┘
           │               │          │
           ▼               ▼          ▼
┌─────────────────────────────────────────────────────┐
│              API Protocol Compatibility Layer         │
├─────────────────────────────────────────────────────┤
│  ┌───────────────────┐  ┌───────────────────────┐   │
│  │  OpenAI Responses │  │  Anthropic Messages   │   │
│  │  /v1/responses    │  │  /v1/messages         │   │
│  ├───────────────────┤  ├───────────────────────┤   │
│  │  - input          │  │  - system + messages  │   │
│  │  - tools          │  │  - tools / tool_use   │   │
│  │  - tool_choice    │  │  - max_tokens         │   │
│  │  - reasoning      │  │  - stream             │   │
│  └───────────────────┘  └───────────────────────┘   │
│                                                      │
│  ┌───────────────────────────────────────────────┐   │
│  │  OpenAI Chat Completions (legacy)             │   │
│  │  /v1/chat/completions                         │   │
│  └───────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────┘
           │
           ▼
┌─────────────────────────────────────────────────────┐
│            DeepSeek V4 Pro Inference Engine           │
│  1.6T MoE · CSA+HCA · mHC · 3-Level Reasoning       │
└─────────────────────────────────────────────────────┘

4.2 Responses API in Practice: Complete Agent Tool Call Chain

"""
DeepSeek V4 Pro Responses API Agent - Complete Implementation
Includes: tool definition, tool calling, multi-turn conversation management
"""
from openai import OpenAI
import json
from typing import List, Dict, Any

class DeepSeekV4Agent:
    """Responses API-based V4 Pro Agent Framework"""

    def __init__(self, api_key: str):
        self.client = OpenAI(
            api_key=api_key,
            base_url="https://api.deepseek.com/v1",
        )
        self.tools = self._register_default_tools()

    def _register_default_tools(self):
        return {
            "web_search": {
                "type": "function",
                "function": {
                    "name": "web_search",
                    "description": "Search the internet for information",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "query": {"type": "string", "description": "Search query"}
                        },
                        "required": ["query"]
                    }
                }
            },
            "execute_python": {
                "type": "function",
                "function": {
                    "name": "execute_python",
                    "description": "Execute Python code and return results",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "code": {"type": "string", "description": "Python code to execute"}
                        },
                        "required": ["code"]
                    }
                }
            },
            "read_file": {
                "type": "function",
                "function": {
                    "name": "read_file",
                    "description": "Read file contents",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "file_path": {"type": "string", "description": "File path"}
                        },
                        "required": ["file_path"]
                    }
                }
            },
            "write_file": {
                "type": "function",
                "function": {
                    "name": "write_file",
                    "description": "Write content to file",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "file_path": {"type": "string"},
                            "content": {"type": "string"}
                        },
                        "required": ["file_path", "content"]
                    }
                }
            }
        }

    def run_agent_loop(self, task: str, max_turns: int = 10) -> str:
        """Complete agent execution loop with automatic multi-turn tool handling"""
        messages = [
            {"role": "system", "content": "You are an AI agent capable of using various tools."},
            {"role": "user", "content": task}
        ]

        for turn in range(max_turns):
            print(f"\n=== Turn {turn + 1} ===")

            response = self.client.responses.create(
                model="deepseek-v4-pro",
                input=messages,
                tools=list(self.tools.values()),
                tool_choice="auto",
                reasoning="high",
            )

            output = response.output

            if hasattr(output, 'tool_calls') and output.tool_calls:
                for tool_call in output.tool_calls:
                    tool_name = tool_call.function.name
                    tool_args = json.loads(tool_call.function.arguments)
                    print(f"  Calling: {tool_name}({tool_args})")

                    result = f"Tool {tool_name} executed successfully"

                    messages.append({
                        "role": "assistant",
                        "content": None,
                        "tool_calls": [tool_call]
                    })
                    messages.append({
                        "role": "tool",
                        "tool_call_id": tool_call.id,
                        "content": str(result)
                    })
            else:
                final = output.output_text if hasattr(output, 'output_text') else str(output)
                return final

        return "Agent reached max turns without completing task."

agent = DeepSeekV4Agent(api_key="sk-your-key")
result = agent.run_agent_loop(
    "Search for latest DeepSeek news, read the project README, and generate a report."
)
print(f"Result: {result}")

4.3 Codex Integration Configuration Script

#!/usr/bin/env python3
"""
DeepSeek V4 Pro Codex Integration One-Click Configuration
"""
import json
import os
from pathlib import Path

class DeepSeekCodexConfigurator:
    """DeepSeek Codex integration configuration tool"""

    def __init__(self, api_key: str):
        self.api_key = api_key
        self.config_dir = Path.home() / ".deepseek" / "codex"
        self.config_dir.mkdir(parents=True, exist_ok=True)

    def generate_openai_config(self) -> dict:
        """Generate OpenAI-compatible Codex configuration"""
        return {
            "api_type": "openai",
            "api_base": "https://api.deepseek.com/v1",
            "api_key": self.api_key,
            "model": "deepseek-v4-pro",
            "max_tokens": 384000,
            "reasoning_effort": "high",
            "tools": [
                {
                    "type": "function",
                    "function": {
                        "name": "bash",
                        "description": "Execute shell commands",
                        "parameters": {
                            "type": "object",
                            "properties": {
                                "command": {"type": "string", "description": "Command"}
                            },
                            "required": ["command"]
                        }
                    }
                },
                {
                    "type": "function",
                    "function": {
                        "name": "read",
                        "description": "Read file contents",
                        "parameters": {
                            "type": "object",
                            "properties": {
                                "file_path": {"type": "string", "description": "File path"}
                            },
                            "required": ["file_path"]
                        }
                    }
                },
                {
                    "type": "function",
                    "function": {
                        "name": "edit",
                        "description": "Edit file using str_replace",
                        "parameters": {
                            "type": "object",
                            "properties": {
                                "file_path": {"type": "string"},
                                "old_string": {"type": "string"},
                                "new_string": {"type": "string"}
                            },
                            "required": ["file_path", "old_string", "new_string"]
                        }
                    }
                }
            ]
        }

    def generate_anthropic_config(self) -> dict:
        """Generate Anthropic-compatible configuration"""
        return {
            "api_type": "anthropic",
            "api_key": self.api_key,
            "base_url": "https://api.deepseek.com",
            "model": "deepseek-v4-pro",
            "max_tokens": 384000,
            "thinking": {"type": "enabled", "budget_tokens": 16000}
        }

    def save_config(self, name: str, config: dict):
        """Save configuration file"""
        filepath = self.config_dir / f"{name}.json"
        with open(filepath, "w") as f:
            json.dump(config, f, indent=2)
        print(f"Configuration saved: {filepath}")
        return filepath

    def export_env(self):
        """Export environment variables"""
        env_content = f"""
# DeepSeek V4 Pro Codex Configuration
export DEEPSEEK_API_KEY="{self.api_key}"
export DEEPSEEK_BASE_URL="https://api.deepseek.com/v1"
export DEEPSEEK_MODEL="deepseek-v4-pro"
"""
        env_file = self.config_dir / ".env"
        with open(env_file, "w") as f:
            f.write(env_content)
        print(f"Environment variables exported: {env_file}")

if __name__ == "__main__":
    api_key = os.environ.get("DEEPSEEK_API_KEY") or input("API Key: ")
    configurator = DeepSeekCodexConfigurator(api_key)

    configurator.save_config("codex_openai", configurator.generate_openai_config())
    configurator.save_config("codex_anthropic", configurator.generate_anthropic_config())
    configurator.export_env()

    print("\nConfiguration complete! You can now:")
    print("1. Point Codex to DeepSeek V4 Pro")
    print("2. Connect Claude Code via Anthropic-compatible endpoint")
    print("3. Call the API directly from your custom agent framework")

4.4 Anthropic Protocol Compatibility Gateway

// DeepSeek V4 Pro Anthropic API Compatibility Gateway
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"os"
	"time"
)

type AnthropicMessage struct {
	Model     string            `json:"model"`
	MaxTokens int               `json:"max_tokens"`
	System    string            `json:"system,omitempty"`
	Messages  []AnthropicTurn   `json:"messages"`
	Tools     []AnthropicToolDef `json:"tools,omitempty"`
	Stream    bool              `json:"stream,omitempty"`
}

type AnthropicTurn struct {
	Role    string             `json:"role"`
	Content []AnthropicContent `json:"content"`
}

type AnthropicContent struct {
	Type  string          `json:"type"`
	Text  string          `json:"text,omitempty"`
	ID    string          `json:"id,omitempty"`
	Name  string          `json:"name,omitempty"`
	Input json.RawMessage `json:"input,omitempty"`
}

type AnthropicToolDef struct {
	Name        string      `json:"name"`
	Description string      `json:"description"`
	InputSchema interface{} `json:"input_schema"`
}

type DeepSeekRequest struct {
	Model       string            `json:"model"`
	Messages    []DeepSeekMessage `json:"messages"`
	MaxTokens   int               `json:"max_tokens,omitempty"`
	Stream      bool              `json:"stream,omitempty"`
	Temperature float64           `json:"temperature,omitempty"`
}

type DeepSeekMessage struct {
	Role       string     `json:"role"`
	Content    string     `json:"content"`
	ToolCalls  []ToolCall `json:"tool_calls,omitempty"`
	ToolCallID string     `json:"tool_call_id,omitempty"`
}

type ToolCall struct {
	ID       string `json:"id"`
	Type     string `json:"type"`
	Function struct {
		Name      string `json:"name"`
		Arguments string `json:"arguments"`
	} `json:"function"`
}

type Gateway struct {
	deepseekURL string
	apiKey      string
	client      *http.Client
}

func NewGateway(apiKey string) *Gateway {
	return &Gateway{
		deepseekURL: "https://api.deepseek.com/v1",
		apiKey:      apiKey,
		client:      &http.Client{Timeout: 120 * time.Second},
	}
}

func (g *Gateway) convertAnthropicToDeepSeek(req *AnthropicMessage) *DeepSeekRequest {
	dsReq := &DeepSeekRequest{
		Model:     "deepseek-v4-pro",
		MaxTokens: req.MaxTokens,
		Stream:    req.Stream,
	}

	if req.System != "" {
		dsReq.Messages = append(dsReq.Messages, DeepSeekMessage{
			Role: "system", Content: req.System,
		})
	}

	for _, turn := range req.Messages {
		var content string
		for _, c := range turn.Content {
			if c.Type == "text" {
				content += c.Text
			}
		}

		dsMsg := DeepSeekMessage{Role: turn.Role, Content: content}

		for _, c := range turn.Content {
			if c.Type == "tool_use" {
				dsMsg.ToolCalls = append(dsMsg.ToolCalls, ToolCall{
					ID:   c.ID,
					Type: "function",
					Function: struct {
						Name      string `json:"name"`
						Arguments string `json:"arguments"`
					}{Name: c.Name, Arguments: string(c.Input)},
				})
			}
			if c.Type == "tool_result" {
				dsMsg.Role = "tool"
				dsMsg.ToolCallID = c.ID
			}
		}
		dsReq.Messages = append(dsReq.Messages, dsMsg)
	}
	return dsReq
}

func (g *Gateway) HandleAnthropicRequest(w http.ResponseWriter, r *http.Request) {
	var anthReq AnthropicMessage
	if err := json.NewDecoder(r.Body).Decode(&anthReq); err != nil {
		http.Error(w, err.Error(), http.StatusBadRequest)
		return
	}

	dsReq := g.convertAnthropicToDeepSeek(&anthReq)
	body, _ := json.Marshal(dsReq)

	httpReq, _ := http.NewRequest("POST",
		g.deepseekURL+"/chat/completions",
		bytes.NewReader(body))
	httpReq.Header.Set("Authorization", "Bearer "+g.apiKey)
	httpReq.Header.Set("Content-Type", "application/json")

	resp, err := g.client.Do(httpReq)
	if err != nil {
		http.Error(w, err.Error(), http.StatusBadGateway)
		return
	}
	defer resp.Body.Close()

	respBody, _ := io.ReadAll(resp.Body)
	w.Header().Set("Content-Type", "application/json")
	w.Write(respBody)
}

func main() {
	apiKey := os.Getenv("DEEPSEEK_API_KEY")
	if apiKey == "" {
		fmt.Println("Please set DEEPSEEK_API_KEY")
		os.Exit(1)
	}

	gateway := NewGateway(apiKey)
	http.HandleFunc("/v1/messages", gateway.HandleAnthropicRequest)

	addr := ":8080"
	fmt.Printf("Anthropic gateway started at %s\n", addr)
	fmt.Println("Point Claude Code's base_url to http://localhost:8080")
	http.ListenAndServe(addr, nil)
}

5. DeepSeek Harness: The Open-Source “Everything Is a Plugin” Agent Runtime

5.1 Harness Architecture Overview

Released almost simultaneously with V4 Pro GA, DeepSeek Harness (dsh) is DeepSeek’s first open-source agent runtime, released under the MIT license with the core philosophy: “Everything is a plugin”.

DeepSeek Harness Architecture
┌─────────────────────────────────────────────────────────┐
│                     Cordis Kernel                        │
│      Plugin Mount/Unmount / Dependency / Event Bus       │
└────────────────────────┬────────────────────────────────┘
                         │
    ┌────────────────────┼────────────────────┐
    │                    │                    │
    ▼                    ▼                    ▼
┌──────────┐     ┌──────────────┐     ┌──────────────┐
│  Models  │     │    Tools     │     │   Skills     │
├──────────┤     ├──────────────┤     ├──────────────┤
│ DeepSeek │     │  file_edit   │     │  Code Review │
│ OpenAI   │     │  bash_shell  │     │  Architecture│
│ Anthropic│     │  web_search  │     │  Test Gen    │
│ ...      │     │  ...         │     │  ...         │
└──────────┘     └──────────────┘     └──────────────┘

┌──────────┐     ┌──────────────┐     ┌──────────────┐
│ Sessions │     │   Sandbox    │     │   Storage    │
├──────────┤     ├──────────────┤     ├──────────────┤
│ State    │     │  Docker      │     │  Local FS    │
│ Compress │     │  Local Proc  │     │  S3/OSS      │
│ History  │     │  Remote      │     │  Vector DB   │
└──────────┘     └──────────────┘     └──────────────┘

┌──────────┐     ┌──────────────┐     ┌──────────────┐
│ Scheduler│     │   Loops      │     │     UI       │
├──────────┤     ├──────────────┤     ├──────────────┤
│ SubAgent │     │  While       │     │  Web UI      │
│ Workflow │     │  ForEach     │     │  CLI         │
│ Parallel │     │  Condition   │     │  API         │
└──────────┘     └──────────────┘     └──────────────┘

5.2 Four Runtime Modes

ModePurposeToolsetUse Case
MinimalBenchmarkingbash + str_replace_editorModel evaluation
StandardDaily devFull toolsetCoding, bug fixing
CodeProgrammaticCode Mode SDKComplex multi-step
CreatorPlugin devRuntime inspectionCustom presets
#!/usr/bin/env python3
"""
DeepSeek Harness Minimal Mode Usage Example
"""
import requests
from typing import Optional

class HarnessClient:
    def __init__(self, base_url: str = "http://127.0.0.1:3080"):
        self.base_url = base_url
        self.session_id: Optional[str] = None

    def start_session(self, mode: str = "minimal", model: str = "deepseek-v4-pro"):
        resp = requests.post(f"{self.base_url}/sessions", json={
            "mode": mode, "model": model, "reasoning_effort": "high",
        })
        data = resp.json()
        self.session_id = data["session_id"]
        return self.session_id

    def send_message(self, content: str) -> dict:
        resp = requests.post(
            f"{self.base_url}/sessions/{self.session_id}/messages",
            json={"content": content}
        )
        return resp.json()

    def get_trajectory(self) -> list:
        resp = requests.get(
            f"{self.base_url}/sessions/{self.session_id}/trajectory"
        )
        return resp.json()

    def fork_session(self, from_message_id: str) -> str:
        resp = requests.post(
            f"{self.base_url}/sessions/{self.session_id}/fork",
            json={"from_message_id": from_message_id}
        )
        return resp.json()["session_id"]

client = HarnessClient()
client.start_session(mode="minimal", model="deepseek-v4-pro")
response = client.send_message("Create a Python script that calculates Fibonacci numbers")
print(f"Agent response: {response}")
trajectory = client.get_trajectory()
for event in trajectory:
    print(f"[{event['type']}] {str(event.get('content', ''))[:100]}")

5.3 Cordis Plugin System: Temporal and Spatial Composability

Harness is built on the Cordis meta-framework, with two key innovations:

  1. Temporal Composability: When a plugin is unloaded, all its side effects can be fully rolled back
  2. Spatial Composability: When a plugin’s dependencies appear/disappear/change, it can dynamically re-establish its dependency graph
// DeepSeek Harness Cordis Plugin System Core Interface
package plugin

import (
	"context"
	"fmt"
	"sync"
)

type Plugin interface {
	Name() string
	Version() string
	Init(ctx context.Context) error
	Start(ctx context.Context) error
	Stop(ctx context.Context) error
	Dependencies() []string
	Provides() []Service
}

type Service interface {
	Name() string
	Methods() []string
}

type Event struct {
	Type    string
	Source  string
	Payload interface{}
}

type Kernel struct {
	mu       sync.RWMutex
	plugins  map[string]Plugin
	services map[string]Service
	eventBus chan Event
}

func NewKernel() *Kernel {
	return &Kernel{
		plugins:  make(map[string]Plugin),
		services: make(map[string]Service),
		eventBus: make(chan Event, 1000),
	}
}

func (k *Kernel) Mount(ctx context.Context, p Plugin) error {
	k.mu.Lock()
	defer k.mu.Unlock()

	for _, dep := range p.Dependencies() {
		if _, ok := k.plugins[dep]; !ok {
			return fmt.Errorf("dependency %s not found", dep)
		}
	}
	for _, svc := range p.Provides() {
		k.services[svc.Name()] = svc
	}
	if err := p.Init(ctx); err != nil {
		return fmt.Errorf("init failed: %w", err)
	}
	if err := p.Start(ctx); err != nil {
		return fmt.Errorf("start failed: %w", err)
	}
	k.plugins[p.Name()] = p
	k.eventBus <- Event{Type: "plugin.mounted", Source: p.Name()}
	return nil
}

func (k *Kernel) Unmount(ctx context.Context, name string) error {
	// Temporal composability: roll back all side effects
	k.mu.Lock()
	defer k.mu.Unlock()

	p, ok := k.plugins[name]
	if !ok {
		return fmt.Errorf("plugin %s not found", name)
	}

	for _, other := range k.plugins {
		for _, dep := range other.Dependencies() {
			if dep == name {
				return fmt.Errorf("plugin %s is depended on by %s", name, other.Name())
			}
		}
	}

	if err := p.Stop(ctx); err != nil {
		return fmt.Errorf("stop failed: %w", err)
	}
	for _, svc := range p.Provides() {
		delete(k.services, svc.Name())
	}
	delete(k.plugins, name)
	k.eventBus <- Event{Type: "plugin.unmounted", Source: name}
	return nil
}

func (k *Kernel) GetService(name string) (Service, error) {
	// Spatial composability: dynamic service resolution
	k.mu.RLock()
	defer k.mu.RUnlock()
	svc, ok := k.services[name]
	if !ok {
		return nil, fmt.Errorf("service %s unavailable", name)
	}
	return svc, nil
}

6. Pricing Strategy and Cost-Benefit Analysis

6.1 Price Comparison

DeepSeek V4 Pro vs Competitor Pricing
┌──────────────────┬──────────────┬──────────────┬──────────────┐
│    Model         │  Input(¥/M)  │  Output(¥/M)  │  Cache Hit  │
├──────────────────┼──────────────┼──────────────┼──────────────┤
│ V4 Pro (Current) │    3.00      │    6.00      │    0.025     │
│ V4 Pro (Peak)    │    9.00      │   27.00      │    0.30      │
│ V4 Pro (Off-Pk)  │    4.50      │   13.50      │    0.15      │
│ V4-Flash         │    1.00      │    2.00      │    0.008     │
├──────────────────┼──────────────┼──────────────┼──────────────┤
│ Claude Fable 5   │   72.00      │  360.00      │     --       │
│                   │  ($10)       │  ($50)       │              │
│ GPT-5.6 Sol      │   54.00      │  216.00      │     --       │
│                   │  ($7.5)      │  ($30)       │              │
│ Grok 4.6         │   14.40      │   43.20      │     --       │
│                   │  ($2)        │  ($6)        │              │
└──────────────────┴──────────────┴──────────────┴──────────────┘
Note: USD at 1:7.2; Peak/off-peak prices effective Aug 17, 2026

Core conclusion: V4 Pro’s current output price (¥6/M) is just 1/60 of Fable 5’s output price (~¥360/M). Even after the price increase, the peak-hour output price (¥27/M) is still only 1/13 of Fable 5’s.

6.2 Per-Task Cost Analysis

"""
DeepSeek V4 Pro Cost-Benefit Analysis Tool
"""
from dataclasses import dataclass
from typing import Dict

@dataclass
class ModelPricing:
    name: str
    input_price: float
    output_price: float
    cache_hit: float = 0.0

@dataclass
class TaskProfile:
    name: str
    input_tokens: int
    output_tokens: int
    cache_rate: float
    reasoning_overhead: float

MODELS = {
    "v4-pro": ModelPricing("V4 Pro", 3.0, 6.0, 0.025),
    "v4-pro-peak": ModelPricing("V4 Pro (Peak)", 9.0, 27.0, 0.30),
    "v4-pro-offpeak": ModelPricing("V4 Pro (Off-Peak)", 4.5, 13.5, 0.15),
    "v4-flash": ModelPricing("V4-Flash", 1.0, 2.0, 0.008),
    "fable-5": ModelPricing("Claude Fable 5", 72.0, 360.0),
    "gpt-56-sol": ModelPricing("GPT-5.6 Sol", 54.0, 216.0),
    "grok-46": ModelPricing("Grok 4.6", 14.4, 43.2),
}

TASKS = {
    "simple_qa": TaskProfile("Simple QA", 500, 200, 0.6, 1.0),
    "code_gen": TaskProfile("Code Generation", 2000, 1500, 0.3, 1.5),
    "code_review": TaskProfile("Code Review", 5000, 2000, 0.4, 2.0),
    "agent": TaskProfile("Agent Task", 15000, 8000, 0.2, 3.0),
    "long_ctx": TaskProfile("Long Context", 500000, 5000, 0.1, 2.0),
}

def calculate_cost(model_name: str, task: TaskProfile) -> Dict:
    pricing = MODELS[model_name]
    eff_output = task.output_tokens * task.reasoning_overhead
    cache_hit = task.input_tokens * task.cache_rate
    cache_miss = task.input_tokens * (1 - task.cache_rate)

    input_cost = (
        cache_hit * pricing.cache_hit / 1_000_000 +
        cache_miss * pricing.input_price / 1_000_000
    )
    output_cost = eff_output * pricing.output_price / 1_000_000

    total = input_cost + output_cost
    return {
        "model": pricing.name, "task": task.name,
        "total": round(total, 4),
        "tokens": task.input_tokens + int(eff_output),
    }

def simulate_monthly(
    model_name: str, daily_tasks: int = 1000,
    mix: Dict[str, float] = None
) -> Dict:
    if mix is None:
        mix = {"simple_qa": 0.3, "code_gen": 0.25, "code_review": 0.2,
               "agent": 0.15, "long_ctx": 0.1}

    daily_cost = 0.0
    for task_name, prop in mix.items():
        cost = calculate_cost(model_name, TASKS[task_name])
        daily_cost += cost["total"] * daily_tasks * prop

    monthly = daily_cost * 30
    return {
        "model": MODELS[model_name].name,
        "daily": round(daily_cost, 2),
        "monthly": round(monthly, 2),
        "annual": round(monthly * 12, 2),
    }

print("=" * 60)
print("Monthly Cost Simulation (1000 tasks/day)")
print("=" * 60)
for model in ["v4-pro", "v4-flash", "fable-5", "gpt-56-sol"]:
    sim = simulate_monthly(model)
    print(f"\n{sim['model']}:")
    print(f"  Daily: ¥{sim['daily']:,.2f}")
    print(f"  Monthly: ¥{sim['monthly']:,.2f}")
    print(f"  Annual: ¥{sim['annual']:,.2f}")

6.3 Peak/Off-Peak Pricing

Effective August 17, 2026:

Peak/Off-Peak Pricing Timeline
┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
│ 0:00 │ 3:00 │ 6:00 │ 9:00 │12:00 │14:00 │18:00 │21:00 │
├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
│  Off-Peak (50% price)   │ Peak │ Off │ Peak │  Off-Peak  │
└──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

Peak: 9:00-12:00, 14:00-18:00 (Beijing time)
Off-Peak: All other times

7. Technical Benchmarking: V4 Pro vs Fable 5 vs GPT-5.6 Sol

V4 Pro vs Fable 5 vs GPT-5.6 Sol Benchmark Comparison
┌──────────────────────┬──────────┬──────────┬──────────┐
│      Benchmark       │ V4 Pro   │ Fable 5  │ GPT-5.6  │
├──────────────────────┼──────────┼──────────┼──────────┤
│ Terminal Bench 2.1   │  87.9    │  88.0    │  86.5*   │
│ CyberGym             │  83.3    │  83.1    │  82.0*   │
│ DeepSWE              │  62.7    │  65.0*   │  63.0*   │
│ SWE-bench Verified   │  79.4    │  85.0*   │  83.0*   │
│ GPQA Diamond         │  89.1    │  91.0*   │  90.0*   │
│ LiveCodeBench COT    │  89.8    │  91.0*   │  90.0*   │
│ BrowseComp           │  80.4    │  82.0*   │  79.0*   │
│ MRCR 1M token        │  83.3    │  85.0*   │  82.0*   │
│ AutomationBench      │  31.8    │  30.5    │  29.0*   │
│ HLE (w/ tools)       │  60.0    │  53.3    │  55.0*   │
├──────────────────────┼──────────┼──────────┼──────────┤
│ Avg Gap (vs Fable 5) │  -2.8%   │  Baseline│  -2.1%   │
│ Price/Output/M       │  ¥6      │  ¥360    │  ¥216    │
│ Price Ratio          │  1×      │  60×     │  36×     │
└──────────────────────┴──────────┴──────────┴──────────┘
*Values marked with * are estimates based on published data

While Fable 5 still holds a lead in general reasoning, V4 Pro has matched or surpassed it in agent-specific tasks (Terminal Bench, CyberGym, AutomationBench). More importantly, V4 Pro’s context window is 5× larger (1M vs 200K) and output limit is 3× larger (384K vs 128K) than Fable 5, giving it a unique advantage in long-document processing and large codebase analysis.


8. Enterprise Multi-Model Routing Architecture

"""
Enterprise Multi-Model Router
Supports automatic switching between V4 Pro, Fable 5, GPT-5.6 Sol
"""
import asyncio, json, time
from enum import Enum
from dataclasses import dataclass
from typing import Optional, Dict, Any, List, Callable
import aiohttp

class ModelProvider(Enum):
    DEEPSEEK = "deepseek"
    ANTHROPIC = "anthropic"
    OPENAI = "openai"

@dataclass
class ModelConfig:
    provider: ModelProvider
    model_name: str
    api_key: str
    base_url: str
    max_tokens: int = 384000
    cost_per_m_input: float = 0.0
    cost_per_m_output: float = 0.0
    quota_per_minute: int = 100

@dataclass
class RoutingResult:
    model_used: str
    provider: ModelProvider
    latency_ms: int
    cost: float
    tokens_input: int
    tokens_output: int
    success: bool
    error: Optional[str] = None

class MultiModelRouter:
    """Intelligent multi-model router based on task type, cost, and latency"""

    def __init__(self):
        self.models: Dict[str, ModelConfig] = {}
        self.callbacks: List[Callable] = []
        self._counts: Dict[str, int] = {}
        self._last_reset: float = time.time()

    def register_model(self, name: str, config: ModelConfig):
        self.models[name] = config

    async def route(
        self, task_type: str, messages: List[Dict],
        tools: Optional[List[Dict]] = None,
        preferred: Optional[str] = None,
    ) -> RoutingResult:
        model_name = preferred or self._select_model(task_type)
        config = self.models[model_name]

        if not self._check_quota(model_name):
            model_name = self._fallback_model(model_name)
            config = self.models[model_name]

        start = time.time()
        try:
            result = await self._call_model(config, messages, tools)
            self._counts[model_name] = self._counts.get(model_name, 0) + 1
            return RoutingResult(
                model_used=model_name, provider=config.provider,
                latency_ms=int((time.time() - start) * 1000),
                cost=result["cost"],
                tokens_input=result["usage"]["prompt_tokens"],
                tokens_output=result["usage"]["completion_tokens"],
                success=True,
            )
        except Exception as e:
            if model_name != list(self.models.keys())[0]:
                return await self.route(
                    task_type, messages, tools,
                    preferred=self._fallback_model(model_name))
            return RoutingResult(
                model_used=model_name, provider=config.provider,
                latency_ms=0, cost=0, tokens_input=0, tokens_output=0,
                success=False, error=str(e),
            )

    def _select_model(self, task_type: str) -> str:
        candidates = []
        for name, config in self.models.items():
            score = 0
            if task_type == "agent" and "pro" in name:
                score += 10
            elif task_type == "chat" and "flash" in name:
                score += 10
            if self._counts.get(name, 0) >= config.quota_per_minute:
                score -= 50
            candidates.append((score, name))
        candidates.sort(key=lambda x: -x[0])
        return candidates[0][1]

    def _fallback_model(self, failed: str) -> str:
        sorted_models = sorted(
            self.models.items(), key=lambda x: x[1].cost_per_m_output)
        for name, _ in sorted_models:
            if name != failed:
                return name
        return failed

    def _check_quota(self, name: str) -> bool:
        if time.time() - self._last_reset > 60:
            self._counts.clear()
            self._last_reset = time.time()
        return self._counts.get(name, 0) < self.models[name].quota_per_minute

    async def _call_model(self, config: ModelConfig, messages: List[Dict],
                          tools: Optional[List[Dict]]) -> Dict:
        headers = {
            "Content-Type": "application/json",
            "Authorization": f"Bearer {config.api_key}",
        }
        payload = {"model": config.model_name, "messages": messages,
                   "max_tokens": config.max_tokens}
        if tools:
            payload["tools"] = tools

        async with aiohttp.ClientSession() as session:
            async with session.post(
                f"{config.base_url}/chat/completions",
                headers=headers, json=payload
            ) as resp:
                data = await resp.json()
                usage = data["usage"]
                cost = (usage["prompt_tokens"] * config.cost_per_m_input +
                        usage["completion_tokens"] * config.cost_per_m_output) / 1_000_000
                return {"content": data["choices"][0]["message"]["content"],
                        "usage": usage, "cost": cost}

async def demo():
    router = MultiModelRouter()
    router.register_model("v4-pro", ModelConfig(
        provider=ModelProvider.DEEPSEEK, model_name="deepseek-v4-pro",
        api_key="sk-key", base_url="https://api.deepseek.com/v1",
        cost_per_m_input=3.0, cost_per_m_output=6.0, quota_per_minute=500))
    router.register_model("v4-flash", ModelConfig(
        provider=ModelProvider.DEEPSEEK, model_name="deepseek-v4-flash",
        api_key="sk-key", base_url="https://api.deepseek.com/v1",
        cost_per_m_input=1.0, cost_per_m_output=2.0, quota_per_minute=2500))

    result = await router.route(
        task_type="agent",
        messages=[{"role": "user", "content": "Analyze this codebase for bottlenecks"}],
        tools=[{"type": "function", "function": {"name": "bash"}}],
    )
    print(f"Routed to: {result.model_used}")
    return result

# asyncio.run(demo())

9. Conclusions and Outlook

9.1 Key Findings

  1. Agent Capability Leap: Through post-training improvements, V4 Pro GA achieved a leap from “barely usable” to “competitive with Fable 5” in agent capabilities. DeepSWE jumped from 12.8 to 62.7 (+390%), Terminal Bench 2.1 reached 87.9 (just 0.1 behind Fable 5).

  2. Architecture Efficiency: CSA+HCA hybrid attention compresses KV Cache to 10% of V3.2 at 1M context, with FLOPs reduced to 27%. This is the fundamental reason V4 Pro can deliver near-Fable-5 performance at 1/60 the price.

  3. Dual Protocol Compatibility: Native support for both OpenAI Responses API and Anthropic Messages API enables zero-code migration for existing tools like Codex and Claude Code.

  4. Harness Ecosystem Foundation: DeepSeek Harness, with its “everything is a plugin” open-source architecture, lays the infrastructure for the agent runtime ecosystem.

  5. Pricing Power: V4 Pro draws a clear “kill line” — nothing more expensive is stronger, nothing cheaper is weaker.

9.2 Technical Outlook

  • V4 Pro GA Weights: Expected to follow the V4-Flash pattern — open-source MIT license after API stability is confirmed
  • Engram Conditional Memory Module: Reserved for V5, promising more efficient long-term memory
  • Domestic Computing: Ascend 950 supernodes already achieve 20ms inference latency
  • Multimodal Expansion: V4 Pro GA already supports native image reasoning; video understanding is the next frontier

The release of DeepSeek V4 Pro GA marks the first time an open-source model has truly stood shoulder-to-shoulder with closed-source flagships in agent capabilities. When performance gaps shrink to single-digit percentages while price gaps remain at two orders of magnitude, the entire AI industry’s pricing logic and competitive landscape are being fundamentally reshaped.