Discover / LLM Ops & Observability

Giskard

by Giskard-AIPython

Open source testing framework to detect vulnerabilities and evaluate quality of LLM and ML models.

Repositorystable

Maturity: stable because 4y old, giskard-scan/v1.0.0b3 released 21d ago. Derived from release and commit history, not a rating.

Stars
5.7k
Forks
513
Downloads / mo
25k
Last commit
2026-08-03
License
Apache-2.0
Open issues
88

Market and trust evidence

Edition not yet matched

No exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.

Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.

In practice

Written by AI from this repository’s README · high confidence

Non deterministic agent outputs cannot be pinned down by ordinary unit tests, so regressions slip through.

Use it when

Use it when you need multi turn scenario tests, LLM as judge checks or a vulnerability scan of an agent.

Not the right pick when

v3 is a rewrite whose scanner and RAG evaluation still rely on v2, and v2 is no longer actively maintained.

Capabilities

  • scenario API with interact and check steps
  • built in checks for string match, regex, similarity and comparisons
  • LLM as judge checks such as Groundedness and Conformity
  • giskard-scan for red teaming, prompt injection and data leakage
  • multi turn conversation evaluation
  • async first modular packages

Requirements

  • Python 3.12+

Cost: Free and open source

Install

Derived from the published package name in the repository, not from a model.

Video walkthroughs

Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.

What the repository ships

Cursor rulesSecurity policyCI configured

Detected from the actual files in the repository root.

Latest release giskard-scan/v1.0.0b3

Published 2026-07-13

What's Changed

  • fix(scan): keep garak optional for CI checks and add garak-test group by @kevinmessiaen in https://github.com/Giskard-AI/giskard-oss/pull/2583
  • fix(scan): copy garak probe tags onto scenario results by @kevinmessiaen in https://github.com/Giskard-AI/giskard-oss/pull/2584
  • fix(scan): name garak check results after probe detector plugins by @kevinmessiaen in https://github.com/Giskard-AI/giskard-oss/pull/2585
  • feat(lidar): integrate lidar scan into third_party_scan by @kevinmessiaen in https://github.com/Giskard-AI/giskard-oss/pull/2588
  • feat(scan): DeepTeam third-party scan integration by @kevinmessiaen in https://github.com/Giskard-AI/giskard-oss/pull/2598

Full Changelog: https://github.com/Giskard-AI/giskard-oss/compare/giskard-agents/v1.0.2b5...giskard-scan/v1.0.0b3

Tags

README

<p align="center">

<img alt="giskardlogo" src="readme/logo_light.png#gh-light-mode-only">

<img alt="giskardlogo" src="readme/logo_dark.png#gh-dark-mode-only">

</p>

<h1 align="center" weight='300' >Evals, Red Teaming and Test Generation for Agentic Systems</h1>

<h3 align="center" weight='300' >Modular, Lightweight, Dynamic and Async-first </h3>

<div align="center">

GitHub release

License

Downloads

CI

Giskard on Discord

<a rel="me" href="https://fosstodon.org/@Giskard"></a>

</div>

<h3 align="center">

<a href="https://docs.giskard.ai/oss"><b>Docs</b></a> &bull;

<a href="https://www.giskard.ai/?utm_source=github&utm_medium=github&utm_campaign=github_readme&utm_id=readmeblog"><b>Website</b></a> &bull;

<a href="https://gisk.ar/discord"><b>Community</b></a>

</h3>

<br />

[!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 capabilities. For now, the vulnerability scanner and RAG evaluation still rely on Giskard v2.

Giskard v2 remains available but is no longer actively maintained.

Follow progress → Read the v3 Announcement · Roadmap

Install


pip install giskard

Requires Python 3.12+.

Telemetry: Libraries built on giskard-core (including giskard-checks) may send optional, aggregated usage analytics to help improve the product. No prompts, model outputs, or scenario text are included. See what is collected and how to opt out.


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 |

| -------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

| ✅ Beta | giskard-checks | Testing & evaluation — scenario API, built-in checks, LLM-as-judge |

| ✅ Beta | giskard-scan | Agent vulnerability scanner — red teaming, prompt injection, data leakage (successor of v2 Scan) |

| 📋 Planned | giskard-rag | RAG evaluation & synthetic data generation (successor of v2 RAGET) |

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).

Quickstart


from openai import OpenAI
from giskard.checks import Scenario, Groundedness

client = OpenAI()

def get_answer(inputs: str) -> str:
    response = client.chat.completions.create(
        model="gpt-5-mini",
        messages=[{"role": "user", "content": inputs}],
    )
    return response.choices[0].message.content

scenario = (
    Scenario("test_dynamic_output")
    .interact(
        inputs="What is the capital of France?",
        outputs=get_answer,
    )
    .check(
        Groundedness(
            name="answer is grounded",
            context="France is a country in Western Europe. Its capital is Paris.",
        )
    )
)

result = await scenario.run()
result.print_report()

The run() method is async. In a script, wrap it with asyncio.run(). See the full docs for Suites, LLMJudge, multi-turn scenarios, and more.


Giskard Scan — vulnerability scanner for AI agents


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 main():
    await vulnerability_scan(
        target=my_agent,
        description="A customer support chatbot for an e-commerce platform.",
        languages=["en"],
    )

asyncio.run(main())

Looking for Giskard v2?

Giskard v2 included Scan (automatic vulnerability detection) and RAGET (RAG evaluation test set generation) for both ML models and LLM applications. These features are not available in v3.


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

Scan — automatically detect performance, bias & security issues

Wrap your model and run the scan:


import giskard
import pandas as pd

# Replace my_llm_chain with your actual LLM chain or model inference logic
def model_predict(df: pd.DataFrame):
    """The function takes a DataFrame and must return a list of outputs (one per row)."""
    return [my_llm_chain.run({"query": question}) for question in df["question"]]

giskard_model = giskard.Model(
    model=model_predict,
    model_type="text_generation",
    name="My LLM Application",
    description="A question answering assistant",
    feature_names=["question"],
)

scan_results = giskard.scan(giskard_model)
display(scan_results)

<p align="center">

<img src="readme/scan_updated.gif" alt="Scan Example" width="800">

</p>

RAGET — generate evaluation datasets for RAG applications

Automatically generate questions, reference answers, and context from your knowledge base:


import pandas as pd
from giskard.rag import generate_testset, KnowledgeBase

# Load your knowledge base documents
df = pd.read_csv("path/to/your/knowledge_base.csv")
knowledge_base = KnowledgeBase.from_pandas(df, columns=["column_1", "column_2"])

testset = generate_testset(
    knowledge_base,
    num_questions=60,
    language='en',
    agent_description="A customer support chatbot for company X",
)

<p align="center">

<img src="readme/RAGET_updated.gif" alt="RAGET Example" width="800">

</p>

Full v2 docs

<h1 id="community">👋 Community</h1>

We welcome contributions from the AI community! Read this guide to get started, and join our thriving community on Discord.

Follow the progress and share feedback:

v3 Announcement · Roadmap

🌟 Leave us a star, it helps the project to get discovered by others and keeps us motivated to build awesome open-source tools! 🌟

❤️ If you find our work useful, please consider sponsoring us on GitHub. With a monthly sponsoring, you can get a sponsor badge, display your company in this readme, and get your bug reports prioritized. We also offer one-time sponsoring if you want us to get involved in a consulting project, run a workshop, or give a talk at your company.

Related tools