Instructions to use havok2/Qwen-AgentWorld-35B-A3B-VL36 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use havok2/Qwen-AgentWorld-35B-A3B-VL36 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="havok2/Qwen-AgentWorld-35B-A3B-VL36") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("havok2/Qwen-AgentWorld-35B-A3B-VL36") model = AutoModelForMultimodalLM.from_pretrained("havok2/Qwen-AgentWorld-35B-A3B-VL36", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use havok2/Qwen-AgentWorld-35B-A3B-VL36 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "havok2/Qwen-AgentWorld-35B-A3B-VL36" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "havok2/Qwen-AgentWorld-35B-A3B-VL36", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/havok2/Qwen-AgentWorld-35B-A3B-VL36
- SGLang
How to use havok2/Qwen-AgentWorld-35B-A3B-VL36 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "havok2/Qwen-AgentWorld-35B-A3B-VL36" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "havok2/Qwen-AgentWorld-35B-A3B-VL36", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "havok2/Qwen-AgentWorld-35B-A3B-VL36" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "havok2/Qwen-AgentWorld-35B-A3B-VL36", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use havok2/Qwen-AgentWorld-35B-A3B-VL36 with Docker Model Runner:
docker model run hf.co/havok2/Qwen-AgentWorld-35B-A3B-VL36
Qwen-AgentWorld-35B-A3B-VL36 (vision-grafted, Qwen3.6 ViT)
TL;DR — a weight-grafted multimodal variant of Qwen/Qwen-AgentWorld-35B-A3B: its agentic text backbone, with the vision tower (ViT + projector) transplanted in from Qwen/Qwen3.6-35B-A3B. No training was performed — this is pure weight surgery. Full precision BF16 (not a quantized model).
⚠️ Experimental, cross-generation graft. The vision tower comes from Qwen3.6 while the AgentWorld backbone is a Qwen3.5-generation derivative. The projector (
merger.linear_fc2) lands dimensionally exactly on the text hidden size (2048) and the vision config matches bit-for-bit, so it loads and runs. In smoke tests the 3.6 ViT gives clean, accurate grounding (correctly named shapes, colors and OCR'd a number with precise spatial relations). But this is not a natively co-trained VLM and has not been benchmarked. Use at your own risk.A same-generation variant using the Qwen3.5 ViT also exists (
Qwen-AgentWorld-35B-A3B-VL); 3.6's vision tower is the stronger encoder, hence this build.
What we changed vs. Qwen-AgentWorld-35B-A3B
AgentWorld ships text-only weights (693 tensors, all model.language_model.* + lm_head)
even though its config already declares a vision_config, image/video token ids, and a
vision+tool-capable chat template — it is effectively a Qwen3.5-VL waiting for a vision encoder.
We:
- Extracted the 333
model.visual.*tensors (27-layer ViT + patch/position embeds + merger/projector) from Qwen3.6-35B-A3B (BF16). - Added them to the AgentWorld checkpoint without touching a single text tensor — so the agent / tool-calling skills are byte-for-byte preserved.
- Removed the
language_model_onlyflag from the config so the runner instantiates the tower.
Result: 1026 tensors (693 text + 333 vision), architecture
Qwen3_5MoeForConditionalGeneration, projector maps vision hidden 1152 → text hidden 2048.
Serving (vLLM ≥ 0.23)
vllm serve havok2/Qwen-AgentWorld-35B-A3B-VL36 \
--tensor-parallel-size 4 \
--reasoning-parser qwen3 \
--limit-mm-per-prompt '{"image": 4, "video": 1}'
# IMPORTANT: do NOT pass --language-model-only — that disables the vision tower.
Loads as a standard Qwen3.5-MoE VLM. ~70 GB BF16; fits on 4×24 GB with --tensor-parallel-size 4.
Capabilities & limitations
- ✅ Agentic text + tool-calling — identical to AgentWorld (weights untouched).
- ✅ Image / video input — works; smoke-tested on synthetic images (shapes, colors, OCR).
- ⚠️ Vision quality is not benchmarked; cross-generation graft, may differ from a natively co-trained VLM.
- ⚠️ No additional safety tuning or evaluation beyond basic smoke tests.
Reproduce it yourself (no 70 GB download needed)
Rebuild locally from the two source models with the included
build_merged_vl36.py. It downloads the AgentWorld backbone and
only the Qwen3.6 shards that contain the vision tensors, then performs the graft:
pip install huggingface_hub safetensors torch
python build_merged_vl36.py # -> ./Qwen-AgentWorld-35B-A3B-VL36
Attribution & license
- Text backbone & agent post-training: Qwen/Qwen-AgentWorld-35B-A3B (Apache-2.0), itself based on
Qwen3.5-35B-A3B-Base. - Vision tower (ViT + projector): Qwen/Qwen3.6-35B-A3B (Apache-2.0).
This derivative is released under Apache-2.0. Modification: vision-tower graft as described
above (no training). See LICENSE. Not affiliated with or endorsed by Alibaba / the Qwen team.
- Downloads last month
- 493