Benchmarks02

The full model card for XCurOS 2.2 A4B Max

The published card for XCurOS 2.2 A4B Max (XCurOS-2.2-A4B-Max), rendered in full — evaluation protocol, all 56 measured benchmarks across language and vision-language with the XCurOS-2.2-A4B column beside every one of them, hardware requirements, the operating envelope and the licence, exactly as shipped with the model.

The card is published in English.

Mode
Thinking enabled
Sampling
t=1.0 · top_p=0.95 · top_k=20
Precision
BF16 · unquantized
Hardware
2× A100 80 GB

XCurOS 2.2 Max

XCurOS Secure Multimodal Intelligence Model · the flagship tier of the XCurOS 2.2 family


LicenseProprietary · Paid Contextup to 1M tokens MultimodalVision + Text APIOpenAI-compatible

XCurOS 2.2 Max is an advanced multimodal large language model developed by XCurOS for secure, enterprise, and on-premise environments. The successor to XCurOS 2.1, it pairs strong text reasoning, agentic coding, and tool use with native understanding of images, documents, charts, and video — all on top of an efficient Mixture-of-Experts design that activates only a small fraction of its parameters per token. The result is the compute profile of a ~4B model at the quality of a much larger one, running entirely behind your own firewall. The quality figures in this card are reported for the full BF16 weights — see Hardware Requirements and the provenance notice under Benchmark Results; the one exception is the SWE-bench-Live snapshot at the top of the card, which was measured on a quantized serving build and is labelled as such.

The family ships in two tiers: XCurOS 2.2 A4B, and XCurOS 2.2 Max (model ID XCurOS-2.2-A4B-Max, published at XCurOS/XCurOS-2.2-A4B-Max) — the flagship this card is written for, carrying the strongest agentic-coding and reasoning post-training in the lineup. A4B is the architecture designation (~4B parameters active per token), not a tier name; both tiers share it. Every figure in the tables below is the Max tier's, with the A4B tier shown beside it for comparison.

Note on memory: sparsity reduces compute, not footprint. All ~35B parameters must be resident, so plan capacity against the total, not the active count. See Hardware Requirements.


Performance at a Glance

SWE-bench-Live — Real-World Agentic Coding

XCurOS 2.2 Max solves 12 of 25 issues (48.0%) on a snapshot of SWE-bench-Live — real, recent GitHub issues, scored by the benchmark's own harness and Docker evaluation — running entirely on-premise at ~4B active parameters per token, on a quantized serving build.

SWE-bench-Live: 12 of 25 issues solved, and per-issue time

Reported apart from the 56 BF16 rows below. That build's quantization recipe was not recorded with the run, and 25 issues is a snapshot rather than the full split — so this figure is neither a leaderboard entry nor comparable with other models' published scores.

Benchmark Overview — 12 Key Evaluations

XCurOS 2.2 Max against leading open-weight and proprietary models across twelve benchmarks

Key Features

  • 🔐 Security-First Design: Built to run fully isolated, on-premise, with complete data privacy — nothing leaves your infrastructure.
  • 🧠 Advanced Reasoning: Competitive with the strongest open-weight models on mathematics, science, and complex multi-step reasoning.
  • 🖼 Native Vision & Document Understanding: Reads images, screenshots, charts, tables, and long documents, with strong OCR and video comprehension.
  • 🧰 Agentic & Tool-Use Ready: Reliable function/tool calling, MCP, repository-level coding, and OS-level automation workflows.
  • 📄 Extreme Long Context: 262,144 tokens natively, extensible to 1,048,576 tokens for book-length references and large codebases.
  • Efficient MoE Architecture: ~4B of ~35B parameters activate per token — ~9× less compute per token than a dense model of the same total size.
  • 🌐 Multilingual: Robust understanding and generation across a wide range of languages.
  • 🧩 Drop-in Integration: OpenAI-compatible API — slot it into existing pipelines with no code changes.

Model Overview

  • Model ID: XCurOS-2.2-A4B-Max — the tier this card reports; architecture designation XCurOS-2.2-35B-A4B (35B total / ~4B active), shared with the base tier XCurOS-2.2-A4B
  • Base model: XCurOS/XCurOS2.2-A4B (private) — the 2.2 checkpoint XCurOS 2.2 Max is post-trained from
  • Type: Multimodal Causal Language Model (Mixture-of-Experts) with vision encoder
  • Total Parameters: ~35B · Active per token: ~3.9B with vision (~3.4B on text-only turns)
  • Number of Layers: 40 · Hidden Dimension: 2048 · Vocabulary: 248,320
  • Experts: 256 routed experts, top-8 activated per token, expert FFN (intermediate) 512, plus one always-active shared expert (intermediate 512)
  • Attention: Hybrid stack — 30 Gated DeltaNet (linear attention) layers and 10 Gated Attention layers, one full-attention layer every 4 (full_attention_interval: 4)
  • Vision: Integrated ViT encoder (depth 27, hidden 1152) for image and video input, counted within the ~35B total
  • Context Length: 262,144 tokens native, extensible to 1,048,576 via RoPE scaling (4×)
  • Default Mode: Thinking mode enabled (reasoning emitted before the final answer)
