Back home
Agents

AI agent development, for work that finishes itself.

An agent is judged on the task it completed, not the reply it wrote.

We build agents that do a job inside your systems: read the record, decide what it needs, call the tool, check the result, and stop for a person when it should. This page is about the engineering of that, the parts that decide whether an agent finishes the work or quietly does the wrong thing. The wider catalogue of AI systems, including copilots and knowledge systems, sits on the AI solutions page.

What building an agent actually involves

An agent is not a prompt with ambition. Most of the build time goes into the six things below, and they are what separates something you can leave running from something that needs watching.

01

Tools, and the limits on them

An agent can only do what it has been handed. Each tool is a defined action with its own permissions, its own validation, and its own idea of what a bad input looks like, so the boundary is enforced in code rather than requested in a prompt.

  • One tool per action, with a typed contract
  • Per-tool permissions and scoping
  • Input validation before anything runs
  • Read-only tools separated from writing ones
02

Planning, retries, and giving up well

Real tasks fail halfway. The agent needs a plan it can revise, a retry that does not repeat a side effect, and a point at which it stops and says what it could not do rather than inventing a result.

  • Multi-step planning with revision
  • Idempotent actions, safe to retry
  • Step limits and loop detection
  • A clean failure message, not a guess
03

Approval gates and human handoff

Anything irreversible sits behind a person until the record says otherwise. A payment, a deletion, a message to a customer, a contract change: the agent prepares it, someone approves it, and the gate moves as trust is earned.

  • Approval queue with full context
  • Confidence thresholds that route to a person
  • Handoff with the reasoning attached
  • Gates loosened per action, not all at once
04

Memory and what it is allowed to keep

Agents need state to work across steps and sessions, and state is where privacy problems start. We decide what is remembered, for how long, and who it can be shown to, before the first run rather than after an audit.

  • Working state across a multi-step task
  • Retrieval of prior cases and outcomes
  • Retention limits and redaction
  • Per-user isolation of anything personal
05

Evaluation before anyone depends on it

We hold back a set of your real cases with known right answers and score every change against them. A prompt tweak or a model swap that quietly makes things worse gets caught before release rather than by a customer.

  • An evaluation set built from your own cases
  • Scoring on every change, not just at launch
  • Regression checks against past failures
  • Sampling of live traffic after release
06

Cost, latency, and model routing

Running cost is mostly model usage, and most steps of a task do not need the largest model. Routing each step to the smallest model that handles it is the difference between a system that scales and one that gets switched off.

  • Small models on classification and routing
  • Large models only where reasoning matters
  • Caching on anything repeated
  • Per-run cost tracked and visible
How we work

How the work runs

  1. Tell us what you need

    A short written brief is enough to start: what you are building, the stack it has to live in, and the problem behind it. Someone technical reads it, not a sales rep.

    passed when we reply with questions and a proposed shape

  2. Scope and quote

    We agree what the first release contains and what it costs before anything is built. Anything we cannot estimate honestly gets scoped on its own rather than padded into the total.

    passed when the scope and the quote are agreed

  3. Build in the open

    Working software arrives in increments, in your repository, with our commits visible from the first week. Progress is something you can open and run, not a status report.

    passed when a real user is doing a real job in it

  4. Iterate, then hand over

    What the first release teaches sets the priority for the next one. When you want it in house, documentation and a handover period are part of the engagement rather than an extra.

    passed when your team can run it without us

How pricing works

when the scope is clear

Fixed price per milestone

You approve each milestone and its price before it starts, so the cost is known before the work is rather than after. Milestones are sized to be worth reviewing on their own.

when the work is ongoing

Monthly rate for a dedicated team

A set team at a set monthly cost, with notice rather than a minimum term. Priorities move between sprints without renegotiating anything.

when the shape is still open

Scoping first, quote after

We work out what it should be with you before quoting it. There is no charge for that conversation and no obligation to go ahead.

Frequently asked questions

What ships with every agent

Every build ships end to end, from first scope to live deployment and ongoing support.

A defined tool set, with permissions on each tool
Approval steps on anything that cannot be undone
A full action log, with the reasoning behind each step
An evaluation set built from your real cases
Monitoring and alerting on failure and drift
Model routing, so simple steps do not pay for a large model

Send Inquiry

Regarding: AI agent development
What are you looking for? optional, pick as many as apply

By submitting this form, you agree to our Privacy Policy and Terms of Service.