An audit log designed for the way agents act on real systems
Your agents click buttons, delete files, refund invoices, archive projects. Recalled records each action with a hash chain, an HMAC signature, and the conversation context, plus a public receipt URL the agent can paste back into its reply.
await recalled.events.create({
action: "file.deleted",
actor: {
type: "agent",
id: "claude-sonnet-4.6",
name: "Support Triage Agent",
},
organization: tenant.id,
targets: [{ type: "file", id: file.id }],
metadata: {
triggered_by_user: user.id,
conversation_id: conv.id,
tool_call_id: call.id,
reasoning: call.reasoning,
},
});Your agent gets it right most of the time. The hard part is what happens the rest of the time. Recalled gives you a forensic trail of every tool call, scoped to the user who triggered it, with cryptographic proof you can hand to a customer who pushes back.
Why AI builders use Recalled
- actor.type=agent, that is it
No new SDK, no new concept. Set actor.type to 'agent' on the events you log around tool calls. Filters, search, exports, retention, all just work.
- Conversation context built in
Put conversation_id, tool_call_id, model and reasoning in metadata. Click an event in the dashboard, jump straight back to the chat that produced it.
- Receipts your agent or your support can send
GET /v1/events/:id/receipt returns a JSON object with a public view_url. The agent pastes the link in its reply, your support attaches it to a ticket, the user clicks, sees a verified banner, no API key.
- Replayable evidence
verify_chain confirms the entire trail is intact. When the agent says 'I deleted nothing', you can prove what really happened, in what order, untampered.
The trail your customers will ask for
Sooner or later a user will challenge an agent action. You need a single source of truth, with the actor (agent + model), the target (file, invoice, project), the human who triggered it, the timestamp, the IP and the cryptographic proof. Recalled is that source.
Where to start
Three pages to read before you wire your first tool call.
Your AI agent acts on behalf of users. Recalled records every action with actor.type set to 'agent', a hash chain and an HMAC signature, plus the conversation id and the user who triggered it. When the agent gets it wrong, you have a forensic trail.
Every Recalled event ships with a portable receipt: a JSON object plus a public webpage URL. Send it to a customer who disputes an action, attach it to a support ticket, paste it in a Slack reply, or let your AI agent cite it. The recipient clicks, sees the action, the timestamp and a green Verified banner, with no Recalled account or API key required.
Log every sensitive action taken by a staff member from your back-office: suspensions, refunds, impersonations, role changes. Answer 'who did this and when' before anyone has to ask.
Priority actions to wire
Your next audit log is 2 minutes away
Stop hacking on your own logs table. Drop in Recalled, send your first event, move on.