Skip to content
Yassir Halaoui

Services

AI agents and LLM features that hold up in production

I build AI features the way I build payment flows: grounded in real data, tested on the cases that broke before, and honest when the model doesn't know.

In short

Yassir Halaoui builds AI agents and LLM features for production software: retrieval with cited sources, structured extraction, parallel model calls and evaluations on real documents. He shipped Kempt, a macOS app that names, files and searches documents with Apple's on-device model, and TheQuizMaster, which turns a job description into a technical assessment and grades it against a rubric.

How I work

What I build

Agents that read your documents and data and act on them: classify an incoming file, pull out the fields that matter, answer a question with the passage it came from, fill a checklist, and hand the decision to a person when they're unsure.

Underneath: retrieval over your own content, structured outputs validated before anything gets written, model calls run in parallel where latency matters, and the right model for each task. A small on-device model for private, frequent, cheap work. A large API model when the task really needs one.

The rule I don't break

If the source doesn't say it, the agent doesn't say it. In Kempt, a number that isn't on the page it cites never appears in an answer, and the facts of a document (its date, its size, what it actually says) decide where it's filed. The model only writes the name.

That's the line between a demo and something you can put in front of customers. A model that's allowed to guess will eventually guess the one rent amount or bank number that matters.

Measured, not eyeballed

Every AI feature I ship comes with a test set built from real inputs, including the ones that broke it. When a prompt or a model changes, the set runs again. Kempt has 122 automated tests, and its AI behaviour is checked on real files rather than on examples written to pass.

Agentic engineering, every day

I build with AI coding agents daily: Claude Code, OpenAI Codex, Cursor and GitHub Copilot. That's how I built and launched Kempt in four days. The agents bring the speed. Keeping the review bar where it was, even when a model wrote the first draft, is what keeps the quality.

Inside a Java estate

If your platform runs on Java, the AI part belongs next to your transactions and your audit trail, not in a side service nobody owns. I'm a Spring Boot developer first, so a model call gets the treatment any external dependency gets in a regulated system: timeouts, retries, idempotency and logs an auditor can read.

How we start

  1. 01

    A call about the job the agent should do and the data it needs.

  2. 02

    A working prototype on your real data, usually within a week.

  3. 03

    An evaluation set, so we both know how good it really is.

  4. 04

    Production integration with limits, logging and a fallback.

Write to me · consultingyassir@gmail.com

Stack

Models
  • OpenAI API
  • Anthropic API
  • Apple Foundation Models (on-device)
Techniques
  • Retrieval with citations
  • Structured outputs
  • Parallel model calls
  • Prompt engineering
  • Evaluation sets
AI coding agents
  • Claude Code
  • OpenAI Codex
  • Cursor
  • GitHub Copilot

Questions

What is an AI agent, concretely?

A program that uses a language model to decide what to do next, calls tools such as a search, a database or an API, and checks the result before acting. The useful ones are narrow: one job, done reliably, with a person in the loop when the stakes are high.

Can an AI agent work on our documents without sending data outside the company?

Yes. Kempt reads every document with Apple's on-device model and nothing leaves the Mac. On servers the same idea works with a self-hosted open model, or an enterprise API contract that excludes training on your data. Which one fits depends on your documents and your compliance team.

How do you stop an LLM from making things up?

By not letting it answer without a source. Answers carry the passage they came from, and when there's no supporting passage the agent says it doesn't know. An evaluation set then catches regressions whenever a prompt or a model changes.

OpenAI, Anthropic or an open-source model?

Whichever passes the evaluation set at the lowest cost and latency for that task. I've shipped with OpenAI, Anthropic and Apple's on-device model, and I'd rather measure than have a favourite.

How fast can you build an AI prototype?

On your real data, usually within a week. Kempt, a complete product rather than a prototype, took four days from idea to launch.

Can you add AI features to a Java or Spring Boot application?

Yes. That's where I've spent most of my career, so the model call gets the same treatment as any external dependency in a regulated system: timeouts, retries, idempotency and audit logs.

Shipped work

Competences behind it

Field notes

Also on offer