zambo-ai-sdk
v0.1.11
Published
Zambo tools for Vercel AI SDK agents: 153 AI tools on one endpoint. Every call returns a verifiable execution receipt (AER-1, IETF Internet-Draft draft-zambo-aer1-26). Free: 20 free calls per day, no account. zambo.dev
Maintainers
Readme
zambo-ai-sdk
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. Receipt format: AER-1, IETF Internet-Draft draft-zambo-aer1-26.
Verifiable AER-1 execution receipts for Vercel AI SDK agents. A Vercel AI SDK compatible tool factory for Zambo.
Receipts follow AER-1, the verifiable execution receipt standard created by Brennan Zambo (IETF Internet-Draft draft-zambo-aer1-26).
Zambo is the verifiable work layer for AI: a live MCP server exposing 153 tools over plain HTTPS (no auth, free tier: 20 free calls per day, no account). createZamboTool turns any Zambo goal into an AI SDK tool() your agents can call, and captures a verifiable receipt on every call: a public URL of the form https://zambo.dev/run/<id> that records what the endpoint observed for that execution.
Honesty note: receipts record what the Zambo endpoint observed, not a claim about real-world effects. Fetch failures never throw into your app: execute returns a receipt-failure message and records it in receiptErrors.
Install
npm install zambo-ai-sdkRequires Node 18+ (uses the global fetch). No runtime dependencies.
Usage
import { generateText, tool } from "ai";
import { createZamboTool } from "zambo-ai-sdk";
import { z } from "zod";
const zambo = createZamboTool({
description: "Run goals through Zambo's 153 tools. Returns a verifiable receipt.",
parameters: z.object({ goal: z.string() }),
});
const { text } = await generateText({
model: "your-model",
prompt: "Summarize the top story about AI agents today.",
tools: { zambo: tool(zambo) },
});
console.log(text);
console.log("Last receipt:", zambo.lastReceiptUrl);
console.log("All receipts:", zambo.receiptUrls);Receipt ledger
The created tool tracks three properties:
receiptUrls: every verifiable receipt URL captured, in order.receiptErrors: receipt failures (transport errors or missing receipt URLs), as text. Failures never throw.lastReceiptUrl: the most recent verifiable receipt URL, ornull.
Configuration
const zambo = createZamboTool({
description: "...",
parameters: mySchema,
apiUrl: "https://zambo.dev", // default; overridable
timeout: 60000, // fetch timeout in ms; default 60000
});The base URL can also be set with the ZAMBO_API_URL environment variable. options.apiUrl wins over the env var.
How it works
execute POSTs JSON-RPC tools/call to <apiUrl>/mcp with the zambo_universal tool, extracts the public receipt URL from the response text, and appends it to the result. Receipt URLs match https://zambo.dev/run/<uuid>.
License
MIT
Links
- Zambo: https://zambo.dev
- AER-1 receipt spec: https://zambo.dev/aer-1/
Guides
Local AER-1 receipts (no network needed)
The package also mints AER-1 execution receipts locally, with no API calls:
import { mintReceipt, verifyReceipt } from "zambo-ai-sdk";
const receipt = mintReceipt("my_tool", { query: "hello" }, { answer: "hi" }, 42);
console.log(verifyReceipt(receipt)); // true, SHA-256 recomputed locallyLocal receipts follow the AER-1 core members (id, created_at, tool, provenance_class, canonical_bytes, output_hash). They pass the same hash-recomputation check as any AER-1 receipt.
