Strands Decider 2B
Quadrant scores
See the full quadrantScored with the public quadrant rubric (maturity × capability; bubble = adoption). Revise as evidence lands.
- Maturity6.3/10
Apache-2.0 weights, training data and scripts; PyPI CLI with a /v1/systemone server; unusually complete research log and evaluation files. Strands Agents SDK example in the repo and an open Ollama PR. An AWS lab project with Discord support, not an AWS service: no SLA.
- Capability8.1/10
Noul / Choice / Score from a pointer head, one temperature per type. v1-2610 26B-A4B: JevBench public 207/231 (89.6%), Brier 0.162, ECE 0.051, counted as evidence though self-run and off the boards. hobson-v19: median 115 ms on an RTX 3090.
- Adoption14/100
248 GitHub stars and 39 forks by 3 Oct, 39 Hugging Face likes, launch posts from AWS Developers and AWS VP Swami Sivasubramanian (121 likes), a small HN thread. The HF download counter shows 0. No production use reported.
Vendor claims
- JevBench public set (231 tasks, JevBench harness at a pinned commit): 0.723 (167/231), Brier 0.342, ECE 0.052; placed 50th of 90 on the 25 Sep board and first of 30 systems at 2B or fewer (AWS's own run, not on the board)[Vendor claim — not independently verified]
- Latency per JevBench question: median 115 ms / p95 299 ms on an RTX 3090 (WSL2); warm M3 Pro 234 ms / 2,628 ms[Vendor claim — not independently verified]
- On short classification tasks it has never seen, answers at confidence 0.9 or more are right about 95% of the time[Vendor claim — not independently verified]
- Accuracy and calibration competitive with other models in the class; 100% of JevBench easy tasks correct[Vendor claim — not independently verified]
- Ranks second among public models in its ~2B class on accuracy and calibration, and first among those that share their full training recipe (blog: 3rd of 33 in the 2B class, 1st of 30 excluding the just-over-2B models)[Vendor claim — not independently verified]
Read this first
- Every number is AWS’s own run. The JevBench score uses JevBench’s harness, but v19 is not on the public board. Treat it as self-reported.
scoreis the weak type. On four classification tasks it never saw, the repo measures 0.725 forchoiceand 0.499 forscore.- A lab project, not an AWS service. Strands Labs is the Strands Agents team’s experimental space. There is no hosted endpoint and no SLA.
Strands Decider 2B is an open decision model from Strands Labs, the experimental arm of AWS’s Strands Agents project, announced on the Strands blog on 1 October 2026 by Marc Brooker, Mike Chambers and Fabio Nonato de Paula. The released checkpoint, strands-decider-2B-hobson-v19, went up on Hugging Face on 30 September. Code, training data and scripts are in strands-labs/strands-decider under Apache-2.0.
The model takes Qwen3.5-2B, removes the language-model head and adds a pointer head (just over a million parameters) that scores the hidden state at each option position. The torso is fine-tuned with a rank-16 LoRA. It answers Noul, Choice and Score questions in one pass and returns a probability per option.
Specs
| Attribute | Value |
|---|---|
| Base | Qwen/Qwen3.5-2B-Base |
| Decision part | Pointer head (~1M parameters) + rank-16 LoRA |
| Question types | Noul, Choice, Score |
| Context | 4,096-token window saved with the checkpoint (JevBench measured at 3,072 and 4,096) |
| Serving | pip install strands-decider; strands-decider ask (CLI) or strands-decider serve (POST /v1/systemone) |
| Integrations | Strands Agents SDK example (a before_tool_call intervention that gates tool calls); Ollama support PR #18748 open |
| Training | 19 recipe versions documented; v19 adds 6,166 answer-adequacy rows (HelpSteer2 + generated); ~11 h on one RTX 3090 or ~1 h 10 min on 8× H100 |
| License | Apache-2.0 (weights, data, code) |
| Launch |
Evidence (UnverifiedClaim)
From the repo’s evaluation results:
| Metric | v19 |
|---|---|
| JevBench public accuracy (3,072 window) | 0.723 (167 / 231); 168 at 4,096 |
| Easy tier | 1.000 |
| Standard tier / hard tier | 0.875 / 0.505 |
| Brier / ECE (calibrated) | 0.342 / 0.052 |
| Median / p95 latency (RTX 3090, WSL2) | 115 / 299 ms |
| Warm M3 Pro, median / p95 | 234 / 2,628 ms |
The repo is unusually candid about noise: six retrains of the v17 recipe scored 159 to 167 on the same 231 tasks, so one retrain moves the score by about three tasks. A later v20 run scored 169 at the 4,096 window against v19’s 168, inside that noise, and the repo records that it missed its pre-registered bar.
Three rankings for one result. The repo places v19 50th of 90 on the 25 September JevBench board and first of 30 systems at 2B or fewer. The blog says “3rd of 33 in the 2B class, and 1st of 30 excluding the just-over-2B models” on accuracy plus calibration. AWS VP Swami Sivasubramanian’s launch post says “second among public models in its ~2 billion parameter class, and first among those that share their full training recipe”. All three come from AWS’s own run. The blog also gives an M3 MacBook median of about 153 ms for small tasks, against the repo’s 234 ms on a warm M3 Pro across JevBench questions.
Fit / anti-fit
Fit: local experiments on a laptop CPU or GPU; guardrails and tool-call checks inside Strands agents; anyone who wants to retrain a decision model from published data and scripts.
Anti-fit: ordinal scoring on new tasks; hard multi-step documents (hard tier 0.505); anything that needs a hosted API or an SLA.
Limits
- Not on the JevBench or Decision Index boards.
- Mac latency has a long tail (p95 2.6 s on an M3 Pro).
- The Hugging Face download counter shows 0; it may not count this repo’s file layout, so it is not a usage signal either way.
Why it is in the catalog
Strands Decider trains its own decision components (a new pointer head plus a LoRA on the torso), publishes the weights with a documented typed API that returns probabilities, and serves the System One request shape. It is listed as lora-adapter because the decision weights are a LoRA plus a small head on a stock Qwen3.5-2B.
Newer checkpoint: hobson-v21 (5 Oct 2026)
StrandsAgents/strands-decider-2B-hobson-v21 (Apache-2.0) is v19’s recipe plus checked question paraphrases and distillation from Qwen3.5-4B where it agrees with the gold label. Still a LoRA on Qwen3.5-2B-Base plus a readout head; it is the released seed of six, picked by a rule written before the seeds were ranked. Images work through strands-decider[vision].
Strands’ numbers (UnverifiedClaim): JevBench public 176/231 (0.762) at a 4,096 window, Brier 0.323, ECE 0.064, vs v19’s 168/231 at the same window. Not on JevBench v1.6.1. Decision Index 0.3 lists “Strands Decider 2B” (version not stated) at 21.75, rank 84 group. Scores on this page are unchanged.
The v1-2610 family (9 Oct 2026)
Strands released five checkpoints under a new naming, strands-decider-<size>-<base>-v<N>-<YYMM>: four on Gemma 4 and one on Qwen3.5. Each repo holds a LoRA adapter plus a readout head (0.23–0.84 GB); the base model downloads from the Hub at first use. All five are Apache-2.0, and so are their Gemma 4 and Qwen3.5 bases. Every repo is mirrored under amazon/. Each checkpoint is a soup of three seeds (LoRA updates averaged into one rank-48 adapter, head scores averaged), then calibrated with one temperature per question type.
Use: pip install "strands-decider @ git+https://github.com/strands-labs/strands-decider" (Gemma 4 support is on main; the PyPI package does not have it yet), then strands-decider ask … or strands-decider serve <repo> --port 8000, which answers on POST /v1/systemone. No GGUF of the v1-2610 checkpoints exists yet; the only community GGUF is of hobson-v19.
Strands’ numbers (UnverifiedClaim): JevBench public split (231 items, 4,096-token window, their own run with the eval files in each repo), and Decision Index 0.2.1 balanced skill at a 32,768 window:
| Checkpoint | Base | JevBench public (4,096) | % | Brier | ECE | DI 0.2.1 | Repo (GB) |
|---|---|---|---|---|---|---|---|
| 26B-A4B | gemma-4-26B-A4B-it |
207/231 | 89.6 | 0.162 | 0.051 | 48.69 | 0.27 |
| 12B | gemma-4-12B-it |
200/231 | 86.6 | 0.173 | 0.061 | 47.14 | 0.84 |
| E4B | gemma-4-E4B-it |
187/231 | 81.0 | 0.243 | 0.037 | 39.42 | 0.47 |
| 2B (Qwen3.5) | Qwen3.5-2B-Base |
180/231 | 77.9 | 0.280 | 0.072 | 30.82¹ | 0.23 |
| E2B | gemma-4-E2B-it |
180/231 | 77.9 | 0.313 | 0.053 | 29.78 | 0.33 |
| hobson-v21 (previous) | Qwen3.5-2B-Base |
176/231 | 76.2 | 0.323 | 0.064 | — | — |
| hobson-v19 (previous) | Qwen3.5-2B-Base |
167/231 | 72.3 | 0.342 | 0.052 | — | — |
¹ The 2B card gives 30.82 “measured with the training harness”, not the same row as the others.
Two recipes under one name. The four Gemma 4 cards train on hobson-v21’s data (123,339 rows) plus 12,263 code-task rows, with Qwen3.5-4B as teacher. The Qwen3.5 2B card describes a 246,678-row mix that drops v21’s 20,000 rows from datasets whose terms restrict commercial use, with Gemma-4-31B-it as teacher. If that distinction matters for your use, check data/sources.md in the repo.
The launch chart (“New strands-decider models hit 89.6% on JevBench”, HF org) matches the cards: 207, 200, 187 and 180 of 231 are 89.6%, 86.6%, 81.0% and 77.9%. It plots the public split only. Its subtitle says all five beat the earlier models on accuracy and calibration. That holds for Brier (0.162–0.313 vs 0.323 and 0.342) but not for ECE: the Qwen3.5 2B’s 0.072 is worse than hobson-v21’s 0.064 and v19’s 0.052.
Boards: none of the five is on Benchmark Heaven’s JevBench (v1.6.2 board) or the official Decision Index 0.3, whose only Strands entry is “Strands Decider 2B” at 21.75. The cards themselves name long, multi-step documents as the weak spot (the hard tier scores far below the easy tier).
Score update (10 Oct 2026): capability 7.7 → 8.1. Strands’ public-split result for the 26B-A4B (207/231) is counted as evidence, per Fabricio’s decision on 10 Oct (13:57 BRT). It is still an UnverifiedClaim: self-run on the public items only and not on any board. Accuracy goes from 6 to 8 (+0.40 to capability); types, calibration and latency are unchanged. Maturity 6.3 and adoption 14 are unchanged.
