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.
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 agentsDocument 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 agentsCoding 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 agentsMulti-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.
Build an evaluation set
Real examples from your work, each with the answer a good colleague would give. Every change is scored against it.
Trace and measure
Task success, tool errors, latency and cost per run, taken from OpenTelemetry traces.
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.
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.