> ## Documentation Index
> Fetch the complete documentation index at: https://zenorent.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# How the AI works

> What Zeno's AI reads, how it learns from your corrections, and where it runs

Most accounting products bolt a chat window onto the side of the app. Zeno's AI writes through the same code the buttons do, reads what your organization has taught it, and gets better at your books specifically rather than at bookkeeping in general.

This page is the shape of the whole thing. The pages it links to are the detail.

![AI Grounding & Safety](https://mintcdn.com/zenoservices/oXHN6W4EbbFuxgiw/images/illustrations/ai-grounding-safety.svg?fit=max\&auto=format\&n=oXHN6W4EbbFuxgiw\&q=85\&s=3ba210892e588232020fffe338f8c41f)

## It writes where you write

When Zeno categorizes a bank line, it calls the same function the **Approve** button calls. When it posts a journal entry, it goes through the same posting primitive the ledger uses everywhere else. There is no second, quieter path.

That's the difference between an assistant that *drives your software* and one that has its own back door. Everything Zeno does inherits the audit stamp, the period-close checks, the numbering, and the invariants — because it isn't reimplementing any of them.

The same holds for reach. In the terminal or Claude Desktop, [the operator](https://zenorent.com/docs/operator/connecting.md) signs in as you and can touch exactly what your login can touch. Not more.

## What it learns from

Three layers, deliberately kept apart. Merging them makes each one worse.

| Layer | Holds | Runs |
| - | - | - |
| **[Rules](https://zenorent.com/docs/rules.md)** | Deterministic pattern → vendor and GL mappings | At ingest, no AI, no cost |
| **[Knowledge](https://zenorent.com/docs/knowledge-and-rules.md)** | Judgment: quirks, cues, routines | When it's relevant |
| **Playbooks** | Whole procedures, as slash-commands | When you invoke one |

A pattern that's always the same answer belongs in a rule, where it fires for free and lands identically every time. A call that needs someone to read the document is knowledge. A sequence with an order and some gotchas is a playbook. See [Knowledge & rules](https://zenorent.com/docs/knowledge-and-rules.md) for which is which.

## Correcting it is how you train it

Every time you fix a value the AI produced — a document's type, a vendor name, a GL account on a bill line — the change is recorded. Not as a thumbs-up, as a durable record of what was wrong and what was right.

Three things read that record:

* **GL accounts.** A confirmed bill line teaches the vendor and line description that went with the account. From the second time on, the same line comes back suggested.
* **Vendor names.** The name printed on paper is rarely the name in your books. A parsed name that resolved to one of your vendors is remembered, so GARDEN STATE BLDG SUPPLY on a bank line and Garden State Building Supply in your books stop being two different things.
* **Document types.** When a vendor's documents keep getting retyped to the same thing, Zeno writes down what that sender actually sends — and proposes it to you.

The record spans surfaces. Correct the same vendor-to-account mapping twice — once on a scanned bill, once on a bank line — and Zeno proposes a rule, because it counts both as the same correction.

Correct a vendor twice and you've trained your bookkeeper on another vendor.

### Nothing goes live on its own

Proposals arrive for review, not for application. A proposed rule, a proposed default account for a vendor, a proposed note about what a sender sends — each waits for a person.

Two properties hold underneath, and they're worth trusting:

* **Learning never overwrites you.** A value a human set is never replaced by something inferred. Learning accumulates evidence and proposes; it doesn't edit.
* **A draft steers nothing.** Only confirmed entries are ever given to the model or the parser. That's enforced in the query itself, so an unreviewed proposal cannot quietly start changing how your documents are read.

## What reaches the model, and when

Context is expensive and attention is finite, so Zeno is deliberate about what it sends.

**Always applied.** A handful of entries you mark as true of every job — how your organization handles intercompany transfers, say. These ride along on every turn.

**When the thing appears.** Anchor a note to a vendor and it arrives the moment that vendor does, in whatever Zeno is looking at. Nobody has to remember to go and ask. Capped, so a few well-aimed notes beat a pile of loose ones.

**When a document is read.** What you know about a sender is handed to the parser that reads their documents. What kind of document they send goes to the step that decides the type; how their fields are laid out goes to the step that pulls the numbers out.

That last one is filtered hard. Zeno doesn't hand the parser your whole organization — accounts and vendors are narrowed to the ones the document actually mentions, matched against its text. A parse carries the knowledge about *that* document and nothing else.

## Where it runs

The same brain, four places:

* **[In the app](https://zenorent.com/docs/ai-bookkeeper.md)** — a chat beside your books, with tables and documents rendered as tables and documents rather than described to you in prose.
* **[In your terminal or Claude Desktop](https://zenorent.com/docs/operator/connecting.md)** — full reach across every module you can reach, for the jobs that are too big to click through.
* **[In the queue with you](https://zenorent.com/docs/bookkeeping-inbox.md)** — a shared workspace over pending bank-feed items, where you and Zeno work the same list.
* **In the pipeline, with no chat at all** — documents get read, classified, and matched as they arrive. Most of what the AI does for you happens here, and you only meet it at the review step.

## Staying in control

Zeno is instructed to name anything irreversible — sending, deleting, voiding, closing a period — and wait for your go-ahead before doing it. In practice you'll find it proposes and waits rather than acting.

Every write is stamped with your user and the session that made it, so the audit trail shows what happened and through which conversation. Alongside it, Zeno keeps a dated **work log** of what it did and why: the audit trail records the change, the work log explains it. Three months later, that's the difference between finding a diff and getting an answer.

Verify its work the way you'd verify a bookkeeper's — with the report or the balance that proves the batch, not by reading back every row.

## Your data stays yours

The rules, the entries, the anchors, the corrections, and the log are your organization's records. Read them, edit them, export them, delete them.

Nothing Zeno knows about your books is a model someone else trained on your data. It's text you wrote or approved, in tables you can open.

## Where to go next

* [Knowledge & rules](https://zenorent.com/docs/knowledge-and-rules.md) — the layers, and which thing goes where.
* [Rules](https://zenorent.com/docs/rules.md) — conditions, batch apply, provenance.
* [The bookkeeping inbox](https://zenorent.com/docs/bookkeeping-inbox.md) — working the queue alongside Zeno.
* [Zeno in Claude](https://zenorent.com/docs/zeno-mcp.md) — the terminal and Desktop operator.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.