zambo-vercel-ai
v0.1.7
Published
Verifiable execution receipts for Vercel AI SDK agents: 153 Zambo 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-vercel-ai
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 execution receipts for Vercel AI SDK agents. Give your Vercel AI SDK agent Zambo's 153 live tools. Every tool call is executed by live 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.
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { zamboTools } from "zambo-vercel-ai";
const { text } = await generateText({
model: openai("gpt-4o-mini"),
tools: zamboTools(["live_price", "prompt_shield"]),
prompt: "What is the live BTC price?",
});No account. No API key. Free tier: 20 free calls per day.
What the receipt actually proves
Each receipt page (for example https://zambo.dev/run/<id>) is Zambo's verifiable 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 in this package returns its minted receipt alongside the result:
const { result, receiptUrl } = await myTool.execute({ symbol: "BTC" });
// receiptUrl -> "https://zambo.dev/run/<id>"Use lastReceipt() any time to fetch the most recently minted receipt, or lookupReceipt(id) to get the canonical URL for a known receipt id.
Install
npm install zambo-vercel-aiPeer dependencies: ai (Vercel AI SDK v5+) and zod.
One tool, custom schema
import { z } from "zod";
import { zamboTool } from "zambo-vercel-ai";
const priceTool = zamboTool("live_price", {
description: "Get the live crypto price for a symbol.",
inputSchema: z.object({ symbol: z.string() }),
});Browse the full catalog any time with listTools(), or pick tools by use case through Zambo's capability_search tool. buildZamboTools(names) looks up live descriptions from the catalog automatically.
Direct calls (no AI model needed)
import { callTool } from "zambo-vercel-ai";
const { text, receipt } = await callTool("live_price", { symbol: "BTC" });
console.log(text, receipt.url);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 run continues with the other tools.
- Transport retries with backoff (up to 6 attempts); a failed tool call throws, never silently returns fake data.
- 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/
- Framework agent execution receipts: https://zambo.dev/guides/framework-agent-execution-receipts/
- What is an AI agent execution receipt?: https://zambo.dev/guides/ai-agent-execution-receipt/
- Vercel AI SDK docs: https://sdk.vercel.ai/docs
MIT License.
