Top behavior changes
| Behavior | Baseline | Current | Change |
|---|---|---|---|
| Tool calls | 2 | 5 | +150% |
lookup_order repeated 1 -> 4 calls
01 Product
Maida compares agent execution traces against a checked-in baseline and blocks the PR when structural behavior regresses.
02 Why Maida
Output-only checks see a pass. Maida compares the path that produced it—and catches the regression hiding underneath.
Compare execution, not just completion.
ORDER #4821 · SHIPPED. The final answer is identical.
Behavior: regression
03 The gate
Maida runs before merge, inside CI—while a behavioral regression can still be stopped.
A pull request runs the agent, compares its trace with the checked-in baseline, and applies policy. Passing behavior can merge; a regression blocks the pull request.
CLImaida run my_agent.py
Actionmaida-ai/maida-assert@v5
Permissionchecks: write
Output evals Was the answer good?
Production tools What happened after deploy?
Maida Did this PR change agent behavior?
04 Behavioral signal
Sequence, repetition, branching, timing, and cost become one behavior fingerprint—then Maida compares that shape across the code change.
| Signal | Baseline | Candidate | Shape change |
|---|---|---|---|
| Tool sequence | lookup → answer |
lookup ×4 → CRM → answer |
new path |
| Tool calls | 2 | 5 | +150% |
| Steps | 4 | 8 | 2× |
| Retries | 0 | 2 | appeared |
| Loop risk | none | detected | blocked |
| Latency | 1.2 s | 3.8 s | +217% |
| Cost | $0.006 | $0.019 | +217% |
Policy decides which differences are acceptable. A changed fingerprint is evidence—not a vague score.
05 Real evidence
Maida turns structural trace differences into a focused PR report: what changed, why the policy failed, and where to inspect the run.
See the broken PR demo| Behavior | Baseline | Current | Change |
|---|---|---|---|
| Tool calls | 2 | 5 | +150% |
lookup_order repeated 1 -> 4 calls
06 How it works
Wrap one agent entrypoint.
Check in known-good behavior.
Capture the PR execution.
Apply policy inside CI.
A deterministic demo goes from healthy trace to blocked regression.
$ pip install "maida-ai>=0.5"
$ maida demo
$ maida demo --regression
Open quickstart
07 Local-first
No Maida cloud required. The core workflow runs on your machine or CI runner, with no account and no telemetry by default.
Agent code produces local OTel-compatible traces. Checked-in baselines and policy are compared in the same repository or CI runner. No Maida cloud is required for the core workflow.
@trace
~/.maida/runs/
baseline.json
.maida/policy.yaml
before merge
Inspect it. Open the local execution timeline.
Archive it. Keep traces with your own CI artifacts.
Control it. Export only when you explicitly choose to.
08 Start here
See the behavioral gate work on a deterministic agent in about a minute.