giskard-oss is a free, open source ai security & privacy project written in Python and released under Apache-2.0. It has 5,823 GitHub stars, 537 forks and 64 open issues, and was last pushed 37 hours ago. On this registry it ranks #8 of 34 tracked projects in AI Security & Privacy, with 5 head-to-head comparisons available. It gained 7 stars over the last 3 tracked days.

What is giskard-oss?

Giskard OSS is an open-source Python library for evaluating, red-teaming and testing LLM agents and RAG pipelines, built for developers, ML engineers and AI security teams that need reproducible checks on non-deterministic systems.

What it is

Giskard OSS is the open-source evaluation and testing library for LLM agents, distributed on PyPI as the giskard package and licensed under Apache-2.0. Version 3 is a fresh rewrite designed for dynamic, multi-turn testing of AI agents, described as modular, lightweight, dynamic and async-first, and it drops heavy dependencies for better efficiency. The architecture is a set of focused packages, each carrying only the dependencies it needs, built from scratch to wrap anything: a single LLM, a black-box agent, or a multi-step pipeline. Two packages are stable β€” giskard-checks for testing and evaluation, and giskard-scan for agent vulnerability scanning plus RAG and quality evaluation β€” and both build on three foundational libraries (giskard-core, giskard-llm, giskard-agents) that are pulled in automatically and rarely used directly.

The concrete problem it solves is that agentic systems do not behave deterministically. The same input can produce different valid responses, so traditional unit tests cannot express correctness for them. Giskard replaces its own v2 scan stack: the AI vulnerability scanner and RAG evaluation now ship natively inside giskard-scan with no dependency on v2, where vulnerability_scan succeeds v2 Scan and quality_scan succeeds v2 RAGET. Only the legacy scan for tabular and ML models remains v2-only, and Giskard v2 stays available but is no longer actively maintained.

Key capabilities

  • giskard-checks provides a scenario API, built-in checks and LLM-as-judge assessments for writing evals that test LLM-based systems, from simple assertions upward.
  • giskard-scan ships vulnerability_scan for agent red teaming: prompt injection, jailbreaks and harmful content.
  • giskard-scan also ships quality_scan for knowledge-base quality evaluation, the successor to v2 RAGET.
  • Regression catching, so a system is verified to still behave correctly after changes.
  • RAG quality validation, checking whether answers are grounded in retrieved context.
  • Provider-agnostic LLM routing through giskard-llm, with optional SDK extras such as giskard[openai], giskard[anthropic] and giskard[scan].
  • Optional aggregated telemetry through giskard-core that sends no prompts or outputs, opt-out via export DO_NOT_TRACK=1 or export GISKARD_TELEMETRY_DISABLED=1.

Who uses it and how

  • LLMOps and evaluation teams that need regression suites for an agent, written as evals rather than deterministic unit tests.
  • AI red teams probing black-box agents for prompt injection, jailbreaks and harmful content with vulnerability_scan.
  • RAG pipeline owners validating that generated answers stay grounded in the retrieved knowledge base.
  • Teams exercising multi-turn, multi-step agent workflows, which the async-first v3 design targets.
  • MLOps teams holding tabular or classical ML models, who must stay on v2 for that legacy scan since it is not carried into v3.

Getting started

Install with pip install giskard for the checks package plus agents, LLM and core, add pip install "giskard[scan]" for the vulnerability and quality scan, and add a provider SDK such as pip install "giskard[openai]". Python 3.12 or later is required, and documentation lives at https://docs.giskard.ai.

How it compares

No paid products this project replaces are listed in the facts, and no similar tools are named either. On the evidence provided here it stands alone in this registry, with no sibling project to contrast it against.

When to use it β€” and when not to

Adoption is Python 3.12 or later only, and the library arrives as pip packages with the scan capability behind an extra rather than in the base install. Teams that depend on tabular or classical ML scanning in a maintained release should not pick it, because that scan is v2-only and v2 is no longer actively maintained. Telemetry is on by default in aggregated form, so anyone in a restricted environment must set the opt-out variables before import to avoid creating ~/.giskard/id.

project readme (upstream, from github) β€” read inline

Evals, Red Teaming and Test Generation for Agentic Systems

Modular, Lightweight, Dynamic and Async-first

GitHub release License Downloads CI Giskard on Discord

DocsWebsiteCommunity


[!IMPORTANT] Giskard v3 is a fresh rewrite designed for dynamic, multi-turn testing of AI agents. This release drops heavy dependencies for better efficiency while introducing a more powerful AI vulnerability scanner and enhanced RAG evaluation β€” both now shipping natively in giskard-scan, with no dependency on v2. Only the legacy scan for tabular/ML models remains v2-only. Giskard v2 remains available but is no longer actively maintained. Follow progress β†’ Read the v3 Announcement Β· Roadmap

Install

pip install giskard           # checks (+ agents, llm, core)
pip install "giskard[scan]"   # + vulnerability / quality scan
pip install "giskard[openai]" # provider SDK for LLM judges / generators

Requires Python 3.12+.

Extra Adds
(none) giskard-checks and dependencies
scan giskard-scan
openai / anthropic / … provider SDKs (see pyproject.toml optional deps)

