Skip to main content

claque

Stress-test your conversational AI agent with a crowd of simulated users, and a judge you can actually trust.

License: MIT Python 3.10+ tests docs

The claque live arena

A crowd of personas hammering an agent, graded live: solved, failed, or flagged unsafe.


Your demo shows the happy path. claque shows you everything else.

A claque was a crowd hired to react in 19th-century Paris theaters. This one is hired to break your agent: it runs a cast of persona-driven simulated users against it (the confused elder, the terse expert, the refund seeker, the prompt injector), holds a full multi-turn conversation with each, and grades every one with a calibrated LLM judge. Then it tells you where your agent fails, with a confidence interval on every number.

Quickstart

pip install git+https://github.com/pbeneteau/claque.git
claque demo --offline      # zero API calls, writes a graded HTML report

That runs eight scripted personas against a deliberately mediocre demo bot and opens a self-contained report, no credentials needed. Prefer uv? uv tool install git+https://github.com/pbeneteau/claque.git. For live runs, add the anthropic extra and drop --offline (see the full quickstart). Point it at your own agent in one line:

uv run claque run --agent https://your-api.com/chat --personas ./personas

What you get

  • A hostile crowd, not an echo chamber. Personas pin emotional state, literacy, patience, and a realistic way to give up, so a model playing "angry customer" does not thank your agent by turn three. Generate a stratified cast, or turn your own production logs into one.
  • A judge you can audit. Anchored 0-3 rubrics as reviewable YAML, evidence quoted from the transcript, and claque calibrate: Cohen's kappa against your own blind labels. Every headline number carries a 95% interval and its sample size.
  • Words vs. deeds. claque grades what the agent did, not just what it said. It catches false successes: the agent replies "your refund is processed" but never called the refund tool. A text-only grader cannot see that.
  • Grade what already happened. claque analyze points the same calibrated judge at your agent's real past transcripts (a two-voice JSONL, or pulled from Intercom/Fin), clusters them by archetype, and reports each with a sample size and interval. Test before you ship, or measure what already shipped.
  • Plug in any agent. A Python callable, an HTTP endpoint, an OpenAI-compatible server, MCP, A2A, submit-and-poll, or a Claude Agent SDK agent. The agent keeps its whole tool loop; claque only speaks user turns to it.
  • Red-team, not just QA. An adversarial pack (prompt injection, secret extraction, a Crescendo attack, PII fishing) mapped to the OWASP LLM Top 10 and the Agentic Top 10, graded on a severity scale.
  • Built for real agents. Per-turn timeouts, transient-error retries with backoff, rate limiting, --resume for a run that died halfway, and experienced-latency p50/p95, so you can point it at a production endpoint, not just a toy.
  • Surfaces that scale. A live terminal arena you can watch, and a self-contained HTML report that stays readable from 8 to 1000 conversations (archetype rollup, failure clusters, latency).
  • Close the loop. Export the failures to an SFT/DPO dataset, fine-tune, re-test, and prove the delta only counts when the intervals are disjoint.
  • Offline-first. The whole test suite (1400+ tests) runs with no credentials, no network, no spend. Deterministic scripted mode is the CI default.

Point it at your agent

An agent is anything that maps a conversation to its next reply. The --agent spec covers the common shapes without glue:

Your agent is... Spec
a deployed HTTP endpoint https://your-api.com/chat
an OpenAI-compatible server (vLLM, Groq, Mistral...) openai:your-model
Python code in your repo your_pkg.agents:support_agent
a Claude Agent SDK agent agent-sdk:config.yaml
MCP / A2A / async submit-and-poll mcp:   a2a:   async:

The config file, when there is one, is the agent's address, not the agent. See docs/adapters.md.

Why you can trust the numbers

Most LLM judges are vibes with a number attached. claque is built the other way around: it is presumed guilty until calibrated.

  • claque calibrate samples a run, serves you the transcripts in a local blind UI (the judge's score is hidden from you), and computes Cohen's kappa per criterion. It never writes a label itself.
  • claque judge selftest proves the judge is not fooled by content-free "master key" replies (a bare : fools some judges 35% of the time).
  • Until the judge is calibrated, the docs tell you to trust deltas, not absolute scores. Out loud.

Docs

Quickstart · Plug in your agent · Action verification · Retrospective analysis · Calibrating the judge · The safety pack · Writing personas · Running in CI · Claude Code plugin · Evaluation intelligence

License

MIT. Install from GitHub today (see Quickstart); a PyPI release lands with v1.

Metadata

Release files for claque 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for claque 0.0.1
File Size Uploaded Provenance
claque-0.0.1.tar.gz 1.9 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for claque 0.0.1
File Interpreter ABI Platform
claque-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.2 MB

Release files / claque-0.0.1.tar.gz

Download URL claque-0.0.1.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
409ec75f66cc9567587d617aef205853ada2b38b8fcfd83e5d00f06cf2298dbb
BLAKE2b-256 checksum
How to use checksums
b5f80c135db812c23635bb9fec4decc57d1dbcb09139e56c415fface81646749
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.

Transparency log

Release files / claque-0.0.1-py3-none-any.whl

Download URL claque-0.0.1-py3-none-any.whl
Size 306.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d2d745ae0efe8b7be0eed3f1d4913340cf3851caa92b3003d1db437b794aad80
BLAKE2b-256 checksum
How to use checksums
758cac8cdf5f1feba4d47253a7ff4869e7e9daf159fc5e316435ab096baae7a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.

Transparency log

Security for claque 0.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for claque-0.0.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page