Observed since 20 Oct, 22:01 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Chaos engineering for AI agents — inject realistic production failures (tool timeouts, malformed responses, cost spirals, prompt injection) and find out what breaks before your users do.
Chaos engineering for AI agents.
Your agent works in the demo. In production it breaks because a tool times out,
an API returns garbage JSON, a user injects a prompt, or it spirals into an
infinite tool-call loop burning $200 in tokens. agentfuzz finds those failures
before your users do.
Netflix built Chaos Monkey because cloud apps that passed unit tests still went down in production — the failures were in the seams between systems, not the systems themselves. AI agents have the same problem, with a worse blast radius:
IGNORE PREVIOUS INSTRUCTIONS → your support agent emails the customer your system prompt.These failures don't show up in unit tests because unit tests assume the seams
work. agentfuzz deliberately breaks the seams.
Wrap your agent. Pick a fault profile. Run. Get a report.
from agentfuzz import Harness, faults
harness = Harness(my_agent)
harness.add(faults.ToolTimeout(rate=0.10))
harness.add(faults.MalformedToolResponse(rate=0.05))
harness.add(faults.PromptInjection.suite("owasp-llm01"))
harness.add(faults.CostSpiral(max_tokens=50_000))
harness.add(faults.LatencyJitter(p99_ms=8000))
harness.add(faults.PartialToolFailure())
report = harness.run(scenarios="tau-bench-airline", iterations=200)
report.html("./report.html")
You get:
pip install agentfuzz # core
pip install "agentfuzz[langgraph]" # + LangGraph adapter
pip install "agentfuzz[crewai]" # + CrewAI adapter
pip install "agentfuzz[autogen]" # + AutoGen adapter
pip install "agentfuzz[all]" # everything
from agentfuzz import Harness, faults
from my_app import build_agent
harness = Harness(build_agent())
harness.add(faults.MalformedToolResponse(rate=0.2))
harness.add(faults.ToolTimeout(rate=0.1))
result = harness.run(iterations=50)
print(result.summary())
# >>> agentfuzz: 32/50 passed (64%)
# >>> MalformedToolResponse: 8 failures
# >>> - 5× hallucinated arguments
# >>> - 3× silent corruption
# >>> ToolTimeout: 10 failures
# >>> - 7× retry storm (avg 14 retries)
# >>> - 3× infinite loop killed at max_tokens
| Fault | What it simulates |
|---|---|
ToolTimeout | A downstream API hangs past the agent's patience |
MalformedToolResponse | Garbage JSON, truncated payloads, wrong schema |
PartialToolFailure | Tool returns 200 then errors mid-stream |
LatencyJitter | Realistic p50 / p99 latency distribution |
CostSpiral | Detects runaway token usage above a threshold |
PromptInjection | OWASP LLM01 catalog of injection payloads |
PromptParaphrase | Real users mangle messages — typos, filler, contractions |
RateLimitBurst | Cascading 429s from upstream APIs |
SchemaDrift | Tool API changed shape between dev and prod |
AuthExpiry | 401 / 403 — tests credential-refresh paths |
NetworkPartition | Connection refused / TLS error — distinct from timeout |
More planned — see the roadmap.
create_agent (1.x) — agentfuzz[langgraph]. The modern entry point. Wrap your tools with wrap_tools(), point LangGraphAdapter at the compiled graph.create_react_agent (0.x) — same adapter; both APIs return a CompiledStateGraph we handle uniformly. See examples/langgraph_react_agent.py.agentfuzz[crewai]. wrap_tools() returns proxy crewai.tools.BaseTool instances; CrewAIAdapter(crew) drives the harness through crew.kickoff(). See examples/crewai_agent.py.agentfuzz[autogen]. wrap_tools() returns proxy autogen_core.tools.FunctionTool instances; AutoGenAdapter(agent) drives any agent / team exposing async run(task=...). See examples/autogen_agent.py.Callable[[State], State]. Simplest way to try the tool.The adapter interface is small (is_available() + wrap()); PRs welcome.
Alpha (v0.1). API will change. Built and tested on Python 3.10–3.13. The fault catalog is informed by production multi-agent deployments at enterprise scale — but every codebase fails in its own special way, so file issues when you find a fault we should ship.
I've spent the last decade architecting AI systems for enterprises — including multi-agent platforms running across 2,600+ production sites. The failures that hurt are almost never the ones the unit tests check for. They're the quiet, partial, half-degraded ones in the seams.
This is the tool I wish I'd had.
Apache 2.0. Use it commercially. Cite it in papers. Build a paid product on top. Just don't claim you wrote it.
If you use agentfuzz in research or production reports:
@software{agentfuzz,
author = {Tirumalasetti, Pavan Subhash},
title = {agentfuzz: Chaos engineering for AI agents},
year = {2026},
url = {https://github.com/SubhashPavan/agentfuzz},
}
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.4.0 | 18 May 2026 | 14 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 22:01 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:0e7701f9f5c0ac8674da721ff9ee4cb036720d3d0c58a92d0c351670e736a844