Skip to main content

Deterministic execution recording and replay for AI agents

Project description

Fixtura

Deterministic execution recording and replay for AI agents — turn real agent runs into regression tests.

What this is

Fixtura is a framework-agnostic execution-assurance layer that sits underneath whichever orchestration framework a team already uses (like LangGraph or CrewAI). It watches an AI agent's tool calls, records everything that happens through a permission-checked execution layer, and lets you replay that recording later — deterministically, without touching live systems — to debug failures or gate CI on regressions.

It's built to work with OpenEval, a deterministic (non-LLM-judge) agent evaluation engine already built and published separately. Fixtura produces the recordings; OpenEval scores them.

Why this exists

Most "agent observability" tools (Langfuse, Phoenix, Braintrust, Laminar) are built for production monitoring at scale. Fixtura's angle is narrower and more testable: recorded traces as literal test fixtures, replayable offline, usable to gate pull requests the same way unit test snapshots do. See ARCHITECTURE.md for why this is scoped the way it is, and what was deliberately cut.

Status

🎯 v1.0.6 is released. See ROADMAP.md for future features like counterfactual replay (Live Branching).

OpenEval Adapter (optional, manual install required)

The OpenEval evaluation harness (Acceptance Test 4) relies on OpenEval, which is currently unpublished on PyPI. Note that the openeval namespace on PyPI is occupied by an unrelated placeholder package.

Because PyPI's Warehouse strictly rejects git URL dependencies, Fixtura cannot automatically install OpenEval for you. Installing fixtura[eval] will currently not pull down the adapter's dependencies.

To use the OpenEval Adapter, you must explicitly install openeval-core from its git repository as a separate manual step:

pip install git+https://github.com/yash161004/OpenEval.git@4cb6cfe362c770a7674f5b0111ff54646883709b

Without this, importing fixtura.tools.openeval_adapter will raise a RuntimeError prompting this manual installation.

Documents in this repo

Doc Purpose
ARCHITECTURE.md System design, components, data flow
THREAT_MODEL.md Trust boundaries, what could go wrong, mitigations
ROADMAP.md Frozen v1 scope table + acceptance tests + v1.1/v2 future work
docs/TRACE_FORMAT_SPEC.md Exact schema every recording must produce
docs/COLLABORATION.md How the project's owners work together

Core components

  1. Tool Execution Layer
  2. Permission Engine
  3. Execution Recorder + Sanitizer
  4. Passive Replay + Step Inspection
  5. Trace Viewer UI (minimal)
  6. OpenEval adapter (evaluation harness reuse)

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fixtura-1.0.7.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fixtura-1.0.7-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

File details

Details for the file fixtura-1.0.7.tar.gz.

File metadata

  • Download URL: fixtura-1.0.7.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for fixtura-1.0.7.tar.gz
Algorithm Hash digest
SHA256 90b0e67b5bdb3dc9939698efc30e804193d246cc0ca768eb7ac24d52e578c76a
MD5 5c6f5304d89984c753991525352ace75
BLAKE2b-256 05968b4b17622cadb760f41e0938f3bd3b5de3594923c705f2add03db1486b32

See more details on using hashes here.

File details

Details for the file fixtura-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: fixtura-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 28.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for fixtura-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 fe12a1f733142cbf3fdc4300f7c5f0fa7fbc5da15a18609d0054801a5ed4f176
MD5 442b8eb80519c0666fea7726cb3334a4
BLAKE2b-256 2cc27e055ca89f560656612c576479f102cda9ad1a3baa362ea516d9fcbeb131

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page