Zurück zu den Updates
New releaseSep 15, 2026

giskard-oss giskard-checks/v1.0.4

🐢 Open-Source-Bibliothek für Evaluierung & Tests von LLM-Agenten

Teilen

giskardlogo giskardlogo

Evals, Red Teaming und Testgenerierung für agentische Systeme

Modular, leichtgewichtig, dynamisch und async-first

GitHub release License Downloads CI Giskard on Discord

DokumentationWebsiteCommunity


[!IMPORTANT] Giskard v3 ist eine vollständige Neuentwicklung, die für dynamische Multi-Turn-Tests von KI-Agenten entwickelt wurde. Diese Version entfernt schwere Abhängigkeiten für mehr Effizienz und führt gleichzeitig einen leistungsfähigeren KI-Schwachstellenscanner und eine verbesserte RAG-Evaluierung ein – beide jetzt nativ in giskard-scan enthalten, ohne Abhängigkeit von v2. Nur der Legacy-Scan für tabellarische/ML-Modelle bleibt v2-exklusiv. Giskard v2 bleibt verfügbar, wird aber nicht mehr aktiv gewartet. Fortschritt verfolgen → Lies die v3-Ankündigung · Roadmap

Installation

pip install giskard           # checks (+ agents, llm, core)
pip install "giskard[scan]"   # + vulnerability / quality scan
pip install "giskard[openai]" # provider SDK für LLM-Judges / Generatoren

Erfordert Python 3.12+.

ExtraFügt hinzu
(keines)giskard-checks und Abhängigkeiten
scangiskard-scan
openai / anthropic / …Provider-SDKs (siehe optionale Abhängigkeiten in pyproject.toml)

Telemetrie: optionale aggregierte Analysen über giskard-core. Es werden keine Prompts oder Ausgaben gesendet. Deaktivieren vor dem Import von Giskard: export DO_NOT_TRACK=1 oder export GISKARD_TELEMETRY_DISABLED=1. Details: giskard-core README.


Giskard ist eine Open-Source-Python-Bibliothek zum Testen und Evaluieren agentischer Systeme. Die v3-Architektur ist ein modularer Satz fokussierter Pakete – jedes trägt nur die Abhängigkeiten, die es benötigt – von Grund auf neu gebaut, um alles zu umhüllen: ein LLM, einen Black-Box-Agenten oder eine mehrstufige Pipeline.

StatusPaketBeschreibung
✅ Stabilgiskard-checksTesten & Evaluierung – Szenario-API, integrierte Checks, LLM-as-Judge
✅ Stabilgiskard-scanAgent-Schwachstellenscanner + RAG/Qualitäts-Evaluierung – Red Teaming, Prompt Injection, Jailbreaks & schädliche Inhalte (vulnerability_scan, Nachfolger des v2 Scan), plus Wissensbasis-Qualitäts-Evaluierung (quality_scan, Nachfolger von v2 RAGET)

Diese bauen auf drei grundlegenden Bibliotheken auf – giskard-core (gemeinsame Dienstprogramme & Telemetrie), giskard-llm (provider-agnostisches LLM-Routing) und giskard-agents (Agenten- & Workflow-Orchestrierung) – die automatisch mitinstalliert werden und selten direkt verwendet werden.

Giskard Checks – Evals erstellen und anwenden zum Testen von Agenten

pip install giskard-checks

Giskard Checks ist eine leichtgewichtige Bibliothek zum Erstellen von Evaluierungen (Evals), die LLM-basierte Systeme testen – von einfachen Assertions bis hin zu LLM-as-Judge-Bewertungen. Im Gegensatz zu herkömmlichen Unit-Tests sind Evals für nicht-deterministische Ausgaben konzipiert, bei denen dieselbe Eingabe verschiedene gültige Antworten erzeugen kann.

Verwende Giskard Checks, um:

  • Regressionen zu erkennen – zu überprüfen, ob dein System nach Änderungen weiterhin korrekt funktioniert
  • RAG-Qualität zu validieren – zu prüfen, ob Antworten im abgerufenen Kontext verankert sind
  • Sicherheitsregeln durchzusetzen – sicherzustellen, dass Ausgaben deinen Inhaltsrichtlinien entsprechen
  • Multi-Turn-Agenten zu evaluieren – vollständige Konversationen zu testen, nicht nur einzelne Austausche

Integrierte Evals umfassen String-Matching, Vergleiche, Regex, semantische Ähnlichkeit und LLM-as-Judge-Checks (Groundedness, Conformity, LLMJudge).

Konzepte

  • Target – dein zu testendes System: jeder synchrone/async aufrufbare (inputs) -> outputs (optional mit trace)
  • Szenario – eine Evaluierung: Interaktionen + Checks
  • Check – Assertion oder LLM-Judge über den Trace
  • Suite – viele Szenarien, die zusammen ausgeführt werden

