aer1-openai-agents
AER-1 verifiable workflow receipts for the OpenAI Agents SDK. One line of integration turns any traced agent run into an offline-verifiable receipt (draft-zambo-aer1, Section 8) covering every model call, tool call, and agent step.
Install
pip install aer1-openai-agents
Use
import asyncio
from agents import Agent, Runner
from agents.tracing import add_trace_processor
from aer1_openai_agents import AER1TracingProcessor
processor = AER1TracingProcessor(goal="Summarize the quarterly report")
add_trace_processor(processor)
agent = Agent(name="analyst", instructions="Be concise.", tools=[...])
async def main():
result = await Runner.run(agent, "Summarize the quarterly report")
receipt = processor.finalize(final_answer=result.final_output)
assert processor.verify(receipt) == [] # VALID
processor.save("receipt.json", receipt)
asyncio.run(main())
That is the whole integration: register the processor, run the agent,
finalize. The processor implements the SDK's TracingProcessor interface,
the same pattern other observability integrations use.
What you get
A JSON receipt with the AER-1 Section 8 workflow members:
type,version,workflow_id,receipt_id,session_idgoal,status,output_hash,verify_urlsteps: one per ended SDK span (model calls, tool calls, agent boundaries, handoffs), each withseq,receipt_id,tool,receipt_hash,started_at,ended_at,statusmerkle_root: the Section 8.1 root over the ordered step receipt ids
Each step's receipt_hash is SHA-256 over the canonical JSON of the
span's observed content, so the hash commits to what the agent actually
did. verify() re-checks everything offline: all 14 Table 2/3 member
requirements, seq ordering 1..n, no duplicate step receipt ids, and the
Merkle root recomputed.
Verify
from aer1_openai_agents import verify_workflow_receipt
failures = verify_workflow_receipt(receipt)
assert failures == [] # empty means valid
The processor never touches the network and never changes agent behavior. It only observes.
Spec
Based on draft-zambo-aer1, Section 8 (verifiable workflow receipts). Verification procedure documented at https://datatracker.ietf.org/doc/draft-zambo-aer1/
Metadata
Release files for aer1-openai-agents 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aer1_openai_agents-0.1.1.tar.gz | 10.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aer1_openai_agents-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.9 kB
Release files / aer1_openai_agents-0.1.1.tar.gz
| Download URL | aer1_openai_agents-0.1.1.tar.gz |
|---|---|
| Size | 10.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8cb3cc92cc829667b7df6619b7bbac418e5b24254e98fbb6dfccedde9fdc2bd7
|
|
BLAKE2b-256 checksum How to use checksums |
643ad0007d4b1b580a3f4971a2786ade69e26b2ba5b68c1100688e92ec1f978f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
rambo-pypi-grab/0.1.0
|
Release files / aer1_openai_agents-0.1.1-py3-none-any.whl
| Download URL | aer1_openai_agents-0.1.1-py3-none-any.whl |
|---|---|
| Size | 7.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dddb80c87034f7be1bd935ba81d47ca9274a491d1ebd14878177be78e0286e46
|
|
BLAKE2b-256 checksum How to use checksums |
528372625967ad8c3f5e0726b018fa24c58dd88a09147b9167b00fa256b4280c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
rambo-pypi-grab/0.1.0
|