Almost every AI product for documents puts the model in the path of the file: it reads the material, decides what to change and hands back a new document. That works in the demo and fails in the case that matters, because a language model is excellent at interpreting and poor at guaranteeing. SazAI Corpus starts from a different split, and everything the other pages promise comes from it.

The two layers

One understands what you want; the other opens the file by the format's own rules

The talking layer understands the request, chooses the operation, explains the result and answers your questions. It is made of a language model, and that is where the AI works. The layer that touches the file is a deterministic engine: it opens the document by the rules of its own format, finds the elements that exist, changes exactly the ones authorized and writes the file back. That engine does not interpret intent and does not improvise.

your requestin your own words, the way you speak
a chosen operationnamed, logged, with a receipt
the file writtenby the engine, never by the model
The model chooses the operation; the engine is what opens and writes the file.

The practical consequence of this split is the one that decides a purchase: the worst possible error in the AI layer is still a conversation error. If the model misreads your request, the wrong operation runs and that shows up in the receipt, with the name of what ran and against which version. What does not happen is the file coming back silently damaged by an improvisation.

The document comes out of a specification

You say what you want; what executes is an operation on a known structure

Before any transformation, the document is read whole and broken down into the elements that compose it: text, shapes, tables, cells, pages, relations between the parts, properties and metadata. That map is recorded, and it is what everything else rests on. A change is not a rewrite of the file: it is a specification executed against that map, which alters the authorized elements, leaves the rest untouched and checks the result against the source structure.

That is why a question about the document is answered without reprocessing anything, and why a comparison between two versions points to divergence per unit instead of showing two texts side by side. The whole of that reading, with what it keeps for each format, is in your documents.

Where the model's text actually enters

In translation the boundary is checked, and when it does not match the step fails

It is worth being specific about the one case where the model’s text actually reaches the file, which is translation. There the translated text comes back and has to be injected into the right elements, and the boundary between what the model produced and what enters the document is checked, not assumed. The material sent carries markers that delimit each passage, and the number of markers that comes back is compared with the number that went out. If it does not match, because the model dropped one, invented another or wrote something that looks like one, the step fails.

633Went in with 633, came out with 633In a 45-slide translation test the file went in with 633 elements and came out with 633, went in with 971 shapes and came out with 971, and the engine touched exactly the 11 slides that had text. The other 34 were not altered because there was nothing in them to alter.
A count is the honest way to say this; an adjective is not.

The difference this makes is the usual one at this house: a model that misbehaves here does not produce a document damaged in silence, it produces an operation that did not complete. You find out, instead of discovering it in the meeting. The scope of this guarantee varies with what each format allows, and the translate page says where it holds and where it ends.

The language model is a choice, not a dependency

What stays the same when the model changes is the deterministic layer

The model that talks and the model that translates are different roles, chosen separately by the merit measured in each function, and both are replaceable by configuration. An installed client points at the model it contracted for.

This matters for a reason beyond price: a tool tied to a single AI provider ages together with it. The deterministic layer is the one that does not move when the model changes, and it is what the arrangement’s sovereignty rests on. It is also why the agent does not invent a fact about your document: it answers from what the engine recorded, and the record either holds the information or it does not.

This is the split; what it enables are the channels through which you talk to the product, in interfaces, and the set of operations the agent can execute, in capabilities.