Skip to content
All case studies
FDEProduction

Forward Deployed Agent Workflows at Enterprise Scale

A deterministic multi-agent platform deployed inside a client environment in under two weeks — sequential orchestration replacing open-ended prompt chaining, with full trace observability on every hop.

11 days
scoping call to production pilot
100%
decisions traceable
0
Kubernetes clusters

The constraint

The client had a proof of concept that worked in a notebook and failed everywhere else. Prompt chaining had grown organically: no way to test a change, no way to explain an output to a reviewer, and no rollback story. The ask was not "make the model better" — it was "make this something our own team can operate after you leave."

That last clause is what defines forward deployed engineering. You are not shipping a demo; you are shipping an operable system plus the understanding to run it.

Approach

The first decision was to reject open-ended agent autonomy. A ReAct-style loop that decides its own next step is elegant in a paper and untestable in an audit. Instead the workflow became a SequentialAgent: a fixed pipeline of narrowly scoped sub-agents, each with an explicit tool allowlist and a typed output contract.

Rejected alternatives, and why:

  • Single mega-prompt. Cheapest to build, impossible to debug. One bad output and you have no idea which instruction failed.
  • Fully autonomous multi-agent graph. Impressive in a demo. Non-deterministic cost, non-deterministic latency, and no reviewer will sign off on it.
  • Kubernetes-hosted agent mesh. The client had no platform team to run it. Cloud Run scale-to-zero was the honest answer.

Architecture

A root orchestrator receives the request, validates it against a schema, then passes through sub-agents in a fixed order: extract → enrich → reason → format. Each stage writes its intermediate output to Firestore keyed by session, which gives you two things almost for free: a resumable workflow and a complete audit trail.

Serving is Cloud Run with min-instances=0 and concurrency 40 — the workload is IO-bound on the model call, so one container handles many in-flight requests cheaply. Cloud Build produces the image; Artifact Registry stores it; Terraform provisions all of it from an empty project.

What broke

Cold starts. With min-instances=0, the first request after an idle period took six seconds — Python runtime plus Vertex AI client initialisation. Users read that as broken, not slow.

Two fixes, in order of cost-effectiveness. First, the UI began streaming a thinking indicator immediately, which reframed the wait as work rather than failure. Second, a Cloud Scheduler job pinging the health endpoint every ten minutes during business hours kept one instance warm for a fraction of what min-instances=1 would have cost.

The deeper lesson: perceived latency is a UI problem at least as much as an infrastructure problem.

Outcome

Pilot in production eleven days after the scoping call. Every agent decision traceable to a stored intermediate state. The client's own engineers took over operations after a two-session handover, which was the actual success criterion.

Stack

  • Google ADK
  • Cloud Run
  • FastAPI
  • Firestore
  • Terraform