Model reference · open weights
MagenticBrain is an open-weight language model from microsoft. MagenticBrain (FP32) weighs 29.5 GB; the smallest configuration that runs it is L40S 48 GB.
Summary of the microsoft/MagenticBrain model card, 2026-10-01
What it is
| Released by | microsoft |
|---|---|
| Released | 2026-05-12 |
| Parameters | 14.8B |
| VRAM | 29.5 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … RTX 4090 24 GB 4 smaller cards | — | — | — | |
| RTX 5090 32 GB | — | — | 3K | 31.0 GB |
| L40S 48 GB | 10 | 2 | all 40K | 44.0 GB |
| A100 80 GB | 35 | 8 | all 40K | 78.2 GB |
| H100 80 GB | 32 | 8 | all 40K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 43 | 10 | all 40K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 54 | 13 | all 40K | 107 GB |
| H200 141 GB | 76 | 19 | all 40K | 138 GB |
| B200 180 GB | 104 | 26 | all 40K | 176 GB |
| 2× RTX 4090 24 GB tensor parallel | 11 | 2 | all 40K | 23.4 GB a card |
| 2× RTX 3090 24 GB tensor parallel | 11 | 2 | all 40K | 23.4 GB a card |
| 2× RTX 5090 32 GB tensor parallel | 23 | 5 | all 40K | 31.0 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 31.7 GB | 35.7 GB |
| 5 | 37.1 GB | 57.2 GB |
| 8 | 41.1 GB | 73.3 GB |
| 16 | 51.8 GB | 116 GB |
| 32 | 73.3 GB | 202 GB |
| 64 | 116 GB | 374 GB |
One card, with vLLM's small-card settings.
From the model card
MagenticBrain is a 14B-parameter orchestration model from Microsoft Research AI Frontiers. It plans multi-step tasks, calls declared tools, and coordinates sub-agents. It does not execute actions itself — every real-world side effect happens inside a host harness.
The model is supervised fine-tuned from Qwen/Qwen3-14B on agentic data: function-calling corpora, file-system trajectories, terminal tasks, sub-agent delegation traces, and reasoning data. After supervised fine-tuning, it was further trained with reinforcement learning on in-house-constructed terminal tasks. It's co-designed with MagenticLite, our agentic application and harness, and that's the configuration it has been most thoroughly evaluated in.
We're releasing weights only. Inference code, training recipes, and the execution harness are part of MagenticLite.
submit signal, which is a protocol token, not an action. The harness uses it as the end-of-task indicator.| Developer | Microsoft Research AI Frontiers |
| Architecture | Decoder-only transformer (Qwen3 architecture) |
| Parameters | ~14B |
| Context length | 32,768 tokens |
| Inputs | Text (system prompt, tool schema, user goal, trajectory state) |
| Outputs | Text and structured JSON tool calls |
| Training period | January 2026 – April 2026 |
| Release date | 14 May 2026 |
| License | MIT |
| Base model | Qwen/Qwen3-14B |
MagenticBrain is the orchestration model inside MagenticLite. The training mix, tool-call format, and submit/terminate protocol are calibrated against MagenticLite's execution loop. If you want the behavior MagenticBrain was trained for, run it inside MagenticLite.
The weights load in any compatible runtime (Transformers, vLLM, SGLang, TensorRT-LLM). If you integrate the model directly, you're responsible for the execution boundary: declaring the tool schema, parsing the model's JSON tool calls, executing tools under your own permissions, and handling the submit terminator.
Requires transformers >= 4.51.0.
import json
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "microsoft/MagenticBrain"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto",
)
tools = [
{
"type": "function",
"function": {
"name": "read_file",
"description": "Read the contents of a file at the given path.",
"parameters": {
"type": "object",
"properties": {"path": {"type": "string"}},
"required": ["path"],
},
},
},
{
"type": "function",
"function": {
"name": "submit",
"description": "Signal that the task is complete.",
"parameters": {"type": "object", "properties": {}},
},
},
]
messages = [
{"role": "system", "content": "You are an orchestration agent. Plan steps and call only the tools declared below."},
{"role": "user", "content": "Summarize the contents of /tmp/report.md."},
]
text = tokenizer.apply_chat_template(
messages,
tools=tools,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False, # thinking is disabled by default for MagenticBrain
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
output_ids = model.generate(**inputs, max_new_tokens=1024)[0][inputs.input_ids.shape[1]:]
print(tokenizer.decode(output_ids, skip_special_tokens=True))
The model emits tool calls as JSON objects. Parse them, execute the tool in your host, feed the result back as a tool role message, and call generate again. Loop until the model emits submit.
Serve with an OpenAI-compatible endpoint that exposes tool-calling:
vllm serve microsoft/MagenticBrain \
--enable-auto-tool-choice \
--tool-call-parser hermes \
--max-model-len 32768
Then call /v1/chat/completions with tools=[...] as you would with any OpenAI-compatible tool-use model. Pass chat_template_kwargs={"enable_thinking": false} to match training-time defaults.
enable_thinking = false
temperature = 0.7
top_p = 0.8
top_k = 20
min_p = 0
presence_penalty = 1
MagenticBrain runs in non-thinking mode — keep enable_thinking=False in the chat template. Do not use greedy decoding; it causes endless repetition on this model family. Lower the temperature if you need stricter, more deterministic tool selection.
Post-training has two stages. First, Supervised Fine-Tuning on a heterogeneous agentic data mix. Second, a reinforcement learning stage on in-house-constructed terminal tasks, further specializing the model for multi-step CLI execution. Thinking tokens are disabled by default (enable_thinking=False) to control verbosity and reduce looping on long trajectories.
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.