01 Product

Agents change when code changes. Catch it before merge.

Maida compares agent execution traces against a checked-in baseline and blocks the PR when structural behavior regresses.

Baseline and pull request execution trajectories A known-good execution and a pull request execution begin at the same input and agent, then diverge. The pull request repeats search and introduces a new CRM tool before returning the same answer. KNOWN GOOD PR CHANGE input A agent search lookup answer search search search NEW CRM same answer
Baseline Changed in PR Same input. Same answer. Different behavior.

02 Why Maida

Same answer.
Different behavior.

Output-only checks see a pass. Maida compares the path that produced it—and catches the regression hiding underneath.

Compare execution, not just completion.

Main and PR number 184 execution comparison Main calls lookup order once before answering. PR number 184 calls lookup order four times, adds a new CRM update, and then returns the identical answer. MAIN PR #184 user request agent lookup_order answer user request agent lookup_order lookup_order lookup_order ×2 crm_update NEW answer ORDER #4821 · SHIPPED ORDER #4821 · SHIPPED
Both runs return ORDER #4821 · SHIPPED. The final answer is identical.
Output Identical
Behavior Regression

Behavior: regression

03 The gate

A behavioral gate
between code and merge.

Maida runs before merge, inside CI—while a behavioral regression can still be stopped.

Output evals Was the answer good?

Production tools What happened after deploy?

Maida Did this PR change agent behavior?

04 Behavioral signal

Maida sees the shape
of agent execution.

Sequence, repetition, branching, timing, and cost become one behavior fingerprint—then Maida compares that shape across the code change.

Illustrative comparison Baseline / candidate fingerprint
Baseline Candidate
Illustrative baseline and candidate agent behavior metrics
Signal Baseline Candidate Shape change
Tool sequence lookup → answer lookup ×4 → CRM → answer new path
Tool calls25 +150%
Steps48
Retries02 appeared
Loop risknonedetected blocked
Latency1.2 s3.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

A verdict your reviewer
can act on.

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
agent-checkoutPull request #184
Maida / behavioral-regression
Behavior report

Top behavior changes

PR BLOCKED
Tool-call change from the locally reproduced report
Behavior Baseline Current Change
Tool calls 2 5 +150%
Repeated tool call

lookup_order repeated 1 -> 4 calls

policy failed
agentlookup_order ×4crm_update
maida demo --regression Reproduce locally. No API key.

06 How it works

From one agent run
to a merge gate.

  1. 01
    Instrument

    Wrap one agent entrypoint.

  2. 02
    Record baseline

    Check in known-good behavior.

  3. 03
    Run candidate

    Capture the PR execution.

  4. 04
    Gate PR

    Apply policy inside CI.

Try the complete story first

No clone. No API keys.

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

Your agent behavior
stays in your environment.

No Maida cloud required. The core workflow runs on your machine or CI runner, with no account and no telemetry by default.

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

Don't let broken
agent changes merge.

See the behavioral gate work on a deterministic agent in about a minute.