Houdrik

AI Integrations

RAG over your data and LLM agents that work in production. We build AI features the way you'd build any other backend feature — measured, observable, and reversible.

What this is

A team that builds AI features that survive Monday morning traffic. We pick boring infrastructure and aggressive evaluation over hype. We assume the LLM provider will rate-limit, the model will be deprecated, and the output will be wrong some of the time — and we design every system around that.

If you've shipped one LLM feature and it works "most of the time", you already know the next ten percent is the hard part. That's where we come in.

The two shapes of engagement

Shape one — RAG over your data. You have a corpus (support tickets, documentation, contracts, transcripts, a knowledge base). You want a chat or search interface that answers questions from that corpus and refuses gracefully when it doesn't know. We ship the indexing pipeline, the retrieval layer, the prompt engineering, the evals, and the UI.

Shape two — LLM agents in your product. You want an in-app agent that takes a user instruction and chains tool calls to fulfil it. We design the tool surface, write the prompts, build the safety rails, and integrate with your existing API. We've shipped agents that schedule, draft, analyse, and route — always with explicit "what the agent did and why" trails.

The stack

For RAG: Postgres with pgvector for under-50M-document corpora, dedicated vector DBs (Pinecone, Qdrant) once we cross that line. Chunking with overlap, semantic + keyword hybrid retrieval, reranker on top. LangChain or LlamaIndex when they actually fit, plain Python when they don't.

For agents: We pick the model based on the trust level the task requires. Cheap models for non-critical extraction, frontier models for reasoning, fine-tuned ones for narrow high-volume cases. OpenAI, Anthropic and open-weights all sit in our rotation.

For monitoring: OpenTelemetry traces with the prompts and tokens redacted, dashboards on cost-per-request and latency p95/p99, and an eval pipeline that runs in CI on every prompt or model change.

What "evaluation built in" actually looks like

Most "AI projects" end up with a vibes-based assessment of quality. We refuse to ship that.

On day three of every engagement we ask you for fifty real questions and the answers a human expert would give. That becomes the golden eval set. Every prompt change, every model swap, every retrieval tweak gets re-scored automatically. We track precision, recall, faithfulness, and cost — the same way a database team tracks query plans.

You can re-run the evals yourself. We give you the script.

How we set cost ceilings

LLM cost is engineering, not finance. We set a per-request and a monthly ceiling at the start, then design backwards:

  • Cache embeddings indefinitely; cache responses for read-mostly queries.
  • Pick the cheapest model that passes the eval bar — usually a tier below "frontier".
  • Add a hard fallback to a cheaper or local model when the budget threshold is hit.

We've cut LLM bills by 60-80% on inherited systems without quality regressions. The trick isn't magic; it's caring.

What we don't do

  • We don't train foundation models. If your project needs that, you need a research team, not us.
  • We don't promise specific quality numbers before we've seen your data. We run a one-week eval baseline first; everyone budgets from real data.
  • We don't ship agents without traceability. If a regulator asks "why did the system do that on March 14?", you'll have the answer.
Got an app that needs to last?

Take it from prototype to production.

Reply within one business day. Vibecoded MVP, AI-built draft, half-finished project, or a working product that's starting to crack — all welcome.

Start a project