Skip to main content

Kneepoint

Find where your AI agent breaks. Load testing, cost-per-resolved-task, and chaos engineering for AI agents.

PyPI CI Python License: MIT

kneepoint demo

Your agent passes its evals at concurrency 1. Kneepoint answers the three questions that decide whether it survives production:

  1. The Knee Point — the concurrency where latency (and quality) stops being flat and starts to cliff. Every agent has one; almost nobody knows theirs.
  2. $ / Resolved Task — spend divided by tasks actually solved, not tokens, not requests. Retries and failures make these numbers wildly different.
  3. Resilience Score — how much resolution rate survives injected chaos: rate limits, server errors, tool timeouts, malformed tool JSON.

Quickstart (zero API keys)

pip install kneepoint
kneepoint demo          # bundled agent + chaos + full report, ~90 seconds

The demo spins up a deliberately naive agent, injects faults into its LLM calls and its tool calls, and opens a report answering all three questions. Nothing leaves your machine; no keys, no spend.

report

Against your own agent

kneepoint init                            # starter kneepoint.yaml + prompt corpus
kneepoint run --scenario kneepoint.yaml   # ramp, judge, price, report

Any OpenAI-compatible endpoint works as a target. A scenario is one YAML file:

target:
  url: http://127.0.0.1:8000/v1
  model: my-agent

workload:
  ramp: {from: 1, to: 50, step: 5, hold_seconds: 20}
  conversation:
    turns: {min: 1, max: 3}                       # multi-turn: context grows
    corpus: ./prompts/*.txt                       # real prompt distribution

resolution:
  check: {kind: contains, value: "[RESOLVED"}     # or a regex, or an LLM judge

cost:
  input_per_mtok: 3.00
  output_per_mtok: 15.00
  max_spend: 0.50                                 # hard cap: run stops if crossed

chaos:
  profile: standard                               # 429s, 503s, tool faults

slo:
  min_resolution_rate: 0.90                       # breach -> exit code 1 (CI gate)

Example scenarios: support bot · RAG agent · agent with MCP tools

CI gate

Kneepoint exits non-zero when your agent regresses — wire it into CI like any other test:

- run: pip install kneepoint
- run: kneepoint run --scenario kneepoint.yaml --out reports
- uses: actions/upload-artifact@v4
  if: always()
  with: {name: kneepoint-report, path: reports/}

Exit codes: 0 pass · 1 SLO breach · 2 usage error · 3 budget cap hit. Full CI docs →

How it's different

Kneepoint k6 / Locust Eval platforms Observability
Concurrency ramps + knee detection
Multi-turn sessions with growing context some, at n=1
Task-resolution quality under load quality, no load
$/resolved task + retry waste after the fact
LLM + tool-layer chaos injection

Different layers, honestly: evals tell you the agent can do the task; observability tells you what happened in prod. Kneepoint tells you where it breaks before prod does. Use all three.

Roadmap

  • The Kneepoint Index — published knee/$/resilience benchmarks of popular agent frameworks
  • Native MCP target adapter (fault-inject MCP tool calls first-class)
  • More injectors: stream_cut, tool_error, tool_stale_data, slow_tokensgood first issues
  • N-run variance mode

Contributing

pip install -e ".[dev]", then ruff check . && pytest -q — the whole suite runs against a bundled mock agent, $0 and no keys. See CONTRIBUTING.md; new fault injectors are the perfect first PR.

Built in public — follow along at kneepoint.dev. MIT licensed.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kneepoint-0.1.0.tar.gz (296.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kneepoint-0.1.0-py3-none-any.whl (41.5 kB view details)

Uploaded Python 3

File details

Details for the file kneepoint-0.1.0.tar.gz.

File metadata

  • Download URL: kneepoint-0.1.0.tar.gz
  • Upload date:
  • Size: 296.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for kneepoint-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0ed8a0e047d5970ccea4be5190f99300792467689fa8de18af6faa7b37fb8827
MD5 050c36a0ab9637b7a596fe5ae9efe59c
BLAKE2b-256 3d66adcd6f326f699bd363ab9b2baf3fd779aa6df5e610e15744af503e70fa68

See more details on using hashes here.

File details

Details for the file kneepoint-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: kneepoint-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for kneepoint-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6339e03f53f023e7b52e95b4b53a8061659877acfed9ea19e4b32efada086785
MD5 bc2934d6b885f9603facc7ddea531872
BLAKE2b-256 8cccf45ce11b66336386f2065047836105a64409b763464c69c66b22a9764515

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

0.0.1

2 files

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