
🐢 LLM 에이전트용 오픈소스 평가 및 테스트 라이브러리
[!IMPORTANT] Giskard v3는 AI 에이전트의 동적이고 다중 턴 테스트를 위해 설계된 완전히 새로 작성된 버전입니다. 이 릴리스는 더 나은 효율성을 위해 무거운 의존성을 제거하는 동시에 더 강력한 AI 취약점 스캐너와 향상된 RAG 평가를 도입했습니다. 두 기능 모두 이제 v2에 대한 의존성 없이
giskard-scan에 기본으로 제공됩니다. 표 형식/ML 모델을 위한 레거시 스캔만이 여전히 v2 전용입니다. Giskard v2는 계속 사용할 수 있지만 더 이상 적극적으로 유지 관리되지 않습니다. 진행 상황 팔로우 → v3 발표 읽기 · 로드맵
pip install giskard # checks (+ agents, llm, core)
pip install "giskard[scan]" # + vulnerability / quality scan
pip install "giskard[openai]" # provider SDK for LLM judges / generators
Python 3.12+가 필요합니다.
| 추가 항목 | 추가되는 내용 |
|---|---|
| (없음) | giskard-checks 및 종속성 |
scan | giskard-scan |
openai / anthropic / … | 제공자 SDK (pyproject.toml의 선택적 종속성 참조) |
텔레메트리: giskard-core를 통한 선택적 집계 분석. 프롬프트나 출력은 전송되지 않습니다.
export DO_NOT_TRACK=1 또는 export GISKARD_TELEMETRY_DISABLED=1로 옵트아웃할 수 있습니다(또는 작업 디렉터리의 .env 파일에 동일한 키 설정). ~/.giskard/id 생성을 건너뛰려면 import 전에 설정하세요. 나중에 설정해도 추가 전송은 중단됩니다.
자세한 내용: giskard-core README.
Giskard는 에이전트 시스템을 테스트하고 평가하기 위한 오픈소스 Python 라이브러리입니다. v3 아키텍처는 각각 필요한 종속성만 포함하는, 목적에 집중한 모듈형 패키지 집합으로, LLM, 블랙박스 에이전트, 다단계 파이프라인 등 무엇이든 감쌀 수 있도록 처음부터 구축되었습니다.
| 상태 | 패키지 | 설명 |
|---|---|---|
| ✅ 안정 | giskard-checks | 테스트 및 평가 — 시나리오 API, 내장 검사, LLM-as-judge |
| ✅ 안정 | giskard-scan | 에이전트 취약점 스캐너 + RAG/품질 평가 — 레드 팀잉, 프롬프트 인젝션, 탈옥 및 유해 콘텐츠(v2 Scan의 후속인 vulnerability_scan), 그리고 지식 기반 품질 평가(v2 RAGET의 후속인 quality_scan) |
이들은 세 가지 기반 라이브러리 — giskard-core(공유 유틸리티 및 텔레메트리), giskard-llm(제공자 독립적 LLM 라우팅), giskard-agents(에이전트 및 워크플로 오케스트레이션) — 위에 구축되며, 이들은 자동으로 가져와지고 직접 사용되는 경우는 드뭅니다.
pip install giskard-checks
**Giskard Checks**는 LLM 기반 시스템을 테스트하는 평가(eval)를 만들기 위한 경량 라이브러리로, 단순한 검증(assertion)부터 LLM-as-judge 평가까지 지원합니다. 전통적인 단위 테스트와 달리, eval은 동일한 입력이 서로 다른 유효한 응답을 생성할 수 있는 비결정적 출력을 위해 설계되었습니다.
Giskard Checks를 사용하여:
내장 eval에는 문자열 매칭, 비교, 정규식, 의미적 유사도, LLM-as-judge 검사(Groundedness, Conformity, LLMJudge)가 포함됩니다.
(inputs) -> outputs (선택적으로 trace 포함)giskard.agents.Generator는 워크플로/판정을 위한 LLM 클라이언트로,
사용자 메시지를 합성하는 giskard.checks 입력 생성기(LLMGenerator)와는 다릅니다.
실행 중인 이벤트 루프가 없는 스크립트에서:
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()
노트북 셀이나 비동기 함수 내부에서는 대신 시나리오를 await하세요:
result = await scenario.run()
result.print_report()
Groundedness는 LLM 판정기입니다 — 제공자 추가 패키지를 설치하고(예: pip install "giskard[openai]") 해당 API 키를 설정하세요. 기본 모델: openai/gpt-4o-mini.
Suites, LLMJudge, 멀티턴 시나리오 등에 대한 내용은 전체 문서를 참조하세요.
pip install "giskard[scan]" # or: pip install giskard-scan
Giskard Scan은 에이전틱 시스템을 위한 레드팀 및 취약점 스캐닝 계층입니다. 에이전트에 대한 평이한 언어 설명으로부터 프롬프트 인젝션, 유해 콘텐츠, 고정관념, 허위 정보 등을 포괄하는 적대적 테스트 스위트를 자동으로 생성합니다.
Giskard Scan을 사용하여:
ScenarioGenerator 인스턴스를 generate_suite에 전달하거나 vulnerability_suite_generator_registry에 등록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())
스캔 생성기 역시 LLM 제공자 추가 패키지와 API 키가 필요합니다(위의 Checks 판정기와 동일).
Giskard v2에는 Scan(자동 취약점 탐지)과 RAGET(RAG 평가 테스트 세트 생성)이 포함되어 있었습니다.
LLM 에이전트의 경우, v3에서는 두 기능 모두 giskard-scan으로 대체되었습니다. v2의 LLM 스캔 대신 vulnerability_scan을 사용하고, RAGET 대신 quality_scan(KnowledgeBase와 함께)을 사용하세요.
v3는 ML 모델과도 함께 작동합니다. 모델을 타깃으로 감싸서 giskard-checks 또는 giskard-scan으로 평가하면 됩니다. 아래 예제에서 다루는 내용은 v2 전용 자동 테이블형 스캔 — giskard.Model + giskard.Dataset을 검사하여 성능, 편향, 견고성 문제를 자동 탐지하는 탐지기 모음 — 과 giskard.testing ML 테스트 모음, 그리고 Giskard Hub입니다. 이들은 v3에 계획되어 있지 않습니다.
pip install "giskard[llm]>2,<3"
모델을 감싸고 스캔을 실행하세요:
import giskard
import pandas as pd