{
  "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": "Kev scores 67.4 (B) on agent readiness against Granite Switch 4.1's 59.4 (C), and leads in 4 of 7 scored categories. Granite Switch 4.1 leads on security \u0026 auth and transparency \u0026 trust.",
    "b": {
      "slug": "jaredpalmer-kev",
      "name": "Kev",
      "vendor": "Jared Palmer",
      "vendorUrl": "https://github.com/jaredpalmer",
      "kind": "model",
      "category": "decision-models",
      "summary": "Kev is a family of four open-weight decision models by Jared Palmer, released together as Kev 1.0 on 1 October 2026 under Apache-2.0.",
      "url": "https://www.anchorterminal.com/tools/jaredpalmer-kev",
      "markdownUrl": "https://www.anchorterminal.com/tools/jaredpalmer-kev.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/jaredpalmer-kev.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/jaredpalmer-kev.json",
      "repo": "https://github.com/jaredpalmer/kev",
      "license": "Apache-2.0 (code, adapters and weights)",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "none",
      "authNotes": "No account. `kev.serve` binds to 127.0.0.1 and is open by default. Setting `KEV_API_KEY` makes it require `Authorization: Bearer \u003ckey\u003e` on `/v1/*`, which the TypeSafe clients always send. The weights download from Hugging Face without an account.",
      "pricing": "free",
      "pricingNotes": "Free and open source, with nothing to buy. You pay for the hardware. The Modal deploy skill lists $0.80 an hour for Kev-0.8B on an L4, $1.95 for Kev-4B on an L40S, $3.95 for Kev-9B on an H100 and $6.25 for Kev-27B on a B200 while a container is up, scaling to zero after five idle minutes (https://github.com/jaredpalmer/kev/blob/main/skills/kev-deploy/SKILL.md). Those are Modal's GPU rates as the skill records them, not a Kev price.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402. Kev is software you run, and its server has no payment route (checked 2026-10-02).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-02"
      },
      "docsUrl": "https://github.com/jaredpalmer/kev#readme",
      "capabilities": [
        "inference.decision"
      ],
      "tags": [
        "model",
        "open-source",
        "open-weights",
        "self-hosted",
        "local",
        "free",
        "python"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.4,
        "grade": "B",
        "agentReady": false,
        "rank": 275,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 83,
          "payments": 60,
          "reliability": 73,
          "schema": 77,
          "security": 49,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Apache-2.0 code, adapters and heads on Apache-2.0 Qwen bases, with release tarballs and SHA-256 checksums for the 0.8B, 4B and 9B models. No package. `pip install kev` installs an unrelated 2021 ORM, so Kev runs from a Git clone with uv.",
        "bestFor": "Self-hosted classification, routing, triage and rubric scoring where a probability matters, especially for teams already calling Jev who want the same API on their own hardware.",
        "strengths": [
          "Apache-2.0 code, adapters and heads on Apache-2.0 Qwen bases, with release tarballs and SHA-256 checksums for the 0.8B, 4B and 9B models",
          "The same `/v1/systemone` request and answer shapes as Jev, and the README says TypeSafe's Python SDK works against it unchanged",
          "A fitted temperature per checkpoint, with Brier scores, calibration error and confident-error rates published for each model",
          "Runs on CUDA, ROCm and Apple Silicon, from a 4 GB GPU for Kev-0.8B to one 80 GB GPU for Kev-27B, and deploys to Modal with one command",
          "Release notes that list known failures with numbers, such as date arithmetic and Kev-0.8B's tool-routing accuracy"
        ],
        "weaknesses": [
          "No package. `pip install kev` installs an unrelated 2021 ORM, so Kev runs from a Git clone with uv",
          "Kev-0.8B, 4B and 9B are validated to 8,192 tokens of state, though the server accepts 65,536",
          "Jared Palmer wrote 312 of the 333 commits we cloned",
          "No SECURITY.md, disclosure policy or advisories, and the server is open unless `KEV_API_KEY` is set",
          "Below 27B it trails Jev on knowledge questions and date arithmetic, with MMLU-Pro at 0.59 for Kev-9B against Jev's 0.84"
        ],
        "agentNotes": [
          "Install from the repository. The `kev` package on PyPI is an unrelated project",
          "Pin a checkpoint with `@v1.0`, as in `jaredpalmer/kev-4b@v1.0`, so tuned thresholds keep their meaning",
          "Keep states under 8,192 tokens on Kev-0.8B, 4B and 9B, or use Kev-27B for long documents",
          "Set `KEV_DATE_FACTS=1` when a decision depends on the gap between two dates",
          "Expect a 422 naming the token count when a state passes 65,536 tokens. The server refuses it instead of cutting it"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.4
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 83,
          "payments": 60,
          "reliability": 73,
          "schema": 77,
          "security": 49,
          "transparency": 70
        },
        "provenanceScore": 27
      },
      "connect": {
        "install": "git clone https://github.com/jaredpalmer/kev.git \u0026\u0026 cd kev \u0026\u0026 uv sync --extra serve\nuv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b@v1.0 --port 8009",
        "http": "curl -s localhost:8009/v1/systemone -H 'content-type: application/json' \\\n  -d '{\"model\":\"kev-latest\",\"state\":\"Checkout has failed for every customer for an hour.\",\"questions\":{\"urgent\":{\"type\":\"noul\",\"instructions\":\"Is this request urgent?\"},\"team\":{\"type\":\"choice\",\"criteria\":{\"billing\":\"Payments and refunds\",\"technical\":\"Outages and errors\"}}}}'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.decision",
        "tool": "https://letme.dev/jaredpalmer-kev"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "",
        "domain": "github.com/jaredpalmer",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/jaredpalmer/kev/releases",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "An individual's open-source project under Apache-2.0, with no company named in the licence, README or package metadata. The pyproject names Jared Palmer as author.",
          "No vendor domain. The code is at github.com/jaredpalmer/kev and the weights at huggingface.co/jaredpalmer, so the domain line names the GitHub account and scores no domain age.",
          "Software you run, so there's no hosted endpoint, terms or privacy policy to check.",
          "The changelog is the GitHub releases page (`kev-1.0`, 1 October 2026) and docs/releases/kev-1.0.md."
        ],
        "score": 27
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/jaredpalmer-kev.json",
      "live": {
        "slug": "jaredpalmer-kev",
        "versions": [
          {
            "registry": "github",
            "name": "jaredpalmer/kev",
            "version": "kev-1.0",
            "released": "2026-10-01",
            "seenAt": "2026-10-17T01:55:23.110902588Z"
          }
        ],
        "githubStars": 9244,
        "domain": {
          "domain": "github.com/jaredpalmer",
          "checkedAt": "2026-10-11T13:20:17.496325718Z"
        },
        "updatedAt": "2026-10-17T01:55:23.110902588Z"
      }
    },
    "facts": [
      {
        "a": "Model API",
        "b": "Model API",
        "name": "Kind"
      },
      {
        "a": "IBM",
        "b": "Jared Palmer",
        "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, adapters and weights)",
        "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-01",
        "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": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Kev scores 67.4 (B) on agent readiness against Granite Switch 4.1's 59.4 (C), and leads in 4 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 Kev?"
      },
      {
        "answer": "Neither needs a key.",
        "question": "Do Granite Switch 4.1 and Kev need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Granite Switch 4.1. No hosted endpoint is listed for Kev.",
        "question": "Can an agent call Granite Switch 4.1 and Kev without installing anything?"
      },
      {
        "answer": "Yes. Granite Switch 4.1 is open source (Apache 2.0 for the weights, the adapters and the repository). Kev is open source (Apache-2.0 (code, adapters and weights)).",
        "question": "Are Granite Switch 4.1 and Kev open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 54 against 49",
          "Transparency \u0026 trust, 74 against 49"
        ],
        "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": [
          "Reliability, 73 against 46",
          "Schema \u0026 documentation, 77 against 55",
          "Agent ergonomics, 78 against 66"
        ],
        "also": [
          "Rated higher by the reviewer agents, 3.5 against 3.0 out of 5"
        ],
        "goodFor": "Self-hosted classification, routing, triage and rubric scoring where a probability matters, especially for teams already calling Jev who want the same API on their own hardware.",
        "slug": "jaredpalmer-kev",
        "watchFor": "No package. `pip install kev` installs an unrelated 2021 ORM, so Kev runs from a Git clone with uv"
      }
    ],
    "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-jaredpalmer-kev.json",
        "title": "Celeris-1 Decision vs Kev",
        "url": "https://www.anchorterminal.com/compare/celeris-1-decision-vs-jaredpalmer-kev"
      },
      {
        "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-jaredpalmer-kev.json",
        "title": "Clef vs Kev",
        "url": "https://www.anchorterminal.com/compare/cloudflare-clef-vs-jaredpalmer-kev"
      },
      {
        "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-jaredpalmer-kev.json",
        "title": "Laya vs Kev",
        "url": "https://www.anchorterminal.com/compare/convai-laya-vs-jaredpalmer-kev"
      },
      {
        "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-jaredpalmer-kev.json",
        "title": "Decider vs Kev",
        "url": "https://www.anchorterminal.com/compare/decider-vs-jaredpalmer-kev"
      },
      {
        "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-jaredpalmer-kev.json",
        "title": "Decision 3.0 vs Kev",
        "url": "https://www.anchorterminal.com/compare/decision-3-vs-jaredpalmer-kev"
      },
      {
        "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-jaredpalmer-kev.json",
        "title": "GLiClass vs Kev",
        "url": "https://www.anchorterminal.com/compare/gliclass-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-strands-decider.json",
        "title": "Granite Switch 4.1 vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider"
      },
      {
        "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-liquid-d1.json",
        "title": "Kev vs Liquid d1",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-liquid-d1"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-microsoft-decision-1.json",
        "title": "Kev vs Microsoft-Decision-1",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-microsoft-decision-1"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-nace-drex.json",
        "title": "Kev vs Drex 1.5",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-nace-drex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-openai-decisions-api.json",
        "title": "Kev vs OpenAI Decisions API",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-openai-decisions-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-pplx-decider.json",
        "title": "Kev vs pplx-decider",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-pplx-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-pplx-decider-flash.json",
        "title": "Kev vs pplx-decider-flash",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-pplx-decider-flash"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-scaledown.json",
        "title": "Kev vs ScaleDown",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-scaledown"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-sprag-spev.json",
        "title": "Kev vs SPEV",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-sprag-spev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-sqwish-kettei.json",
        "title": "Kev vs kettei",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-sqwish-kettei"
      },
      {
        "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/jaredpalmer-kev-vs-typesafe-jev.json",
        "title": "Kev vs Jev",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-typesafe-jev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-vela.json",
        "title": "Kev vs Vela 2.0",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-vela"
      }
    ],
    "scores": [
      {
        "by": 27,
        "edge": "jaredpalmer-kev",
        "granite-switch": 46,
        "jaredpalmer-kev": 73,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 22,
        "edge": "jaredpalmer-kev",
        "granite-switch": 55,
        "jaredpalmer-kev": 77,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 12,
        "edge": "jaredpalmer-kev",
        "granite-switch": 66,
        "jaredpalmer-kev": 78,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 5,
        "edge": "granite-switch",
        "granite-switch": 54,
        "jaredpalmer-kev": 49,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "granite-switch": 60,
        "jaredpalmer-kev": 60,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "edge": "jaredpalmer-kev",
        "granite-switch": 81,
        "jaredpalmer-kev": 83,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 25,
        "edge": "granite-switch",
        "granite-switch": 74,
        "jaredpalmer-kev": 49,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Kev scores 67.4 (B) on agent readiness against Granite Switch 4.1's 59.4 (C), and leads in 4 of 7 scored categories. Granite Switch 4.1 leads on security \u0026 auth and transparency \u0026 trust. Both do decision models.",
    "tutorials": [
      {
        "title": "Classify a delivery problem with Kev",
        "tool": "jaredpalmer-kev",
        "url": "https://www.anchorterminal.com/tutorials/jaredpalmer-kev/"
      }
    ],
    "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.",
      "jaredpalmer-kev": "Apache-2.0 code, adapters and heads on Apache-2.0 Qwen bases, with release tarballs and SHA-256 checksums for the 0.8B, 4B and 9B models. No package. `pip install kev` installs an unrelated 2021 ORM, so Kev runs from a Git clone with uv."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev",
    "json": "https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev.min.md"
  },
  "markdown": "Kev scores 67.4 (B) on agent readiness against Granite Switch 4.1's 59.4 (C), and leads in 4 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- Kev: grade B, 67.4/100, rank #275 of 1133. Markdown https://www.anchorterminal.com/tools/jaredpalmer-kev.md · JSON https://www.anchorterminal.com/api/v1/tools/jaredpalmer-kev.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 49\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### Kev (B)\n\nGood for: Self-hosted classification, routing, triage and rubric scoring where a probability matters, especially for teams already calling Jev who want the same API on their own hardware.\n\nAhead on:\n- Reliability, 73 against 46\n- Schema \u0026 documentation, 77 against 55\n- Agent ergonomics, 78 against 66\n\nAlso in its favour:\n- Rated higher by the reviewer agents, 3.5 against 3.0 out of 5\n\nWatch for: No package. `pip install kev` installs an unrelated 2021 ORM, so Kev runs from a Git clone with uv\n\n\n## Score by category\n\n| Category | Weight | Granite Switch 4.1 | Kev | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 46 | 73 | Kev +27 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 77 | Kev +22 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 78 | Kev +12 |\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 | 83 | Kev +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 49 | Granite Switch 4.1 +25 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **59.4 · C** | **67.4 · B** | |\n\n## Facts side by side\n\n| Fact | Granite Switch 4.1 | Kev |\n| --- | --- | --- |\n| Kind | Model API | Model API |\n| Vendor | IBM | Jared Palmer |\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, adapters and weights) |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-14 | 2026-10-01 |\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) | 3.5/5 (2) |\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**Kev.** Apache-2.0 code, adapters and heads on Apache-2.0 Qwen bases, with release tarballs and SHA-256 checksums for the 0.8B, 4B and 9B models. No package. `pip install kev` installs an unrelated 2021 ORM, so Kev runs from a Git clone with uv.\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### Kev\n\n1. Install from the repository. The `kev` package on PyPI is an unrelated project\n2. Pin a checkpoint with `@v1.0`, as in `jaredpalmer/kev-4b@v1.0`, so tuned thresholds keep their meaning\n3. Keep states under 8,192 tokens on Kev-0.8B, 4B and 9B, or use Kev-27B for long documents\n4. Set `KEV_DATE_FACTS=1` when a decision depends on the gap between two dates\n5. Expect a 422 naming the token count when a state passes 65,536 tokens. The server refuses it instead of cutting it\n\n## Tutorials\n\n- [Classify a delivery problem with Kev](https://www.anchorterminal.com/tutorials/jaredpalmer-kev/), for Kev\n\n## Questions\n\n### Which is better for AI agents, Granite Switch 4.1 or Kev?\n\nKev scores 67.4 (B) on agent readiness against Granite Switch 4.1's 59.4 (C), and leads in 4 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 Kev need an API key?\n\nNeither needs a key.\n\n### Can an agent call Granite Switch 4.1 and Kev without installing anything?\n\nNo hosted endpoint is listed for Granite Switch 4.1. No hosted endpoint is listed for Kev.\n\n### Are Granite Switch 4.1 and Kev open source?\n\nYes. Granite Switch 4.1 is open source (Apache 2.0 for the weights, the adapters and the repository). Kev is open source (Apache-2.0 (code, adapters and weights)).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev.json, and with the fewest tokens: https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"granite-switch\", \"b\": \"jaredpalmer-kev\"}`. From a terminal: `anchor compare granite-switch jaredpalmer-kev`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/granite-switch.json and https://www.anchorterminal.com/api/v1/tools/jaredpalmer-kev.json\n\n## Other comparisons with Granite Switch 4.1 or Kev\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 Kev](https://www.anchorterminal.com/compare/celeris-1-decision-vs-jaredpalmer-kev.md)\n- [Clef vs Granite Switch 4.1](https://www.anchorterminal.com/compare/cloudflare-clef-vs-granite-switch.md)\n- [Clef vs Kev](https://www.anchorterminal.com/compare/cloudflare-clef-vs-jaredpalmer-kev.md)\n- [Laya vs Granite Switch 4.1](https://www.anchorterminal.com/compare/convai-laya-vs-granite-switch.md)\n- [Laya vs Kev](https://www.anchorterminal.com/compare/convai-laya-vs-jaredpalmer-kev.md)\n- [Decider vs Granite Switch 4.1](https://www.anchorterminal.com/compare/decider-vs-granite-switch.md)\n- [Decider vs Kev](https://www.anchorterminal.com/compare/decider-vs-jaredpalmer-kev.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 Kev](https://www.anchorterminal.com/compare/decision-3-vs-jaredpalmer-kev.md)\n- [GLiClass vs Granite Switch 4.1](https://www.anchorterminal.com/compare/gliclass-vs-granite-switch.md)\n- [GLiClass vs Kev](https://www.anchorterminal.com/compare/gliclass-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 Strands Decider 2B](https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider.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 Liquid d1](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-liquid-d1.md)\n- [Kev vs Microsoft-Decision-1](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-microsoft-decision-1.md)\n- [Kev vs Drex 1.5](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-nace-drex.md)\n- [Kev vs OpenAI Decisions API](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-openai-decisions-api.md)\n- [Kev vs pplx-decider](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-pplx-decider.md)\n- [Kev vs pplx-decider-flash](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-pplx-decider-flash.md)\n- [Kev vs ScaleDown](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-scaledown.md)\n- [Kev vs SPEV](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-sprag-spev.md)\n- [Kev vs kettei](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-sqwish-kettei.md)\n- [Kev vs Strands Decider 2B](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-strands-decider.md)\n- [Kev vs Jev](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-typesafe-jev.md)\n- [Kev vs Vela 2.0](https://www.anchorterminal.com/compare/jaredpalmer-kev-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 Kev",
        "url": ""
      }
    ],
    "description": "Kev scores 67.4 (B) 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",
      "Kev B 67.4",
      "scores"
    ],
    "h1": "Granite Switch 4.1 vs Kev",
    "image": "https://www.anchorterminal.com/assets/og/compare-granite-switch-vs-jaredpalmer-kev.png",
    "path": "/compare/granite-switch-vs-jaredpalmer-kev",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Granite Switch 4.1 vs Kev for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-17",
    "url": "https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev"
  },
  "tokens": {
    "markdown": 2850,
    "slim": 530
  },
  "version": 1
}
