← All projects
Professional services

AI training and a custom agent system for an in-house team

Most AI training covers what the tools can do in general. This was the other way round: start from the jobs this particular team repeats, put the models on hardware they own, and connect the tools they already use, with firm limits on what the AI can do inside them.

Sector
Professional services
Engagement
Training plus a full stack build
Status
Delivered and handed over
Our role
Training, design, build, handover

What it does

A full AI stack set up for a business: training on their own work, models running on hardware they own, and their existing tools connected through custom servers that decide what the AI may touch.

Training on their own work

Sessions ran against the team’s own material rather than sample data, so what they learned applied to the work in front of them.

    Models on hardware the client owns

    A Mac Studio set up to serve language models locally, reachable by the team over a private network, so sensitive material does not have to leave the building to get an answer.

    • Local model serving configured and tuned to the machine’s memory limits
    • Reachable only over a private network, not exposed to the internet
    • A rebuild script and a recorded configuration, so the machine can be restored rather than rediscovered

    Their tools, connected through custom MCP servers

    Each business system is exposed to the AI through a server we write, so the AI works on real records and the server, not the model, decides what is allowed.

    • Read access first: the AI can look things up before it can change anything
    • Writing is a separate switch the owner turns on, and off again
    • Actions run as the signed-in person, held to that person’s own permissions
    • Anything that leaves the building, such as an email, is saved as a draft for a person to review and send

    Handed over

    Delivered as something the team runs themselves rather than something they have to call us about.

      The hard parts

      The problems that decided how this was built. They are the reason it works the way it does rather than the obvious way.

      Giving an AI access without giving it the keys

      The problem

      An assistant that can only talk is limited, and one that can act on every system without limits is a liability. Most connectors fall at one end or the other.

      What we did

      Permission gating lives in the connector, not in the prompt. Tools are scoped to specific actions, read-only is the default, writes need an explicit switch, and sending is always a human step.

      The result

      An assistant that does real work in the client’s systems, with boundaries that do not depend on the model behaving.

      Built with

      LLM APIsLocal model servingApple siliconMCP serversPrivate network

      We don’t publish screenshots, logos or client names for this work. Much of it runs inside a business and handles sensitive data, so we describe what was built rather than who it was built for. We’re happy to walk through the detail on a call.

      Ask a question

      Tell us what your version of this needs to do and we’ll come back within one business day with scope, approach and a price.

      What is your question about? (required)

      Need something like this?

      Every build on this page started as a workflow that off-the-shelf software nearly handled. Tell us where the gap is and we’ll scope what it takes to close it.