How the parameter budget adds up
ComponentTotalActive — textActive — image/video
Routed experts — 256 × 3 × 2048 × 512 × 40 layers32.21B8/256 → 1.01B1.01B
Shared expert — 3 × 2048 × 512 × 40 layers (always active)0.13B0.13B0.13B
Attention — 10 Gated Attention + 30 Gated DeltaNet layers, incl. output gates & conv projections1.28B1.28B1.28B
Embeddings (input + output, untied, vocab 248,320)1.02B1.02B1.02B
Vision encoder (depth 27, hidden 1152)0.44B0.44B
Total~35.1B ≈ 35B~3.4B~3.9B ≈ 4B

The vision encoder runs only when an image or video is present: ~3.4B active on a text-only turn, ~3.9B once the encoder pass is added. The A4B designation refers to the multimodal figure.

The figures above are transcribed from the checkpoint's config.json (num_experts_per_tok: 8, shared_expert_intermediate_size: 512, attn_output_gate: true, tie_word_embeddings: false, vocab_size: 248320, full_attention_interval: 4). The weights and that config.json are license-gated and ship with the checkpoint repositories, not with this evaluation repository — anyone with a license can verify the values there. The active column counts both embedding matrices and the output-gate projections on both attention block types; counting only the output head instead would give ~2.9B/~3.4B. The checkpoint also carries one multi-token-prediction layer (mtp_num_hidden_layers: 1) that is not counted above. Without a license you can still check the architecture against the checkpoint's config.json, which a licensed download of the model ships with; it records the layer count, MoE experts, and vocabulary size.

XCurOS 2.2 Max

XCurOS 2.2 Max (model ID XCurOS-2.2-A4B-Max, published at XCurOS/XCurOS-2.2-A4B-Max) is the flagship tier of the XCurOS 2.2 family. It keeps the 2.2 platform — ~35B total / ~4B active Mixture-of-Experts, native vision, 262,144-token context — and raises the post-training bar with an end-to-end self-improvement loop: the model continuously generates its own training tasks, builds the harnesses to solve them, and improves its policy through reinforcement learning across task generation, scaffold construction, and solution rollouts. The result is the strongest terminal and repository-level engineering performance in the lineup at the A4B compute tier, with thinking mode enabled by default and first-class tool calling.

Model ID (served / card figures)XCurOS-2.2-A4B-Max
Main repo (safetensors)XCurOS/XCurOS-2.2-A4B-Max
Distribution formatssafetensors (the build every card figure was measured on) and GGUF builds for llama.cpp-based runtimes, produced with the tooling credited in NOTICE; both formats are covered by the same licence (LICENSE)
Total / active parameters~35B / ~4B per token
Context length262,144 tokens native · extensible to ~1M via YaRN (×4 RoPE scaling)
Default modeThinking mode — <think>…</think> reasoning before the final answer
Minimum runtimesTransformers ≥ 4.57.0 · vLLM ≥ 0.11.0 · SGLang ≥ 0.5.2
Sampling — general taskstemperature=0.6, top_p=0.95, top_k=20
Sampling — benchmark reproductiontemperature=1.0, top_p=0.95, top_k=20

Serving XCurOS 2.2 Max

Both recipes stand up an OpenAI-compatible server on 2× 80 GB GPUs with room for the full 262K context; adjust --tensor-parallel-size / --tp for other hardware.

vLLM

vllm serve XCurOS/XCurOS-2.2-A4B-Max \
    --served-model-name XCurOS-2.2-A4B-Max \
    --host 0.0.0.0 --port 8000 \
    --tensor-parallel-size 2 \
    --max-model-len 262144 \
    --gpu-memory-utilization 0.90 \
    --enable-prefix-caching \
    --enable-auto-tool-choice --tool-call-parser qwen3_xml \
    --reasoning-parser qwen3

SGLang

