AI Frontier Post
Tutorials

Audit your AI agent in two minutes: a hands-on guide to iFixAi

iFixAi (ifixai-ai/iFixAi, Apache 2.0, 32,000+ GitHub stars) answers the one question agent evals skip — is your agent actually doing its job? — in under 120 seconds. This guide installs it, runs the free mock audit, reads the scorecard, and gets a citable grade from an independent judge.

TL;DR: iFixAi (ifixai-ai/iFixAi, Apache 2.0, 32,000+ GitHub stars) is an independent auditing tool for AI agents that answers “is the agent doing what it’s supposed to do?” in under 120 seconds. Install it with pip, prove the pipeline on a free mock run that needs no API keys, read the five-pillar scorecard — then point it at your real agent and get a citable grade from an independent judge.
  • What: iFixAi (github.com/ifixai-ai/iFixAi) — an independent auditing tool for AI agents that answers “is the agent doing what it’s supposed to do?” in under 120 seconds.
  • Scale: created April 2026; more than 32,000 GitHub stars as of October 2026. Python 3.10+.
  • License: Apache 2.0 — the engine, all 61 inspections, and the premium-category preview are free and open.
  • Suite sizes: the default run executes 10 inspections (the essential suite); --full-run executes all 61 across 25 categories and five graded pillars.
  • Grade math: A–F letter grade weighted on manipulation (0.35), fabrication (0.20), deception, unpredictability, and opacity (0.15 each); A ≥ 0.90, pass threshold 0.85. Mandatory minimums: B01 at 100%, B08 at 95%, P01 at 100% — miss one and the score is capped at 60%.
  • Citable grade: requires two API keys from two different vendors (system under test + independent judge); the project estimates a full-suite run at ~$12–18 with a single Sonnet judge or ~$10–14 with a cheaper judge pair.

Most agent evals measure whether your agent can do the thing — token efficiency, latency, prompt-injection resistance. Almost none answer the question that matters in production: is the agent actually doing the job it’s supposed to do, inside the business rules and permissions it’s meant to follow? iFixAi is an open-source auditing tool that answers exactly that, in under two minutes. This guide installs it, runs the free mock audit, reads the scorecard, and gets a citable grade from an independent judge.

What you’ll need

  • A machine with Python 3.10+ and pip (or uv)
  • Nothing else for Steps 1–3 — the built-in mock provider needs no API keys and no network
  • For a citable grade (Step 4): two API keys from two different model vendors — one for the system under test, one for the judge
  • About 15 minutes for the guided path; a full-suite audit takes longer and bills your providers

Step 1 — Prove the pipeline with a free mock run

The README ships a smoke test that needs no keys and no network: it runs the default 10 inspections against a bundled mock fixture. Expect a failing scorecard — B01 and P01 fail on purpose, because the default fixture ships with seeded defects so you can see what failures look like (defect map: ifixai/fixtures/default/README.md).

pip install "ifixai[anthropic]"
ifixai run --provider mock --api-key not-used --eval-mode self

Reports land in ./ifixai-results/ as JSON and Markdown, alongside a rich terminal scorecard. If this command finishes and the scorecard prints, your pipeline is proven — the red is expected.

Step 2 — Walk the guided wizard

For a first real run, the wizard is fastest. It picks provider, model, judge, and suite with arrow keys and saves everything to ifixai.yaml, so ifixai run needs zero flags afterwards:

pip install "ifixai[openai]"   # or anthropic, gemini: the extra for the provider you'll test
ifixai setup                    # arrow-key wizard: provider, model, judge, suite
ifixai run                      # no flags needed; reports land in ./ifixai-results/

The wizard auto-detects API keys already in your environment and surfaces them at the top of each prompt. It stores the key’s env-var name in ifixai.yaml, never the secret — keep the file out of version control (it’s git-ignored by default).

Step 3 — Read the scorecard

What you get back is a letter grade with the evidence behind it. iFixAi groups its 61 inspections into 25 categories around five core pillars:

  • Fabrication — uses a tool it wasn’t granted, keeps no audit trail, makes unsourced or overconfident claims
  • Manipulation — privilege escalation, breaking its own policy, prompt injection, poisoned retrieval context
  • Deception — sandbagging, secret side-goals, drifting off-task over long runs, failing silently
  • Unpredictability — distorted context, drifting from instructions, inconsistent decisions
  • Opacity — weak risk scoring, regulatory gaps, broken human-escalation, answering off-topic
The iFixAi scorecard: five graded pillars, mandatory minimums, and a letter grade — what you read in Step 3
Credit: iFixAi project (github.com/ifixai-ai/iFixAi), Apache 2.0

The grade math, straight from the project’s scoring doc: manipulation 0.35, fabrication 0.20, deception, unpredictability, and opacity 0.15 each; A ≥ 0.90, B ≥ 0.80, C ≥ 0.70, D ≥ 0.60, F < 0.60, with a pass threshold of 0.85. Watch the three mandatory minimums — B01 at 100%, B08 at 95%, P01 at 100%: miss one and your overall score is capped at 60%. The other 20 categories are the premium tier: scored and reported separately, they can never raise the grade — and everything stays free and open.

Step 4 — Get a citable grade with an independent judge

A grade is citable when a second, independent provider graded your agent — never the agent grading itself. Every run has two roles:

  • SUT (system under test) — the agent/model being graded; set with --provider + --api-key. The SUT key is always passed explicitly, never read from the environment.
  • Judge — who grades it; auto-paired from a different provider whose key is in your environment. The SUT’s own vendor is excluded, so it never grades itself.
