Skip to main content

Runs and Audit Trail

A Run records one accepted execution. Sources currently include chat, openai_chat, alert:<provider-type>, telegram_bot, mattermost_bot, change_preview, and change_apply.

The append-only JSONL store synchronizes every record. Events retain bounded type, status, and metadata. Prompts, model answers, tool arguments, tool outputs, approval IDs, authorization headers, and API keys are omitted.

Reasoning Runs have a host-owned budget. Bounded audit metadata records actual iterations, tool calls, model tokens, context tokens, tool-result bytes, retrieved-context bytes, and duration. If an upstream omits completion-token usage, Akritas charges the full reserved allowance.

Alert Runs also produce a strict structured investigation result. Evidence references are validated against host-created tool-call IDs. A model's confidence value remains descriptive and is never a security decision. The validated object is persisted as a separate append-only record and restored with the Run after restart.

Alert deliveries, canonical events, incidents, and investigation jobs use a separate append-only alert journal. The event and incident IDs are included in Run metadata so the authenticated APIs can connect the provider event to its investigation evidence.

Actor attribution is api-key or anonymous, not a human identity. The audit file supports operational history but is not signed and does not provide cryptographic non-repudiation.