AI agent development
Agents that take real actions — writing to your database, calling your internal APIs, moving records through your workflow. Every tool gets an explicit definition, a permission boundary and an audit trail.
IREVEX builds AI agents and the harness around them — the routing, evaluation, permissions and tracing that decide whether an agent is a demo or a system you can depend on.
The model is the easy layer. Everything around it is where projects break.
Six things — and they are usually the same project seen from different angles.
Agents that take real actions — writing to your database, calling your internal APIs, moving records through your workflow. Every tool gets an explicit definition, a permission boundary and an audit trail.
The model is the smallest part of a working agent. We build the runtime around it: retry and fallback logic, tool routing, memory and context assembly, and hard cost ceilings per run.
Eval suites against your own tasks with a frozen regression baseline, so a prompt or model change either passes or does not. Traces cover every step, tool call and token spend.
Retrieval built against your actual schema and vocabulary, not a generic document blob. Ingestion from source systems, chunking that respects structure, and refresh that keeps answers current.
Adding agent capability to software that already ships and already has users. We work inside your codebase, respect the existing auth and data model, and roll out behind flags.
The application around the model: front ends, APIs, background workers, storage, deployment and CI. Most agent projects are mostly ordinary software, built to the same standard.
Most agent projects go wrong at stage three, which is why we budget for it rather than treating it as polish.
What the agent must do, what it is allowed to touch, and how anyone will know it worked.
A narrow version running against your real data, early enough that the scope can still change.
Evals, tracing, permissions, retries, cost limits. Most agent projects fail here, so this is where the work is.
Into production with monitoring in place, then handed to your team or run by ours.
A fixed, short scope for teams deciding what to build. We map the workflow, test the risky assumption with a working prototype, and hand back a written recommendation.
A defined deliverable with agreed scope, acceptance criteria and handover. You get the running system, the eval suite, the tracing setup and documentation.
An ongoing retainer where our engineers work in your repository, your tracker and your standups — expertise in the room rather than delivered over a wall.
DataSpeak is our own product — a natural-language interface to a data warehouse. Because we own it, we are free to explain exactly how it is built. Client work rarely comes with that permission.
Six steps, each one a place a wrong answer can be traced back to. Two of them can be skipped — that is the point of the fourth.
A first pass decides whether this is answerable against the connected database at all, and extracts the intent from it. Anything that is not a data question exits here, before a single line of SQL is written.
Tables, columns, types and relationships are discovered when the database is connected and kept per instance. The prompt is built from that record, narrowed to the tables the instance owner has exposed.
Semantic search over previously approved questions, their SQL, and per-table instructions. Rejected attempts come back too, carrying the approver's reason, so they are retrieved as counter-examples rather than patterns to copy.
What the question asks is compared against what was retrieved. A near-identical prior question confirms tables and columns outright and the selection steps are skipped; a partial match confirms some and leaves the rest open.
Tables, then columns, then SQL — three narrow steps with typed structured output rather than one prompt asked to produce a whole query, so a wrong answer localises to a step you can inspect.
The SQL is returned with the rows and can be rated. A rejection opens a review queue; only a correction a maintainer approves is embedded back into retrieval. Nothing edits the system's grounding without a human signing it off.
“What was revenue by region last quarter?”
Line 02 counted refunded orders as revenue. Finance means net. An analyst struck it once; the approved correction is retrieved for every later revenue question on this schema.
| region | revenue |
|---|---|
| North | 128,400 |
| West | 96,150 |
| South | 74,920 |
Introspection runs on connect and is stored per instance — tables, columns, types, relationships. Only tables the owner has exposed reach the prompt, so generation works against the warehouse that exists rather than a guess at what one usually looks like.
The generated SQL is returned beside the rows, never hidden behind them. A result that cannot be read line by line cannot be corrected line by line.
A correction is embedded only after a maintainer approves it, then retrieved as context for the next similar question — so a definition the team has already argued out is not re-litigated.
DataSpeak is in active development and onboarding a small number of teams. We publish no performance figures for it yet.
Ordinary software fails deterministically. An agent fails statistically.
A function either returns the wrong value or it does not. An agent returns the right answer most of the time, and the interesting question is which inputs sit in the remainder. You cannot answer that by reading the code, only by measuring it — which means an evaluation suite, recorded traces and a way to replay a failing case have to exist from the first week rather than being added after the first incident.
The people writing the code. There is no account layer between you and the engineers.
Running software in your environment, with its tests, traces and evaluation suite. Not a deck.
A narrow first slice that reaches production, then widen it once the failure modes are visible.
A stalled prototype, a harness that keeps timing out, or a problem you suspect an agent might fit.
No account managers and no discovery deck — the first conversation is with an engineer, about specifics. We will say plainly if it is not something we should take on.