giskard-oss

Giskard-AIApache-2.0活跃维护

开源的 LLM Agent 评测与测试库,能自动扫描模型和智能体的安全、公平性、幻觉等风险,帮团队在上线前发现并修复问题。

🐢 Open-Source Evaluation & Testing library for LLM Agents

giskard-agents/v1.0.6发布于 2026-10-25 07:34 UTC5,946star566fork同步于 2026-11-10 23:35 UTC

怎么上手

由 README 提炼,执行前请确认
pip install giskard
pip install "giskard[scan]"
硬件要求按 README 说明

README 未说明显存或 GPU 要求;仅要求 Python 3.12+,LLM 判官与扫描生成器通过 provider SDK 调用外部 API。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

面向 LLM Agent 的开源评测与红队测试库,用场景化 eval 和漏洞扫描验证非确定性输出

开源的 LLM Agent 评测与测试库,能自动扫描模型和智能体的安全、公平性、幻觉等风险,帮团队在上线前发现并修复问题。

核心能力

  • 用 Scenario 组合交互与 Check 编写 eval,支持同步与异步目标
  • 内置 Groundedness、Conformity、LLMJudge 等 LLM-as-judge 检查
  • 按自然语言描述自动生成对抗测试集,覆盖 OWASP LLM Top-10 威胁
  • 内置提示注入载荷数据集,可注册自定义 ScenarioGenerator 扩展
  • 用 quality_scan 配合 KnowledgeBase 评估 RAG 知识库质量

容易踩的坑

需 Python 3.12+,低版本环境无法安装;LLM 判官和扫描生成器要额外装 provider extra(如 giskard[openai])并配置对应 API key;v2 的表格/ML 模型自动扫描与 giskard.testing 在 v3 中不再提供,需装 giskard[llm]>2,<3。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本giskard-agents/v1.0.6
  1. giskard-agents/v1.0.6giskard-agents v1.0.6最新正式版2026-10-25 · 2026-10-25 07:34 UTC

    What's Changed

    Full Changelog: https://github.com/Giskard-AI/giskard-oss/compare/giskard-agents/v1.0.5...giskard-agents/v1.0.6

  2. giskard-agents/v1.0.5giskard-agents v1.0.52026-10-20 · 2026-10-20 11:30 UTC
    查看更新说明
  3. giskard-llm/v1.0.3giskard-llm v1.0.32026-10-20 · 2026-10-20 11:27 UTC
    查看更新说明
  4. giskard-core/v1.0.3giskard-core v1.0.32026-10-20 · 2026-10-20 11:24 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/Giskard-AI/giskard-oss/compare/giskard-checks/v1.0.6...giskard-core/v1.0.3

  5. giskard-llm/v1.0.2giskard-llm v1.0.22026-10-09 · 2026-10-09 02:12 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/Giskard-AI/giskard-oss/compare/v3.0.1...giskard-llm/v1.0.2

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    GitHub release License Downloads CI Giskard on Discord

    [!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+.

    ExtraAdds
    (none)giskard-checks and dependencies
    scangiskard-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.

    StatusPackageDescription
    ✅ Stablegiskard-checksTesting & evaluation — scenario API, built-in checks, LLM-as-judge
    ✅ Stablegiskard-scanAgent 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

    In a script without a running event loop:

    from giskard.checks import Scenario, Groundedness
    
    
    def get_answer(inputs: str) -> str:
        return "Paris"  # replace with your model / agent
    
    
    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 = scenario.run_sync()
    result.print_report()
    

    In a notebook cell or inside an async function, await the scenario instead:

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

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

    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",
    )
    

    Full v2 docs

    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.