Retrieval that cites the passage, agents that leave a trail, and a gate that fails the build.
We build the retrieval layer over your own documents, the agents that act on what it returns, and the evaluation that decides whether either is allowed near a user. Legal, insurance, healthcare and financial services. Our own platform runs this architecture across 18,863,754 judgments, and its hallucination rate is checked in CI every week.
Scoped builds from $18,000. If retrieval already exists and is failing, the $5,500 diagnostic is the cheaper first move.
Production figures from CourtNetra, which is ours: we built it, we pay for it and we run it. Not a pilot, not a projection, and not a client we are describing without permission. Ask us for the CI report. The full technical case study covers the architecture and the query planner bug that took longest to find.
Six ways a retrieval system fails, and not one of them looks like failure.
A broken retrieval system does not throw errors. It returns a confident, well-formed answer built on the wrong passages, which is why the failure is usually found by a customer rather than by a test. These are the six causes we find most often, roughly in the order we find them.
- 01
Chunking cut the meaning in half
A fixed window splits a clause from the definition it depends on, and a holding from the facts it turns on. The embedding is then a faithful representation of half an idea, and no reranker recovers what the splitter threw away.
- 02
Dense search alone missed the exact term
Embeddings are good at meaning and indifferent to the specific string. A policy number, a statutory section or a party name is exactly the token a professional searched for, and it is the one a pure vector search will happily approximate.
- 03
The filter ran after retrieval, not before
Retrieve fifty, then discard everything outside the date range or the jurisdiction, and the top five is assembled from whatever happened to survive. The restriction has to become a predicate before either retrieval leg runs, against the same narrowed pool.
- 04
Nothing reranked, so the top of the list was a near miss
First-stage retrieval is tuned for recall, which is the correct thing for it to be tuned for. Without a reranker that reads the query and the passage together, the model receives the top of a recall list rather than the top of a relevance list.
- 05
There was no refusal path
A model handed thin context does not report thin context. It writes the most plausible completion, in the register a correct answer would have used. Declining has to be built as a first-class output, or the system is structurally unable to decline.
- 06
Nobody was measuring
Retrieval quality is not observable from a demo. Without a golden set and a groundedness metric, the entire evidence base for a change is that it seemed better, which is also how it feels when it got worse.
Eight stages, and every one is a decision somebody has to defend.
This is the path a question takes through a system we build. It is written in the general, because your corpus is not case law. The specific version, with the models, the index parameters and the latency budget all named, is on the CourtNetra case study.
Ingest and chunk against the document, not against a token count
Section, clause, headnote, paragraph. The unit of retrieval should be the unit a person would cite. That makes chunking a document-modeling decision taken with someone who knows the corpus, rather than a parameter copied from a tutorial.
Embed, and keep the decision reversible
Model, dimensionality and quantization together set index size, recall and cost, and the three trade off against each other. We write down which one was optimized for and keep re-embedding cheap, because on a live corpus the choice gets revisited.
Resolve filters into predicates first
Jurisdiction, date, entity, document type, access rights. Every restriction becomes a predicate before retrieval runs, so both legs search the same narrowed pool and a permission boundary is enforced by the query rather than by the prompt.
Retrieve twice: lexical and dense
A BM25 pass over a lexical index and a dense similarity pass over vectors, under HNSW in PostgreSQL with pgvector. The lexical leg catches the exact string. The dense leg catches the paraphrase. On a professional corpus neither is sufficient alone.
Merge by rank position, using reciprocal rank fusion
RRF reconciles the two lists by where a document placed rather than by raw score, so neither scoring scale can dominate the other. A document both legs rank moderately well survives; one that a single leg loves does not automatically win.
Rerank, then assemble the context to a budget
A cross-encoder reads query and passage together and reorders the shortlist. Context assembly is then a budgeted decision: what fits, in what order, with what deduplication, inside a latency ceiling that is a design input rather than a timeout added afterwards.
Answer with citations, or decline
Every claim points back to the passage that supports it, so a reader can check it in one click instead of trusting it. Where the retrieved context cannot support a claim, the refusal is the output, and it is a result rather than an error path.
Gate the whole thing in CI
A golden set built from your own corpus, groundedness measured against it, and a threshold that fails the build. On CourtNetra that gate runs weekly and fails above 2%. It sits above the answer stage, because it governs whether that stage reaches a user at all.
An agent is a workflow that can act. Everything hard about it is the acting.
Getting a model to plan five steps is a weekend. Getting those five steps retryable, reconstructable a year later, stoppable by a human, and affordable at volume is the engagement. Four properties we build in from the first commit, because retrofitting any of them means rewriting the orchestration.
Multi-step orchestration with an audit trail
Each step records its input, the context it retrieved, the decision it took and the human override if there was one. Then the question your buyer actually asks, what did this system do on 14 March and on what basis, has an answer that is a query rather than an archaeology project.
Idempotent and replay-safe by construction
Every step is keyed, so a retry does not send the same email twice and a replay from step four does not re-run step one. Partial failure inside a six-step pipeline is the normal case, not the exception, and it is where most automation quietly loses trust.
Human decision points where the stakes require one
The boundary is written down as an authority matrix: what the agent does alone, what it proposes for approval, and who is allowed to approve it. That document is what an enterprise buyer is asking for when they ask about kill switches.
Cost-aware model routing
A small model does the classification, a larger one does the reasoning, and a cache absorbs the repeats. On CourtNetra that cascade removed approximately 60% of model spend at a 70% cache hit rate, and the routing rules are configuration rather than code.
Those four properties are also four of the six conditions enterprise buyers now gate an AI purchase on. If an agent is already in production and the procurement questions have started arriving, the agent governance review answers them against the system you have, rather than against the one you would build next.
You cannot put accuracy in a contract until somebody has measured it.
Outcome-based SLAs are now a standard ask in AI procurement, and they are unsignable without a baseline. This is the measurement layer sold on its own, for a team that already has a system in production and no number they would defend in a meeting.
It is also the piece most likely to be cut from a build under time pressure, and the one whose absence is discovered latest. A model provider ships an update, quality moves, and without a gate the first signal is a complaint.
What is in it
- A golden set built from your corpus and your questions, which you keep and which outlives the engagement.
- Groundedness scored per answer, so a regression is a number that moved rather than an impression somebody had.
- Prompt injection cases, including injection arriving inside a retrieved document rather than through the input box.
- A CI gate at a threshold you set, wired so a release fails when accuracy degrades instead of shipping and being noticed later.
- A regression run pinned to the model version, so a provider updating the model overnight is a test failure and not an incident.
- The evaluation harness handed over with the system, because a gate only we can run is a gate that stops being run.
Three builds, every floor published.
There is no cart on this tier and there should not be: a fixed number quoted before anyone has seen your corpus is a guess wearing a suit. What is published instead is the floor, so the first call establishes fit rather than order of magnitude.
Retrieval and document intelligence
Search and question-answering across your contracts, policies, claims files, clinical documents or case law, with every answer citing the passage it came from and a refusal path where the corpus cannot support one.
- Corpus audit, chunking strategy and embedding choice
- Hybrid dense and lexical retrieval, filtered before it runs
- Reranking, citation grounding and refusal behavior
- An evaluation set and a measured baseline you keep
$18,000floor, typically $28,000 to $70,000AI agents and workflow automation
Agents that triage, extract, route and draft inside the systems you already run. Multi-step orchestration with an audit trail, idempotent steps, human approval where the stakes require it, and routing that keeps the model bill predictable.
- Step-level audit trail and replay
- Idempotency keys and safe retries
- An authority matrix and human decision points
- Cost-aware model routing and caching
$22,000floor, typically $35,000 to $90,000Guardrail and evaluation platform
The measurement layer on its own, for a team that has a system in production and no number to defend it with. A golden set, a harness, a groundedness gate in CI, and injection cases that run on every release.
- Golden dataset built from your own corpus
- Groundedness rubric and scoring harness
- A CI gate at a threshold you set
- Prompt injection and indirect injection cases
$24,000floor, typically $40,000 to $80,000
Prices exclude VAT. EU businesses with a valid VAT ID are invoiced under the reverse charge. Every figure above also appears on the services and pricing page in EUR, GBP and SGD.
Retrieval already exists, and it is wrong often enough to matter.
Then a rebuild is the wrong first purchase. We take the system you have, isolate the failure to the stage that causes it, and come back with the evidence: whether it is chunking, embedding choice, filter order, fusion, the reranker or the prompt. Some of what comes back you will be able to fix yourselves, and the report says which parts those are.
- Price
- $5,500
- Duration
- 1 to 2 weeks
- Deposit
- $1,000
- Delivered as
- Report and walkthrough
Fixed price and fixed scope. The deposit reserves a named start week, and the balance is invoiced against delivery.
Four things we will tell you before you spend anything.
Scope we decline is a better signal than scope we accept, because declining costs us the invoice and proves we have been here before. Each of these has cost us work, and each of them is why the projects we do take tend to finish.
We do not fine-tune a model when the problem is retrieval
Most systems described to us as needing a fine-tune are returning the wrong passages, and a fine-tune on top of the wrong passages produces a more fluent wrong answer. We will tell you which one you have before anyone spends money on the other.
We do not build search over a corpus nobody has looked at
Scanned documents with no text layer, three conflicting versions of the same policy, and access rules that live in one person's head are corpus problems, not model problems. They surface in week one, and week one is the cheapest place to find them.
Sometimes the correct answer is a database query
If the question is how many claims closed last quarter, that is a report: faster, cheaper, and exactly right every time. We would rather lose the build than hand over a language model that approximates arithmetic.
MetaMinds holds neither SOC 2 nor ISO/IEC 42001
Stated here rather than left for diligence. We do assurance work against both, which is gap assessment, control design and evidence preparation. A certificate comes from an accredited certification body and a SOC 2 report from a licensed CPA firm, never from us.
One system, described in enough detail to check.
We would rather show a single system properly than a wall of logos we do not have permission to use. CourtNetra is ours, it is live, and it is the hardest retrieval problem we could have chosen for ourselves.
- Hybrid dense and BM25 retrieval reconciled by reciprocal rank fusion, over 18,863,754 judgments.
- 687,289 chunks embedded under HNSW in PostgreSQL with pgvector, across the subset of the corpus selected for vector retrieval rather than all 18,863,754 judgments.
- A 6-layer corrective RAG pipeline, with reranking and context assembly inside a fixed latency budget.
- A weekly CI hallucination gate that fails the build above 2%.
- A cache-aware model cascade that removed approximately 60% of model spend at a 70% cache hit rate.
- 268 production API endpoints.
Tell us what breaks if the retrieval returns the wrong passage.
That one answer sets the accuracy target, the refusal policy and half the architecture. Thirty minutes with the engineer who would build it, no deck and no obligation.
Scoped builds from $18,000 · RAG diagnostic $5,500 · Typical reply within one business day