# Custom AI agents built for your trade

The model is the part of an AI agent everybody talks about, and the smallest
part of the work. What makes an agent useful in one trade — shipping, a clinic, a
law office, a warehouse, an engineering firm — is everything around it: what it
is connected to, how it is measured, who checks it, and what it may touch. We
build that part, for your trade, around the model that does each job best, and
we keep the model replaceable.

## Connected: to the systems the work lives in

An agent that cannot reach your systems can only talk. We connect it to the ones
the work happens in — the ERP, the CRM, the booking system, the mailbox, the
document store — each through a described tool with a narrow job: look up a
vessel, draft a quote, file a case. Tools are offered over MCP or an
[API](/glossary/#api), every input is typed and [validated](/glossary/#validation),
and an agent that needs your company's own records reads them from
[data made ready for it](/ai-data/). Memory of past cases lives in your
[database](/glossary/#database), not in a vendor's chat history.

## Measured: against cases your experts write

Without tests, "it seems better" is the only measurement anyone has. We sit with
the people who do the work and write down real cases from your trade, each with
the answer a senior person would give. Every change — a prompt, a tool, a model —
runs against all of them before it ships, and the score is kept per case over
time, so a fix for one customer cannot quietly break another. It is the
[quality gate](/glossary/#quality-gate) we run on our own code, applied to an
agent's answers.

## Supervised: a person decides where it matters

Not every action should be the agent's alone. We write down, with you, what it
may do on its own, what it drafts for a person to approve, and what it never
touches, and the rules are enforced in the tools rather than asked for in the
prompt. A review screen shows a person what the agent proposes and why; a
correction made there becomes a new test case. Every step is traced with
[OpenTelemetry](/glossary/#opentelemetry), so when an answer goes wrong you can
see which tool, which document and which model produced it.

## Better when a better model ships

Models improve every few months, and an agent tied to one of them ages with it.
Ours route each job to the model that does it best — a small, fast one for
sorting and extracting, a large one for judgement — and the choice is
configuration, not code. When a new model ships, it runs against your cases
overnight, and you switch on the score rather than on the announcement. A better
model should make your agent better by morning, and that only happens when the
rest of it was built to allow it.

## The work behind it

The habits that make an agent trustworthy are the ones we already keep in our
own engineering. We [built a guard engine of 268 commit checks](/portfolio/built-a-268-check-guard-engine-for-the-repo/)
and [a commit gate of 22 linters with no warning tier](/portfolio/built-a-22-linter-commit-gate/),
then [wrote tests for the checkers themselves](/portfolio/wrote-tests-for-the-checkers-themselves/)
so a check that reads nothing cannot report clean. We
[built first-party error monitoring and tracing](/portfolio/built-first-party-error-monitoring-and-tracing/),
[made six collectors state what they skipped](/portfolio/made-six-collectors-state-what-they-skipped/),
and [ran a whole development programme as 51 written initiatives](/portfolio/ran-development-as-51-written-initiatives/),
each with its measurements and the decisions it declined. This site's own
[readiness for agents](/ai-ready/) was built the same way.

## How an engagement runs

It starts with one task and its cases. We sit with the people who do it, write
down thirty to fifty real examples with the right answers, and agree what the
agent may do alone. Then we build the smallest agent that passes them, behind a
review screen, in your infrastructure or your cloud account, with its access
[locked to what it needs](/ai-security/). Then the next task. You own the code,
the cases and the data, so the agent stays yours when the model under it
changes. It is bought like the rest of our work, on the terms in
[what it costs](/what-it-costs/).

If there is work in your trade that an agent should take off somebody's desk,
[tell us what it is](/contact/) *(we answer the same day)*.

<https://engineer.company/ai-agents/>
