Use case · Audit Trail

One audit trail. Every agent, every user, every tool.

All agent activity across all your applications lands in one centralized record — both identities, the action, and the verdict.

The problem

When an agent misbehaves — or an auditor asks — you need a record you can trust. The agent shouldn’t write its own.

01

Agents keeping their own logs is self-review

02

App logs are incomplete and mutable

03

No verdicts — did the call even go through?

04

“Who did this?” shouldn’t answer “the agent”

How a call becomes a record

Request
A user asks an agent

Every call starts with a real person and a registered agent — two identities, not one.

Check
Policy decides

Allowed, held for approval, or denied — per user, per action, before anything runs.

Act
The tool call runs

Through Fabriq, with credentials injected server-side — the agent never holds a key.

Record
The trail gets the event

Who asked, which agent, what it touched, and the verdict — one schema, one place.

See it

14:02:11maya@ · ap-bot-01create_billallowed
14:02:38raj@ · support-botissue_refund $84allowed
14:03:05raj@ · support-botissue_refund $612needs_approval
14:03:41dana@ · qa-bot-03export_docsdenied
14:04:19maya@ · ap-bot-01notify_channellogged

EVERY CALL IS AN EVENT — WHO ASKED, WHICH AGENT, WHAT, AND THE VERDICT

Capabilities

What you get

01
One trail across everything.
Every agent, every user, every connected tool — a single centralized record, one schema.
02
Both identities on every event.
The person who asked and the agent that acted — with tool, action, and timestamp.
03
The verdict is part of the record.
Allowed, held for approval, or refused — outcomes land in the trail.
04
Query and filter in the dashboard.
Slice by service, event type, and time window.
05
Warehouse-grade storage, exportable.
Events land in BigQuery-backed storage and export to your own tooling.
06
Usage metering alongside.
Calls per user and per tool, over time — right beside the audit trail.

The payoff

When someone asks what an agent did, the answer is a query — not an investigation.

Questions

Common questions

Related solutions