Instructions to use EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3") 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("EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3") model = AutoModelForMultimodalLM.from_pretrained("EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3", 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 EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3", "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/EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3
- SGLang
How to use EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3 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 "EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3" \ --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": "EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3", "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 "EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3" \ --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": "EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3", "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 EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3 with Docker Model Runner:
docker model run hf.co/EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3
Minecraft Agent — Qwen3.5-9B Stage3 (Text-Action)
A vision-language agent for Minecraft that plays from raw first-person pixels and outputs structured text actions. Fine-tuned from Qwen3.5-9B (stage2 → stage3) on 200k+ human gameplay trajectories (6M frames, 20 FPS, 640×360) converted to a text-action format.
Recipe (Stage 3)
| Component | Value |
|---|---|
| Base | Qwen3.5-9B (stage2) |
| Data | minecraft-text-action-dataset-noop-filtered — 92.85% of the raw dataset after removing 7.15% pure no-op collapse trajectories |
KEEP_NO_OP_P (no-op frame drop) |
0.2 (drop 80% of no-op frames at data level) |
| Focal loss | decay = 0.75 (down-weights repeated consecutive actions) |
| Steps | 3000 (this checkpoint) |
Evaluation
Benchmark: easy-ng — 202 non-GUI tasks (153 Embodied mine_block + 49 Combat kill_entity)
× 3 rollouts, difficulty = easy, 200-step episodes, seed=42.
| Inference history window | Success rate | Embodied | Combat |
|---|---|---|---|
| 3 frames (default) | 15.0% | 17.9% | 6.2% |
| 29 frames (matches training context) | 24.9% | 24.8% | 25.2% |
GUI tasks (crafting/smelting/interaction) are out of scope: all text-action models score 0% on them (no interface-coordinate grounding in this action space).
Action format
The model consumes a sliding window of frames (recommend 29 history + 1 current) and emits:
Action: move(dx, dy) and press(keys...) [and click(button)]
e.g. Action: move(0.5, -0.3) and press(w), Action: move(0, 0) and press() and click(left).
The first user turn carries the system prompt + task instruction; subsequent turns are image-only user messages alternating with assistant actions.
Usage
# vLLM (tested with vllm 0.8.5, transformers >= 5.15 required for Qwen3.5)
vllm serve EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3 \
--limit-mm-per-prompt '{"image": 30}' \
--enable-prefix-caching \
--max-model-len 32768
from transformers import AutoModelForImageTextToText, AutoProcessor
model = AutoModelForImageTextToText.from_pretrained(
"EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3", torch_dtype="bfloat16"
)
processor = AutoProcessor.from_pretrained("EmberJin/Minecraft-Agent-Qwen3.5-9B-Stage3")
Notes
- Checkpoint:
checkpoint-3000of runminecraft-sft-stage3-qwen35-9b-nf-noop2(single seed) - Optimizer states removed (weights only, single
model.safetensors) - The 29-frame window result exploits the 30-step trajectory segments used in training; enable prefix caching to keep rollout speed comparable to short windows
- Downloads last month
- -