Telemetry: optional aggregated analytics via giskard-core. No prompts or outputs are sent. Opt out with export DO_NOT_TRACK=1 or export GISKARD_TELEMETRY_DISABLED=1 (or the same keys in a .env file in the working directory). Set them before import to skip creating ~/.giskard/id; setting them later still stops further sends. Details: giskard-core README.


Giskard is an open-source Python library for testing and evaluating agentic systems. The v3 architecture is a modular set of focused packages β€” each carrying only the dependencies it needs β€” built from scratch to wrap anything: an LLM, a black-box agent, or a multi-step pipeline.

Status Package Description
βœ… Stable giskard-checks Testing & evaluation β€” scenario API, built-in checks, LLM-as-judge
βœ… Stable giskard-scan Agent vulnerability scanner + RAG/quality evaluation β€” red teaming, prompt injection, jailbreaks & harmful content (vulnerability_scan, successor of v2 Scan), plus knowledge-base quality eval (quality_scan, successor of v2 RAGET)

These build on three foundational libraries β€” giskard-core (shared utilities & telemetry), giskard-llm (provider-agnostic LLM routing), and giskard-agents (agent & workflow orchestration) β€” which are pulled in automatically and rarely used directly.

Giskard Checks β€” create and apply evals for testing agents

pip install giskard-checks

Giskard Checks is a lightweight library for creating evaluations (evals) that test LLM-based systems β€” from simple assertions to LLM-as-judge assessments. Unlike traditional unit tests, evals are designed for non-deterministic outputs where the same input can produce different valid responses.

Use Giskard Checks to:

  • Catch regressions β€” verify your system still behaves correctly after changes
  • Validate RAG quality β€” check if answers are grounded in retrieved context
  • Enforce safety rules β€” ensure outputs conform to your content policies
  • Evaluate multi-turn agents β€” test full conversations, not just single exchanges

Built-in evals include string matching, comparisons, regex, semantic similarity, and LLM-as-judge checks (Groundedness, Conformity, LLMJudge).

Concepts

  • Target β€” your system under test: any sync/async callable (inputs) -> outputs (optionally with trace)
  • Scenario β€” one eval: interactions + checks
  • Check β€” assertion or LLM judge over the trace
  • Suite β€” many scenarios run together

giskard.agents.Generator is an LLM client for workflows/judges β€” not the same as giskard.checks input generators (LLMGenerator) that synthesize user messages.

Quickstart

import asyncio
from giskard.checks import Scenario, Groundedness


def get_answer(inputs: str) -> str:
    return "Paris"  # replace with your model / agent


async def main() -> None:
    scenario = (
        Scenario("test_france_capital")
        .interact(inputs="What is the capital of France?", outputs=get_answer)
        .check(
            Groundedness(
                name="answer is grounded",
                context="France is in Western Europe. Its capital is Paris.",
            )
        )
    )
    result = await scenario.run()
    result.print_report()


asyncio.run(main())

Groundedness is an LLM judge β€” install a provider extra (e.g. pip install "giskard[openai]") and set the matching API key. Default model: openai/gpt-4o-mini.

See the full docs for Suites, LLMJudge, multi-turn scenarios, and more.


Giskard Scan β€” vulnerability scanner for AI agents

pip install "giskard[scan]"   # or: pip install giskard-scan

Giskard Scan is the red-teaming and vulnerability scanning layer for agentic systems. It generates adversarial test suites automatically from a plain-language description of your agent, covering prompt injection, harmful content, stereotypes, misinformation, and more.

Use Giskard Scan to:

  • Red-team your agent β€” automatically generate adversarial inputs across OWASP LLM Top-10 threat categories
  • Run prompt-injection probes β€” built-in dataset of injection payloads ready to use
  • Extend with custom generators β€” pass your own ScenarioGenerator instances to generate_suite, or register them on vulnerability_suite_generator_registry

Quickstart

import asyncio
from giskard.scan import vulnerability_scan


async def my_agent(inputs: str) -> str:
    # Replace with your agent / model call
    return f"Echo: {inputs}"


async def main() -> None:
    await vulnerability_scan(
        target=my_agent,
        description="A customer support chatbot for an e-commerce platform.",
        languages=["en"],
    )


asyncio.run(main())

Scan generators also need an LLM provider extra and API key (same as Checks judges above).

Looking for Giskard v2?

Giskard v2 included Scan (automatic vulnerability detection) and RAGET (RAG evaluation test set generation).

For LLM agents, both are superseded in v3 by giskard-scan: use vulnerability_scan in place of the v2 LLM scan, and quality_scan (with KnowledgeBase) in place of RAGET.

v3 works with ML models too β€” wrap one as a target and evaluate it with giskard-checks or giskard-scan. What the examples below cover is the v2-only automatic tabular scan β€” the detector suite that introspects a giskard.Model + giskard.Dataset to auto-detect performance, bias, and robustness issues β€” along with the giskard.testing ML test suite and the Giskard Hub. These are not planned for v3.

pip install "giskard[llm]>2,<3"

Scan β€” auto

readme truncated β€” read the full docs on github

Frequently asked questions

Is giskard-oss free to use?

giskard-oss is open source under the Apache-2.0 licence. There is no licence fee and no seat count β€” you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does giskard-oss do?

🐒 Open-Source Evaluation & Testing library for LLM Agents

What is giskard-oss written in?

giskard-oss is primarily written in Python. Its source is publicly available at https://github.com/Giskard-AI/giskard-oss, and it has 5,823 GitHub stars.