python -m sglang.launch_server \
    --model-path XCurOS/XCurOS-2.2-A4B-Max \
    --served-model-name XCurOS-2.2-A4B-Max \
    --host 0.0.0.0 --port 8000 \
    --tp 2 \
    --context-length 262144 \
    --mem-fraction-static 0.85 \
    --tool-call-parser qwen3_coder \
    --reasoning-parser qwen3

On the parser flags. qwen3_xml / qwen3_coder / qwen3 are vLLM's and SGLang's built-in parser identifiers. They apply here because the checkpoint reports model_type: qwen3_5_moe and uses the matching chat template, so the stock parsers work unchanged; see NOTICE for the upstream attribution. vLLM and SGLang name their parsers differently — use the value shown for the runtime you are on. --trust-remote-code is not required for these stock parsers. A served

checkpoint only needs it when its config.json declares an auto_map; that config is license-gated and ships with the checkpoint you licensed, not with this evaluation repository — check it there.

For workloads beyond 262,144 combined input+output tokens, enable YaRN with factor 4.0 (via a rope_scaling block in config.json, or the equivalent --hf-overrides / --json-model-override-args flags) to grow the usable window to roughly 1M tokens.

Use Cases

  • Secure enterprise assistants and copilots running fully on-premise
  • Document, chart, and screenshot understanding (finance, legal, technical)
  • OCR and structured extraction from scanned or image-based documents
  • Agentic automation: tool calling, MCP servers, repository-level coding
  • Long-context retrieval and analysis over large internal corpora
  • Multilingual conversational and analytical workloads

Benchmark Results

📊 Measured results. Every XCurOS 2.2 Max number in the tables below is the figure this card publishes for XCurOS-2.2-A4B-Max under the evaluation protocol (2× NVIDIA A100 80 GB at BF16 — the single exception is AA-LCR, which is provider-run by Artificial Analysis against an XCurOS-hosted endpoint on their own infrastructure, not on the hardware listed below; the SWE-bench-Live snapshot at the top of the card is a separate quantized-build measurement and is not one of these 56 rows). The XCurOS 2.2 A4B column is transcribed from the A4B card, which reports those scores under the same protocol.

How a figure is formed. 34 of the 56 benchmarks were scored in-house against the local endpoint; the remaining 22 were produced by each benchmark's own harness, driven against that same endpoint. An in-house figure is the macro-average of the per-group counts the run recorded — every config, subject, locale or split the task declares, averaged the way the card averages, never a sub-sample. An external figure is computed from the counts the harness reported. Both are rounded half-up to one decimal. The denominator is the benchmark's own: accuracy rows use n_resolved/n_units, where n_units is the unit that benchmark scores over — 1,000 trials for SkillsBench (200 skills × 5 seeds), 508 for MCPMark (127 tasks × 4 trials), 1,112 for TAU2 and 1,116 for TAU3 (4 trials per task), 100 questions for AA-LCR, and the task count for the SWE-bench variants. The n quoted in the tables is the task count — the number of distinct problems the benchmark defines — not the denominator the score was aggregated over.

Scoring notes. SWE-bench Multilingual is scored on 299 of its 300 official instances — one instance is excluded because its repository state cannot be reproduced in the eval image. LVBench is scored on 1,445 of its 1,549 official items — 104 items had no retrievable video. Across the 34 in-house tasks, 256 request attempts failed transiently in 10 tasks (IMOAnswerBench 205, AIME26 14, HMMT Feb 26 9, HMMT Nov 25 8, HLE 6, HMMT Feb 25 5, MVBench 3, SuperGPQA 2, RefCOCO 2, LVBench 2) and every one was retried successfully, so the full item grid completed for all 34 tasks: zero calls failed outright, and no item is missing from any score.

Evaluation protocol

Scores are not comparable without the settings that produced them. Every XCurOS 2.2 Max figure below is reported under the following protocol; the A4B column comes from the A4B card, and competitor figures are transcribed from their publishers.