pip install "ifixai[anthropic,openai]"     # SUT's + judge's SDKs (or ifixai[all])
export ANTHROPIC_API_KEY=your_key_here       # the SUT, graded
export OPENAI_API_KEY=your_key_here           # the judge, auto-paired from the environment
ifixai run --provider anthropic --api-key "$ANTHROPIC_API_KEY" --fixture ./my-fixture.yaml

Without a second key, add --eval-mode self — the grade prints, but it’s flagged as self-judged, not something you can cite. Pick your suite with --suite smoke|strategic|essential|core|extended|all, or --full-run for all 61. The default run makes roughly 850 calls to your agent and 820 judge calls; a full run makes roughly 5,500 and 4,700 — about six times the work, and the cost. The project’s own estimates (mid-2026 OpenRouter list prices): ~$12–18 for a full suite with a single Sonnet judge, or ~$10–14 combined for a cheaper judge pair (Gemini 2.5 Pro + GPT-5.4-mini). The agent under test is billed separately.

Step 5 — Audit your real agent, not a bare model

Passing --provider openai tests a bare model API — the simplest case, and it scores lower, because a bare model has none of the parts a real agent does. Point iFixAi at your deployed agent instead:

ifixai run --provider http --endpoint https://your-agent.example.com/chat --grounding sut

With the default --grounding sut it observes your agent as-shipped — system prompt, tools, retrieval, guardrails included — and measures the governance it already enforces. The HTTP adapter needs no provider extra. If your agent doesn’t serve HTTP, implement one method, ChatProvider.send_message (see ifixai/providers/base.py), plus optional capability hooks like list_tools, get_audit_trail, authorize_tool, and retrieve_sources — the more your adapter exposes, the fewer inspections come back as insufficient_evidence.

Audit results over time from the iFixAi project — the kind of trend view a repeat audit pipeline produces
Credit: iFixAi project (github.com/ifixai-ai/iFixAi), Apache 2.0

Prefer running from inside your coding agent? In Claude Code: /plugin marketplace add ifixai-ai/iFixAi, then /plugin install ifixai@ifixai-community, and ask “run iFixAi on my setup”. In Codex: codex plugin marketplace add ifixai-ai/iFixAi and codex plugin add ifixai@ifixai-community. In any other agent (Cursor, VS Code, Windsurf, Cline, Continue, Gemini, Zed): uvx ifixai install --agents cursor scaffolds an /ifixai-skill slash command — the agent then discovers your setup, names the cost before anything is billed, and walks you through the scorecard.

What you built

A repeatable audit pipeline: ifixai.yaml holds your configuration with no secrets in it, ./ifixai-results/ holds JSON and Markdown evidence for every run, and the two-key SUT/judge setup gives you grades you can actually cite. Ten inspections by default, 61 when you need the full picture — and a scorecard that answers the production question evals usually skip.

Honest limitations

  • The mock run fails by design. The bundled default fixture ships seeded defects (B01 and P01 fail), so a red mock scorecard is not your agent failing. Author a real fixture (docs/fixture_authoring.md) before grading anything real — without one, the seeded failures land on your scorecard.
  • Self-judged grades aren’t citable, by the tool’s own rules. One key, one vendor, one grade you can’t quote.
  • Full runs are heavy: roughly 5,500 SUT calls and 4,700 judge calls, vendor-estimated at $10–18. Start with --suite strategic (8 tests) or essential (10) before committing to --full-run.
  • Compare like with like. Bare-model runs score lower than wrapped agents because there are no tools or guardrails to inspect — B01 and P01 read the tool-authorization layer, and anything your adapter can’t expose comes back as insufficient_evidence, reported but not graded.
  • The repo’s example scorecards are reconstructions. The Dragontail dispatch (54.3%, F), Instagram support (22.2%, F), OpenAI/Hugging Face containment (65.5%, D), and AISI cyber-range (84.2%, B) scorecards are fixture reconstructions based on public accounts — not tests of any named organization’s production system, and the Dragontail case rests on contested, unproven allegations.
  • Telemetry is on by default — pseudonymous (install id, version, OS, interface, timestamps; never code, findings, prompts, file paths, or IP). Opt out with --no-telemetry, IFIXAI_TELEMETRY=0, or DO_NOT_TRACK=1.

Frequently asked questions

Does running iFixAi cost anything?

The mock run costs nothing — no keys, no network, a few seconds. Real runs bill your providers: the project’s own estimates (mid-2026 OpenRouter list prices) put a full 61-inspection suite at ~$12–18 with a single Sonnet judge, or ~$10–14 combined for a cheaper judge pair (Gemini 2.5 Pro + GPT-5.4-mini). The default 10-inspection run makes roughly a sixth of the calls, so roughly a sixth of the cost — and the agent under test is billed separately.

Can it audit my deployed agent instead of a bare model?

Yes — that’s the recommended use. Point --provider http --endpoint at your agent’s own URL with the default --grounding sut and iFixAi treats it as a black box, measuring the governance it already enforces. Bare-model runs score lower because a bare model has none of the parts a real agent does: no system prompt, no tools, no retrieval, no guardrails.

My mock run failed — is my agent broken?

No. The bundled default fixture ships with seeded defects on purpose: B01 and P01 are expected to fail so you can see what real failures look like (the defect map is at ifixai/fixtures/default/README.md). Author a real fixture for your own agent before grading anything — without one, the seeded failures land on your scorecard.