Skip to main content

zambo-haystack

AER-1, the agent execution receipt standard: zambo.dev/aer-1 | Add Zambo to your AI: zambo.dev/add

Zambo is the verifiable work layer for AI. This package connects Haystack agents to it, minting a verifiable AER-1 receipt for every tool call.

Receipt format: AER-1, IETF Internet-Draft draft-zambo-aer1-26.

Verifiable execution receipts for Haystack agents. Give your Haystack agent Zambo's 153 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.

from haystack.components.agents import Agent
from haystack.components.generators.chat import OpenAIChatGenerator
from zambo_haystack import zambo_tools

agent = Agent(
    chat_generator=OpenAIChatGenerator(),  # any Haystack chat generator works
    tools=zambo_tools(["live_price", "prompt_shield"]),
)
result = agent.run([{"role": "user", "content": "What is the live BTC price?"}])

Bring any Haystack chat generator (OpenAIChatGenerator above needs OPENAI_API_KEY; the Zambo calls themselves need no account and no key). No account. No API key. Free tier: 20 calls + 1 wrap-up free every day.

What the receipt actually proves

Each receipt page (for example https://zambo.dev/run/<id>) is the public record of the call: 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 recompute the fingerprint and check that the saved result was not changed, with no account.

Every Haystack tool returned by zambo_tool appends the minted receipt URL to its result text, and records it in a registry you can query with lookup_receipt(tool_name, arguments_json):

from zambo_haystack import lookup_receipt

url = lookup_receipt("live_price", '{"symbol": "BTC"}')
print(url)  # https://zambo.dev/run/<id>

Or register a callback to capture each receipt as it is minted:

from zambo_haystack import zambo_tool

price_tool = zambo_tool(
    "live_price",
    on_receipt=lambda tool, url: print(f"[receipt] {tool}: {url}"),
)

Install

pip install zambo-haystack

One tool, custom schema

from zambo_haystack 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_haystack.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.
  • The receipt registry is thread-safe and never breaks your run: the wrapper only reads and writes its own registry entry, and it ignores anything else in the pipeline.
  • Receipts are public by design. Do not pass secrets as tool arguments.

MIT License.

Metadata

Release files for zambo-haystack 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zambo-haystack 0.2.5
File Size Uploaded Provenance Actions
zambo_haystack-0.2.5.tar.gz 14.1 kB Without provenance Details for zambo_haystack-0.2.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for zambo-haystack 0.2.5
File Interpreter ABI Platform Actions
zambo_haystack-0.2.5-py3-none-any.whl Python 3 none any Details for zambo_haystack-0.2.5-py3-none-any.whl

Total release size: 27.4 kB

Release files / zambo_haystack-0.2.5.tar.gz

Download URL zambo_haystack-0.2.5.tar.gz
Size 14.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ccb73f17d32104f43ef0b61397e746ace27915fefe8b533f3735d7a00e402bcc
BLAKE2b-256 checksum
How to use checksums
c5c63b9c4babd8490b3e7f20a194c07e838bc96eaed6cf3a43f5420560d2c4e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via rambo-pypi-grab/0.1.0

Release files / zambo_haystack-0.2.5-py3-none-any.whl

Download URL zambo_haystack-0.2.5-py3-none-any.whl
Size 13.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
019422907cc5f20a044356c76152d670d4f8741ab6232caacbb2a68a8e23e923
BLAKE2b-256 checksum
How to use checksums
15376330ec9ff219892b52fd6824081b33aa859c14a1a5fd1887d09a9a57b0f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via rambo-pypi-grab/0.1.0

Security for zambo-haystack 0.2.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page