ServicesAI evals engineering
AI evals engineering, built from your own traces
Many teams can see every call their AI system makes but cannot say whether last week's prompt change made it better or worse. We build evaluations for AI products, agents and RAG systems from the traces and cases you already have, together with the people who know what a good answer looks like, and leave them in your repository so they keep working when you change models or tools. Cloudsail works for companies across Europe, with engineers in Germany and Poland, and can test in English, German and Polish.
Four weeks on one product
- 1
Week 1: we read at least 100 of your traces with a domain expert and note what went wrong.
- 2
Week 2: the notes become failure types with counts, and a versioned test set.
- 3
Week 3: code checks first, then judges for what code cannot check, each tested against human labels.
- 4
Week 4: a release gate in CI, sampled checks in production and a baseline report you keep.
Tracing is not the same as evaluating
In LangChain's State of Agent Engineering report, published in 2026 and based on responses from over 1300 professionals working with agents, 89% had some form of observability in place, yet 29.5% ran no evaluations at all, and quality was the barrier to production they named most often. A trace tells you what happened in one conversation. An evaluation tells you how often a particular failure happens across all of them, and whether a change moved that number.
Generic scores such as helpfulness or an overall rating out of ten rarely help. They move up and down without telling anyone what to fix. We start from the failures your system actually produces.
Reading traces before writing tests
In the first week we sample at least 100 traces or past cases and read them with someone who knows the work, such as a support lead or a claims handler. For each one we write a short note on the first thing that went wrong. We keep reading until new traces stop showing new kinds of failure.
The notes are then grouped into a short list of failure types and counted. The counts decide the work. Some failures are fixed directly in a prompt or a retrieval setting, some get a check in code, and only those that need judgement get an LLM judge.
A test set that belongs to you
The test set comes from your traces and past cases, tagged by intent, difficulty and language, and versioned next to your prompts so every score can be reproduced. Where a product has no users yet, we generate cases along explicit dimensions instead of simply asking a model for test questions, and your experts add the cases they already know are hard.
For RAG systems we label which passage should answer each question, so retrieval and the answer are scored separately. For agents we check the outcome first and use the trace to find where a run went wrong.
- Cases from real traffic, tagged and versioned in your repository
- Rare but costly cases kept in the set even when they are a small share of traffic
- Questions in each language your users write in
- Cases for every failure type found in the error analysis
RAG evaluation
When an assistant answers from your documents, a wrong answer has two possible causes: the right passage was never retrieved, or the model misused a passage it had. We label which passages should answer each question and measure retrieval on its own, with recall at k and the rank of the first relevant passage, before we score whether the answer is faithful to what was retrieved.
The set also covers questions your documents cannot answer, questions whose answer changed in a newer document and questions from people without access to the source, because a demo rarely tests any of them.
Checks tested against your expert
We write checks in code first: valid JSON, required fields, a SQL query that runs, a refund amount within policy. They cost almost nothing and give the same answer every time. Where a failure needs judgement, such as an answer that misstates a contract clause, we build a judge that returns pass or fail for that one failure.
Each judge is tested against labels from your domain expert on cases it has not seen before. We report how many real failures it catches and how many good answers it wrongly fails, so you know how far to trust its numbers. Judges are tested again whenever the judge model, its prompt or the rubric changes.
Release gates and checks in production
A small suite, mostly checks in code, runs in CI on every change to prompts, models, tools or retrieval settings. Each failure type has its own threshold, so a gain in one area cannot hide a regression in another. In production, judges run on a sample of live traffic, with alerts per failure type.
The baseline report puts quality, cost per successful task and latency in one table, with confidence intervals. On 100 cases, 80% and 83% are usually within the noise of each other, and we say so instead of declaring a win.
What the first engagement covers
The baseline covers one AI product or workflow, such as a support assistant, an internal RAG tool or a process agent, in up to two languages. It needs a domain expert from your side for a few hours a week and access to traces or past cases. Before we start, we agree how that data is handled, including pseudonymisation of personal data.
Teams that already run evals can start with the two-week audit described below.
- Failure types with counts
- A versioned test set in your repository
- Checks in code, judge prompts and a report on how well each judge agrees with your expert
- Configuration for the CI gate and for sampling in production
- A baseline report with quality, cost and latency, and a ranked list of fixes
An eval audit if you already run evals
In two weeks we check your existing evals against your traces and against the decisions you make with them, and leave a written list of what to keep, fix or drop.
- How the failure types were found, and whether anyone read real traces
- Whether each judge was tested against human labels, with its true positive and true negative rates
- Whether the test set reflects your traffic, your languages and the rare cases that cost the most
- Whether changes in the scores are larger than the uncertainty of the test set
- Whether CI thresholds and production alerts match the failures that matter to you
Tools, and the EU AI Act
We work with the platform you already use, such as Langfuse, LangSmith or Braintrust, or with none. Test sets and judges stay in plain formats in your repository. Evaluation tools have changed owners often over the past two years, and OpenAI made its hosted Evals platform read-only on 31 October 2026 and will shut it down on 30 November 2026, so your evals should not depend on any one of them.
Under the EU AI Act, the duties to test against defined metrics, declare accuracy and monitor after launch fall on providers of high-risk systems. Under the timetable adopted in 2026, they apply from 2 December 2027 for the high-risk uses listed in Annex III and from 2 August 2028 for AI in products covered by Annex I. For most chatbots, internal assistants and RAG tools, the Act sets no such duty. Evals are good engineering either way, and they can supply much of the test evidence a provider will need if a use case becomes high-risk. We do not assess conformity or give legal advice.
Questions
How is this different from your coding agent evaluations?
Coding agent evaluations compare tools, models and settings on changes your engineers have already merged. This offer evaluates the AI product itself: the assistant, agent or RAG system your customers or staff use.
Do we need a particular eval platform?
No. We use the one you have, or plain files and your CI. Everything we build stays in your repository.
What if our product has no users yet?
We start from cases your experts write down and from synthetic cases generated along explicit dimensions, and plan the first reading of real traces for the first weeks of use.
How long does it take?
Four weeks for the baseline on one product, two weeks for an audit of evals you already run. We agree the scope in writing before we start.
What does it cost?
A fixed price, agreed in writing before we start. It depends on the number of languages, whether traces already exist, how many failure types need a judge and how much CI work is involved, and we quote it after a first 30-minute call.
What happens in the first call?
Thirty minutes with one of our engineers, free of charge, about your product and the failures that worry you. We need no access to your systems. Afterwards we propose a scope and a price.
Related services
AI automation
Business processes automated step by step with rules, models and agents, tested on past cases and reported as cost per case.
AI chatbots
Chatbots and assistants for customer service and internal support that answer from your data, act through approved tools and hand over to people.
AI consulting
AI strategy, use case assessment and readiness checks from engineers who also build and measure the first system.
AI engineers for your team
Experienced AI engineers who join your team part-time or for longer and build AI features, agents and platforms with you.
Enterprise AI
Assistants, agents and private AI built into your systems, with your permissions, audit logs and a platform team that can run them.
MCP server development
MCP servers that connect approved internal APIs to AI assistants, with narrow permissions, approval for changes and tests.
RAG development
Assistants that answer from your internal documents, with permissions, citations and tests on your own questions.
AI engineering and architecture
Assistants, voice interfaces and agents in the products you sell, with the serving and retrieval underneath.
Custom model training
A small open-weight model trained for one task and compared with your current model on cost and accuracy.
From the blog
Error analysis for LLM apps
How to read about 100 traces with a domain expert, turn free-text notes into a counted failure taxonomy and decide which failures deserve an eval.
Validating an LLM judge
How to test an LLM judge against hand-labelled examples, report its true positive and true negative rates and correct the pass rate it reports.
Eval sample size
How to put confidence intervals on eval results, compare two prompts or models case by case and size a test set for the difference you need to detect.
Retrieval or generation?
A diagnostic procedure for finding out whether a wrong RAG answer started in ingestion, search, reranking or the model, using labelled evidence and per-question traces.
Talk to an engineer
Bring two or three conversations where your AI system got it wrong. The call takes 30 minutes and needs no access to your systems or your data.
Booking runs on Google Calendar.
Prefer to write first? Leave your email and a few lines, and we reply with times.
Look for the draft in your email program
Send it from there, and an engineer replies in person with times for a 30-minute call. If no draft has opened, write to us at miki@cloudsail.com.