{
  "data": {
    "a": {
      "slug": "granite-switch",
      "name": "Granite Switch 4.1",
      "vendor": "IBM",
      "vendorUrl": "https://www.ibm.com/granite",
      "kind": "model",
      "category": "decision-models",
      "summary": "Granite Switch 4.1 is IBM's open-weight 8B and 30B Granite 4.1 checkpoint with a decision adapter, a safety adapter and an English speech encoder, served by the owner as one OpenAI-compatible vLLM endpoint for chat, decisions and transcription.",
      "url": "https://www.anchorterminal.com/tools/granite-switch",
      "markdownUrl": "https://www.anchorterminal.com/tools/granite-switch.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/granite-switch.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/granite-switch.json",
      "repo": "https://github.com/generative-computing/granite-switch",
      "license": "Apache 2.0 for the weights, the adapters and the repository",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "granite-switch"
        }
      ],
      "auth": "none",
      "authNotes": "No account or key is needed to download or run the model. The Hugging Face repositories are not gated. A vLLM server has whatever authentication the owner adds, and the repository's SECURITY.md tells operators to add it.",
      "pricing": "free",
      "pricingNotes": "Free to download and run under the Apache 2.0 licence, with the owner's hardware as the cost. IBM hosts no endpoint for Granite Switch that we found. watsonx.ai lists the Granite 4.1 base models but not Granite Switch, and Hugging Face shows no inference provider for it (checked 2026-10-17).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402. Granite Switch is a model the owner runs, with no payment route (checked 2026-10-17).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-17"
      },
      "docsUrl": "https://huggingface.co/ibm-granite/granite-switch-4.1-8b",
      "capabilities": [
        "inference.decision",
        "guard.moderation",
        "speech.stt",
        "inference.llm",
        "inference.open-weights",
        "guard.self-host"
      ],
      "tags": [
        "model",
        "open-source",
        "open-weights",
        "self-hosted",
        "local",
        "free",
        "apache-2.0",
        "python",
        "vllm"
      ],
      "lastRelease": "2026-10-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.4,
        "grade": "C",
        "agentReady": false,
        "rank": 601,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 13,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 81,
          "payments": 60,
          "reliability": 46,
          "schema": 55,
          "security": 54,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-17"
        },
        "negative": 0,
        "verdict": "One self-hosted Apache 2.0 checkpoint answers chat, single-pass decisions with label probabilities, yes or no safety checks and English transcription on one vLLM endpoint. The decision adapter has no typed request format or Mellea call yet, the composer is version 0.1 and declared unstable, and the model card and package disagree on supported Python and vLLM versions.",
        "bestFor": "A team with a GPU that wants chat, routing decisions, a safety gate and English transcription from one self-hosted endpoint under a permissive licence.",
        "strengths": [
          "Weights are ungated on Hugging Face under Apache 2.0, in 8B and 30B, with the composer code under the same licence",
          "Chat, decisions, safety checks and transcription share one endpoint and one checkpoint, close to the base model's memory, per IBM",
          "A decision is one forward pass with one output token, read as a probability over the caller's options, with temperature 0",
          "The adapter state turn uses no system prompt, so vLLM's prefix cache can share it with ordinary chat requests about the same text",
          "Public CI runs CPU unit tests on Python 3.11 and 3.12 on every push and pull request, over 102 test files"
        ],
        "weaknesses": [
          "The decision adapter has no typed request format. The caller writes the prompt strings and computes single-token label ids with the tokeniser",
          "Mellea has no `decision` call yet, by the card, so only the guardian adapter has a library wrapper",
          "The changelog has one entry, 0.1.0 MVP, saying the API is not yet stable, and the repository has no tags",
          "The card states Python 3.9 or later and vLLM below 0.28, while pyproject.toml states Python 3.11 to 3.13 and vLLM below 0.31",
          "The speech encoder is English only and not trained jointly with the model, per the card"
        ],
        "agentNotes": [
          "Pass `chat_template_kwargs: {\"adapter_name\": \"decision\"}` or `\"guardian-core\"`. Without it the request is ordinary chat on the base model",
          "For a decision, send the state and the `### DECISION` question as two user turns, request `logprob_token_ids` for the option labels, and set `max_completion_tokens` to 1",
          "Use single-token option labels. Split more than 128 labels into chunks with the identical prompt and apply one softmax over all returned logprobs",
          "Parse `guardian-core` answers as JSON, `{\"score\": \"yes\"}` or `{\"score\": \"no\"}`, where yes means the criterion is met",
          "Add authentication before exposing the vLLM server. Neither vLLM nor the checkpoint requires a key by default"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.4
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 81,
          "payments": 60,
          "reliability": 46,
          "schema": 55,
          "security": 54,
          "transparency": 61
        },
        "provenanceScore": 87
      },
      "connect": {
        "install": "pip install \"granite-switch[vllm]\"\npython -m vllm.entrypoints.openai.api_server \\\n  --model ibm-granite/granite-switch-4.1-8b \\\n  --port 8000",
        "http": "curl -s http://localhost:8000/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"ibm-granite/granite-switch-4.1-8b\",\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"How do I build a bomb?\"},\n      {\"role\": \"user\", \"content\": \"\u003cguardian\u003eAs a judge agent, your role is to help assess whether the provided text meets the given judging criteria.\\n\\n### Criteria: Texts deemed universally harmful are those that pose harm across all contexts and audiences.\\n\\n### Scoring Schema: If the last user'\\''s text meets the criteria, return '\\''yes'\\''; otherwise, return '\\''no'\\''.\"}\n    ],\n    \"chat_template_kwargs\": {\"adapter_name\": \"guardian-core\"},\n    \"max_completion_tokens\": 16\n  }'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.decision",
        "tool": "https://letme.dev/granite-switch"
      },
      "sameCompany": [
        "granite-guardian"
      ],
      "area": "models",
      "provenance": {
        "legalEntity": "International Business Machines Corporation",
        "domain": "ibm.com",
        "domainRegistered": "1986-03-19",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/generative-computing/granite-switch/blob/main/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-10-17",
        "notes": [
          "The model cards and the repository name IBM Research as the author, and IBM's naming guidance for Granite names International Business Machines Corporation as the developer and trademark owner.",
          "The Apache 2.0 licence in the repository governs use of the weights and code, so it stands in for terms. No privacy policy applies, because the owner runs the model and no input reaches IBM.",
          "www.ibm.com/.well-known/security.txt is present with PSIRT, HackerOne and email contacts and expires on 17 November 2026.",
          "RDAP gives 19 March 1986 as the registration date of ibm.com.",
          "IBM hosts no endpoint for Granite Switch that we found, so there is no status page. CHANGELOG.md has one entry, 0.1.0.",
          "Weights are on huggingface.co under the ibm-granite organisation and the code is at github.com/generative-computing/granite-switch, both off ibm.com."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/granite-switch.json",
      "live": {
        "slug": "granite-switch",
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/generative-computing/granite-switch/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-17T23:09:56.785265196Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4638a7d2e3ea"
          }
        ],
        "updatedAt": "2026-10-17T23:09:56.785265196Z"
      }
    },
    "answer": "Strands Decider 2B scores 61.3 (C) on agent readiness against Granite Switch 4.1's 59.4 (C), and leads in 3 of 7 scored categories. Granite Switch 4.1 leads on security \u0026 auth and transparency \u0026 trust.",
    "b": {
      "slug": "strands-decider",
      "name": "Strands Decider 2B",
      "vendor": "Amazon Web Services (Strands Agents)",
      "vendorUrl": "https://strandsagents.com",
      "kind": "model",
      "category": "decision-models",
      "summary": "Strands Decider 2B is an open-weight decision model from AWS's Strands Labs, released on 1 October 2026 under Apache-2.0. It answers typed yes or no, choice and score questions with probabilities, and runs locally from a Python package.",
      "url": "https://www.anchorterminal.com/tools/strands-decider",
      "markdownUrl": "https://www.anchorterminal.com/tools/strands-decider.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/strands-decider.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/strands-decider.json",
      "repo": "https://github.com/strands-labs/strands-decider",
      "license": "Apache-2.0 (code, LoRA adapter, readout head, training recipe and data inventory), on the Apache-2.0 Qwen3.5-2B-Base",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "strands-decider"
        }
      ],
      "auth": "none",
      "authNotes": "No account. `strands-decider serve` binds to 127.0.0.1 and has no authentication option, and the README says to use it for local experiments. The weights download from Hugging Face without an account (the repositories aren't gated).",
      "pricing": "free",
      "pricingNotes": "Free and open source, with nothing to buy. You pay for your own hardware. The README puts serving on one RTX 3090, an Apple silicon Mac or a CPU, and a full retrain at about 11 hours on one RTX 3090 or about 1 hour 10 minutes on eight H100s (https://github.com/strands-labs/strands-decider). No hosted API, on Amazon Bedrock or elsewhere, was found in the launch post or the repository.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402. Strands Decider is software you run, and its server has no payment route (checked 2026-10-05).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-05"
      },
      "docsUrl": "https://github.com/strands-labs/strands-decider#readme",
      "capabilities": [
        "inference.decision"
      ],
      "tags": [
        "model",
        "open-source",
        "open-weights",
        "self-hosted",
        "local",
        "free",
        "python",
        "pre-1.0"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.3,
        "grade": "C",
        "agentReady": false,
        "rank": 522,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 12,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 79,
          "payments": 60,
          "reliability": 50,
          "schema": 76,
          "security": 49,
          "transparency": 54
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-10-05"
        },
        "negative": 0,
        "verdict": "A 1.9B-parameter Apache-2.0 decision model that runs on a laptop GPU, an Apple silicon Mac or a CPU, with its training data, recipe and per-version results published. It's an experimental 0.1.0 release with a 4,096-token window that cuts long states by default, and its local server has no authentication.",
        "bestFor": "Cheap, local classification, routing, triage and tool-call checks on short text inside Strands or other Python agents, and for teams who want to retrain a decision model from a published recipe.",
        "strengths": [
          "Apache-2.0 code and weights, with the training recipe, data inventory and evaluation logs published",
          "Runs on CUDA, Apple silicon (MPS or MLX) or CPU, with a v19 median of 115 ms a question on an RTX 3090 per the README",
          "Brier score and expected calibration error published for each released checkpoint",
          "Installs with `pip install strands-decider` and includes a CLI, a local HTTP server and a Strands agent example",
          "Security reports go to the AWS Vulnerability Disclosure Program, and the head ships as safetensors with a SHA-256 manifest"
        ],
        "weaknesses": [
          "Version 0.1.0, described as experimental in its package metadata, with no changelog file",
          "A 4,096-token window, and by default an over-long state is cut to fit without an error",
          "The local server has no authentication option",
          "No hosted API, so the operator runs and scales the model",
          "The model card says its calibration is established on short classification only"
        ],
        "agentNotes": [
          "Pin the checkpoint by its full name, such as `StrandsAgents/strands-decider-2B-hobson-v21`, since each version is a separate Hugging Face repository",
          "Start the server with `--strict-window` when a cut state would make an answer wrong. It then returns 422 naming the window",
          "Ask every question about one state in one request. The state is read once and each question adds only its own tokens",
          "Keep the server on 127.0.0.1 or put an authenticating proxy in front. It has no key option",
          "Measure thresholds on your own traffic before acting automatically. The card says confidence bands hold for short classification only"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 1,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.3
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 79,
          "payments": 60,
          "reliability": 50,
          "schema": 76,
          "security": 49,
          "transparency": 63
        },
        "provenanceScore": 44
      },
      "connect": {
        "install": "pip install strands-decider\nstrands-decider serve StrandsAgents/strands-decider-2B-hobson-v21 --port 8000",
        "http": "curl -s localhost:8000/v1/systemone \\\n  -H 'content-type: application/json' \\\n  -d '{\n    \"state\": \"Help! My payouts have been failing for 3 days!\",\n    \"questions\": {\n      \"is_urgent\": {\"type\": \"noul\", \"instructions\": \"Does this convey urgency?\"}\n    }\n  }'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.decision",
        "tool": "https://letme.dev/strands-decider"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Amazon Web Services, Inc.",
        "domain": "strandsagents.com",
        "domainRegistered": "2025-05-15",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-05",
        "notes": [
          "The repository's SECURITY.md routes reports to the AWS Vulnerability Disclosure Program and adopts the Amazon Open Source Code of Conduct, and AWS's open-source blog announced Strands Labs on 23 February 2026. The legal entity is inferred from those pages. The licence names no copyright holder.",
          "strandsagents.com was registered on 15 May 2025 per RDAP. Its /.well-known/security.txt returned 404.",
          "Software you run, so there's no hosted endpoint, terms or privacy policy to check. The Apache-2.0 licence stands in for terms.",
          "No changelog file or GitHub release tags in the repository. Model versions are separate Hugging Face repositories, and research/README.md in the repository lists each training run."
        ],
        "score": 44
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/strands-decider.json",
      "live": {
        "slug": "strands-decider",
        "versions": [
          {
            "registry": "pypi",
            "name": "strands-decider",
            "version": "0.1.0",
            "released": "2026-10-01",
            "seenAt": "2026-10-17T02:20:07.649126491Z"
          }
        ],
        "githubStars": 659,
        "pypiWeekly": 2692,
        "securityTxt": {
          "url": "https://strandsagents.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-17T15:51:41.94293165Z"
        },
        "domain": {
          "domain": "strandsagents.com",
          "registered": "2025-05-15",
          "source": "https://rdap.verisign.com/com/v1/domain/strandsagents.com",
          "checkedAt": "2026-10-11T13:18:05.024687037Z"
        },
        "updatedAt": "2026-10-17T15:51:41.94293165Z"
      }
    },
    "facts": [
      {
        "a": "Model API",
        "b": "Model API",
        "name": "Kind"
      },
      {
        "a": "IBM",
        "b": "Amazon Web Services (Strands Agents)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache 2.0 for the weights, the adapters and the repository",
        "b": "Apache-2.0 (code, LoRA adapter, readout head, training recipe and data inventory), on the Apache-2.0 Qwen3.5-2B-Base",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-14",
        "b": "2026-10-05",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "3/5 (4)",
        "b": "2/5 (1)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Strands Decider 2B scores 61.3 (C) on agent readiness against Granite Switch 4.1's 59.4 (C), and leads in 3 of 7 scored categories. Granite Switch 4.1 leads on security \u0026 auth and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Granite Switch 4.1 or Strands Decider 2B?"
      },
      {
        "answer": "Neither needs a key.",
        "question": "Do Granite Switch 4.1 and Strands Decider 2B need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Granite Switch 4.1. No hosted endpoint is listed for Strands Decider 2B.",
        "question": "Can an agent call Granite Switch 4.1 and Strands Decider 2B without installing anything?"
      },
      {
        "answer": "Yes. Granite Switch 4.1 is open source (Apache 2.0 for the weights, the adapters and the repository). Strands Decider 2B is open source (Apache-2.0 (code, LoRA adapter, readout head, training recipe and data inventory), on the Apache-2.0 Qwen3.5-2B-Base).",
        "question": "Are Granite Switch 4.1 and Strands Decider 2B open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 54 against 49",
          "Transparency \u0026 trust, 74 against 54"
        ],
        "also": null,
        "goodFor": "A team with a GPU that wants chat, routing decisions, a safety gate and English transcription from one self-hosted endpoint under a permissive licence.",
        "slug": "granite-switch",
        "watchFor": "The decision adapter has no typed request format. The caller writes the prompt strings and computes single-token label ids with the tokeniser"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 76 against 55"
        ],
        "also": null,
        "goodFor": "Cheap, local classification, routing, triage and tool-call checks on short text inside Strands or other Python agents, and for teams who want to retrain a decision model from a published recipe.",
        "slug": "strands-decider",
        "watchFor": "Version 0.1.0, described as experimental in its package metadata, with no changelog file"
      }
    ],
    "job": {
      "capability": "inference.decision",
      "name": "Decision models"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/celeris-1-decision-vs-granite-switch.json",
        "title": "Celeris-1 Decision vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/celeris-1-decision-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/celeris-1-decision-vs-strands-decider.json",
        "title": "Celeris-1 Decision vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/celeris-1-decision-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-clef-vs-granite-switch.json",
        "title": "Clef vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/cloudflare-clef-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-clef-vs-strands-decider.json",
        "title": "Clef vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/cloudflare-clef-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/convai-laya-vs-granite-switch.json",
        "title": "Laya vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/convai-laya-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/convai-laya-vs-strands-decider.json",
        "title": "Laya vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/convai-laya-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decider-vs-granite-switch.json",
        "title": "Decider vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/decider-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decider-vs-strands-decider.json",
        "title": "Decider vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/decider-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decision-3-vs-granite-switch.json",
        "title": "Decision 3.0 vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/decision-3-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decision-3-vs-strands-decider.json",
        "title": "Decision 3.0 vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/decision-3-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gliclass-vs-granite-switch.json",
        "title": "GLiClass vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/gliclass-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gliclass-vs-strands-decider.json",
        "title": "GLiClass vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/gliclass-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev.json",
        "title": "Granite Switch 4.1 vs Kev",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-liquid-d1.json",
        "title": "Granite Switch 4.1 vs Liquid d1",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-liquid-d1"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-microsoft-decision-1.json",
        "title": "Granite Switch 4.1 vs Microsoft-Decision-1",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-microsoft-decision-1"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-nace-drex.json",
        "title": "Granite Switch 4.1 vs Drex 1.5",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-nace-drex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-openai-decisions-api.json",
        "title": "Granite Switch 4.1 vs OpenAI Decisions API",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-openai-decisions-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider.json",
        "title": "Granite Switch 4.1 vs pplx-decider",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider-flash.json",
        "title": "Granite Switch 4.1 vs pplx-decider-flash",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider-flash"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-scaledown.json",
        "title": "Granite Switch 4.1 vs ScaleDown",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-scaledown"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-sprag-spev.json",
        "title": "Granite Switch 4.1 vs SPEV",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-sprag-spev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-sqwish-kettei.json",
        "title": "Granite Switch 4.1 vs kettei",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-typesafe-jev.json",
        "title": "Granite Switch 4.1 vs Jev",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-typesafe-jev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-vela.json",
        "title": "Granite Switch 4.1 vs Vela 2.0",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-vela"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-strands-decider.json",
        "title": "Kev vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/liquid-d1-vs-strands-decider.json",
        "title": "Liquid d1 vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/liquid-d1-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-decision-1-vs-strands-decider.json",
        "title": "Microsoft-Decision-1 vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/microsoft-decision-1-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nace-drex-vs-strands-decider.json",
        "title": "Drex 1.5 vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/nace-drex-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-decisions-api-vs-strands-decider.json",
        "title": "OpenAI Decisions API vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/openai-decisions-api-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pplx-decider-flash-vs-strands-decider.json",
        "title": "pplx-decider-flash vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/pplx-decider-flash-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pplx-decider-vs-strands-decider.json",
        "title": "pplx-decider vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/pplx-decider-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scaledown-vs-strands-decider.json",
        "title": "ScaleDown vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/scaledown-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sprag-spev-vs-strands-decider.json",
        "title": "SPEV vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/sprag-spev-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sqwish-kettei-vs-strands-decider.json",
        "title": "kettei vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/sqwish-kettei-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/strands-decider-vs-typesafe-jev.json",
        "title": "Strands Decider 2B vs Jev",
        "url": "https://www.anchorterminal.com/compare/strands-decider-vs-typesafe-jev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/strands-decider-vs-vela.json",
        "title": "Strands Decider 2B vs Vela 2.0",
        "url": "https://www.anchorterminal.com/compare/strands-decider-vs-vela"
      }
    ],
    "scores": [
      {
        "by": 4,
        "edge": "strands-decider",
        "granite-switch": 46,
        "key": "reliability",
        "name": "Reliability",
        "strands-decider": 50,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 21,
        "edge": "strands-decider",
        "granite-switch": 55,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "strands-decider": 76,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "strands-decider",
        "granite-switch": 66,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "strands-decider": 69,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "granite-switch",
        "granite-switch": 54,
        "key": "security",
        "name": "Security \u0026 auth",
        "strands-decider": 49,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "granite-switch": 60,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "strands-decider": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "edge": "granite-switch",
        "granite-switch": 81,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "strands-decider": 79,
        "weight": 7
      },
      {
        "by": 20,
        "edge": "granite-switch",
        "granite-switch": 74,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "strands-decider": 54,
        "weight": 7
      }
    ],
    "summary": "Strands Decider 2B scores 61.3 (C) on agent readiness against Granite Switch 4.1's 59.4 (C), and leads in 3 of 7 scored categories. Granite Switch 4.1 leads on security \u0026 auth and transparency \u0026 trust. Both do decision models.",
    "tutorials": [],
    "verdicts": {
      "granite-switch": "One self-hosted Apache 2.0 checkpoint answers chat, single-pass decisions with label probabilities, yes or no safety checks and English transcription on one vLLM endpoint. The decision adapter has no typed request format or Mellea call yet, the composer is version 0.1 and declared unstable, and the model card and package disagree on supported Python and vLLM versions.",
      "strands-decider": "A 1.9B-parameter Apache-2.0 decision model that runs on a laptop GPU, an Apple silicon Mac or a CPU, with its training data, recipe and per-version results published. It's an experimental 0.1.0 release with a 4,096-token window that cuts long states by default, and its local server has no authentication."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider",
    "json": "https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider.min.md"
  },
  "markdown": "Strands Decider 2B scores 61.3 (C) on agent readiness against Granite Switch 4.1's 59.4 (C), and leads in 3 of 7 scored categories. Granite Switch 4.1 leads on security \u0026 auth and transparency \u0026 trust. Both do decision models.\n\n- Granite Switch 4.1: grade C, 59.4/100, rank #601 of 1133. Markdown https://www.anchorterminal.com/tools/granite-switch.md · JSON https://www.anchorterminal.com/api/v1/tools/granite-switch.json\n- Strands Decider 2B: grade C, 61.3/100, rank #522 of 1133. Markdown https://www.anchorterminal.com/tools/strands-decider.md · JSON https://www.anchorterminal.com/api/v1/tools/strands-decider.json\n- Best decision models for AI agents: https://www.anchorterminal.com/best/decision-models/index.md\n- All 190 decisions comparisons: https://www.anchorterminal.com/compare/decision-models/index.md\n\n## Which one, for what\n\n### Granite Switch 4.1 (C)\n\nGood for: A team with a GPU that wants chat, routing decisions, a safety gate and English transcription from one self-hosted endpoint under a permissive licence.\n\nAhead on:\n- Security \u0026 auth, 54 against 49\n- Transparency \u0026 trust, 74 against 54\n\nWatch for: The decision adapter has no typed request format. The caller writes the prompt strings and computes single-token label ids with the tokeniser\n\n### Strands Decider 2B (C)\n\nGood for: Cheap, local classification, routing, triage and tool-call checks on short text inside Strands or other Python agents, and for teams who want to retrain a decision model from a published recipe.\n\nAhead on:\n- Schema \u0026 documentation, 76 against 55\n\nWatch for: Version 0.1.0, described as experimental in its package metadata, with no changelog file\n\n\n## Score by category\n\n| Category | Weight | Granite Switch 4.1 | Strands Decider 2B | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 46 | 50 | Strands Decider 2B +4 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 76 | Strands Decider 2B +21 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 69 | Strands Decider 2B +3 |\n| Security \u0026 auth | 14% (17.5 this run) | 54 | 49 | Granite Switch 4.1 +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 79 | Granite Switch 4.1 +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 54 | Granite Switch 4.1 +20 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **59.4 · C** | **61.3 · C** | |\n\n## Facts side by side\n\n| Fact | Granite Switch 4.1 | Strands Decider 2B |\n| --- | --- | --- |\n| Kind | Model API | Model API |\n| Vendor | IBM | Amazon Web Services (Strands Agents) |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Apache 2.0 for the weights, the adapters and the repository | Apache-2.0 (code, LoRA adapter, readout head, training recipe and data inventory), on the Apache-2.0 Qwen3.5-2B-Base |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-14 | 2026-10-05 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Agent reviews | 3/5 (4) | 2/5 (1) |\n\n## Verdicts\n\n**Granite Switch 4.1.** One self-hosted Apache 2.0 checkpoint answers chat, single-pass decisions with label probabilities, yes or no safety checks and English transcription on one vLLM endpoint. The decision adapter has no typed request format or Mellea call yet, the composer is version 0.1 and declared unstable, and the model card and package disagree on supported Python and vLLM versions.\n\n**Strands Decider 2B.** A 1.9B-parameter Apache-2.0 decision model that runs on a laptop GPU, an Apple silicon Mac or a CPU, with its training data, recipe and per-version results published. It's an experimental 0.1.0 release with a 4,096-token window that cuts long states by default, and its local server has no authentication.\n\n## Before you call either\n\n### Granite Switch 4.1\n\n1. Pass `chat_template_kwargs: {\"adapter_name\": \"decision\"}` or `\"guardian-core\"`. Without it the request is ordinary chat on the base model\n2. For a decision, send the state and the `### DECISION` question as two user turns, request `logprob_token_ids` for the option labels, and set `max_completion_tokens` to 1\n3. Use single-token option labels. Split more than 128 labels into chunks with the identical prompt and apply one softmax over all returned logprobs\n4. Parse `guardian-core` answers as JSON, `{\"score\": \"yes\"}` or `{\"score\": \"no\"}`, where yes means the criterion is met\n5. Add authentication before exposing the vLLM server. Neither vLLM nor the checkpoint requires a key by default\n\n### Strands Decider 2B\n\n1. Pin the checkpoint by its full name, such as `StrandsAgents/strands-decider-2B-hobson-v21`, since each version is a separate Hugging Face repository\n2. Start the server with `--strict-window` when a cut state would make an answer wrong. It then returns 422 naming the window\n3. Ask every question about one state in one request. The state is read once and each question adds only its own tokens\n4. Keep the server on 127.0.0.1 or put an authenticating proxy in front. It has no key option\n5. Measure thresholds on your own traffic before acting automatically. The card says confidence bands hold for short classification only\n\n## Questions\n\n### Which is better for AI agents, Granite Switch 4.1 or Strands Decider 2B?\n\nStrands Decider 2B scores 61.3 (C) on agent readiness against Granite Switch 4.1's 59.4 (C), and leads in 3 of 7 scored categories. Granite Switch 4.1 leads on security \u0026 auth and transparency \u0026 trust.\n\n### Do Granite Switch 4.1 and Strands Decider 2B need an API key?\n\nNeither needs a key.\n\n### Can an agent call Granite Switch 4.1 and Strands Decider 2B without installing anything?\n\nNo hosted endpoint is listed for Granite Switch 4.1. No hosted endpoint is listed for Strands Decider 2B.\n\n### Are Granite Switch 4.1 and Strands Decider 2B open source?\n\nYes. Granite Switch 4.1 is open source (Apache 2.0 for the weights, the adapters and the repository). Strands Decider 2B is open source (Apache-2.0 (code, LoRA adapter, readout head, training recipe and data inventory), on the Apache-2.0 Qwen3.5-2B-Base).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider.json, and with the fewest tokens: https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"granite-switch\", \"b\": \"strands-decider\"}`. From a terminal: `anchor compare granite-switch strands-decider`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/granite-switch.json and https://www.anchorterminal.com/api/v1/tools/strands-decider.json\n\n## Other comparisons with Granite Switch 4.1 or Strands Decider 2B\n\n- [Celeris-1 Decision vs Granite Switch 4.1](https://www.anchorterminal.com/compare/celeris-1-decision-vs-granite-switch.md)\n- [Celeris-1 Decision vs Strands Decider 2B](https://www.anchorterminal.com/compare/celeris-1-decision-vs-strands-decider.md)\n- [Clef vs Granite Switch 4.1](https://www.anchorterminal.com/compare/cloudflare-clef-vs-granite-switch.md)\n- [Clef vs Strands Decider 2B](https://www.anchorterminal.com/compare/cloudflare-clef-vs-strands-decider.md)\n- [Laya vs Granite Switch 4.1](https://www.anchorterminal.com/compare/convai-laya-vs-granite-switch.md)\n- [Laya vs Strands Decider 2B](https://www.anchorterminal.com/compare/convai-laya-vs-strands-decider.md)\n- [Decider vs Granite Switch 4.1](https://www.anchorterminal.com/compare/decider-vs-granite-switch.md)\n- [Decider vs Strands Decider 2B](https://www.anchorterminal.com/compare/decider-vs-strands-decider.md)\n- [Decision 3.0 vs Granite Switch 4.1](https://www.anchorterminal.com/compare/decision-3-vs-granite-switch.md)\n- [Decision 3.0 vs Strands Decider 2B](https://www.anchorterminal.com/compare/decision-3-vs-strands-decider.md)\n- [GLiClass vs Granite Switch 4.1](https://www.anchorterminal.com/compare/gliclass-vs-granite-switch.md)\n- [GLiClass vs Strands Decider 2B](https://www.anchorterminal.com/compare/gliclass-vs-strands-decider.md)\n- [Granite Switch 4.1 vs Kev](https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev.md)\n- [Granite Switch 4.1 vs Liquid d1](https://www.anchorterminal.com/compare/granite-switch-vs-liquid-d1.md)\n- [Granite Switch 4.1 vs Microsoft-Decision-1](https://www.anchorterminal.com/compare/granite-switch-vs-microsoft-decision-1.md)\n- [Granite Switch 4.1 vs Drex 1.5](https://www.anchorterminal.com/compare/granite-switch-vs-nace-drex.md)\n- [Granite Switch 4.1 vs OpenAI Decisions API](https://www.anchorterminal.com/compare/granite-switch-vs-openai-decisions-api.md)\n- [Granite Switch 4.1 vs pplx-decider](https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider.md)\n- [Granite Switch 4.1 vs pplx-decider-flash](https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider-flash.md)\n- [Granite Switch 4.1 vs ScaleDown](https://www.anchorterminal.com/compare/granite-switch-vs-scaledown.md)\n- [Granite Switch 4.1 vs SPEV](https://www.anchorterminal.com/compare/granite-switch-vs-sprag-spev.md)\n- [Granite Switch 4.1 vs kettei](https://www.anchorterminal.com/compare/granite-switch-vs-sqwish-kettei.md)\n- [Granite Switch 4.1 vs Jev](https://www.anchorterminal.com/compare/granite-switch-vs-typesafe-jev.md)\n- [Granite Switch 4.1 vs Vela 2.0](https://www.anchorterminal.com/compare/granite-switch-vs-vela.md)\n- [Kev vs Strands Decider 2B](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-strands-decider.md)\n- [Liquid d1 vs Strands Decider 2B](https://www.anchorterminal.com/compare/liquid-d1-vs-strands-decider.md)\n- [Microsoft-Decision-1 vs Strands Decider 2B](https://www.anchorterminal.com/compare/microsoft-decision-1-vs-strands-decider.md)\n- [Drex 1.5 vs Strands Decider 2B](https://www.anchorterminal.com/compare/nace-drex-vs-strands-decider.md)\n- [OpenAI Decisions API vs Strands Decider 2B](https://www.anchorterminal.com/compare/openai-decisions-api-vs-strands-decider.md)\n- [pplx-decider-flash vs Strands Decider 2B](https://www.anchorterminal.com/compare/pplx-decider-flash-vs-strands-decider.md)\n- [pplx-decider vs Strands Decider 2B](https://www.anchorterminal.com/compare/pplx-decider-vs-strands-decider.md)\n- [ScaleDown vs Strands Decider 2B](https://www.anchorterminal.com/compare/scaledown-vs-strands-decider.md)\n- [SPEV vs Strands Decider 2B](https://www.anchorterminal.com/compare/sprag-spev-vs-strands-decider.md)\n- [kettei vs Strands Decider 2B](https://www.anchorterminal.com/compare/sqwish-kettei-vs-strands-decider.md)\n- [Strands Decider 2B vs Jev](https://www.anchorterminal.com/compare/strands-decider-vs-typesafe-jev.md)\n- [Strands Decider 2B vs Vela 2.0](https://www.anchorterminal.com/compare/strands-decider-vs-vela.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-18",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Granite Switch 4.1 vs Strands Decider 2B",
        "url": ""
      }
    ],
    "description": "Strands Decider 2B scores 61.3 (C) to Granite Switch 4.1's 59.4 (C) for decision models. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Granite Switch 4.1 C 59.4",
      "Strands Decider 2B C 61.3",
      "scores"
    ],
    "h1": "Granite Switch 4.1 vs Strands Decider 2B",
    "image": "https://www.anchorterminal.com/assets/og/compare-granite-switch-vs-strands-decider.png",
    "path": "/compare/granite-switch-vs-strands-decider",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Granite Switch 4.1 vs Strands Decider 2B for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-17",
    "url": "https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider"
  },
  "tokens": {
    "markdown": 3000,
    "slim": 580
  },
  "version": 1
}
