Requires Python 3.10 or newer and authorized Firedrill access. The package and import names are retained for compatibility.
Firedrill and AsyncFiredrill clients plus
handwritten lifecycle, drill-run, evidence, capture, and source-control helpers.
Install the SDK from PyPI:
Start an owned world
Examples below are integration skeletons. Implementrun_existing_agent, its async equivalent, and durable checkpoint_store.save in your own runner. Replace resource IDs with values from your project. These are not built-in agent functions.
with, you own
cleanup and must call world.destroy().
The asynchronous surface uses the same options:
Run a drill
session_id instead of hosted_run_id to create a run from a ready,
drill-configured session. run_hosted_drill_async accepts AsyncFiredrill and an
async callback.
The callback runs your agent and returns its actual target result. Firedrill uses
the world journal and assertions to decide the final verdict.
Evidence and control
tail_evidence removes page-boundary duplicates and fails on a missing sequence.
Owned world handles also support reset, lifetime extension, virtual-time advance,
declared fault control, pending-mutation recovery, and destruction.
Explicit capture
The interaction context exposesattach and capture. Logs, screenshots, videos,
and files are off by default. Enable always or retain-on-failure, select files
below an explicit root, and redact secrets before capture.
No capture API starts a browser or video recorder by itself. Supply an existing
file or register a driver that creates it. The helper uploads an immutable snapshot
of the admitted bytes and retains a checkpoint before completing the interaction.
Recovery rules
- Persist every checkpoint before returning from its callback.
- Resume
HostedRunRecoveryError.checkpointinstead of creating another run. - Resolve
world.pending_mutationbefore issuing another world mutation. - Treat sync and async cancellation as an uncertain remote outcome until resolved.
- Keep the control credential out of the agent process.