giskard-oss
开源 LLM Agent 评测框架,支持多轮对话测试与 LLM-as-Judge 自动评分
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源 LLM Agent 评测框架,支持多轮对话测试与 LLM-as-Judge 自动评分
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Giskard 开源项目 Logo
想象一下:你花了两周训练了一个 AI 客服,它能回答问题、处理投诉,看起来一切正常。但当你真正让它上线——用户问了一个边界问题,它可能就会「一本正经胡说八道」,甚至暴露不该说的信息。这种风险在 AI 应用遍地开花的今天,已经不是小概率事件。
Giskard 就是来解决这个问题的。它是一个开源的 Python 库,专门用于对 LLM(大型语言模型)和 AI Agent(人工智能智能体)进行系统性评测、红队测试和安全扫描。目前 GitHub 标星超过 5400,Apache-2.0 开源协议,由法国巴黎的 Giskard AI 团队维护,社区活跃度较高。
Giskard 最初诞生于 2022 年,最初的目标是对传统机器学习模型做质量检测——发现模型偏差(bias)、性能问题、安全漏洞。随着 LLM 和 AI Agent 热潮席卷行业,团队意识到传统的 ML 测试方法已经不够用了。LLM 的输出是非确定性的,同样的输入每次可能得到不同的回答,这打破了传统测试框架的基本假设。
因此 Giskard 在 2025 年推出了 v3 重写版,彻底抛弃了沉重的旧架构,采用「模块化」的思路重新设计。v3 的核心理念是:轻量、动态、异步优先,只加载你真正需要的功能。目前 v3 包含四个核心子包,分别负责不同职责。
Giskard v3 采用 monorepo 结构,将核心功能拆分为四个独立但可组合的子包:
| 包名 | 状态 | 职责 |
|---|---|---|
giskard-core | 核心基础 | 提供共享的工具和基础组件,所有其他包都依赖它 |
giskard-llm | Beta | 轻量级 LLM 路由层,封装 OpenAI/Anthropic/Google 等多厂商 SDK |
giskard-agents | Beta | 并行工作流编排引擎,负责多步骤 Agent 的协调执行 |
giskard-checks | Beta | 评测核心包,提供 Scenario API 和内置检查器 |
giskard-scan | 开发中 | Agent 漏洞扫描器,继承 v2 的自动漏洞检测能力 |
giskard-rag | 规划中 | RAG 评测与合成数据生成 |
这套设计的好处是按需安装——如果你只需要测试 RAG 质量,不需要安装整个扫描工具链。Python 3.12+ 是唯一的前置要求,pip install giskard 即可体验完整功能。
Giskard v3 的核心接口是 Scenario——你可以把它理解为一个测试「剧本」。每个剧本包含三个要素:输入(用户问的问题)、输出(AI 的回答)和检查项(你要验证的标准)。
from giskard.checks import Scenario, Groundedness
# 定义被测系统
def get_answer(inputs: str) -> str:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": inputs}],
)
return response.choices[0].message.content
# 编写测试剧本
scenario = (
Scenario("test_paris_capital")
.interact(
inputs="法国的首都是哪里?",
outputs=get_answer,
)
.check(
Groundedness(
name="答案有据可查",
context="法国是西欧国家,首都是巴黎。",
)
)
)
result = await scenario.run()
result.print_report()
这段代码创建了一个测试场景:向 AI 提问「法国的首都是哪里」,然后验证回答是否基于给定的上下文。「Groundedness」(有据可查)是 Giskard 内置的 LLM-as-Judge 检查项之一,会自动调用另一个 LLM 来评判回答质量。
Giskard 提供了多种开箱即用的检查器:
值得注意的是,Scenario API 是异步优先设计的,.run() 方法返回的是一个协程,在脚本中需要用 asyncio.run() 包装。这意味着 Giskard 天生支持并发测试大量场景。
与 v2 相比,v3 的重要升级在于支持多轮 Agent 评测。你可以编写一个包含多轮交互的对话脚本,让 AI Agent 在多轮对话中执行复杂任务(如客服处理投诉、代码调试),然后对整个对话链路进行评估。这对于测试真正落地的 AI 应用至关重要,因为真实场景几乎都是多轮交互。
Giskard v3 的依赖策略非常克制。核心依赖只有:
各子包的依赖非常清晰:giskard-llm 本身几乎没有依赖(LLM SDK 作为可选依赖),giskard-core 也只依赖 Pydantic。整体项目不依赖 PyTorch/TensorFlow 这类重型 ML 框架,体现了「只带需要的」设计哲学。
代码质量方面,项目配置了完整的 pre-commit hooks(ruff、pyright、mypy),CI/CD 流程使用 GitHub Actions,覆盖单元测试和集成测试,代码风格统一规范。
Giskard 没有任何 Web UI 或 Docker 部署选项,这既是缺点也是优点。对于开发团队而言,在 CI/CD pipeline 中集成 Giskard 是最自然的使用方式——每次代码变更后自动运行评测套件,回归问题无处遁形。
安装只需一行命令:
pip install giskard # 安装完整包
pip install giskard-checks # 只安装测试包
如果想使用特定模型厂商:
pip install giskard-checks[openai] # OpenAI 模型
pip install giskard-checks[anthropic] # Claude 模型
pip install giskard-checks[all] # 所有厂商
唯一的前置要求是 Python 3.12+,对内存和磁盘的需求极低(~512MB RAM,~200MB 磁盘),不需要 GPU。这种轻量化设计让 Giskard 可以轻松集成到任何开发环境中。
Giskard v3 目前仍在 Beta 阶段,v2 版本的 Scan(自动漏洞扫描)和 RAGET(RAG 测试集生成)功能仍在 v2 中可用,且 v2 暂时不再活跃维护。对于需要这些高级功能的用户,可以通过以下方式安装 v2:
pip install "giskard[llm]>2,<3"

