Last updated: 2026-08-10
A meaningful audit trail for an AI agent is not just a log of what the agent did — it must capture:
| Field | Why it matters |
|---|---|
| Proposed action | What the agent intended to do before any human review |
| Context shown to reviewer | What evidence the reviewer had when they made the decision |
| Reviewer identity | Who approved (name, role, timestamp) |
| Decision + rationale | Approve / reject / modify + optional note |
| Final executed action | What actually happened after the decision |
| Agent ID + version | Which agent model/version made the proposal |
A well-designed approval workflow for AI agents has four phases:
POST https://rest.agentfabric.dev/v1/reviews
Authorization: Bearer YOUR_TENANT_TOKEN
Content-Type: application/json
{
"title": "Delete 1200 inactive user accounts",
"content": "SQL: DELETE FROM users WHERE last_login < NOW() - INTERVAL '365 days' AND status = 'inactive'",
"context": "Triggered by weekly cleanup agent v2.1. Affected users were notified 30 days ago.",
"risk_level": "high",
"proposed_by": "cleanup-agent-v2.1"
}
{
"review_id": "rv_8xKj2mNpQr",
"status": "pending",
"created_at": "2026-08-10T13:45:00Z",
"audit_token": "at_9Lm3..."
}
GET https://rest.agentfabric.dev/v1/reviews/rv_8xKj2mNpQr/audit
Authorization: Bearer YOUR_TENANT_TOKEN
{
"review_id": "rv_8xKj2mNpQr",
"proposed_action": "DELETE FROM users WHERE...",
"context_shown": "...",
"reviewer": {"name": "Alice Chen", "role": "DBA", "id": "u_alice"},
"decision": "approved",
"decision_note": "Verified notification logs. Approved.",
"decided_at": "2026-08-10T14:02:11Z",
"executed": true,
"executed_at": "2026-08-10T14:02:15Z"
}
// Add mcp.agentfabric.dev to your MCP server config
// Then the agent calls:
create_review_request({
title: "Publish campaign email to 5000 subscribers",
content: email_body,
risk_level: "high"
})
// After human approves:
get_review_result({ review_id: "rv_8xKj2mNpQr" })
// → { status: "approved", approved_by: "alice@example.com", decided_at: "..." }
agentfabric.dev lets you define policies at the tenant level: