How do I add AER-1 receipts to an OpenAI Agents SDK agent?
Install the aer1-openai-agents package, wrap the tool calls and hand-offs you need to prove so each finished step mints an AER-1 receipt, and verify your first receipt two ways: against the kit's published test fixture, and at the public verify path. The receipt format is AER-1 (IETF Internet-draft-zambo-aer1-21); the current kit is version 1.5.4.
The integration follows the AER-1 kit's quickstart rule: receipts are minted where steps finish, from the step's actual inputs and saved output, never reconstructed from logs afterwards. For an OpenAI Agents SDK agent, that means the adapter wraps the execution points the SDK already exposes, tool calls and agent hand-offs, so each completed step produces a receipt committing to the caller, the tool, the output, the side effects, and the schema version.
Work through the IMPLEMENTING path in the kit repository rather than improvising the format: the canonical payload, the member ordering for object inputs, and the provenance label rules are all normative details where a plausible-looking receipt can still fail independent verification. The kit's conformance vectors exist to catch exactly that: run them in your build, and treat any disagreement as a stop, not a warning.
Finish with the two public checks. Verify a receipt from your own agent against the kit's fixture-driven vectors, then check a live receipt at https://zambo.dev/verify/ so you have seen the reader's side of your own records. From there the pattern scales by choosing which steps mint receipts: client-visible and consequential steps first, internal chatter only if it earns its storage.
Quickstart: AER-1 receipts for OpenAI Agents SDK agents
1. Install: pip install aer1-openai-agents (the AER-1 kit's adapter for the OpenAI Agents SDK). 2. Configure the adapter at agent setup, before the first run. 3. Select the steps that mint receipts: tool calls and hand-offs that a client, an auditor, or a future incident would ask about. 4. Run one real task end to end. 5. Verify: run the kit's conformance vectors; then check the live receipt at https://zambo.dev/verify/ . 6. Record the integration in your runbook: package version, kit version 1.5.4, and the step-selection rule. If a vector disagrees at step 5, stop and fix the wiring before shipping.
Worked example
The public fixture is the shared reference every implementation checks against: the kit's fixture receipt 130da435-e157-498e-af90-605866a86a27 anchors the conformance vectors, and independent implementations have reproduced its checks from the draft text alone. Your step 5 compares your agent's wiring against that same fixed point.
Frequently asked questions
Do I need Zambo's hosted service to mint AER-1 receipts?
No. AER-1 is a published format with an open kit; your agent can mint and keep its own receipts. The hosted connection is the path for teams who want the recording, handovers, and client checks without running the layer themselves.
Which steps should mint receipts first?
The steps someone outside your team will ever question: tool calls that change state, outputs delivered to a client, and hand-offs between agents. Instrument those, verify the wiring, then widen if the records earn it.
What breaks most first integrations?
Byte-level details: member ordering in object inputs and labels that carry control characters. Both are specified in the draft and exercised by the kit's vectors, which is why step 5 is a gate, not a suggestion.
By Brennan Zambo, founder of Zambo.
Last verified: 2026-10-17.
Try a handover
A handover gives your client one proof link with verifiable receipts to review, then Accept or Flag.
try it: say 'use zambo to hand this over to <client>' in your ai