Metadata-Version: 2.4
Name: agent-regression-lens-py
Version: 0.1.0
Summary: Detect regressions between baseline and current AI agent runs. Python port of @mukundakatta/agent-regression-lens.
Project-URL: Homepage, https://github.com/MukundaKatta/agent-regression-lens-py
Project-URL: Issues, https://github.com/MukundaKatta/agent-regression-lens-py/issues
Project-URL: Source, https://github.com/MukundaKatta/agent-regression-lens-py
Project-URL: JS sibling, https://www.npmjs.com/package/@mukundakatta/agent-regression-lens
Author-email: Mukunda Katta <mukunda.vjcs6@gmail.com>
License: MIT
License-File: LICENSE
Keywords: agent,evals,llm,regression,testing
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == 'dev'
Description-Content-Type: text/markdown

# agent-regression-lens-py

Detect regressions between baseline and current AI agent runs. Pure Python, zero deps. Python port of [`@mukundakatta/agent-regression-lens`](https://www.npmjs.com/package/@mukundakatta/agent-regression-lens).

```bash
pip install agent-regression-lens-py
```

```python
from agent_regression_lens import analyze_agent_regression

baseline = {"events": [{"type": "tool_call", "tool": "search"}, {"type": "final", "content": "ok"}], "success": True}
current  = {"events": [{"type": "tool_call", "tool": "search"}, {"type": "error", "message": "boom"}], "success": False}

res = analyze_agent_regression(baseline, current)
# RegressionResult(passed=False, score=..., regressions=[Issue(code='lost_success', severity='critical', ...), ...])
```

## API

- `analyze_agent_regression(baseline, current, *, thresholds=None) -> RegressionResult`
- `compare_run_set(baseline_runs, current_runs, *, thresholds=None) -> ComparisonSummary`

Detects: lost success, new errors, failed tool calls, output drift (Jaccard), step / latency / cost bloat above configurable ratios.

## License

MIT
