SKIP TO CONTENT
AI Agents9 minAgents in Production / Ep. 2

I Built 11 Production AI Agents Inside a $3B PE Fund

Adam Boudjemaa
SHARE
Pixel-art illustration of eleven identical agent modules arranged in a ring around one shared glowing foundation slab they all connect to.

KEY TAKEAWAYS

  • As the one forward-deployed engineer embedded in a US real-estate private-equity fund with roughly $3B AUM, I shipped 11 production AI agents.
  • All 11 stood on one foundation: about 2 TB and 1.4M files across 13 years and 13 sources, unified into a single queryable ground truth.
  • The guardrails were the real engineering: verified citations, numeric checks, and evidence-based abstention, so an agent escalates instead of guessing.
  • One of those agents cut bank reconciliation from 8 hours to 23 minutes. The shared platform is what let a single agent be both fast and safe.
11
AGENTS IN PRODUCTION
shipped by one engineer
$3B
ASSETS UNDER MANAGEMENT
US real-estate PE fund
2 TB
DATA UNIFIED
1.4M files, 13 sources

I spent four months as the one forward-deployed AI engineer embedded inside a US real-estate private-equity fund with roughly $3B in assets under management. In that time I shipped 11 production AI agents.

One engineer, eleven agents, one fund

Here is the part the case studies skip. The agent count was never the hard part. The guardrails were.

I keep the fund confidential, so you will not find a name here. What I can show you is the data problem underneath it, the architecture every agent shared, the families of agents I built, and the one design decision that let software get anywhere near a regulated fund's books.

If you want the shorter build log, the case study covers the platform. This piece is the deeper why: the same 11 agents, told through the decisions that kept them in production.

What forward-deployed actually meant here

Forward-deployed does not mean I sat in another building and shipped a repo over the wall. It means I embedded with the fund, learned their real workflows, and built against the mess they had, not the clean problem a slide deck would describe.

A vendor sells you a product and hopes it fits. A forward-deployed engineer moves into your problem and builds the thing only your problem needs. For a fund buried under 13 years of documents, that distinction was the whole job.

THE LOOP PROXIMITY BUYS
Sequence diagram: 2 participants: Analyst, Me, two desks awaySequence diagram: 2 participants: Analyst, Me, two desks away. Step 1: Analyst to Me, two desks away, Hunts for a document in front of me, so I build against the workflow they actually have.. Step 2: Me, two desks away to Analyst, I ship the fix before they finish the next hunt.. Step 3: Analyst to Me, two desks away, Hits the fixed path on that next hunt, so the wrong assumption dies in an afternoon..ANALYST > ME, TWO DESKS AWAYHunts for a document in front of me,so I build against the workflow theyactually have.Not the clean problem a slide deck woulddescribe.ME, TWO DESKS AWAY > ANALYSTI ship the fix before they finish thenext hunt.ANALYST > ME, TWO DESKS AWAYHits the fixed path on that next hunt,so the wrong assumption dies in anafternoon.This is the step a vendor relationshipstructurally cannot buy.
The advantage of being embedded is loop length, not talent. Run these same three steps a sprint apart instead of an afternoon apart, and a wrong assumption gets to live that much longer.

The real problem was the data, not the AI

Before a single agent was useful, I had a data problem the size of a small library. The fund's ground truth was scattered across 13 separate sources, built up over 13 years, in formats that did not agree with each other.

When I mapped it, the numbers were the story: roughly 2 TB and 1.4 million files. A person answering one question might open five systems to find the single document that held the answer. The intelligence was never the bottleneck. The hunting was.

So the first thing I built was not clever. It was a single queryable store that turned "where is the document that explains this" from an afternoon of digging into a query that returns in seconds.

THE DATA FUNNEL
Flow diagram: 2 stepsFlow diagram: 2 steps. 13 sources, then 1 queryable ground truth.113 sourcesStatements, filings, contracts,valuations, emails, accumulated over13 years.21 queryable ground truth~2 TB, 1.4M files, one place everyagent asks.
Thirteen sources built up over thirteen years, funneled into the one store every agent actually asks. This was the real first build, before a single agent existed.

