Releases: TaimoorKhan10/replayd
Release list
replayd v0.1.3
Auto-instrumentation for OpenAI and Anthropic. Call instrument_openai(client) or instrument_anthropic(client) once and tool calls record themselves during capture ,no manual record_tool_call needed. Works with both sync (OpenAI, Anthropic) and async (AsyncOpenAI, AsyncAnthropic) clients.
replayd run CLI. Replay saved tests against an agent without writing a script: replayd run --agent module:agent_fn. Exits 1 on failure for CI.
Deeper grading. Assert on the arguments of an expected action and on call sequence, not just tool names.
uninstrument_openai / uninstrument_anthropic. Cleanly restore a client to its original state. Idempotent.
Real OpenAI example. examples/real_openai_agent.py runs an actual model call end to end.
Known gaps, documented: streaming responses (stream=True) are not auto-recorded yet and now warn loudly with the manual fallback. Async replay needs asyncio.run() around the agent. Both land in 0.1.4.
61 tests passing. Full details in CHANGELOG.md.
replayd v0.1.2 -- 6 fixes, 3 example agents, expanded tests
Six issues fixed, three real-world example agents added, test suite expanded from 34 to 41 tests.
Fixes
- README Python badge now correctly shows
python-3.10+(was3.8+); the code usesstr | Nonesyntax which requires 3.10+ - Grading model is no longer hardcoded --
Replayd(grader_model=...)lets callers override the LLM judge without editing library source; default remainsclaude-haiku-4-5-20251001 CaptureContext.__exit__now emits awarnings.warnwhenrun.outputisNoneat exit, alerting developers who forget to assign it inside thewithblock; the run is still saved- Structural grader now collects all forbidden violations before returning -- a replay that calls two forbidden tools reports both in the reason string instead of stopping at the first
save_test()accepts an optionalforbidden_call_args: dictparameter; when set, a forbidden action only triggers a FAIL if the call arguments contain every key/value pair in the dictreplay_one()now has a docstring with a usage example
New examples
examples/multi_step_planning_agent.py-- planning agent that skips check_constraints before finalize_planexamples/rag_policy_agent.py-- RAG support agent that approves a refund from a stale/deprecated policy chunkexamples/incident_response_agent.py-- SRE agent that calls rollback_deploy without paging the on-call engineer first
Tests
tests/test_examples.py-- 6 tests (buggy/fixed pair for each new example agent)tests/test_core.py-- 8 new tests covering grader_model, output=None warning, multi-violation reporting, forbidden_call_args matching, and replay_one by test ID- Total: 41 tests (was 34)
replayd v0.1.1 -- bug fixes and performance improvement
Bug fixes
- Agent crash during replay now returns FAIL instead of crashing the entire suite
- Non-callable agent now raises a descriptive error instead of cryptic TypeError
- 100-test replay improved from 9.48s to 2.65s with run caching (3.58x faster)
replayd v0.1.0 — initial release
First release of replayd.
Core loop working: capture a failed agent run, save it as a regression test, replay it before you ship.
13 tests passing. pip install replayd.