{
  "data": {
    "a": {
      "slug": "granite-guardian",
      "name": "Granite Guardian",
      "vendor": "IBM",
      "vendorUrl": "https://www.ibm.com/granite",
      "kind": "model",
      "category": "guardrails",
      "summary": "Granite Guardian is IBM's family of open-weight judge models. The current 8-billion-parameter release answers yes or no on whether a prompt, response, retrieved context or function call meets a built-in or custom criterion, and the owner runs it.",
      "url": "https://www.anchorterminal.com/tools/granite-guardian",
      "markdownUrl": "https://www.anchorterminal.com/tools/granite-guardian.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/granite-guardian.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/granite-guardian.json",
      "repo": "https://github.com/ibm-granite/granite-guardian",
      "license": "Apache 2.0 for the weights and the repository",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "none",
      "authNotes": "No account or key is needed to download or run the model. The Hugging Face repository is not gated. A vLLM or Ollama server has whatever authentication the owner adds.",
      "pricing": "free",
      "pricingNotes": "Free to download and run under the Apache 2.0 licence, with the owner's hardware as the cost. IBM's watsonx.ai lists only the earlier `ibm/granite-guardian-3-8b`, marked deprecated, at $0.0002 per 1,000 input or output tokens (checked 2026-10-08). Version 4.1 is not on that list.",
      "priceSummary": "Free",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402. Granite Guardian is a model the owner runs, with no payment route (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 182,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.ibm.com/granite/docs/models/guardian",
      "capabilities": [
        "guard.moderation",
        "guard.policy",
        "guard.injection",
        "guard.self-host"
      ],
      "tags": [
        "model",
        "open-weights",
        "self-hosted",
        "local",
        "free",
        "apache-2.0",
        "judge",
        "rag",
        "python",
        "ollama"
      ],
      "lastRelease": "2026-04-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.1,
        "grade": "C",
        "agentReady": false,
        "rank": 478,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 47,
          "payments": 60,
          "reliability": 56,
          "schema": 60,
          "security": 58,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "One ungated Apache 2.0 model judges harm, jailbreaks, RAG groundedness, function-call errors and custom criteria, with signed weights and published evaluation code. It is trained and tested on English only, each call checks one criterion, the 4.1 prompt format differs from 3.x, and IBM's watsonx.ai lists only the deprecated 3.0 model.",
        "bestFor": "A team with a GPU that wants one English-language judge for harm, jailbreaks, RAG groundedness, function-call checks and house rules, under a permissive licence with no gate.",
        "strengths": [
          "Weights are ungated on Hugging Face under the Apache 2.0 licence, with IBM's own GGUF builds and an Ollama library entry",
          "Built-in criteria cover harm, social bias, jailbreaking, violence, profanity, sexual content, unethical behaviour, three RAG checks and function-call hallucination",
          "A custom criterion is one natural-language sentence in the prompt, and the answer is `yes` or `no` inside `\u003cscore\u003e` tags",
          "The repository's `evaluation` folder reproduces the card's benchmark figures for versions 3.0 to 4.1",
          "Weights carry a sigstore signature in `model.sig`, and IBM documents how to verify it"
        ],
        "weaknesses": [
          "Trained and tested on English only, per the model card",
          "Each call judges one criterion, so checking several risks takes several calls or a separate LoRA adapter built on the 3.2 model",
          "Version 4.1 moved the criterion into a `\u003cguardian\u003e` block in the last user message, where 3.x cookbooks pass `guardian_config`",
          "The repository has no CI, no tests and no `SECURITY.md`, and an issue asking for one has been open since 9 February 2025",
          "The card's out-of-distribution safety F1 is 0.79 without thinking, below the 0.81 it reports for version 3.3",
          "IBM's watsonx.ai model list has only `ibm/granite-guardian-3-8b`, marked deprecated, so 4.1 has no hosted endpoint from IBM that we found"
        ],
        "agentNotes": [
          "Append the `\u003cguardian\u003e` block as the final user message, with the mode line, `### Criteria:` and `### Scoring Schema:`. Copy the strings from the model card, because no package builds them",
          "Use the no-think instruction for gating and parse `\u003cscore\u003e`. Think mode writes a reasoning trace first, and the card's examples allow up to 2,048 output tokens",
          "Treat `yes` as the criterion being met, which for built-in criteria means the risk is present. Treat a missing `\u003cscore\u003e` tag as a failed check",
          "Pass retrieved text through `documents=` and tool schemas through `available_tools=` in `apply_chat_template`, not inside the message text",
          "Under Ollama, set `num_ctx` in the request options. IBM's docs say the default context is short and long requests are truncated"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.1
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 47,
          "payments": 60,
          "reliability": 56,
          "schema": 60,
          "security": 58,
          "transparency": 67
        },
        "provenanceScore": 73
      },
      "connect": {
        "install": "pip install transformers torch vllm",
        "http": "curl http://localhost:11434/api/chat \\\n  -d '{\"model\": \"granite4.1-guardian:8b\", \"messages\": [{\"role\": \"user\", \"content\": \"Hello!\"}]}'"
      },
      "letme": {
        "capability": "https://letme.dev/guard.moderation",
        "tool": "https://letme.dev/granite-guardian"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "International Business Machines Corporation",
        "domain": "ibm.com",
        "domainRegistered": "1986-03-19",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "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 is the document that governs use of the weights, so it is recorded as the terms. The Hugging Face repository declares the same licence in its metadata and has no licence file of its own.",
          "No privacy policy governs the model, because the owner runs it and no input reaches IBM. The privacy field is left out.",
          "www.ibm.com/.well-known/security.txt is present with PSIRT, HackerOne and email contacts and expires on 8 November 2026.",
          "RDAP gives 19 March 1986 as the registration date of ibm.com.",
          "IBM hosts no endpoint for version 4.1 that we found, so there is no status page. The repository has no changelog file. Dated notes sit in the README under What's New.",
          "Weights are on huggingface.co under the ibm-granite organisation and the code is at github.com/ibm-granite/granite-guardian, both off ibm.com."
        ],
        "score": 73
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/granite-guardian.json"
    },
    "answer": "Granite Guardian scores 60.1 (C) on agent readiness against LlamaFirewall's 50.8 (D), and leads in every scored category.",
    "b": {
      "slug": "llamafirewall",
      "name": "LlamaFirewall",
      "vendor": "Meta",
      "vendorUrl": "https://dev.meta.ai/llama/llama-protections",
      "kind": "framework",
      "category": "guardrails",
      "summary": "LlamaFirewall is Meta's open-source Python library for screening an AI agent's inputs, tool results and outputs. It runs scanners for prompt injection, hidden characters, insecure generated code and goal drift, and returns allow, block or human review.",
      "url": "https://www.anchorterminal.com/tools/llamafirewall",
      "markdownUrl": "https://www.anchorterminal.com/tools/llamafirewall.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/llamafirewall.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/llamafirewall.json",
      "repo": "https://github.com/meta-llama/PurpleLlama/tree/main/LlamaFirewall",
      "license": "MIT (library). The Prompt Guard 2 weights it downloads are under the Llama 4 Community Licence",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "llamafirewall"
        }
      ],
      "auth": "none",
      "authNotes": "The library has no account or key of its own. The Prompt Guard scanner needs a Hugging Face token for an account Meta has approved for the gated `meta-llama/Llama-Prompt-Guard-2-86M` weights. AlignmentCheck and the PII scanner need `TOGETHER_API_KEY` for Together AI. The regex, hidden ASCII and CodeShield scanners need neither.",
      "pricing": "free",
      "pricingNotes": "Free under the MIT licence, with nothing to buy from Meta and no hosted version found. The cost is the owner's compute, plus Together AI's own charges when AlignmentCheck or the PII scanner is switched on. Those were not priced here.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source. LlamaFirewall is a library the owner runs, with no payment route (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 4423,
        "npmWeekly": null,
        "pypiWeekly": 1029,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://meta-llama.github.io/PurpleLlama/LlamaFirewall/",
      "capabilities": [
        "guard.injection",
        "guard.pii",
        "guard.policy",
        "guard.self-host"
      ],
      "tags": [
        "framework",
        "open-source",
        "self-hosted",
        "local",
        "python",
        "free",
        "gated",
        "no-telemetry",
        "stale-release"
      ],
      "lastRelease": "2025-05-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.8,
        "grade": "D",
        "agentReady": false,
        "rank": 682,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 13,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 15,
          "payments": 50,
          "reliability": 53,
          "schema": 49,
          "security": 56,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "One `scan()` call runs several checks on the owner's machine and returns a short typed result. The last PyPI release is 1.0.3 from 29 May 2025, and its Prompt Guard loader imports a `huggingface_hub` class that current versions no longer export, so a fresh install needs older pins. The classifier weights also need Meta's manual approval.",
        "bestFor": "A Python agent team that wants injection, hidden-character and generated-code checks in process, is willing to pin dependencies or install from main, and can get the gated weights.",
        "strengths": [
          "Six scanner types sit behind one call, set per message role (user, assistant, tool, system, memory) in a plain mapping",
          "`ScanResult` is four typed fields (`decision`, `reason`, `score`, `status`), with decisions limited to allow, block or human review",
          "Prompt Guard, CodeShield, regex and hidden-character scanners run locally, and no telemetry code was found in the source",
          "MIT licence for the library, with tests run in public CI on Python 3.10 and 3.12 that passed on main on 29 September 2026",
          "`scan_replay` checks a whole conversation trace, and AlignmentCheck compares each agent step with the first user message"
        ],
        "weaknesses": [
          "No PyPI release since 1.0.3 on 29 May 2025, and no changelog, tags or deprecation notes were found",
          "The 1.0.3 wheel imports `HfFolder` from `huggingface_hub`, which version 2.2.0 no longer exports. Main fixed the scanner on 26 March 2026, unreleased",
          "The Prompt Guard 2 weights are gated on Hugging Face with manual review, and the loader calls an interactive `login()` when no token is set",
          "Prompt Guard input is truncated at 512 tokens in the library, so later text in a long tool result is not scored",
          "AlignmentCheck and the PII scanner send the conversation to Together AI by default, and `create_scanner` passes no option to change the model or endpoint",
          "The custom scanner guide names a `BaseScanner` class that is not in the source, and LlamaFirewall issues from June and July 2025 have no reply"
        ],
        "agentNotes": [
          "Pin `huggingface_hub` below 1.0 and a matching `transformers` 4.x before importing the Prompt Guard scanner from the 1.0.3 wheel, or install from main",
          "Get access to `meta-llama/Llama-Prompt-Guard-2-86M` and set a Hugging Face token first. Without one the loader prompts for a login and a headless run stalls",
          "Call `scan_async` inside a running event loop. `scan()` wraps `asyncio.run` and fails there. `scan_async` returns score 0.0 and reason `default` on every allow",
          "Split text longer than 512 tokens yourself before a Prompt Guard scan. The library truncates and does not chunk",
          "Do not feed a block `reason` back to the model. The Prompt Guard reason quotes the full scanned text, and the hidden ASCII reason decodes the hidden payload"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.8
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 15,
          "payments": 50,
          "reliability": 53,
          "schema": 49,
          "security": 56,
          "transparency": 56
        },
        "provenanceScore": 60
      },
      "connect": {
        "install": "pip install llamafirewall\nllamafirewall configure"
      },
      "letme": {
        "capability": "https://letme.dev/guard.injection",
        "tool": "https://letme.dev/llamafirewall"
      },
      "sameCompany": [
        "llama-guard"
      ],
      "area": "models",
      "provenance": {
        "legalEntity": "Meta Platforms, Inc.",
        "domain": "llama.com",
        "domainRegistered": "1994-11-01",
        "domainNote": "A Python library the owner runs, not a service. Code is on github.com under the meta-llama organisation, docs on meta-llama.github.io, and Meta's Llama Protections page lists it.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The MIT licence in the LlamaFirewall folder is the document that governs use of the library, so it is recorded as the terms. Its copyright line reads Meta Platforms, Inc. and affiliates.",
          "The Prompt Guard 2 weights the library downloads are under the Llama 4 Community Licence, a separate document, and the repository root carries a Llama 3.2 licence file.",
          "No privacy policy governs the library, because the owner runs it. The privacy field is left out. The Hugging Face access form for the weights says details entered are handled under the Meta Privacy Policy.",
          "AlignmentCheck and the PII scanner send data to Together AI under the owner's own Together account. Meta publishes no data statement for that path.",
          "www.llama.com/llama-protections redirected to dev.meta.ai/llama/llama-protections on 8 October 2026, which names LlamaFirewall and links its paper. RDAP gives 1 November 1994 as the registration date of llama.com.",
          "No status page, because nothing is hosted. No changelog, release notes or version tags were found in the repository.",
          "security.txt returns 404 on meta-llama.github.io and dev.meta.ai. SECURITY.md in the LlamaFirewall folder sends reports to bugbounty.meta.com."
        ],
        "score": 60
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/llamafirewall.json"
    },
    "facts": [
      {
        "a": "Model API",
        "b": "Agent framework",
        "name": "Kind"
      },
      {
        "a": "IBM",
        "b": "Meta",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "",
        "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 and the repository",
        "b": "MIT (library). The Prompt Guard 2 weights it downloads are under the Llama 4 Community Licence",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-04-29",
        "b": "2025-05-29",
        "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": "182 stars",
        "b": "4.4k stars, 1k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Granite Guardian scores 60.1 (C) on agent readiness against LlamaFirewall's 50.8 (D), and leads in every scored category.",
        "question": "Which is better for AI agents, Granite Guardian or LlamaFirewall?"
      },
      {
        "answer": "No hosted endpoint is listed for Granite Guardian. No hosted endpoint is listed for LlamaFirewall.",
        "question": "Can an agent call Granite Guardian and LlamaFirewall without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Granite Guardian. LlamaFirewall is open source (MIT (library). The Prompt Guard 2 weights it downloads are under the Llama 4 Community Licence).",
        "question": "Are Granite Guardian and LlamaFirewall open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 60 against 49",
          "Agent ergonomics, 69 against 60",
          "Payments \u0026 pricing, 60 against 50",
          "Maintenance \u0026 community, 47 against 15",
          "Transparency \u0026 trust, 70 against 58"
        ],
        "also": null,
        "goodFor": "A team with a GPU that wants one English-language judge for harm, jailbreaks, RAG groundedness, function-call checks and house rules, under a permissive licence with no gate.",
        "slug": "granite-guardian",
        "watchFor": "Trained and tested on English only, per the model card"
      },
      {
        "aheadOn": null,
        "also": [
          "Open source"
        ],
        "goodFor": "A Python agent team that wants injection, hidden-character and generated-code checks in process, is willing to pin dependencies or install from main, and can get the gated weights.",
        "slug": "llamafirewall",
        "watchFor": "No PyPI release since 1.0.3 on 29 May 2025, and no changelog, tags or deprecation notes were found"
      }
    ],
    "job": {
      "capability": "guard.injection",
      "name": "Guard injection"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-granite-guardian.json",
        "title": "Amazon Bedrock Guardrails vs Granite Guardian",
        "url": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-granite-guardian"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-llamafirewall.json",
        "title": "Amazon Bedrock Guardrails vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-granite-guardian.json",
        "title": "Azure AI Content Safety (Prompt Shields) vs Granite Guardian",
        "url": "https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-granite-guardian"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-llamafirewall.json",
        "title": "Azure AI Content Safety (Prompt Shields) vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-granite-guardian.json",
        "title": "Cisco AI Defense Inspection API vs Granite Guardian",
        "url": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-granite-guardian"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-llamafirewall.json",
        "title": "Cisco AI Defense Inspection API vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-model-armor-vs-granite-guardian.json",
        "title": "Google Cloud Model Armor vs Granite Guardian",
        "url": "https://www.anchorterminal.com/compare/google-model-armor-vs-granite-guardian"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-model-armor-vs-llamafirewall.json",
        "title": "Google Cloud Model Armor vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/google-model-armor-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guardrails-ai-vs-llamafirewall.json",
        "title": "Guardrails AI vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/guardrails-ai-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lakera-guard-vs-llamafirewall.json",
        "title": "Lakera Guard (Check Point AI Guardrails) vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/lakera-guard-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-nemo-guardrails.json",
        "title": "LlamaFirewall vs NVIDIA NeMo Guardrails",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-nemo-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-openai-guardrails.json",
        "title": "LlamaFirewall vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-prisma-airs.json",
        "title": "LlamaFirewall vs Prisma AIRS AI Runtime Security API",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-prisma-airs"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-guardrails-ai.json",
        "title": "Granite Guardian vs Guardrails AI",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-guardrails-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-lakera-guard.json",
        "title": "Granite Guardian vs Lakera Guard (Check Point AI Guardrails)",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-lakera-guard"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-llama-guard.json",
        "title": "Granite Guardian vs Llama Guard 4",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-llama-guard"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-mistral-moderation.json",
        "title": "Granite Guardian vs Mistral Moderation API",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-mistral-moderation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-nemo-guardrails.json",
        "title": "Granite Guardian vs NVIDIA NeMo Guardrails",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-nemo-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-openai-guardrails.json",
        "title": "Granite Guardian vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-openai-moderation.json",
        "title": "Granite Guardian vs OpenAI Moderation API",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-openai-moderation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-prisma-airs.json",
        "title": "Granite Guardian vs Prisma AIRS AI Runtime Security API",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-prisma-airs"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio.json",
        "title": "LlamaFirewall vs Presidio",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-mistral-moderation.json",
        "title": "LlamaFirewall vs Mistral Moderation API",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-mistral-moderation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-microsoft-presidio.json",
        "title": "Granite Guardian vs Presidio",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-guard-vs-llamafirewall.json",
        "title": "Llama Guard 4 vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/llama-guard-vs-llamafirewall"
      }
    ],
    "scores": [
      {
        "by": 3,
        "edge": "granite-guardian",
        "granite-guardian": 56,
        "key": "reliability",
        "llamafirewall": 53,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "edge": "granite-guardian",
        "granite-guardian": 60,
        "key": "schema",
        "llamafirewall": 49,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 9,
        "edge": "granite-guardian",
        "granite-guardian": 69,
        "key": "ergonomics",
        "llamafirewall": 60,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 2,
        "edge": "granite-guardian",
        "granite-guardian": 58,
        "key": "security",
        "llamafirewall": 56,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 10,
        "edge": "granite-guardian",
        "granite-guardian": 60,
        "key": "payments",
        "llamafirewall": 50,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 32,
        "edge": "granite-guardian",
        "granite-guardian": 47,
        "key": "maintenance",
        "llamafirewall": 15,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 12,
        "edge": "granite-guardian",
        "granite-guardian": 70,
        "key": "transparency",
        "llamafirewall": 58,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Granite Guardian scores 60.1 (C) on agent readiness against LlamaFirewall's 50.8 (D), and leads in every scored category. Both do guard injection.",
    "verdicts": {
      "granite-guardian": "One ungated Apache 2.0 model judges harm, jailbreaks, RAG groundedness, function-call errors and custom criteria, with signed weights and published evaluation code. It is trained and tested on English only, each call checks one criterion, the 4.1 prompt format differs from 3.x, and IBM's watsonx.ai lists only the deprecated 3.0 model.",
      "llamafirewall": "One `scan()` call runs several checks on the owner's machine and returns a short typed result. The last PyPI release is 1.0.3 from 29 May 2025, and its Prompt Guard loader imports a `huggingface_hub` class that current versions no longer export, so a fresh install needs older pins. The classifier weights also need Meta's manual approval."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/granite-guardian-vs-llamafirewall",
    "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-llamafirewall.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/granite-guardian-vs-llamafirewall.md",
    "slim": "https://www.anchorterminal.com/compare/granite-guardian-vs-llamafirewall.min.md"
  },
  "markdown": "Granite Guardian scores 60.1 (C) on agent readiness against LlamaFirewall's 50.8 (D), and leads in every scored category. Both do guard injection.\n\n- Granite Guardian: grade C, 60.1/100, rank #478 of 842. Markdown https://www.anchorterminal.com/tools/granite-guardian.md · JSON https://www.anchorterminal.com/api/v1/tools/granite-guardian.json\n- LlamaFirewall: grade D, 50.8/100, rank #682 of 842. Markdown https://www.anchorterminal.com/tools/llamafirewall.md · JSON https://www.anchorterminal.com/api/v1/tools/llamafirewall.json\n\n## Which one, for what\n\n### Granite Guardian (C)\n\nGood for: A team with a GPU that wants one English-language judge for harm, jailbreaks, RAG groundedness, function-call checks and house rules, under a permissive licence with no gate.\n\nAhead on:\n- Schema \u0026 documentation, 60 against 49\n- Agent ergonomics, 69 against 60\n- Payments \u0026 pricing, 60 against 50\n- Maintenance \u0026 community, 47 against 15\n- Transparency \u0026 trust, 70 against 58\n\nWatch for: Trained and tested on English only, per the model card\n\n### LlamaFirewall (D)\n\nGood for: A Python agent team that wants injection, hidden-character and generated-code checks in process, is willing to pin dependencies or install from main, and can get the gated weights.\n\nAlso in its favour:\n- Open source\n\nWatch for: No PyPI release since 1.0.3 on 29 May 2025, and no changelog, tags or deprecation notes were found\n\n\n## Score by category\n\n| Category | Weight | Granite Guardian | LlamaFirewall | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 56 | 53 | Granite Guardian +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 60 | 49 | Granite Guardian +11 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 60 | Granite Guardian +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 58 | 56 | Granite Guardian +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 50 | Granite Guardian +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 47 | 15 | Granite Guardian +32 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 70 | 58 | Granite Guardian +12 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **60.1 · C** | **50.8 · D** | |\n\n## Facts side by side\n\n| Fact | Granite Guardian | LlamaFirewall |\n| --- | --- | --- |\n| Kind | Model API | Agent framework |\n| Vendor | IBM | Meta |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP |  |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Apache 2.0 for the weights and the repository | MIT (library). The Prompt Guard 2 weights it downloads are under the Llama 4 Community Licence |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-04-29 | 2025-05-29 |\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| Popularity | 182 stars | 4.4k stars, 1k PyPI/wk |\n\n## Verdicts\n\n**Granite Guardian.** One ungated Apache 2.0 model judges harm, jailbreaks, RAG groundedness, function-call errors and custom criteria, with signed weights and published evaluation code. It is trained and tested on English only, each call checks one criterion, the 4.1 prompt format differs from 3.x, and IBM's watsonx.ai lists only the deprecated 3.0 model.\n\n**LlamaFirewall.** One `scan()` call runs several checks on the owner's machine and returns a short typed result. The last PyPI release is 1.0.3 from 29 May 2025, and its Prompt Guard loader imports a `huggingface_hub` class that current versions no longer export, so a fresh install needs older pins. The classifier weights also need Meta's manual approval.\n\n## Before you call either\n\n### Granite Guardian\n\n1. Append the `\u003cguardian\u003e` block as the final user message, with the mode line, `### Criteria:` and `### Scoring Schema:`. Copy the strings from the model card, because no package builds them\n2. Use the no-think instruction for gating and parse `\u003cscore\u003e`. Think mode writes a reasoning trace first, and the card's examples allow up to 2,048 output tokens\n3. Treat `yes` as the criterion being met, which for built-in criteria means the risk is present. Treat a missing `\u003cscore\u003e` tag as a failed check\n4. Pass retrieved text through `documents=` and tool schemas through `available_tools=` in `apply_chat_template`, not inside the message text\n5. Under Ollama, set `num_ctx` in the request options. IBM's docs say the default context is short and long requests are truncated\n\n### LlamaFirewall\n\n1. Pin `huggingface_hub` below 1.0 and a matching `transformers` 4.x before importing the Prompt Guard scanner from the 1.0.3 wheel, or install from main\n2. Get access to `meta-llama/Llama-Prompt-Guard-2-86M` and set a Hugging Face token first. Without one the loader prompts for a login and a headless run stalls\n3. Call `scan_async` inside a running event loop. `scan()` wraps `asyncio.run` and fails there. `scan_async` returns score 0.0 and reason `default` on every allow\n4. Split text longer than 512 tokens yourself before a Prompt Guard scan. The library truncates and does not chunk\n5. Do not feed a block `reason` back to the model. The Prompt Guard reason quotes the full scanned text, and the hidden ASCII reason decodes the hidden payload\n\n## Questions\n\n### Which is better for AI agents, Granite Guardian or LlamaFirewall?\n\nGranite Guardian scores 60.1 (C) on agent readiness against LlamaFirewall's 50.8 (D), and leads in every scored category.\n\n### Can an agent call Granite Guardian and LlamaFirewall without installing anything?\n\nNo hosted endpoint is listed for Granite Guardian. No hosted endpoint is listed for LlamaFirewall.\n\n### Are Granite Guardian and LlamaFirewall open source?\n\nNo open-source release is listed for Granite Guardian. LlamaFirewall is open source (MIT (library). The Prompt Guard 2 weights it downloads are under the Llama 4 Community Licence).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/granite-guardian-vs-llamafirewall.json, and with the fewest tokens: https://www.anchorterminal.com/compare/granite-guardian-vs-llamafirewall.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"granite-guardian\", \"b\": \"llamafirewall\"}`. From a terminal: `anchor compare granite-guardian llamafirewall`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/granite-guardian.json and https://www.anchorterminal.com/api/v1/tools/llamafirewall.json\n\n## Other comparisons with Granite Guardian or LlamaFirewall\n\n- [Amazon Bedrock Guardrails vs Granite Guardian](https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-granite-guardian.md)\n- [Amazon Bedrock Guardrails vs LlamaFirewall](https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-llamafirewall.md)\n- [Azure AI Content Safety (Prompt Shields) vs Granite Guardian](https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-granite-guardian.md)\n- [Azure AI Content Safety (Prompt Shields) vs LlamaFirewall](https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-llamafirewall.md)\n- [Cisco AI Defense Inspection API vs Granite Guardian](https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-granite-guardian.md)\n- [Cisco AI Defense Inspection API vs LlamaFirewall](https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-llamafirewall.md)\n- [Google Cloud Model Armor vs Granite Guardian](https://www.anchorterminal.com/compare/google-model-armor-vs-granite-guardian.md)\n- [Google Cloud Model Armor vs LlamaFirewall](https://www.anchorterminal.com/compare/google-model-armor-vs-llamafirewall.md)\n- [Guardrails AI vs LlamaFirewall](https://www.anchorterminal.com/compare/guardrails-ai-vs-llamafirewall.md)\n- [Lakera Guard (Check Point AI Guardrails) vs LlamaFirewall](https://www.anchorterminal.com/compare/lakera-guard-vs-llamafirewall.md)\n- [LlamaFirewall vs NVIDIA NeMo Guardrails](https://www.anchorterminal.com/compare/llamafirewall-vs-nemo-guardrails.md)\n- [LlamaFirewall vs OpenAI Guardrails](https://www.anchorterminal.com/compare/llamafirewall-vs-openai-guardrails.md)\n- [LlamaFirewall vs Prisma AIRS AI Runtime Security API](https://www.anchorterminal.com/compare/llamafirewall-vs-prisma-airs.md)\n- [Granite Guardian vs Guardrails AI](https://www.anchorterminal.com/compare/granite-guardian-vs-guardrails-ai.md)\n- [Granite Guardian vs Lakera Guard (Check Point AI Guardrails)](https://www.anchorterminal.com/compare/granite-guardian-vs-lakera-guard.md)\n- [Granite Guardian vs Llama Guard 4](https://www.anchorterminal.com/compare/granite-guardian-vs-llama-guard.md)\n- [Granite Guardian vs Mistral Moderation API](https://www.anchorterminal.com/compare/granite-guardian-vs-mistral-moderation.md)\n- [Granite Guardian vs NVIDIA NeMo Guardrails](https://www.anchorterminal.com/compare/granite-guardian-vs-nemo-guardrails.md)\n- [Granite Guardian vs OpenAI Guardrails](https://www.anchorterminal.com/compare/granite-guardian-vs-openai-guardrails.md)\n- [Granite Guardian vs OpenAI Moderation API](https://www.anchorterminal.com/compare/granite-guardian-vs-openai-moderation.md)\n- [Granite Guardian vs Prisma AIRS AI Runtime Security API](https://www.anchorterminal.com/compare/granite-guardian-vs-prisma-airs.md)\n- [LlamaFirewall vs Presidio](https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio.md)\n- [LlamaFirewall vs Mistral Moderation API](https://www.anchorterminal.com/compare/llamafirewall-vs-mistral-moderation.md)\n- [Granite Guardian vs Presidio](https://www.anchorterminal.com/compare/granite-guardian-vs-microsoft-presidio.md)\n- [Llama Guard 4 vs LlamaFirewall](https://www.anchorterminal.com/compare/llama-guard-vs-llamafirewall.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "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"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Granite Guardian vs LlamaFirewall",
        "url": ""
      }
    ],
    "description": "Granite Guardian scores 60.1 (C) on agent readiness against LlamaFirewall's 50.8 (D), and leads in every scored category. Both do guard injection. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Granite Guardian C 60.1",
      "LlamaFirewall D 50.8",
      "scores"
    ],
    "h1": "Granite Guardian vs LlamaFirewall",
    "image": "https://www.anchorterminal.com/assets/og/compare-granite-guardian-vs-llamafirewall.png",
    "path": "/compare/granite-guardian-vs-llamafirewall",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Granite Guardian vs LlamaFirewall for AI agents, C 60.1 vs D 50.8",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-llamafirewall"
  },
  "tokens": {
    "markdown": 2700,
    "slim": 580
  },
  "version": 1
}