The architecture under all 11 agents

The retrieval layer over that store is what all 11 agents stood on: FastAPI in front, Postgres with pgvector holding the documents, and a router that picks a cheaper or stronger model per task under a hard cost cap.

The skeleton below is the shape of it. Every agent asks the same question the same way. Retrieve the evidence first, then reason over what came back, never over what the model happened to remember.

shared_agent_path.py
# One retrieval + routing path, shared by all 11 agents.
async def answer(task: Task) -> Result:
    # 1. Retrieve evidence before reasoning (pgvector over ~2 TB of docs)
    evidence = await store.search(task.query, k=12)
    if not evidence:
        return Result.abstain(reason="no supporting document")

    # 2. Route: cheap model for simple tasks, strong model for hard ones
    model = router.pick(task, budget=caps.for_task(task))

    # 3. Reason only over retrieved evidence, then verify it
    draft = await model.run(task, context=evidence)
    return verify(draft, evidence)  # NLI + numeric checks, else abstain

The two lines that matter are the retrieve call and the model routing. Retrieval is what keeps every answer grounded in a real document. The router and its cost cap are what keep 11 agents from quietly running up a bill nobody approved.

THE SHARED STACK
Layered stack diagram: 6 layers, top to bottomLayered stack diagram: 6 layers, top to bottom. Layer 1, EDGE: FastAPI. Layer 2, ROUTER: Model router, Hard cost cap. Layer 3, MODELS: Cheap model, Strong model. Layer 4, RETRIEVAL: pgvector store, ~2 TB of docs. Layer 5, VERIFY: NLI checks, Numeric checks. Layer 6, FALLBACK: Abstain, Escalate to a human.EDGEFastAPIROUTERModel routerHard cost capMODELSCheap modelStrong modelRETRIEVALpgvector store~2 TB of docsVERIFYNLI checksNumeric checksFALLBACKAbstainEscalate to a human
All 11 agents share this one stack, top to bottom. A request enters at the edge, gets routed under a hard cost cap, retrieves its evidence, reasons over it, and is verified before it can answer. Nothing new gets built per agent.

The 11 agents, by family

I will not walk you through 11 agents one at a time; the fund is confidential, and the useful way to see them is by family anyway. Every agent did one of a few jobs, and every family carried its own guardrail.

Agent family
What it did
Its guardrail
Retrieval and search
Find the right document across 13 sources and 13 years
Every answer cites the source it came from
Reconciliation and matching
Line up records against statements and flag the gaps
Numbers must tie out, or the line escalates
Document review
Read long filings and pull the facts that matter
No claim without a citation to the page it sits on
Fraud and anomaly checks
Surface documents and figures that do not look right
A flag is a question for a human, never a verdict
Drafting and summarizing
Turn retrieved evidence into a first draft a person edits
Abstains on thin evidence instead of inventing

The layer that let them near the books

Every one of those families sat on the same safety layer. In a regulated fund a confident wrong answer costs more than a slow one, so this is where most of the engineering went.

Three moving parts. Every claim points at a real source document, not the model's memory. Every number gets checked before anyone acts on it. And when the evidence is thin, the agent says so and escalates instead of inventing something plausible.

All of it was evaluated and red-teamed before it went live.

THE SAFETY LAYER
Flow diagram: 5 stepsFlow diagram: 5 steps. Question, then Retrieve evidence. Retrieve evidence, then Verified citations. Verified citations, then Numeric + consistency checks. Numeric + consistency checks, then Decide. Decide branches into 2: If enough evidence, then Answer with sources. If thin evidence, then Abstain.ENOUGH EVIDENCETHIN EVIDENCE1QuestionAn analyst asks something about thefund.2Retrieve evidencePull the candidate source documentsout of the store.3Verified citationsEvery claim must point at a realsource document, not the model'smemory.4Numeric + consistency checksA claim that does not add up iscaught before anyone acts on it.5DecideAbstaining is a real outcome here,not a failure.Answer withsourcesWith thedocumentsattached.AbstainSay so andescalate to ahuman.
The same path every answer takes before a human sees it. Two of the five steps are gates that can stop the answer, and the last one is a real outcome rather than a failure: abstaining is what made the agents safe to point at the books.

