Discover / LLM Ops & Observability
Giskard
by Giskard-AIPython
Open source testing framework to detect vulnerabilities and evaluate quality of LLM and ML models.
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 matchedNo 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 confidenceNon 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
Giskard AI Evaluation Framework
AI Red Teaming — Why & How to Jailbreak LLM Agents | Alex Combessie, Giskard l The Next Wave of AI
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
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">
<a rel="me" href="https://fosstodon.org/@Giskard"></a>
</div>
<h3 align="center">
<a href="https://docs.giskard.ai/oss"><b>Docs</b></a> •
<a href="https://www.giskard.ai/?utm_source=github&utm_medium=github&utm_campaign=github_readme&utm_id=readmeblog"><b>Website</b></a> •
<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 withasyncio.run(). See the full docs forSuites,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
ScenarioGeneratorinstances togenerate_suite, or register them onvulnerability_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>
<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:
🌟 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.