Instructions to use Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp") config = load_config("Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent
How to use Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
The MAYA series
Monitoring, Analysis and Yield Agent.
The MAYA name marks models calibrated to run as a local AI assistant and is not just a benchmark-chasing quantization. The custom imatrix corpus was built to preserve the weight channels that matter : multi-step agentic reasoning, tool use, network monitoring, expressive professional prose, the ability to express a personality, and the kind of organizational intelligence that lets an AI feel like a real collaborator rather than merely a command executor. The weights provide the capability; the system prompt is what instantiates the specific character on top. If you're building a personal assistant with a defined persona and want the model to have the headroom to inhabit it, and still do real work, then this series was built with that in mind.
So this is simply Qwen3.6-35B-A3B quantized using a custom imatrix calibration corpus that would ensure activation of the specific weights which benefit this use case.
Qwen3.6-35B-A3B · oQe Q4 bf16 · Vision + MTP Verified
Qwen3.6-35B-A3B (35B MoE, ~3.6B active parameters) quantized with oMLX's oQe (imatrix-weighted) pipeline at Q4 bit depth, bf16 weights, with a custom calibration corpus. Vision tower and Multi-Token Prediction (Lightning MTP) tensors are verified present -- not inferred from the source or claimed from conversion flags.
This is the bf16 variant, recommended for M3/M4.
Companion models:
- For M1/M2 / fp16 at this bit depth:
Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-fp16-mtp— same quantization, fp16 dtype; ~44% faster prefill at long context on M1/M2.- For better speed + smallest footprint (my production pick):
Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ3.5e-fp16-mtp— Q3.5e fp16; faster decode throughput and the highest MMLU-Pro and HumanEval scores of any variant tested. Handles code and agent tasks well at a smaller footprint.
Why this exists
HuggingFace has been flooded with Qwen3.x uploads claiming to have MTP retained and the vision tower intact. In my experience, that was rarely the case as conversion pipelines silently strip those components, and there's no standard way to verify from the outside without opening the checkpoint yourself. I started quantizing from the official original weights myself to be certain.
This model was quantized directly from Qwen/Qwen3.6-35B-A3B : the official full-precision source. MTP and vision tensors were verified after quantization by inspecting the safetensors index directly.
Verification
Tensor counts in this checkpoint:
| Component | Tensors present |
|---|---|
Vision tower (vision_tower.*) |
216 |
MTP heads (mtp.*) |
19 |
If you want to verify yourself:
import json
idx = json.load(open("model.safetensors.index.json"))
tensors = list(idx["weight_map"].keys())
print("MTP:", len([t for t in tensors if "mtp" in t]))
print("Vision:", len([t for t in tensors if "vision" in t or "visual" in t]))
Benchmarks
Full Intelligence Bench results (Thinking Mode off, greedy/temp=0 where applicable):
| Benchmark | This model (Q4 bf16) | Q3.5 fp16 companion | DWQ baseline |
|---|---|---|---|
| MMLU (1000q) | 80.9% | -- | 80.9% |
| MMLU-Pro (300q) | 60.0% | -- | -- |
| HellaSwag (200q) | 93.0% | -- | -- |
| TruthfulQA (817q) | 85.6% | -- | -- |
| GSM8K (100q) | 91.0% | -- | -- |
| HumanEval (164q) | 91.5% | ~91% | 90.9% |
| MBPP (200q) | 85.5% | -- | 83.5% |
| LiveCodeBench (100q) | 53.0% | 44.0% | 43.0% |
Q4 shows a clear advantage on LiveCodeBench (+9pp vs Q3.5 fp16, +10pp vs the prior DWQ production baseline) -- the harder the coding task, the more the extra bit depth matters.
What oQe is
oQe is oMLX's imatrix-calibrated quantization. Rather than quantizing all weights uniformly, it first collects activation statistics over a calibration corpus, then uses those to guide per-tensor quantization -- protecting the weights that matter most for accuracy from the worst precision loss.
Calibration Corpus
This build used a custom corpus that supplements oMLX's stock calibration data rather than replacing it. The goal was to bias imatrix weighting toward the specific channels a local homelab agent uses most: agentic tool orchestration, coding, shell/sysadmin, and professional writing. The stock corpus already provides strong Hermes-style chat/code/reasoning diversity; the additions target what's under-represented for this use case.
| Category | Samples | Source / License |
|---|---|---|
| Retained originals (chat, code, reasoning, tool-calling) | 2,166 | oMLX stock |
| Professional writing (essays, résumés, cover letters) | 311 | InferencePrince555 + own docs |
| Agentic tool-use traces | 300 | lambda/hermes-agent-reasoning-traces · Apache 2.0 |
| Shell / sysadmin | 200 | ajibawa-2023/Shell-Code-Large · MIT |
| HTML + React | 150 | Own repos + kenhktsui/github-code-permissive-sample |
| World knowledge (Wikipedia) | 150 | wikimedia/wikipedia · CC-BY-SA |
| Swift + AppleScript | 178 | Own repos + HelloImSteven dataset · MIT |
| Organizational / multi-step | 100 | Own docs + hand-authored |
| Structured instruction-writing skills | 23 | Own skill files (curated) |
| Creative | 21 | lemon07r/VellumK2T-Fiction-SFT-01 · MIT |
| Total | 3,629 | All third-party: Apache 2.0 / MIT / CC-BY-SA or equivalent |
100% MoE expert coverage confirmed: all 256 experts across 123 layers received imatrix weighting (weakest expert: 37 samples vs. 16 required minimum).
fp16 vs bf16 -- which to use
M3 / M4: Apple improved bf16 throughput in these generations -- bf16 is the natural choice and this checkpoint is built for it.
M1 / M2: fp16 runs meaningfully faster on these chips. Use the fp16 companion oQ3.5e-fp16-mtp instead.
CUDA: bf16 is typically the native type on NVIDIA hardware, so this checkpoint may work there, but it was not tested on CUDA.
Quantization details
| Source | Qwen/Qwen3.6-35B-A3B (official, unmodified) |
| Method | oQe -- oMLX imatrix-calibrated, custom corpus |
| Bit depth | Q4 equivalent (mixed precision, imatrix-guided) |
| Weight dtype | bf16 |
| Vision | Intact -- 216 tensors |
| MTP | Intact -- 19 tensors (Lightning MTP compatible) |
| Size | ~20 GB |
Usage
Designed for oMLX. Load as a standard MLX model. Enable "Lightning MTP" in oMLX settings to activate the MTP drafting heads for faster decode throughput.
What this is not
Straight quantization of the original weights. No fine-tuning, no abliteration, no merges.
- Downloads last month
- 46
4-bit
Model tree for Robot-Haus/Qwen3.6-35B-A3B-MAYA-oQ4e-mtp
Base model
Qwen/Qwen3.6-35B-A3B