Skip to content

AI agent development

Agents built for your systems, with a person in charge

We design and build agents that do multi-step work in your tools. They read the ticket, gather the context, draft the change and stop for review before it ships.

We build client agents the way we build our own in Jobshout: tools with strict schemas, bounded loops, approval gates and a trace of every step.

  • Claude, OpenAI or open-weight
  • MCP integrations
  • Approval gates

Agents we build

Each one gets a job description, an owner and a list of things it isn't allowed to do.

  • Support agents

    Triage incoming tickets, pull order and account history, draft replies grounded in your policies, and route anything unusual to a person.

  • Sales and CRM agents

    Enrich leads, update CRM records after calls, draft follow-ups and flag stalled deals. Nothing reaches a customer without approval.

  • Ops and SRE agents

    Read alerts, logs and dashboards, summarise the incident and propose a fix. Automation grows step by step, only for the actions you trust.

    Read the KubePilot write-up: Ops and SRE agents
  • Document processing agents

    Extract fields from invoices, contracts and forms, check them against your records and post them to the right system, with a queue for anything uncertain.

    Read the VAT return build: Document processing agents
  • Coding and review agents

    Review pull requests, write tests and open changes for your engineers to merge. Jobshout's PR Reviewer does this on our own repositories.

    See Jobshout: Coding and review agents
  • Multi-agent workflows

    A planner hands work to specialist agents and a supervisor checks the result, retries or escalates. Useful when one job crosses several systems.

How we build an agent

An agent is a loop. The model picks a tool, the tool runs, the result goes back to the model. Most failures come from the loop rather than the model, so that is where we spend the effort.

Tools are typed and validated before they run. Loops have step, time and cost budgets. Prompts are versioned like code, and every run leaves a trace you can read.

  • Planner, executor, memory and supervisor as separate parts
  • Schema-first tools with strict validation
  • Deterministic retries and bounded loops

Tech stack

We choose per project. These are the tools our engineers use and write about in our articles.

  • Models

    • Claude via the Anthropic API or Amazon Bedrock
    • OpenAI models
    • Open-weight models: Llama, Mistral, Qwen, Kimi
  • Agent frameworks

    • Claude Agent SDK and Claude Code subagents
    • LangChain and LangGraph
    • AutoGen
    • Airflow 3 for scheduled pipelines
  • Integration

    • MCP servers with OAuth
    • REST and webhook connectors
    • Amazon Bedrock AgentCore
  • Hosting and inference

    • vLLM, TGI and Ollama for self-hosted models
    • Kubernetes and k3s
    • Amazon Bedrock and Azure AI Foundry
  • Memory and retrieval

    • Vector search, including NebulaDB
    • Key-value stores for agent state
    • Retrieval with source citations
  • Observability

    • OpenTelemetry traces
    • Prometheus metrics
    • Cost and latency budgets per agent

Guardrails

Limits are part of the design. We write them down before the build starts.

  • Approval gates

    Actions that send, spend or delete pause for a named person. The agent can draft. It only ships on its own for steps you have decided are safe to automate.

  • Scoped credentials

    Agents never hold long-lived keys. WSL Vault issues short-lived credentials per agent and per task, and logs every use.

  • Edge controls

    Model and tool traffic can pass through WSL Proxy, which adds WAF rules, rate limits and an audit trail at the edge.

  • Allow-lists and budgets

    Each agent gets an explicit list of tools and data sources, plus step, time and cost limits for every run.

Evaluation and deployment

An agent is finished when it passes its tests in production, not when the demo works.

  1. Build an evaluation set

    Real examples from your work, each with the answer a good colleague would give. Every change is scored against it.

  2. Trace and measure

    Task success, tool errors, latency and cost per run, taken from OpenTelemetry traces.

  3. Release through rings

    Ring Promoter moves each release from int to test, acc and prod only when health checks pass, and rolls back when they fail.

  4. Watch it in production

    Monitoring, alerts and a regular review of failures and cost. Each failure becomes a new evaluation case.

Questions about agent projects

Do you use a framework or build from scratch?

Both. If a framework such as LangGraph or the Claude Agent SDK fits, we use it. If the job is simple, a small loop with typed tools is easier to test and maintain.

Can the agent run on our own hardware?

Yes. We host open-weight models with vLLM or Ollama on your servers. If you need the machines, our sister company Workstation specifies and builds GPU workstations and clusters.

How do you stop an agent doing something harmful?

It can only call the tools on its allow-list, with scoped credentials, inside step and cost limits. Anything that sends, spends or deletes waits for approval, and every run is logged.

Who owns the agent when the project ends?

You do. The code, prompts, evaluation sets and runbooks are in your repository from the first commit.

Describe one job you want an agent to do

We'll reply with an agent design, the risks, and how we would prove it in a pilot.