I go deep on the citation-and-abstention design in its own episode on RAG that is allowed to say I do not know. The one-line version is that giving the agents permission to abstain is exactly what let them near the books.

One agent, unpacked: 8 hours to 23 minutes

8h
BEFORE
by hand, per cycle
23 min
AFTER
mostly human review

Take the one agent people always ask about. The fund's bank reconciliation used to eat a full working day, about 8 hours of a smart person cross-checking numbers by hand. With the shared retrieval layer underneath it, that agent brought the same job down to 23 minutes, most of which is a human reviewing the handful of cases it was not sure about.

I broke that single agent down end to end in its own episode, including the part that mattered most: what it refused to match. It is the clearest example of the whole platform's thesis living inside one workflow.

What this unlocks, and who should hire it

So what do 11 production agents inside a real fund actually buy you? Mostly they buy you the difference between a listicle and a track record.

The market is full of consultancies that will send you a slide with 11 use cases for AI in finance. What almost none of them can send you is one engineer who embedded in a regulated fund, shipped the agents, and can name the guardrail on each one. That gap is the whole pitch.

The consultancy slide

Eleven use cases for AI in finance, drawn on a whiteboard, with nobody in the room who has run any of them near real money.

The embedded engineer

Eleven agents that actually ran inside a fund with roughly $3B AUM, each with a named guardrail and a person who shipped it. One of them cut a full day of work to 23 minutes.

If you want the framework I use to tell a real deployment from a demo, it is the FDE Evidence Ladder.

And if you are weighing whether a forward-deployed engineer is the shape of hire your problem needs, or you want to see what I actually do, those pages go deeper than this one can.

FAQ

They were 11 production agents I delivered for a confidential US real-estate private-equity fund with roughly $3B AUM. They fell into a few families: retrieval and search, reconciliation and matching, document review, fraud and anomaly checks, and drafting. They all shared one retrieval layer, one evaluation harness, and one set of guardrails, so I never had to secure 11 agents from scratch.

Yes. That is what forward-deployed means in practice. I embedded with the fund as the engineer on the ground, and because every agent stood on the same shared foundation, the platform grew agent by agent instead of as 11 separate projects. The reusable retrieval, evaluation, and guardrail layers are the reason one person could ship and keep that many agents in production.

A generic automation optimizes for speed and demos well. This was built to survive an auditor. Every claim points at a source document, every number is checked, and the agent abstains and escalates when the evidence is thin instead of guessing. In a regulated fund, a confident wrong answer costs far more than a slow one, so the safety layer was the point of the build, not a finishing touch.

Because it is their data and their business, not a logo for my portfolio. I can tell you the shape of the work, the scale of the data, and the engineering decisions, all of which transfer to another fund. What I will not do is name the client or invent per-agent numbers to make the story louder. The verifiable parts are enough.

The pattern transfers when your bottleneck is the same one: too many sources, too much history, and reviews that are really search problems in disguise. What does not transfer is skipping the guardrails. The retrieval, the numeric checks, and the abstention policy are the reason the agents were allowed near real money, so they are the first thing to build, not the last.

Agents in Production

Episode 2 · 10 published

Adam Boudjemaa

Adam Boudjemaa

Former CTO of Integra. Named author (1 of 5) of ERC-3643, first author of ERC-6960, co-author of ERC-7410, and co-author of ERC-8203, which is still a draft. Building production AI and regulated Web3 systems.

Enjoyed this post?

Get more like it in your inbox every Tuesday.