giskard.agents.Generator ist ein LLM-Client für Workflows/Judges – nicht dasselbe wie die Eingabegeneratoren von giskard.checks (LLMGenerator), die Benutzernachrichten synthetisieren.

Schnellstart

import asyncio
from giskard.checks import Scenario, Groundedness


def get_answer(inputs: str) -> str:
    return "Paris"  # durch dein Modell / deinen Agenten ersetzen


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 ist ein LLM-Judge – installiere ein Provider-Extra (z. B. pip install "giskard[openai]") und setze den passenden API-Schlüssel. Standardmodell: openai/gpt-4o-mini.

Siehe die vollständige Dokumentation für Suites, LLMJudge, Multi-Turn-Szenarien und mehr.


Giskard Scan – Schwachstellenscanner für KI-Agenten

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

Giskard Scan ist die Red-Teaming- und Schwachstellen-Scanning-Ebene für agentische Systeme. Es generiert automatisch adversarial Test-Suites aus einer Beschreibung deines Agenten in natürlicher Sprache, die Prompt Injection, schädliche Inhalte, Stereotype, Fehlinformationen und mehr abdecken.

Verwende Giskard Scan, um:

  • Deinen Agenten red-teamen – automatisch adversarial Eingaben über die OWASP-LLM-Top-10-Bedrohungskategorien generieren
  • Prompt-Injection-Sonden auszuführen – integrierter Datensatz von Injection-Payloads, einsatzbereit
  • Mit benutzerdefinierten Generatoren zu erweitern – eigene ScenarioGenerator-Instanzen an generate_suite übergeben oder sie im vulnerability_suite_generator_registry registrieren

Schnellstart

import asyncio
from giskard.scan import vulnerability_scan


async def my_agent(inputs: str) -> str:
    # Durch deinen Agenten / Modellaufruf ersetzen
    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-Generatoren benötigen ebenfalls ein LLM-Provider-Extra und einen API-Schlüssel (wie die Checks-Judges oben).

Du suchst Giskard v2?

Giskard v2 enthielt Scan (automatische Schwachstellenerkennung) und RAGET (RAG-Evaluierungs-Testsetgenerierung).

Für LLM-Agenten werden beide in v3 durch giskard-scan ersetzt: Verwende vulnerability_scan anstelle des v2-LLM-Scans und quality_scan (mit KnowledgeBase) anstelle von RAGET.

v3 funktioniert auch mit ML-Modellen – umhülle eines als Target und evaluiere es mit giskard-checks oder giskard-scan. Was die folgenden Beispiele abdecken, ist der nur in v2 verfügbare automatische tabellarische Scan – die Detektor-Suite, die ein giskard.Model + giskard.Dataset untersucht, um automatisch Leistungs-, Bias- und Robustheitsprobleme zu erkennen – zusammen mit der giskard.testing-ML-Testsuite und dem Giskard Hub. Diese sind für v3 nicht geplant.

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

Scan – Leistungs-, Bias- und Sicherheitsprobleme automatisch erkennen

Umhülle dein Modell und führe den Scan aus:

import giskard
import pandas as pd


# Ersetze my_llm_chain durch deine tatsächliche LLM-Kette oder Modell-Inferenzlogik
def model_predict(df: pd.DataFrame):
    """Die Funktion nimmt einen DataFrame entgegen und muss eine Liste von Ausgaben zurückgeben (eine pro Zeile)."""
    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)

Scan Example

RAGET – Evaluierungsdatensätze für RAG-Anwendungen generieren

Automatisch Fragen, Referenzantworten und Kontext aus deiner Wissensbasis generieren:

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

# Lade deine Wissensbasis-Dokumente
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",
)

RAGET Example

Vollständige v2-Dokumentation

👋 Community

Wir freuen uns über Beiträge aus der KI-Community! Lies diesen Leitfaden, um loszulegen, und tritt unserer lebendigen Community auf Discord bei.

Verfolge den Fortschritt und teile Feedback: v3-Ankündigung · Roadmap

🌟 Hinterlasse uns einen Stern, das hilft dem Projekt, von anderen entdeckt zu werden, und motiviert uns, großartige Open-Source-Tools zu bauen! 🌟

❤️ Wenn du unsere Arbeit nützlich findest, erwäge bitte, uns auf GitHub zu sponsern. Mit einem monatlichen Sponsoring kannst du ein Sponsor-Abzeichen erhalten, dein Unternehmen in dieser README anzeigen lassen und deine Bug-Reports priorisiert bekommen. Wir bieten auch einmaliges Sponsoring an, wenn du möchtest, dass wir uns in ein Beratungsprojekt einbringen, einen Workshop durchführen oder einen Vortrag bei deinem Unternehmen halten.

Kategorien