Audit events
Emit an event, batch them when volume demands it, and get back a record a counterparty can verify. What the ingest path costs and what it guarantees.
Audit Events
Every agent action should be logged for compliance and debugging. Events are stored in TimescaleDB with ULID ordering.
Retries are safe when you send an Idempotency-Key header. The first request records its response, and a repeat returns that same response carrying the original event ids instead of writing the batch twice. Send no key and you get exactly today's behavior.
What you send is what we store. If prompts cannot leave your network, send a digest or a keyed commitment in place of the payload; payload privacy covers how that works and what a third party can still check.
vorim.emit(event)
Emit a single audit event.
agent_idstringRequiredevent_typestringRequiredtool_call, api_request, message_sent, permission_change, status_change, key_rotation, login, or export.actionstringRequiredPOST /invoices).resourcestringresultstringRequiredsuccess, denied, or error.latency_msnumbermetadataobjectawait vorim.emit({
agent_id: 'agid_acme_a1b2c3d4',
event_type: 'api_request',
action: 'POST /api/invoices/create',
resource: 'invoices',
result: 'success',
latency_ms: 127,
metadata: {
invoice_id: 'inv_9876',
amount: 1500.00,
currency: 'USD',
},
});typescriptvorim.emitBatch(events)
Emit up to 1,000 audit events in a single request. Ideal for high-throughput scenarios.
const events = actions.map(action => ({
agent_id: 'agid_acme_a1b2c3d4',
event_type: 'tool_call',
action: action.name,
result: action.success ? 'success' : 'error',
latency_ms: action.duration,
}));
const { ingested } = await vorim.emitBatch(events);
console.log(`${ingested} events recorded`);typescriptBook a demo for a walkthrough, or contact us for support. For enterprise needs, reach out at sales@vorim.ai.