Metadata-Version: 2.4
Name: zambo-smolagents
Version: 0.1.0
Summary: Zambo's 100+ tools as smolagents 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: smolagents,huggingface,agents,ai-agents,zambo,mcp,receipts,verification
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: smolagents>=1.0
Dynamic: license-file

# zambo-smolagents

Give your smolagents 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 smolagents import CodeAgent, InferenceClientModel
from zambo_smolagents import zambo_tools

agent = CodeAgent(
    tools=zambo_tools(["live_price", "prompt_shield"]),
    model=InferenceClientModel(),
)
agent.run("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.

Every tool's output ends with the receipt URL (`Verifiable receipt: https://zambo.dev/run/<id>`), so the agent's trajectory shows proof next to every call. You can also collect receipts programmatically:

```python
from zambo_smolagents import zambo_tool

receipts = {}
tool = zambo_tool("live_price", on_receipt=lambda name, url: receipts.setdefault(name, []).append(url))
print(tool(arguments_json='{"symbol": "BTC"}'))
print(receipts)
```

## Install

```bash
pip install zambo-smolagents
```

## One tool, custom inputs

```python
from zambo_smolagents import zambo_tool

price_tool = zambo_tool(
    "live_price",
    inputs={
        "symbol": {"type": "string", "description": "Asset symbol, e.g. BTC."},
    },
)
print(price_tool(symbol="BTC"))
```

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

## Notes

- Zambo calls need no key and no signup. Heavy runs (dozens of tool calls) will reach the free daily limit; the tool raises a clear error and the agent run continues with the other tools.
- Receipts are public by design. Do not pass secrets as tool arguments.
- The client is pure stdlib (urllib) with retries: smolagents is the only third-party dependency.

## Links

- Zambo: https://zambo.dev
- AER-1 receipt spec: https://zambo.dev/aer-1/

MIT License.
