Metadata-Version: 2.4
Name: zambo-openai-agents
Version: 0.1.0
Summary: Zambo's 100+ tools as OpenAI Agents SDK tools. Every call mints a verifiable AER-1 execution receipt.
Author-email: Zambo <brennanzambo@zambo.dev>
License: MIT
Project-URL: Homepage, https://zambo.dev
Project-URL: Documentation, https://zambo.dev/aer-1/
Project-URL: Repository, https://zambo.dev
Keywords: openai,agents,ai-agents,zambo,mcp,receipts,verification,tracing
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: openai-agents>=0.20
Dynamic: license-file

# zambo-openai-agents

Give your OpenAI Agents SDK agent Zambo's 100+ live tools. Every tool call is executed by Zambo and mints a **verifiable AER-1 receipt**: a public URL carrying the tool, its arguments, the observed result, a SHA-256 fingerprint, and machine-readable JSON-LD.

```python
from agents import Agent, Runner
from zambo_openai_agents import zambo_tools

agent = Agent(name="assistant", tools=zambo_tools(["live_price", "prompt_shield"]))
result = await Runner.run(agent, "What is the live BTC price?")
```

No account. No API key. Free tier: 20 calls per tool per day.

## What the receipt actually proves

Each receipt page (for example `https://zambo.dev/run/<id>`) is Zambo's tamper-evident record that **Zambo executed the tool call itself**: the tool name, the exact arguments your agent sent, the observed result, a timestamp, and a SHA-256 fingerprint of the record, published as JSON-LD. Anyone can re-verify it with no account.

The included `ZamboReceiptProcessor` (a standard `TracingProcessor`) attaches each minted receipt URL to its trace span, so the trace shows proof next to every call:

```python
from agents.tracing.setup import get_trace_provider
from zambo_openai_agents import ZamboReceiptProcessor

processor = ZamboReceiptProcessor()
get_trace_provider().register_processor(processor)
# after the run: processor.receipts -> {span_id: receipt_url}
```

## Install

```bash
pip install zambo-openai-agents
```

## One tool, custom schema

```python
from zambo_openai_agents import zambo_tool

price_tool = zambo_tool(
    "live_price",
    params_json_schema={
        "type": "object",
        "properties": {"symbol": {"type": "string"}},
        "required": ["symbol"],
    },
)
```

Browse the full catalog any time with `zambo_openai_agents.list_tools()`, or pick tools by use case through Zambo's `capability_search` tool.

## Notes

- Zambo calls need no key and no signup. Heavy tracing (dozens of tool calls per run) will reach the free daily limit; the tool raises a clear error and the agent run continues with the other tools.
- The processor never breaks your run: span handling is fully exception-guarded, and it ignores non-Zambo spans.
- Receipts are public by design. Do not pass secrets as tool arguments.

## Links

- Zambo: https://zambo.dev
- AER-1 receipt spec: https://zambo.dev/aer-1/
- OpenAI Agents SDK tracing: https://openai.github.io/openai-agents-python/tracing/

MIT License.
