Autonomy contract
The agent has a deliberately narrow definition of "autonomous." It runs in the background, makes decisions, and writes data — but the set of decisions it makes silently is explicit and small. This page lists every one.
The agent does these silently
Ingress
- OCRs every receipt you forward to the channel. Receipts that
fail OCR land in the queue with a
parse_failedstatus; the agent does not silently drop them. - Pulls bank transactions from your account every ~6 hours via Enable Banking (PSD2). Each new transaction lands in the reconciliations table.
- Tags documents by kind —
invoice/expense-receipt/bank-statement/company-doc/tax-rule/other— using a small classifier. Operator can override with/setkind.
Matching
- Pairs new bank transactions with existing documents
(and vice versa) using a deterministic score:
reference + amount + date proximity + counterparty + the
card-debit boost. Matches that clear
HITL_THRESHOLD(0.55) are proposed; below threshold they sit unmatched. - Re-runs the matcher on every poll tick so a receipt forwarded after its bank debit still finds its pair.
Reasoning
- Decides VAT treatment for every booking via the
vat_decisionreasoner — retrieves applicable rules from the structured rules table + the knowledge graph, reasons over them with an LLM, returns a rate + confidence + the rule ids it relied on. High and medium confidence are applied silently. Low confidence escalates to HITL.
Writes
- Stamps every reconciliation with an idempotency marker
(
source_kind:source_reference) so repeated runs don't double-book. - Updates the high-water mark on the bank session so the next poll starts from where the last one ended.
- Caches the e-Fin purchase-articles list in memory per booker run to avoid hammering the API for the same lookup.
Audit
- Writes a checkpoint record for every HITL prompt with a unique id; the operator's resolution lands against that id. Nothing is irreversible without a stamped approval.
Why this list is small
Every silent action is something the operator would otherwise have to babysit. Pulling transactions, OCRing PDFs, scoring matches — these are mechanical and high-volume. Automating them is the whole point.
Anything that creates master data in the accounting platform
(suppliers, customers, bank accounts, expense articles) or writes
an irreversible entry (register on a purchase invoice) is
gated by HITL by design. See the
HITL contract for the full list
of pause points.