Instructions to use darwinagent/WIA-35B-A3B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use darwinagent/WIA-35B-A3B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="darwinagent/WIA-35B-A3B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("darwinagent/WIA-35B-A3B") model = AutoModelForCausalLM.from_pretrained("darwinagent/WIA-35B-A3B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.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=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use darwinagent/WIA-35B-A3B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "darwinagent/WIA-35B-A3B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "darwinagent/WIA-35B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/darwinagent/WIA-35B-A3B
- SGLang
How to use darwinagent/WIA-35B-A3B 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 "darwinagent/WIA-35B-A3B" \ --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": "darwinagent/WIA-35B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "darwinagent/WIA-35B-A3B" \ --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": "darwinagent/WIA-35B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use darwinagent/WIA-35B-A3B with Docker Model Runner:
docker model run hf.co/darwinagent/WIA-35B-A3B
WIA-35B-A3B
WIA-35B-A3B is a 35B-total-parameter, approximately 3B-active-parameter MoE world model from the World Intelligence Agent (WIA) project. It predicts action-conditioned observations across Android, MCP, desktop OS, Search, SWE, Terminal, and Web. It is intended for world-model evaluation and as a synthetic environment for agent training and test-time action lookahead; it is not a general-purpose chat assistant.
The model is initialized from a Qwen3.5-35B-A3B backbone and trained with WIA-CPT, observation-only WIA-SFT, and GSPO-based world-model RL (WIA-WM).
Evaluation
Results below are from the WIA technical report. Scores are on a 0--100 scale, evaluated by DeepSeek-V4-Pro; Avg is sample-weighted and MAvg is the macro average over seven domains.
WIA-Bench
| Split | Android | MCP | OS | Search | SWE | Terminal | Web | Avg | MAvg |
|---|---|---|---|---|---|---|---|---|---|
| OOD | 48.76 | 43.72 | 63.86 | 51.33 | 59.19 | 62.52 | 54.95 | 55.72 | 54.90 |
| ID | 43.49 | 67.45 | 34.39 | 89.30 | 64.18 | 76.36 | 71.86 | 65.04 | 63.86 |
Stage ablation
| Stage | OOD Avg | ID Avg |
|---|---|---|
| Qwen3.5-35B-A3B-Base | 34.93 | 36.26 |
| WIA-CPT-35B-A3B | 38.40 | 38.49 |
| WIA-SFT-35B-A3B | 47.96 | 59.53 |
| WIA-WM-35B-A3B | 55.72 | 65.04 |
World-model RL adds 7.76 OOD points and 5.51 ID points over WIA-SFT-35B-A3B. The model is strongest on ID Search (89.30) and is competitive with the 27B model despite activating only about 3B parameters per token.
Simulation experiments
The technical report uses WIA-WM-35B-A3B as the synthetic environment, served on 32 GPUs at temperature 0.6 and top-p 0.95. The policy is Qwen3.5-4B, and evaluation uses at most 20 interaction turns.
Simulation SFT and RL
The following results compare the Qwen3.5-4B prompt baseline with synthetic SFT (+SSFT) and synthetic RL (+SRL). Scores are percentages; the BFCL-v3 and tau2 columns are separate benchmark subsets.
| Method | BFCL Non-Live | BFCL Live | BFCL Multi-Turn | BFCL Hallu. | BFCL Relev. | tau2 Airline | tau2 Retail | tau2 Telecom |
|---|---|---|---|---|---|---|---|---|
| Prompt | 36.65 | 31.46 | 6.75 | 42.32 | 62.50 | 40.00 | 33.33 | 0.00 |
| +SSFT | 40.92 | 37.23 | 28.00 | 62.17 | 81.25 | 48.00 | 42.98 | 16.67 |
| +SRL | 46.23 | 41.15 | 19.88 | 63.32 | 81.25 | 38.00 | 65.79 | 16.67 |
Relative to the prompt baseline, +SSFT lifts the BFCL-v3 overall by 13.98 points and tau2 by 11.44 points; +SRL lifts them by 14.43 and 15.71 points, respectively. +SRL is stronger on BFCL Non-Live/Live and tau2 Retail, while +SSFT retains an advantage on BFCL Multi-Turn and tau2 Airline.
Inference lookahead
With DeepSeek-V4-Pro as the policy, using WIA-WM-35B-A3B to score three candidate actions improves OOD accuracy by +6.74 on TerminalBench 2, +4.31 on AndroidWorld, +3.73 on BrowseComp-Plus, and +2.69 on WebArena. It also reduces average successful-trajectory turns by 3.39 on BrowseComp-Plus and 0.67 on WebArena. This is test-time guidance and does not retrain the policy.
Download
pip install -U "transformers>=5.8.0" huggingface_hub torch
hf download darwinagent/WIA-35B-A3B --local-dir ./WIA-35B-A3B
Usage
WIA-35B-A3B predicts an observation after an action. Keep the WIA prompt format and append ###[Observation] before generation.
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "darwinagent/WIA-35B-A3B"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True,
)
messages = [
{"role": "system", "content": "Operate as a language world model and report only the resulting observation."},
{"role": "user", "content": "Task: inspect the repository.\nCurrent observation: the shell is open.\nAction: shell_exec(command='pwd', cwd='/workspace', timeout_sec=30)\n###[Observation]"},
]
inputs = tokenizer.apply_chat_template(
messages, tokenize=True, add_generation_prompt=True, return_tensors="pt"
).to(model.device)
with torch.inference_mode():
output = model.generate(inputs, max_new_tokens=1024, do_sample=False)
print(tokenizer.decode(output[0, inputs.shape[-1]:], skip_special_tokens=True))
Use a GPU configuration appropriate for the model and context length. Practical memory use depends on dtype, context length, batching, and attention implementation.
Citation
Please cite the WIA technical report when using this model.
- Downloads last month
- 113