Strands Decider 2B or Jev: keep closed-set decisions inside the account
Quick summary: Checked 16 Oct 2026: Qwen Decider 2B v1 scores 180 of 231. Gemma 4 12B, released 15 Oct, scores 200 of 231 at a 136 ms H100 median. Jev stays $0.042/MTok, with no matching JevBench row.
Key Takeaways
- Checked 16 Oct 2026: Qwen Decider 2B v1 scores 180 of 231
- Gemma 4 12B, released 15 Oct, scores 200 of 231 at a 136 ms H100 median
- Jev stays $0.042/MTok, with no matching JevBench row
- On 1 October 2026, Strands Labs published Strands Decider 2B, a 1.9 billion parameter decision model under Apache-2.0
- The torso is Qwen3.5-2B

Table of Contents
On 1 October 2026, Strands Labs published Strands Decider 2B, a 1.9 billion parameter decision model under Apache-2.0. The torso is Qwen3.5-2B. The language-model head is gone. A pointer head of about a million parameters scores the options you listed. The launch checkpoint is strands-decider-2B-hobson-v19.
Checked 16 October 2026, the repository README names a later reference for that 2B line: strands-decider-2B-qwen3.5-v1-2610, 180 of 231 public JevBench tasks, Brier 0.280. v19 on the same public set is 167 of 231. Those are two checkpoints. Treat them as two.
On that same check, the TypeSafe models page listed two hosted Jev IDs at $0.042 / MTok input, output tokens free. jev-latest pointed at jev-1.13.0. jev-preview pointed at jev-1.14.0, available from 14 October 2026. The Jev on AWS guide still owns the adapter, the Bedrock catalog check, and the controls a Jev score must not own. This page answers the placement question that guide could not, because Decider did not exist when it was first published: local open weights, or the TypeSafe ID you already pinned.
Opinionated take: If the text cannot leave the account, start on strands-decider-2B-qwen3.5-v1-2610 or Gemma E2B, on a machine you will time, and step to E4B or 12B only after a labeled week misses. Leave 26B-A4B until that week asks for it. Keep Amazon Bedrock for any sentence a person will read. If legal has accepted egress and nobody will run a GPU, pin jev-1.13.0 and the adapter in that guide. If the branch is already a field on the order, use rules. A confidence score from either model is a reason to review. It does not authorize a refund, an export, or an account change.
First-party signals we reuse (not a Decider result, not a Jev result) — Gateway server-side tools cut median tool round-trip ~180 ms → ~95 ms on a B2B CRM assistant (12 tools, ~8k turns/day) — Gateway post. Support-style AgentCore at 50K sessions/mo ~$791/mo platform + model sits in the July decision guide. Decider or Jev would sit beside that hop. Neither figure is a decision-model benchmark.
Reproduce this — Copy
examples/architecture-blog-2026/strands-decider-vs-jev/. Score the placement indecision-matrix.md. The CSV atpublished-numbers.csvis the 16 Oct 2026 reading of the README,evaluation/results.md,evaluation/jevbench.md, the TypeSafe models page, and the 15 Oct Gemma 4 table. Ship gates are inmonday-checklist.md. Nothing in that folder calls TypeSafe or loads a weight.
Trade-off you accept with Decider: the ticket stays on hardware you operate, and you own the checkpoint pin, the GPU, and a latency you measured on that box. Trade-off you accept with Jev: no GPU to run, and state leaves for api.typesafe.ai. The 11 Oct guide recorded 80 requests/s and 100,000 tokens/s on the models page. On 16 Oct 2026 that page no longer prints those caps. It says limits are per organization, in the developer console.
Where the two models sit
Both products answer a closed set. You send unstructured state and typed questions (noul, choice, score). You get probabilities. Your code maps a probability onto a path you already allow. The customer email, the tool arguments, and any SQL stay in your code or on Bedrock.
The Strands server speaks POST /v1/systemone, the same path shape TypeSafe documents, which is why a JevBench client can point at a local Decider. Accuracy, residency, and price stay separate choices after the path matches.
| Strands Decider 2B | Jev | |
|---|---|---|
| Pin this | strands-decider-2B-qwen3.5-v1-2610 for a new local run. strands-decider-2B-hobson-v19 if a threshold was tuned on the 1 Oct checkpoint. | jev-1.13.0. On 16 Oct 2026 jev-latest still pointed here. jev-1.14.0 is what jev-preview pointed at. |
| Where it runs | Weights you serve. CPU, CUDA, or Apple silicon. | POST https://api.typesafe.ai/v1/systemone |
| License and price | Apache-2.0. You pay the machine. | $0.042 / MTok input for both 1.13.0 and 1.14.0. Output tokens free. |
| Writes prose or tool args | No. The pointer head scores options in the request. | No. The Jev guide keeps generation on Bedrock. |
| JevBench, 231 public tasks | v1: 180/231, Brier 0.280, ECE 0.072, window 4096, self-run on an L4. v19: 167/231 at the 3072 window it was preregistered at (168 at 4096). | No overall row for jev-1.13.0 or jev-1.14.0 on the pages opened 16 Oct 2026. |
| Latency cited here | v19 on an RTX 3090 under WSL2: median 115 ms, p95 299 ms. README stamps that row onto v1 and v21 as the same size. M3 Pro, warm: 153 ms under 300 tokens, 234 ms median across all tasks, p95 2,628 ms. | Not timed in this post. The 11 Oct guide left TypeSafe’s 70–500 ms claim as a vendor number from West Coast laptops. |
| Context | v19 serves at 4096 tokens. v1’s published JevBench row is that window. | 64k per request and 32k per question. A danger-zone header raises both to 262k, same per-token price, and TypeSafe says that path is slower and less accurate. |
| Rate limits | The box you sized. | Per organization, in the TypeSafe console, as of the 16 Oct reading. Do not copy the 11 Oct caps forward without looking. |
Sources and the date each cell was read: published-numbers.csv.
Three 2B checkpoints, three scores
The 1 Oct announcement is v19. The README read on 16 Oct still publishes v19 and v21, and it calls v1 the reference model. Pull the three rows apart before anyone says “Decider 2B scores X.”
| Checkpoint | JevBench public | Brier | ECE | Easy / standard / hard |
|---|---|---|---|---|
strands-decider-2B-hobson-v19 | 0.723 (167 of 231) at 3072 tokens; 168 at 4096 | 0.342 | 0.052 | 1.000 / 0.875 / 0.505 |
strands-decider-2B-hobson-v21 | 0.762 (176 of 231); six-seed mean 0.758 (175.0, SD 2.4) | 0.323 | 0.064 | 1.000 / 0.931 / 0.550 |
strands-decider-2B-qwen3.5-v1-2610 | 0.779 (180 of 231) at 4096; three seeds 179.7 ± 3.8 | 0.280 | 0.072 | 1.000 / 0.931 / 0.586 |
The tier split is the repo’s own cut of the public tasks: easy 48, standard 72, hard 111. v1’s easy tier is 48 of 48, the same saturation v19 already had. The movement is standard (63 of 72 on v19, 67 of 72 on v1) and hard (56 of 111 on v19, 65 of 111 on v1).
Read the single-run gaps with the README’s own caution. Six seeds of the v19 recipe and six of v21, on one host, averaged 172.8 and 172.3 JevBench tasks. The file says a difference under about 10 tasks between two single runs is unresolved. 180 against 167 is 13 tasks, on different recipes, and v19’s headline window is 3072 tokens. Brier moved from 0.342 to 0.280. ECE moved from 0.052 to 0.072, the wrong direction if you were using v19’s calibration as a comfort. A threshold tuned on v19 stays on v19 until you reshadow v1.
v1’s 180 of 231 is the released soup, checked through main on one NVIDIA L4. The training harness on A100 hardware scored 181 of 231, with one task a near tie (0.346 against 0.345). CPU matched the L4 answers on all 231 tasks. That is an answer-parity note. It is not a latency note. The 115 ms row stays the v19 RTX 3090 run.
On the JevBench v1.4.2 board of 25 September 2026 (89 systems), v19’s public accuracy of 0.723 ranked 50th overall and 3rd of 33 in the 2B class. Drop three systems the file calls just over 2B, and that writeup calls v19 first of 30. decision-2b on the same board is 0.753. The 180 of 231 figure is a later self-run. It is not a new board rank, and this post will not invent one.
The README’s line that answers at confidence 0.9 or higher are right about 95% of the time points at held-out short classification. In evaluation/results.md, v19’s band at or above 0.9 was right 0.952 of the time and was 23% of those answers. The same section says the band holds on short classification and nowhere else they measured. On long documents, v19 was under-confident: right about 0.83 of the time at a stated 0.64. Fit a cutoff on tickets you labeled. Do not import 0.9 from the model card.
Four Gemma 4 sizes
On 15 October 2026, Strands published four Gemma 4 Decider models: E2B, E4B, 12B, and 26B-A4B. They answer the same three question types, so a question list written for the Qwen 2B checkpoint still applies. Each size ships its own adapter and readout head. The loader downloads the matching Gemma base weights on its own. Adapters, readout heads, and the code are Apache-2.0. The data inventory keeps source-specific terms, so that license does not cover every training row.
The release table is JevBench v1, 231 public tasks, a 4,096-token window, median latency on one NVIDIA H100 80 GB. The post says JevBench has moved on to newer releases, so these counts line up only with runs on that same task set.
| Checkpoint | Gemma 4 base | JevBench v1 | Brier | H100 median |
|---|---|---|---|---|
strands-decider-E2B-gemma4-v1-2610 | google/gemma-4-E2B-it | 180/231 (77.9%) | 0.313 | 102 ms |
strands-decider-E4B-gemma4-v1-2610 | google/gemma-4-E4B-it | 187/231 (81.0%) | 0.243 | 139 ms |
strands-decider-12B-gemma4-v1-2610 | google/gemma-4-12B-it | 200/231 (86.6%) | 0.173 | 136 ms |
strands-decider-26B-A4B-gemma4-v1-2610 | google/gemma-4-26B-A4B-it | 207/231 (89.6%) | 0.162 | 245 ms |
E means effective parameters. 26B-A4B is a mixture of experts that activates about 4 billion of its 26 billion parameters at inference.
Qwen strands-decider-2B-qwen3.5-v1-2610 also scores 180 of 231, with Brier 0.280. E2B matches the count and posts a worse Brier, 0.313. The clocks are different machines. E2B’s 102 ms is this H100 run. The 115 ms figure is still the v19 RTX 3090 row. Leave them in separate columns.
E4B at 139 ms and 12B at 136 ms are one release run on two architectures. Strands says to time both on your stack before treating that pair as a speed ranking.
Size order, once residency has already ruled Jev out: stay on Qwen v1 if that is the checkpoint you loaded and the labeled week is holding. If you are choosing a Gemma ID, start at E2B, then E4B, then 12B. 12B is 200 of 231 and 136 ms in this run. 26B-A4B is 207 of 231 and 245 ms. That is 7 more public tasks, and a median 109 ms higher on the same H100. Strands also says 12B matched or beat 26B-A4B on several other release sets. Move to 26B-A4B when your labels show misses the 12B checkpoint does not catch.
The post’s install line is pip install "strands-decider>=0.2.0" on Python 3.10 or later. We did not install that package. The ID that belongs in the ticket is the Hugging Face repo, for example StrandsAgents/strands-decider-12B-gemma4-v1-2610.
Two limits travel with every size in that post. Changing the question while the state and the options stay fixed can return the same answer. Long documents that need several reasoning steps are a weak spot, and the calibration temperatures were fit on short held-out classification. A 0.9 cutoff from the Qwen v19 band is not a Gemma cutoff.
What JevBench can decide
JevBench is a third-party set of 231 public tasks. Strands runs it against a local server. The useful comparison inside that file is Decider against other open decision models on one dated board, plus Decider against its own earlier seeds.
It does not answer “is v1 more accurate than Jev on our tickets.” The TypeSafe models page has price, context, and aliases. It has no JevBench count. The Strands evaluation/jevbench.md file we read prints v19’s board row and does not print an overall public-set score for jev-1.13.0 or jev-1.14.0. Secondary writeups disagree with each other on that missing cell. Leave the cell blank.
A Builder Center file-sort sent the same filenames to hobson-v19 on an M1 and to jev-latest. That is one person’s two rounds, on the alias you should not tune against. We did not repeat it. Empty files were where the two models parted. Your ticket corpus is the set that matters, and it is not in that post.
Use JevBench for a narrow claim: v19 and v1 both clear the repo’s easy tier (48 of 48). Use your own labeled week to choose a checkpoint.
Where the check sits in a Strands agent
Strands already has a place for this class of question. An InterventionHandler on before_tool_call runs before a tool executes and returns a typed action: proceed, deny, confirm, or guide. The handler is ordinary Python. The SDK does not care whether the probabilities came from a local Decider process, a Cedar check, or the TypeSafe adapter in the Jev guide.
Put two questions there, written as data, not as a paragraph the model is supposed to “handle”:
- Are the tool arguments present in what the user said, or present as fields on the event?
- Is it too early to call this tool?
Map the probabilities in code. A failed grounding check returns guide, and Bedrock asks a shorter question. A passed check still hits IAM, AgentCore Gateway Cedar, and a deterministic compare against the order record. The Harness and Strands ship map is the graduation path for the agent loop. This page does not replace it.
The Strands repository ships a weather-tool illustration of that handler. Use their sample if you want the SDK wiring. Do not copy their city-guess demo into a refund path. The questions above are the production shape: order id and amount, then a human or a policy on the write. Bedrock Guardrails stay on the generative call. They do not see a local GPU process, and they do not see api.typesafe.ai. Automated Reasoning Checks remain the tool when you need valid or invalid against a policy, not a probability.
What broke
What broke — Paper path, checked against the repo on 16 Oct 2026. A design took the launch wording of tens of milliseconds, and the v19 RTX 3090 median of 115 ms, and placed hobson-v19 on a CPU inside the request.
evaluation/results.mdrecords 3,252 ms for one 256-token question on an M3 Pro CPU in fp32, and a warm all-task p95 of 2,628 ms on that Mac’s GPU. You can see the miss in the table before anyone deploys it. Recovery: time the pinned checkpoint on the box that will serve it, keepjev-1.13.0when egress is allowed and no one owns a GPU, or leave the branch in rules. We did not run this against a client mailbox.
A second paper miss, same week of reading: send the ticket to TypeSafe whenever local confidence is low, and treat the higher of the two scores as the decision. That couples an egress you may not have approved to a comparison of two calibrations that were not fit on the same labels. Low confidence is a review queue. A timeout is a review queue. Neither is a vote.
Named substitutes
| If you need | Use this | When |
|---|---|---|
| The ticket text stays in the account | Qwen v1, or Gemma E2B then E4B then 12B | Closed set, and you will shadow a week. 26B-A4B waits on a miss 12B does not fix. |
| A hosted decision and no GPU owner | jev-1.13.0 through the existing adapter | Legal has accepted egress. Do not tune on jev-latest or jev-preview. |
| A sentence the customer reads | Amazon Bedrock | After the label exists |
| The label is already a column | Step Functions and the order record | Do not pay $0.042/MTok or a GPU for an if |
| Denied topics and PII filters on the draft | Bedrock Guardrails | On the generative call |
| Valid or invalid against a written policy | Automated Reasoning Checks | A probability is the wrong instrument |
We recommend a small local Decider (Qwen v1 or Gemma E2B, then E4B, then 12B) when residency disqualifies TypeSafe and you will operate the checkpoint. We recommend jev-1.13.0 when residency is settled and the team will not run a model server. We recommend rules when the enum is in the database. We do not recommend a winner from JevBench. v1’s better Brier and worse ECE, against v19, are the reminder: pick the checkpoint, then fit the cutoff on your labels.
For the dollar line on Jev, use the worksheet already published with the Jev guide. This post does not add a second invented ticket volume. Local Decider cost is the instance you measure. The AgentCore pricing calculator still prices the session around the decision, not the decision itself.
What to Do This Week
- Re-read the TypeSafe models page. Confirm whether
jev-lateststill points atjev-1.13.0and whetherjev-1.14.0is still preview. Read your org’s rate limits in the console. Ignore the 80 requests/s figure from the 11 Oct guide until you see it again. - If
statecan contain PHI, PCI, or a named-region clause, stop the TypeSafe column. Stay in the account. - If you stay on Jev, pin
jev-1.13.0and run the Jev Monday list. Do not start a 1.14 shadow in the same week unless the questions are already written. - If you go local, pin one Hugging Face ID. Small default:
strands-decider-2B-qwen3.5-v1-2610orstrands-decider-E2B-gemma4-v1-2610. Step to E4B, thenstrands-decider-12B-gemma4-v1-2610, only after the shadow misses. Leavestrands-decider-26B-A4B-gemma4-v1-2610until those misses are ones 12B got wrong. Do not copy a 0.9 cutoff from v19. - Put the option list in the pull request, including
other. Two questions are enough for the first shadow. - Label a held-out slice yourself. Compare the pinned checkpoint with rules or a Bedrock classifier. Promote on disagreements you can explain.
- Leave Cedar and a deterministic check on the write. Work
monday-checklist.md.
If you only do one thing: pin a versioned checkpoint before anyone tunes a threshold.
What This Post Doesn’t Cover
- We have not run
strands-deciderand we have not called the TypeSafe API. No first-party p50, p95, or error rate. Every latency and accuracy figure above is the vendor repo or the TypeSafe page, with the date we read it. - A run of the four Gemma 4 checkpoints on our hardware. The 15 Oct table is one H100 release run. E4B at 139 ms and 12B at 136 ms are not a speed ranking until you time them. The 15 Oct post publishes no memory column.
- Quality differences between
jev-1.13.0andjev-1.14.0. Same published price. No eval from us.jev-previewmoving to 1.14 is a reason to pin 1.13, not a reason to assume 1.14 is better on your tickets. - A fresh walk of the Bedrock model catalog. The 11 Oct guide found no Jev model ID. A Hugging Face Decider weight is a file you serve, with no Bedrock model ID in this reading. If either product shows up as a Bedrock ID later, the residency section changes.
- Vision. The README says the Qwen3.5 checkpoints can take images with
--visionand no image training. Jev’s card, as read 16 Oct, is text. Neither path is specified here. - The Strands weather-tool sample, beyond the placement note above. Their repo is the SDK example. Ours is the go / no-go worksheet.
- Any FactualMinds AI-agent case study. There isn’t one to cite. The permitted proof is the field guide, the calculators, the Gateway canary, and the published numbers in the CSV.
Frequently asked questions
What is Strands Decider 2B?
Which Strands Decider checkpoint should we pin?
How does Strands Decider compare with Jev on JevBench?
When should we run Strands Decider locally instead of calling Jev?
When should we NOT replace Jev with Strands Decider?
What could go wrong if we budget the 115 ms figure?
Does a Decider or Jev confidence score authorize a tool call?
Is Strands Decider or Jev an Amazon Bedrock model?

AWS Cloud Architect & AI Expert
AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.