图2:RAGET 功能演示
Scan 功能特别值得关注——它能自动检测模型中的偏差、安全漏洞和性能问题,无需手动编写测试用例。v2 的 Scan 覆盖了上百种风险维度,是 Giskard 最受欢迎的功能之一。

图3:Scan 自动漏洞检测界面
Giskard v3 并非没有短板:
1. 生态尚在成熟中 v3 于 2025 年重写,目前仍有部分关键功能(giskard-scan、giskard-rag)在开发中。如果你的团队依赖 v2 的 Scan 和 RAGET 能力,需要并行维护两套工具链。
2. 依赖外部 LLM 做评判 Groundedness、LLMJudge 等 LLM-as-Judge 功能需要调用额外的 LLM API(如 GPT-4o),会产生额外的 API 调用成本。评判质量高度依赖评判模型的能力。
3. 无商业托管服务 与同类产品如 Braintrust、PromptFury 等相比,Giskard 缺乏云端托管和可视化平台,对于不想自建基础设施的团队吸引力有限。
4. 文档分散 v3 的文档站点与 v2 的 legacy 文档并存,部分内容指向不同的文档地址,新用户可能困惑。
LLM 评测是 2024-2025 年 AI 领域最热门的方向之一。随着 Claude Code、Cursor、GPT-4o 等 AI 编程工具大量进入生产环境,AI 系统的质量保障从「可选项」变成了「必选项」。传统软件测试方法(单元测试、集成测试)无法捕捉 LLM 的非确定性和潜在危害——你需要专门为 AI 设计的新型测试框架。
Giskard 站在这个趋势的前沿。它的开源属性意味着任何组织——从初创公司到大型企业——都可以免费建立自己的 AI 测试体系,不被单一供应商绑定。在 AI 安全合规要求日益严格的背景下(如 EU AI Act),Giskard 这样的工具将成为 AI 工程化基础设施的重要组成部分。
Giskard 是一个专注于 LLM 和 AI Agent 评测的开源 Python 库,提供 Scenario API、内置检查器、LLM-as-Judge 等能力,支持单轮和多轮对话测试。v3 版本采用模块化 monorepo 架构,按需安装,依赖极轻。适合 AI 工程团队、质量保障团队和安全研究人员使用。对于需要自动漏洞扫描和 RAG 评测的用户,仍可并行使用 v2 版本。