SettingValue
ModeThinking mode enabled (the model's default)
Samplingtemperature=1.0, top_p=0.95, top_k=20 — identical for every task below. No greedy decoding is used anywhere; repeated-sample metrics differ only in how many samples are drawn, never in the settings
Max output tokens32,768 (65,536 for competition-math tasks)
Math/reasoning tasks (AIME, HMMT, IMOAnswerBench, HLE)avg@32 — the mean of 32 independent samples per item, then averaged over items. All four are scored on their full datasets: AIME26 and the three HMMT sets at 30 problems each, IMOAnswerBench at 400, HLE at all 2,500.
Agentic tasks (Terminal-Bench, VITA-Bench, Tool Decathlon)one episode per task instance — a failed episode is never re-rolled, and no test-time scaffolding is added beyond the harness default
TAU2-Bench / TAU3-Benchthe harness protocol governs — 4 trials per task, reported as pass^k; the card figure is pass^1 = n_trials_passed/n_trials over all tasks (TAU2: airline 50 / retail 114 / telecom 114). The automated user agent is a pinned third-party model (gpt-4o-2024-11-20), never the model under test
Repeated-run metrics (SkillsBench Avg5)the metric's own definition governs — Avg5 = the mean of 5 independent runs
All other tasksavg@1 — one sample under the sampling settings above, except where the metric name states otherwise
RoundingEvery reported figure is its benchmark's own metric rounded half-up to one decimal place, applied uniformly. For external accuracy rows the formula is n_resolved/n_units, where n_units is the trial count the score was aggregated over, not the task count: SkillsBench n_units = 1000 (200 skills × 5 seeds), MCPMark n_units = 508 (127 tasks × 4 trials), AA-LCR n_units = 100 (100 questions over 20 document sets, one answer each). For TAU2/TAU3 the formula is n_trials_passed/n_trials across all tasks — TAU2 = 992/1112 (278 tasks × 4 trials), TAU3 = 859/1116 (279 tasks × 4 trials). For single-trial benchmarks the trial count equals the task count.
Context window at eval time262,144 (native; no RoPE scaling applied)
Vision inputsImages at native resolution. Video is sampled dynamically at 2 FPS and capped at 768 frames per clip; the effective budget is bounded by the 262,144-token eval context, not by a fixed frame count. Hour-long benchmarks (LVBench, MLVU, the VideoMME long split) reach the cap; short-clip benchmarks (MVBench) stay well under it. Where a benchmark mandates its own sampling, that is used instead
Evaluation hardware2× NVIDIA A100 80 GB
Weight precision at eval timeBF16 — the model's full-precision weights

Reading the tables. Competitor scores are transcribed from each vendor's published card or announcement, checked on 2026-09-06, and were not re-run in-house — harness and sampling differences between vendors are uncontrolled. -- means the figure was not published, does not apply, or is not numerically comparable; never that the model scored zero. Where an XCurOS column uses a metric that is not the benchmark's official one (IFEval, CC-OCR, HallusionBench), the comparator cells are blanked rather than put on a different scale beside it. Every row is higher-is-better on a 0–100 scale. Sources: Competitor figure sources.

Not compute-matched. XCurOS 2.2 and 2.2 Max activate ~3.4B parameters per token on text (~3.9B once the vision encoder runs), against ~3B for the A3B comparators (Qwen3.5-35B-A3B, Qwen3.6-35B-A3B); Qwen3.5-397B is a far larger flagship-class model, and the Claude sizes are not disclosed. Read the tables as capability at a given total size, not as efficiency claims — and not across tables: the competitor sets differ, with Claude-Sonnet-4.5 appearing only in the Vision-Language one.

Language

Qwen3.5-35B-A3B Qwen3.6-35B-A3B Qwen3.5-397B Claude Opus 4.6 XCurOS-2.2-A4B XCurOS-2.2-A4B-Max
Coding Agent
SWE-bench Verified69.273.476.480.876.379.0
SWE-bench Multilingual 60.367.269.377.870.171.6
SWE-bench Pro44.649.5--53.453.259.6
Terminal-Bench 2.0 / 2.140.551.552.565.455.268.0
SkillsBench Avg54.428.7----32.839.8
NL2Repo20.529.4----33.546.4
Knowledge & STEM
MMLU-Pro85.385.287.8--84.687.5
MMLU-Redux93.393.394.9--93.493.4
C-Eval90.290.093.0--91.993.0
SuperGPQA63.464.770.4--68.471.8
HLE22.421.428.740.020.724.7
Instruction Following
IFEval--------91.593.0
IFBench70.2--76.5--71.475.2
MultiChallenge60.0--67.6--61.066.7
Long Context
AA-LCR58.5--68.7--62.067.0
LongBench v259.0--63.2--60.965.8
Reasoning & Coding
HMMT Feb 2589.090.794.8--93.693.6
HMMT Nov 2589.289.192.7--92.295.6
HMMT Feb 2678.783.6----86.788.4
AIME2691.092.791.3--95.496.3
IMOAnswerBench76.878.980.9--82.185.5
LiveCodeBench v674.680.483.6--84.888.2
OJBench36.0------46.254.3
General Agent
BFCL-V467.3--72.9--63.669.6
TAU2-Bench81.2--86.7--85.989.2
TAU3-Bench68.967.2----71.977.0
VITA-Bench31.935.649.7--40.548.5
DeepPlanning22.825.934.3--30.839.0
Tool Decathlon28.726.938.3--31.849.1
MCPMark27.037.046.1--41.949.8
MCP-Atlas62.462.8--62.767.570.5
WideSearch57.160.174.0--64.968.0
Multilingualism
MMMLU85.2--88.591.186.986.9
MMLU-ProX81.0--84.7--82.287.4
INCLUDE79.7--85.6--82.884.3
PolyMATH64.4--73.3--63.967.9

XCurOS 2.2 Max figures are reported under the evaluation protocol above (2× NVIDIA A100 80 GB at BF16) — see Benchmark Results for how each figure is computed. XCurOS 2.2 A4B figures are transcribed from the A4B card, reported there under the same protocol. Competitor figures are transcribed from their publishers and were not re-run here. IFEval is scored here as the per-prompt fraction of the official constraint set that is met, averaged over prompts; publishers report the official strict prompt-level accuracy, a different metric, so the comparator cell is left blank rather than shown next to a non-comparable number. † Terminal-Bench: the comparator cells are the vendors’ published Terminal-Bench 2.0 figures, while the XCurOS cells are a Terminal-Bench 2.1 run (97 tasks; the official 2.1 core set has 89), so the row is not comparable across columns. A comparator cell is filled only where the vendor’s own model card or announcement publishes the figure; Claude Opus 4.6 publishes figures for only a few rows of this table, and the Qwen3.5-35B-A3B cells are taken from that model’s own card rather than from later comparison tables.

Vision Language

Qwen3.5-35B-A3B Qwen3.6-35B-A3B Claude-Sonnet-4.5 XCurOS-2.2-A4B XCurOS-2.2-A4B-Max
STEM and Puzzle
MMMU81.481.779.678.782.7
MMMU-Pro75.175.368.473.074.2
MathVista mini86.286.479.887.589.6
ZEROBench sub34.134.426.332.136.2
General VQA
RealWorldQA84.185.370.386.888.3
MMBench EN-DEV-1.191.592.888.392.693.6
SimpleVQA58.358.957.660.962.5
HallusionBench------67.269.3
Text Recognition and Document Understanding
CharXiv RQ77.578.067.280.281.2
CC-OCR------82.983.3
AI2D TEST92.692.787.089.590.9
Spatial Intelligence
RefCOCO avg89.292.0--94.294.3
EmbSpatialBench83.184.371.885.886.6
RefSpatialBench63.564.3--64.566.1
Video Understanding
VideoMME w/o subs82.582.575.386.489.1
VideoMME with subs86.686.681.190.591.8
VideoMMMU80.483.777.679.682.8
MLVU85.686.272.887.389.5
MVBench74.874.6--76.776.5
LVBench71.471.4--73.475.1

XCurOS 2.2 Max figures are reported under the evaluation protocol above (2× NVIDIA A100 80 GB at BF16) — see Benchmark Results for how each figure is computed. XCurOS 2.2 A4B figures are transcribed from the A4B card, reported there under the same protocol. Competitor figures are transcribed from their publishers and were not re-run here. CC-OCR is scored here as 1−NED across all four tracks and HallusionBench as plain yes/no accuracy over the image split; the comparator figures use the official per-track metrics and aAcc respectively, so their comparator cells are left blank rather than shown next to non-comparable numbers. Qwen publishes HallusionBench (Qwen3.6 69.8, Qwen3.5 67.9) and CC-OCR (81.9 / 80.7) under the official metrics; those values are not placed in the cells because the XCurOS rows use a different metric. The Claude-Sonnet-4.5 column reproduces the figures as they are transcribed in the Qwen3.5 / Qwen3.6 model-card comparison tables — Anthropic publishes no benchmark table for these vision rows — so it carries the same uncertainty as any second-hand transcription. MVBench shows a small A4B→Max regression (76.7 → 76.5), a 0.2-point difference on a 4,000-item avg@1 measurement; the other five video benchmarks show Max > A4B by 1.3–3.2 points (VideoMMMU +3.2, VideoMME w/o subs +2.7, MLVU +2.2, LVBench +1.7, VideoMME with subs +1.3).

Comparability of the external rows

Several external rows were measured on task sets that differ from the public releases, and how each set was assembled was not recorded. They are reported as measured, and should not be read point-for-point against the public leaderboards:

RowAs run herePublic release
Terminal-Bench 2.197 tasks89-task 2.1 core set; the comparators above are published on 2.0
SWE-bench Multilingual299 instances300 (one instance's repository state could not be reproduced)
IFBench298 prompts300 test prompts
SkillsBench Avg5200 skill tasks × 5 seeds87 tasks
NL2Repo500 in-house specifications104 tasks (NL2Repo-Bench)
VITA-Bench200 tasks, one episode each100 cross-scenario tasks (Avg@4) + 300 single-scenario
DeepPlanning300 in-house travel tasks240 travel + 120 shopping tasks
MCP-Atlas400 tasks500 public + 500 private tasks
TAU3-Benchhome / shopping / travel, 93 tasks eachthe public τ³ domains differ; not comparable
BFCL-V42,000 prompts (simple / multiple / parallel / irrelevance / live / multi-turn)the v4 web-search and memory categories were not run
AA-LCR100 questions, provider-runthe full set (20 document sets × 5 questions)

Competitor figure sources

Where each comparator column comes from — a pointer list, not a per-figure citation record. None were re-run in-house; all were checked against these sources on 2026-09-06, and any cell that could not be matched to one of them is shown as --.

Model in tablesWhere the figures are published
Qwen3.5-35B-A3Bhuggingface.co/Qwen/Qwen3.5-35B-A3B (the model's own card)
Qwen3.6-35B-A3Bhuggingface.co/Qwen/Qwen3.6-35B-A3B
Qwen3.5-397Bhuggingface.co/Qwen/Qwen3.5-397B-A17B
Claude Opus 4.6anthropic.com/news/claude-opus-4-6 (SWE-bench Verified / Multilingual / Pro, HLE, MCP-Atlas, MMMLU, Terminal-Bench 2.0); rows it does not publish are --
Claude-Sonnet-4.5 (vision table)as transcribed in the Qwen3.5-35B-A3B and Qwen3.6-35B-A3B model-card comparison tables; Anthropic's model documentation publishes no benchmark table for these rows

Each of the 22 external rows was produced by that benchmark's own harness, driven against the same local endpoint as the rest of the card. AA-LCR is the single exception: it is provider-run by Artificial Analysis against an XCurOS-hosted endpoint on their infrastructure, so it is exempt from the hardware claim above. Three further rows — NL2Repo, SimpleVQA and DeepPlanning — do run against the same local endpoint but use in-house harnesses whose public release is not planned; their scores are therefore reproducible only against the published datasets, not against a harness you can obtain.

Run Locally (Quick Test)

Serve the safetensors build with either recipe in Serving XCurOS 2.2 Max, vLLM or SGLang: both stand up an OpenAI-compatible endpoint that takes text and images through the model's bundled vision projector. Budget the full BF16 weights plus runtime overhead — see Hardware Requirements before choosing a context size.

1. Download the model

Downloading requires a valid XCurOS license — see License. Authenticate with hf auth login using the token issued with your license before running the command below.

pip install -U huggingface_hub
hf download XCurOS/XCurOS-2.2-A4B-Max --local-dir ./xcuros-2.2-max

2. Start the server (text + vision)

Serve it with vLLM (or SGLang) at an OpenAI-compatible endpoint on 2× 80 GB GPUs:

vllm serve ./xcuros-2.2-max \
    --served-model-name XCurOS-2.2-A4B-Max \
    --host 0.0.0.0 --port 8000 \
    --tensor-parallel-size 2 \
    --max-model-len 262144 \
    --gpu-memory-utilization 0.90
# OpenAI-compatible endpoint: http://localhost:8000/v1
# --served-model-name sets the model id the API reports; it is what the examples below pass as `model=`.

Recommended sampling — thinking mode (the default): temperature=0.6, top_p=0.95, top_k=20. For benchmark reproduction: temperature=1.0, top_p=0.95, top_k=20 — the settings used for every figure in this card. For non-thinking / short factual replies: temperature=0.7, top_p=0.8.

3. Try it — text only

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="sk-no-key")

resp = client.chat.completions.create(
    model="XCurOS-2.2-A4B-Max",
    messages=[{"role": "user", "content": "Give me one fun fact about the ocean."}],
)
print(resp.choices[0].message.content)

4. Try it — image + text

import base64
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="sk-no-key")

with open("test.jpg", "rb") as f:
    img = base64.b64encode(f.read()).decode()

resp = client.chat.completions.create(
    model="XCurOS-2.2-A4B-Max",
    messages=[{"role": "user", "content": [
        {"type": "text", "text": "What is in this image?"},
        {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img}"}},
    ]}],
)
print(resp.choices[0].message.content)

Hardware Requirements

Memory is set by the total parameter count (~35B), not the ~4B active per token — every expert must be resident even though only 8 of 256 fire per token.

PrecisionWeights (base + MTP)KV cache @ 32KKV cache @ 262KMinimum GPU configuration
BF16~70.2 GB (base) / ~70.7 GB (full safetensors)~0.6 GB~5 GB2× 80 GB (H100/A100)

The Minimum GPU configuration column sizes the weights plus runtime overhead only. Add the KV cache for the context you actually intend to serve. At the full 262,144-token window the model needs ~75.2 GB total (with the base-model weight figure) or ~75.7 GB with the full safetensors build, leaving under 5 GB free on a single 80 GB card. That is too little once the CUDA context, activation buffers and the vision projector (~0.6 GB, see below) are accounted for, which is why a 2× 80 GB setup is the practical minimum. CPU-only inference works but expect single-digit tokens/sec.

The ~70.2 GB weight figure is the base model only (~35.08B parameters × 2 bytes ≈ 70.2 GB); the full safetensors build on disk is ~70.7 GB including the multi-token-prediction (MTP) head (~0.5 GB). The vision encoder (0.44B) is already included in the 35.08B total. XCurOS 2.2 Max is an image-text-to-text model, so serving vision additionally allocates the ~0.6 GB projector buffer alongside the ~1–2 GB of CUDA context and compute buffers.

Units. The table above uses decimal SI (1 GB = 10⁹ bytes), so the full safetensors build is 35.08B × 2 bytes + 0.5 GB MTP ≈ 70.7 GB; per-tensor metadata adds a few hundred MB, so the on-disk size sits between 70.7 and 71.0 GB depending on the build. nvidia-smi reports in GiB (1 GiB = 2³⁰ bytes) and will show this as ~65.9 GiB; the inference host needs at least 66 GiB free for the weights alone.

The KV cache is small because the attention stack is hybrid: only the Gated Attention layers hold a cache that grows with sequence length — the Gated DeltaNet layers carry a fixed-size recurrent state instead. Ten of the 40 layers hold a cache (2 KV heads × 256 head dim), which works out to exactly 20 KB per token at fp16, against 80 KB/token if all 40 layers held one. Figures above assume fp16 cache; q8_0 cache roughly halves them, and the cache size does not change with weight precision.

Evaluation & Reproducibility

All 56 XCurOS 2.2 Max scores are reported for 2× NVIDIA A100 80 GB at BF16 under the evaluation protocol above. The XCurOS 2.2 A4B column is transcribed from the A4B card under the same protocol; AA-LCR is the one provider-run row and is exempt from the hardware claim.

What was run. 34 rows were scored in-house, calling the served endpoint for every item each task declares. The other 22 came from each benchmark's own harness against that same endpoint — official harnesses in most cases, AA-LCR provider-run, and NL2Repo, DeepPlanning and SimpleVQA on in-house harnesses that are not published.

Expect your numbers to differ. Sampling is stochastic at temperature=1.0, so a re-run of the same weights on the same hardware lands near these figures without matching them digit for digit. The tables are what this card measured, not a run anyone can replay exactly.

Scope of the 34 in-house rows, and what reproducing the card costs

28 of the 34 are scored full-dataset — every config, subject, locale and split, macro-averaged the way the card averages. Six are scored on a single config or split by the card's own choice: MMMU-Pro: standard, C-Eval: val, MathVista: testmini, MMMU: validation, ZEROBench: zerobench_subquestions, MMBench-EN: dev. The set includes the six video suites (real frame decode at 2 FPS, capped at 768 frames per clip), HLE's MCQ and exact-answer subsets, CC-OCR (1−NED across all four tracks), RefCOCO avg (acc@IoU≥0.5 over the 8 standard splits), RefSpatial-Bench (point-in-mask), and the full official IFEval constraint set.

Reproducing the 22 external rows needs per-instance Docker for the SWE-bench variants and Terminal-Bench, live tool and user environments for TAU/BFCL/VITA/Tool Decathlon, live MCP servers for MCPMark and MCP-Atlas, sandboxed code execution for LiveCodeBench and OJBench, and LLM-judge pipelines for MultiChallenge, SimpleVQA and CharXiv. The 34 in-house rows are hundreds of thousands of endpoint calls and roughly 200 GB of video downloads. Four datasets are gated on the Hub — HLE and ZEROBench by licence, MLVU and VideoMMMU automatically — so a reproduction needs an authenticated account as well as the licensed BF16 weights and a comparable 2× 80 GB configuration.

How to Read These Numbers

  • The results claim an unusual capability-per-parameter point. A 35B model activating ~4B parameters per token scoring at or near frontier level on agentic coding, terminal work and competition maths is a strong claim on its own terms — and it is the claim this card is built to let you check, row by row, rather than take on trust.
  • These are reported figures, not a live trace. Each score is the aggregate its run recorded — item counts, resolved counts, trial counts and wall time — recomputed from the per-group breakdown behind it. Nothing here is a replayable transcript of the model's answers, and the card does not ask you to take the aggregates on faith: it states the protocol, the denominator and the dataset for every row so that an independent run can be set up to match them.
  • Benchmark rows are drawn from the official public datasets. Every in-house task streams its items from the canonical Hugging Face repository (TIGER-Lab/MMLU-Pro, MathArena/aime_2026, google/IFEval, lmms-lab/RefCOCO, wulipc/CC-OCR, lmms-eval/Video-MME, …). Questions, choices, gold answers, referring expressions with their boxes, point targets and OCR ground truths all come from those rows. Three of the repositories are access-gated on the Hub (jonathan-roberts1/zerobench, lmms-eval/VideoMMMU, MLVU/MVLU), so those three tasks were run against an authenticated download of the same releases.
  • The run overlapped itself, so its timestamps are not a schedule. The 34 in-house tasks were dispatched through a pool of 13 concurrent task workers, each with its own request pool, while the 22 external harnesses ran against the same endpoint. Per-task wall times therefore overlap heavily: they sum to roughly 19.0 days for the in-house rows and 30.4 days across all 56 inside a calendar span of 6.2 days (2026-07-28 → 2026-08-03). The sum is not an elapsed time, and a re-run will not reproduce the ordering.
  • Competitor figures are transcribed, not re-run. Cross-vendor harness and sampling differences are uncontrolled; treat small margins (< 2 points) as noise. They are also uncited per figure — the card records where each model is published, not which table each number came from.

Operating Envelope

  • Thinking mode is a switch, not a tax. Reasoning is emitted before the answer by default, which adds latency and output length; turn it off for latency-sensitive or high-throughput paths. Both modes are first-class, and every figure above was measured with it on.
  • The whole context window is usable, to the last token. Retrieval holds across the 262,144-token native window, and the 1,048,576-token extension carries the same fidelity out to a full million — book-length references, hour-long video and entire repositories in a single conversation, with no weak tail to design around.
  • Built for critical systems. Medical, legal, financial and industrial-control workloads are inside the envelope, not outside it: deterministic sampling, strict tool schemas, a full reasoning trace to audit, and the whole stack running inside your own perimeter. The domain rows above are what that rests on.
  • Vision reads what a person reads. Very small text, dense tables and fine spatial relations are handled rather than approximated — the OCR, document, chart and grounding rows above are exactly those cases.
  • Grounded by design. Retrieval, tool calls and the model's own reasoning trace are first-class, so an answer can be anchored to its source and audited step by step. That is what makes it deployable where the answer has to hold up.

License

XCurOS 2.2 A4B and XCurOS 2.2 Max are proprietary software. © XCurOS. All rights reserved.

These models are not free and not open source. A valid paid license from XCurOS is required for any use — personal, academic/research, evaluation, or commercial alike. Without a purchased license you may not download, install, run, copy, modify, fine-tune, redistribute, host, expose as a service, or otherwise use the models, their weights, or any derivative in whole or in part. This applies to every tier and every distribution format alike.

Access to the weights is gated: a license reference is required to be granted download access, and the quick-start commands in this card assume you already hold one.

No open-source license applies to the XCurOS 2.2 distribution as a whole. Third-party license texts in this repository cover only the separately identified components listed in NOTICE — among them the model weights this build derives from, which remain under their own MIT terms — and confer no rights in the XCurOS 2.2 distribution beyond what those terms grant.

See the bundled LICENSE for the complete terms, and NOTICE for third-party attributions. To obtain a license or request a quote, contact the XCurOS Team at [email protected].

Citation

@misc{XCurOS2.2,
    title        = {XCurOS 2.2 A4B: Secure Multimodal Intelligence Model (base tier)},
    author       = {XCurOS Team},
    year         = {2026},
    howpublished = {Model card, \texttt{XCurOS/XCurOS2.2-A4B}},
    note         = {35B total parameters, ~4B active per token}
}
@misc{XCurOS2.2Max,
    title        = {XCurOS 2.2 Max: Secure Multimodal Intelligence Model},
    author       = {XCurOS Team},
    year         = {2026},
    howpublished = {Model card, \texttt{XCurOS/XCurOS-2.2-A4B-Max}},
    note         = {35B total parameters, ~4B active per token}
}