AWS Strands Decider 2B: A Tiny Model That Routes Agents Without Writing a Word

·10 min read·Evergreen Tools Team

In most agent loops, the model burns a full text generation just to decide which tool to call next. That is slow and expensive. On October 1, 2026, AWS Strands Labs released Strands Decider 2B, an Apache-2.0 open-source decision model that removes text generation from the decision loop entirely. Instead of predicting tokens, it reads a situation, compares its hidden-state representation against each candidate answer, and returns a calibrated probability ranking in roughly 106-115 ms median on a consumer GPU. Here is the architecture, the real numbers, and where it belongs in the stack.

A close-up of a chip on a circuit board

A decision model swaps generating a sentence for making a choice

The problem: every decision burns tokens

The problem is structural. A multi-step agent must decide at each step what to do next and which tool to use, and the conventional approach asks a frontier model to generate text expressing that decision. Every routing decision therefore triggers a decoding loop, spending tokens, adding latency, and paying the cost of emitting dozens of tokens just to say use the search tool. For high-frequency, low-difficulty triage, routing, tool selection, and guardrail pre-screening, a large model is both wasteful and slow. Strands Decider 2B targets exactly that gap: it replaces saying a sentence to make a decision with making a single choice. Per AWS, it is a small model optimized for agentic decision-making, returns answers in under 100 ms, is fully open source, and ships with all training data and scripts.

# What Strands Decider 2B is, in one object. Facts are from AWS
# Strands Labs' October 1, 2026 release and vendor coverage.

DECIDER = {
    "release_date": "2026-10-01",
    "publisher": "AWS Strands Labs",
    "params": "~1.9-2B",
    "license": "Apache 2.0",
    "torso": "Qwen3.5-2B",
    "head": "~1M-param pointer head (LoRA rank-16), no LM head",
    "output": "calibrated choices / ranked probabilities in one pass",
    "no_text_generation": True,
}

What a decision model actually is

A conventional LLM outputs a sequence of tokens; a decision model outputs a choice. Give it a situation and a set of candidates, and it returns a probability ranking over those candidates without generating any text. Per the release, Strands Decider 2B is roughly 1.9-2B parameters, built on a Qwen3.5-2B torso, but with the language-model head removed and replaced by a pointer head of about 1M parameters (LoRA rank-16). Its scope is deliberately narrow: agent routing, tool selection, evaluations, and guardrails. It does not reason, write prose, or generate code. It triages the options you hand it, fast and cheap. The industry has started calling models in this class System One models, aimed at reflexive judgments that do not need deliberation.

# The core idea: replace token prediction with candidate scoring.
# Instead of generating an answer, it scores the options you give it.

def decide(model, situation_vec, candidates):
    # situation_vec: hidden-state representation of the current state
    scores = model.pointer_head(situation_vec, candidates)
    probs = softmax(scores)
    ranked = sorted(zip(candidates, probs), key=lambda x: -x[1])
    return ranked          # [("use_search", 0.71), ("use_db", 0.19), ...]

# One forward pass. No decoding loop. No token budget. Millisecond-scale.
Code on a screen

One forward pass returns a ranking and probabilities, not tokens

Under the hood: swapping the LM head for a pointer head

The key architectural move is a head swap. A normal language model ends in a language-model head that maps hidden states onto a probability distribution over the vocabulary so it can emit tokens one at a time. Strands Decider 2B replaces that head with a pointer head that compares the hidden state against the representation of each candidate and produces a score. A single forward pass then completes the whole decision: no autoregressive decoding loop, no token budget, latency compressed to milliseconds. Its input is situation plus candidates; its output is a calibrated probability ranking. The implication is that the model no longer says its decision, it computes it. For engineering teams, decision-step latency and cost become predictable and budgetable instead of being dragged around by generation randomness.

# Reported latency on consumer hardware. Single numbers only, since
# AWS and community benchmarks used different setups.

LATENCY = {
    "aws_earlier_checkpoint_median_ms": 106,
    "aws_earlier_checkpoint_p95_ms": 296,
    "community_rtx_3090_median_ms": 115,     # unconfirmed vs AWS spec
    "m3_macbook_small_tasks_ms": 153,
}

# Vendor guidance: runs locally on CPU, GPU, or Mac. No hosted API for
# now, so "free" means licensing and download, not zero operating cost.

