VeUP
← All case studies
Agentic AI Consulting Services · Agentic NL-to-Data
Sofvie wordmark

Sofvie launches a production AI data agent 28 days early on Amazon Bedrock

AdvisoryAgentic workflowsMCP tool serversMulti-tenant isolationAI safety guardrailsPrompt-injection hardeningPII protectionModel fallbackModel evaluationEvaluation in CIUnit-cost optimizationPrivate connectivity & network isolationPreventive controlsWeb application firewall & bot mitigationInfrastructure observabilityCI/CD delivery pipeline automationInfrastructure-as-code foundationEmbeddings & vector searchRAGProvider abstractionPrompt engineeringLLM observabilitySecrets management & credential eliminationWorkload placement & runtime selectionAI-native deliveryAdvisoryTarget-state architecture design & costed POCBlast-radius & tenancy isolation reviewObservability-gap assessment
28 days
early — live ahead of the contracted date, inside budget
0
cross-tenant incidents at go-live
3,000 users
across 40 client organizations, on 40 isolated databases
Sofvie industrial-safety SaaS platform
Amazon BedrockNova 2 LiteNova Pro (fallback)Bedrock GuardrailsECS Fargate

Production MCP-tool-orchestrated natural-language chatbot on Amazon Bedrock Nova 2 Lite — wrapping 800+ Django REST endpoints as agent tools for the Sofvie multi-tenant SaaS platform.

The customer

Sofvie Inc. is a North-America-headquartered SaaS provider focused on industrial and mining safety analytics, serving industrial-safety customers across multiple geographies. Their multi-tenant SaaS platform consolidates safety, incident, and operational data with a database-per-tenant isolation model on MariaDB.

The challenge

End-users across Sofvie's customer base were repeatedly bottlenecked by a single pattern — needing structured analytical answers from their operational data but lacking SQL expertise. Support escalations grew with the customer base; time-to-insight stayed slow. Sofvie brought in VeUP to architect and ship a natural-language chatbot embedded directly in the SaaS product.

The solution

VeUP architected and shipped a production chatbot anchored on Amazon Bedrock with Amazon Nova 2 Lite as the production primary foundation model and Amazon Nova Pro as the fallback, with Anthropic Claude on Bedrock evaluated as the tool-call-accuracy alternate. The load-bearing engineering decision: pivot away from raw NL→SQL synthesis toward MCP-tool-wrapping over Sofvie's 800+ existing Django REST endpoints. The foundation model selects the correct pre-built MCP tool for the user's intent; the tool encapsulates query construction internally; the model never writes SQL.

The chatbot cut over to production in mid-May 2026, four weeks ahead of the contracted date — with a deterministic per-question call signature, token budgets committed in code, and full per-tenant isolation via JWT-driven MariaDB routing.

Sofvie production architecture: Amazon Bedrock (Nova 2 Lite primary + Nova Pro fallback) via VPC Interface Endpoint, Amazon ECS hosting Django API + MCP server, ALB + ACM TLS, multi-AZ VPC, AWS IAM / Secrets Manager / KMS, CloudWatch + GuardDuty + Config + Security Hub, per-tenant MariaDB, CodePipeline / GitHub Actions with OIDC.
The production build — Amazon Bedrock reached over a VPC interface endpoint, the MCP server beside the Django API on ECS, per-tenant MariaDB behind it.

Production outcomes — customer-business KPIs

KPIResult
Time-to-market for Sofvie's new NL SaaS featureLive in production in mid-May 2026 — four weeks ahead of the contracted date, delivered inside budget.
Per-question cost predictability (SaaS unit economics)Deterministic per-question call signature: 2 Amazon Bedrock LLM invocations + ~42 MCP server tool calls per user question. Converts inference cost from an unbounded prompt-size variable to a bounded per-call constant.
Per-tenant infrastructure cost ceiling (in code)Four code-committed agent-runner controls: MCP client singleton, system prompt trimmed to 219 characters, output cap of 512 tokens/turn, ReAct recursion bound at 8 steps.
Multi-tenant scalability100% schema-from-prompt elimination: 0 schema tokens injected into LLM prompts vs the ~5,000–10,000 tokens/question PoC baseline. Schema lives in the MCP tool surface (800+ Django REST endpoints wrapped as MCP tools).
Multi-tenant isolationZero cross-tenant data-access incidents at production go-live; JWT-driven per-tenant DB routing — isolation by construction.
AWS services in production
Amazon Bedrock (Nova 2 Lite + Nova Pro fallback)Bedrock GuardrailsAmazon ECS FargateApplication Load BalancerAWS Certificate ManagerAmazon VPC (multi-AZ)VPC Interface EndpointsAWS IAMAWS Secrets ManagerAWS KMSAmazon CloudWatchAmazon GuardDutyAWS ConfigAWS Security HubAWS CodePipelineAmazon RDS for MariaDB (per-tenant)
Integrations
GitHub Actions (OIDC)

Architecture

Production AWS architecture in us-east-1: a VPC with AWS WAF and an ALB with ACM TLS in the public subnet; a private application tier on Amazon ECS Fargate running Django, a LangGraph ReAct agent, a LiteLLM proxy, an MCP server wrapping 800+ REST endpoints, an AST-based tool-call validator, and PII redaction; a private data tier of per-tenant Amazon RDS for MariaDB; Amazon Bedrock foundation models with Bedrock Guardrails; and security, governance, observability, and CI/CD rails around it all.
The production architecture on AWS — the MCP tool-orchestrated agent on Amazon Bedrock, with per-tenant MariaDB isolation and every guardrail in the request path.
The pre-production proof of concept: regex-only SQL checks, a single shared database, and no PII redaction.
Where it started — a proof of concept with regex-only SQL checks, one shared database, and no PII redaction.