Activity and Audit
Where Levee records what the agent did, how to read it on your computer, forward it to a security log platform, and review it centrally in the Vediram Portal
Levee keeps a record, the audit trail, of every decision it makes about the agent: each website visit, AI model call, database query, search, approval, refusal, shared file, tool change, and sandbox start and stop. You can read it in the app, on the command line, or in the Vediram Portal. It is the evidence you show an auditor or risk committee, and it is where you find the real reason when the agent only reports "Access denied".
What gets recorded?
Every allow, refusal and approval, and every change Levee makes to a project, such as sharing a file or turning on an AI tool, is recorded with what was requested and what happened. Audit records are written asynchronously: the action does not wait for its record to be stored. If the audit store fails, Levee raises a SecurityAuditWriteFailed alert, but the alert does not stop the action or recover the missing records, so a failure can leave gaps in the trail. See Security model.
Where can I read it?
| Where | Who | What it covers |
|---|---|---|
| Activity tab in the Levee app | The person running the project | That project's current sandbox session |
levee audit tail on the computer | Anyone who can sign in to the computer, including users who are not administrators | Every event on the computer |
| Vediram Portal > AI agents > Observability > Audit trail | Your organisation's administrators | Every enrolled computer that forwards audit, when forwarding is on |
The Activity tab
In Advanced mode, open a project and select Activity. It lists the latest events for the project's sandbox, newest first, with the time, event type, what was requested, and the detail. Click Refresh to update it. You only ever see events for your own projects.
Common event types: ContainerStarted, ContainerStopped, NetworkRequest (website traffic), AccessRequested, AccessApproved, AccessDenied, FileGranted and FileRevoked (files shared or unshared), PolicyReloaded, and Security... events when Levee blocked something suspicious. The full list is in the Audit event reference.
From the command line
# The 50 most recent events on this computer
levee audit tail
# The last 200, then keep watching for new ones (Ctrl+C to stop)
levee audit tail --lines 200 --follow
# Machine-readable output for scripts
levee audit tail --lines 500 --json | ConvertFrom-Json
What is recorded, and what never is?
Recorded:
- Every website request with its address, path, method and decision
- Every AI model call with the model, provider, token counts and response time
- Every database connection and query, including the query text (cut to 500 characters)
- Every web search, including the search words
- Every approval, refusal and revocation, with its scope
- Shared files added and removed, file previews opened in the chat, AI tools turned on, upgraded and off, sandbox start and stop, rule reloads, security events
Never recorded:
- What you and the agent write to the AI model (prompts and responses)
- Sign-in cookie values from connected identities (only the site and the number of cookies)
- Passwords, API keys, tokens and connection strings
- The content of Office documents or emails (only fingerprints, sizes and counts)
If the agent may search or query databases, treat the audit trail as sensitive: the search words and queries can show what people were working on.
Central audit in the Vediram Portal
When a computer is connected to Vediram Cloud, it can also send its audit events to your organisation's Vediram account, where administrators review them across all computers.
Turn it on: in the Portal, open your Levee policy and select Forward audit telemetry to the cloud in the General section. It is off by default. Only computers enrolled with your organisation forward events (see Connecting to Vediram Cloud).
When it is on:
- Levee sends governance events (requests, decisions, security events, sessions) with what was requested, the detail, the user and the computer. Routine housekeeping events stay on the computer.
- Events are queued on the computer and sent in the background. The local audit trail is always written first; a network outage or a Portal problem never blocks, delays or drops the local record.
- Prompts and responses to the AI model are not part of the audit trail and are never sent.
Review it: go to AI agents > Observability > Audit trail. Filter by time range, user, computer, event, resource and severity, and open any event for its full detail. The Dashboard page above it summarises sessions, refusals and estimated model cost.
Export it: Export CSV and Export JSON download the filtered events. An export holds at most 10,000 rows, so narrow the filters (for example, one month at a time) for a complete set. Viewing needs the audit.read permission and exporting needs audit.export; both are part of the admin role.
The Portal shows how long it keeps events. To keep them longer, keep the computer's audit file in your own log platform (below).
For your IT team
The audit files
The Levee service keeps two copies of every event in %ProgramData%\Vediram\Levee\:
| File | Format | Use it for |
|---|---|---|
levee-audit.db | SQLite database, table audit_events | Queries, the Activity tab, levee audit tail |
levee-audit.jsonl | One JSON object per line, append-only | Forwarding to a SIEM or log platform |
Each event has the same fields in both:
| Field (JSONL) | Column (SQLite) | Content |
|---|---|---|
Timestamp | timestamp | When the event happened (UTC, ISO 8601) |
EventType / EventTypeString | event_type | The event, for example AccessDenied or http.request |
Resource | resource | What was requested: host and path, model, table, query, tool |
Detail | detail | The decision and its reason |
UserName | user_name | The Windows user the action is attributed to |
MachineName | machine_name | The computer |
ContainerId | container_id | The sandbox session the event belongs to |
Example line:
{"Timestamp":"2026-09-23T09:14:02.511+00:00","EventType":"NetworkRequest","EventTypeString":"http.denied","Resource":"CONNECT pastebin.com:443","Detail":"policy deny","UserName":"alex","MachineName":"WS-0142","ContainerId":"7d1c..."}
File protection
- Only the Levee service (running as SYSTEM) can write to the audit files.
- Standard users can read them but cannot write, change or delete them.
- Administrators can read and delete them.
An administrator on the computer can therefore remove the files. For evidence that must survive a compromised or rebuilt computer, forward the audit trail off the computer as it is written.
Retention
Levee does not rotate or prune the audit files; they grow for as long as Levee is installed. Treat them like other local security logs: forward events to your SIEM for long-term retention, and archive or truncate the local copy under your own policy with the Levee service stopped.
Forwarding to your SIEM
levee-audit.jsonl is made to be read by a log shipper: every line is a complete JSON object and the file is only ever appended to.
Splunk Universal Forwarder (inputs.conf):
[monitor://C:\ProgramData\Vediram\Levee\levee-audit.jsonl]
sourcetype = _json
index = levee
disabled = false
Microsoft Sentinel / Azure Monitor Agent: create a Data Collection Rule with a Custom JSON log source pointing at C:\ProgramData\Vediram\Levee\levee-audit.jsonl, and map Timestamp to TimeGenerated.
Any other agent that can follow a JSON-lines file (Elastic Agent, Fluent Bit, Cribl Edge, NXLog) works the same way. The shipper needs only read access, which standard accounts already have.
Related
- Audit event reference
- Logging, for diagnostic logs (different from the audit trail)
- Files and locations