Latency and accuracy on the numbers

On latency, AWS says it returns answers in under 100 ms when run locally. In its package benchmarks, an earlier checkpoint measured 106 ms median and 296 ms p95 on a local RTX 3090; a community figure of 115 ms median has not been confirmed as an official AWS specification, and small tasks ran at about 153 ms on an M3 MacBook. On accuracy, AWS's chart places Strands v19 at roughly 72 percent on the public JevBench, but it does not include the competitor TypeSafe Jev baseline for a like-for-like comparison. VentureBeat notes that differing hardware and network conditions make a direct speed winner impossible to establish. The takeaway: speed and free-as-in-license hold up, but the accuracy claim lacks comparable evidence and should be verified on your own evaluations.

# Accuracy and framing. AWS cites competitive calibration in the
# 2B class; independent claims are more cautious.

ACCURACY = {
    "strands_v19_jevbench": "~72% (AWS chart)",
    "note": "does not include the TypeSafe Jev baseline for a like-for-like",
    "positioning": "self-hostable alternative to hosted decision models",
}

# The same week, Cloudflare shipped its own Clef / Clef-flash pair,
# signalling a hardening 'System One' model tier.
A glowing networked globe

Routing, tool selection, evals, and guardrails all get triaged here

Where it fits: routing, tool selection, evals, guardrails

Dropped into a real agent loop, Decider 2B belongs before the big model. In routing, it decides which sub-agent handles a step. In tool selection, it picks one of N tools without a full LLM call. In evaluations, it scores candidate answers in bulk at very low cost. In guardrails, it triages inputs before they reach the frontier model, sorting them into obviously safe, needs review, and should block. This pattern of cheap front-end triage plus expensive back-end reasoning is the lever for controlling cost and latency in large-scale agents. Conversely, it is the wrong tool for tasks that need deep reasoning, long chains of thought, or creative generation; those still belong to frontier models.

# Where a decision model earns its keep in a real agent loop.

USE_CASES = [
    "agent routing: which sub-agent should handle this step",
    "tool selection: pick one of N tools without a full LLM call",
    "evals: score candidate answers cheaply, in bulk",
    "guardrails: triage inputs before they reach the frontier model",
]

def triage(user_input, model, policies):
    labels = ["safe", "needs_review", "block"]
    return model.decide(user_input, labels)   # gate before the big model

The emerging System One model tier

Strands Decider 2B is not alone. The same day, Cloudflare shipped its own decision-model pair, Clef and Clef-flash, and TypeSafe AI had already named the category System One models on September 15. Multiple vendors entering within a month suggests decision models are hardening from a concept into a recognizable infrastructure tier: cheap, fast, runnable locally, specialized for reflexive judgment. For developers, two things are worth doing now. First, identify which steps in your agent are cheap triage and offload them from the frontier model. Second, build your own evaluation set and judge a small model on real traffic rather than vendor charts. Once layered decision-making pays off, the cost curve visibly flattens.

📌 Frequently Asked Questions

What is Strands Decider 2B?

Per AWS Strands Labs, it was released on October 1, 2026, and is an approximately 1.9-2B-parameter, Apache-2.0 open-source decision model that does not generate text but returns calibrated probability rankings over candidates for agent routing, tool selection, evaluations, and guardrails.

How is it different from a normal LLM?

A normal LLM outputs a token sequence; Strands Decider 2B replaces the language-model head with an approximately 1M-parameter pointer head, scoring candidates in one forward pass with no autoregressive decoding loop, which cuts latency and cost sharply.

How fast is it?

Per AWS, it returns answers in under 100 ms locally; its package benchmarks measured an earlier checkpoint at 106 ms median and 296 ms p95 on an RTX 3090. A separate 115 ms community figure is not an official AWS specification.

Is it free to use?

It is Apache-2.0 licensed and free to download, with weights, training data, and scripts open-sourced. Running it still requires compute, so free means licensing and download, not zero operating cost. AWS offers no hosted API for now.

What about accuracy?

AWS's chart places Strands v19 at roughly 72 percent on JevBench, but does not include the competitor baseline for a like-for-like comparison. VentureBeat notes hardware and network differences make speed comparisons inconclusive, so verify with your own evaluation set.