Engineering

How the systems are built.

Technical details for the person who will review the code.

AI agents with limits and a full record.

An AI agent is software that uses an AI model to choose its next step and can act in other systems. Ours have fixed parts: search over approved sources, written rules for what the agent may decide, access only to the tools its role needs, and a log of every run (a trace). Each action can be replayed from its trace, so you can always see why the agent did something.

/agents — rules, tools, traces, tests

Answers that cite their sources.

RAG (retrieval-augmented generation) means the system first searches your documents, then writes an answer from the passages it found. We split each type of document in a way that suits it, combine keyword search with search by meaning, and show the cited passage on screen. Before release, we test on questions the system has not seen. Does it find the right passages (recall)? Does the answer match what they say (faithfulness)? The test results come with the delivered system.

/rag — split → search → rank → cite → test

Tests that run on every change.

Each system comes with automated tests (evals) that run on every code change: saved example conversations for agents, search quality measures for document search, and balance checks for data pipelines. If a change makes a measure worse, we see it in code review, before it reaches your users.

/tests — run on every change

Planned for failure.

AI models sometimes fail, so the system around them must handle it. If a provider limits requests, the system switches to a backup. If the model returns output in the wrong format, the system rejects it. Limited permissions restrict how much damage one mistake can cause. After an incident, we write down what happened, the cause, the fix, and the check that stops it happening again.

/incidents — backups, format checks, written reports

What runs where, and what you own.

During the build, the system runs on your cloud account or ours. At handover it moves to yours. After handover we keep no passwords or access keys. The code repository and the automated build and test setup (CI) belong to you from the start. The operating instructions (runbook) are written so your team can run the system without us.

/handover — code, CI, runbook, access keys: yours