Skip to main content
To red-team an AI agent with Giskard and abliteration.ai, point Giskard’s internal LLM — the one that writes adversarial attacks and judges your agent’s behavior — at https://api.abliteration.ai/v1 with your ak_... key, then run Giskard’s agent vulnerability scan against your agent. Your agent under test can run on any backend; abliteration.ai powers the scanner.

Install

Agent vulnerability scanning requires Giskard v3 (beta) on Python 3.12, with pydantic pinned to 2.12.x:
Newer pydantic versions (2.14+) currently crash the giskard.checks import — keep the 2.12.5 pin until Giskard v3 stabilizes. Giskard 2.x has no agent-scan API.

Set the API key

Point Giskard’s LLM at abliteration.ai

Override Giskard’s built-in openai provider alias with the abliteration.ai endpoint, and set the default generator used by all attack writers and judges:
From this point, every scenario generator, adversarial attack writer, and judge in the scan runs on abliteration.ai.

Wrap your agent

The scan target is any async callable that takes the latest user input plus a Trace, and returns the agent’s reply as a string. Rebuild multi-turn history from trace.interactions:
If the agent under test itself runs on abliteration.ai with a tool-call loop, echo back a sanitized assistant message containing only role, content, and tool_calls. The endpoint rejects requests that replay the extra fields it returns (reasoning, null content/refusal) with a 400 invalid_request error.

Run the scan

The description matters: Giskard uses it to write targeted attacks, so describe the agent’s role, tools, and sensitive operations (refunds, data lookups, admin actions).

Timebox the scan

A full scan pulls in expensive multi-turn generators and network-downloaded datasets. To keep a first run to minutes, register only the cheap generators:

Read the report

The report lists each scenario as pass/fail by threat type — prompt injection, harmful content generation, data exfiltration, and so on — with the full conversation trace for every failure.

Notes

  • Runtime — abliteration.ai models reason before answering (see thinking & reasoning effort), and the scan pays that cost on the attacker, agent, and judge calls each turn. A 3-scenario timeboxed run takes roughly 20 minutes; keep max_scenarios small while iterating.
  • Telemetry — set DO_NOT_TRACK=1 before importing Giskard to disable its telemetry.
  • Policy Gateway — policy rules attached to your API key apply to every scan request, and scan traffic shows up in your policy logs. See Policy Gateway.
Last modified on August 16, 2026