Architecting Enterprise Agents Ecosystem: Standardizing APIs with MCP and Orch… | apidays India 2026
Watch on YouTubeVideo summary
The presentation outlines a strategic journey for an enterprise organization in transforming its legacy API ecosystem into an agent-ready infrastructure using the Model Context Protocol (MCP). Facing the challenge of scaling AI agents across multiple business units without disrupting decades-old services, the team implemented a lightweight middleware layer built on FastAPI and LangGraph. This approach allowed them to create a "thin" abstraction that sits atop existing microservices, enabling internal and external users to interact with legacy systems via prompts while maintaining full control over the underlying infrastructure. By utilizing Kubernetes for orchestration and scaling, the solution ensures high availability and seamless integration with established tools like Kafka, Vault, and CI/CD pipelines, effectively bridging the gap between traditional deterministic code and the non-deterministic nature of Large Language Models.
A significant portion of the discussion focuses on evolving from simple MCP connections to complex multi-agent workflows governed by protocols like A2A (Agent-to-Agent). The architecture demonstrates how a single orchestration engine can manage intricate business processes, such as subscription renewals, by dynamically routing tasks among specialized agents responsible for payments, reporting, and notifications. This system leverages vector databases for semantic agent discovery and SQL databases for transactional integrity, ensuring that workflows can adapt to various scenarios like successful payments or failures due to insufficient balances. The ability to compose these distinct agents into a cohesive workflow highlights the maturity of the ecosystem, moving beyond isolated tools to a collaborative network where agents communicate, share state, and execute complex end-to-end tasks autonomously.
However, scaling such an ecosystem introduces unique challenges regarding quality assurance and governance, particularly because LLM outputs are inherently non-deterministic. Unlike traditional software testing where inputs yield consistent results, AI agents can hallucinate or degrade silently over time, making standard unit testing insufficient. To address this, the presenters detail a robust evaluation framework that combines offline and online metrics to monitor correctness, safety, cost, and consistency. This process involves capturing observability data from agent interactions, using LLMs as judges to assess performance against curated golden datasets, and employing a human-in-the-loop mechanism to correct judge errors and refine prompts. This continuous feedback loop ensures that the system remains reliable and trustworthy in production environments.
In conclusion, the presentation emphasizes that building an enterprise-grade AI ecosystem requires more than just deploying models; it demands a thoughtful architectural strategy that balances innovation with stability. The key takeaways include adopting a middleware pattern to protect legacy investments, leveraging orchestration tools like LangGraph to manage multi-agent states, and implementing rigorous evaluation practices to handle the unpredictability of generative AI. By standardizing APIs through MCP and establishing clear governance protocols for agent quality, organizations can safely scale their AI capabilities while maintaining the reliability required for critical business operations. The session ultimately serves as a blueprint for enterprises looking to navigate the paradigm shift toward agentic workflows without compromising on security or system integrity.
Read the full video transcript
Hey, I am uh Kiran uh and uh this
presentation is co-presented along with
Hanitary. Uh I'm the group manager in
Inude. I lead AI foundation and uh we
are from Inude. So Inude basically
enables uh you know tax filing and also
enables uh small businesses uh in US. I
think you guys have recently have filed
taxes. So something similar we do across
the world not in not in India right. Um
today what we will be presenting is uh
is a very interesting uh you know uh uh
journey uh specifically with respect to
uh AI right u as we are enabling uh AI
agents uh how we are enabling the
enabling this at an enterprise level
right so all of you might have already
built one or two agents you have tried
it out and all that right but but the
real challenge comes in how do you scale
it at enterprise level how do you make
sure that uh each of these agents can be
communicated
connecting to each other right and how
it can be uh how it can connect to your
existing uh infrastructure right that's
one thing we will talk about we'll also
talk about uh you know very interesting
space uh with respect to uh how the AI
quality can be governed at a very high
level this is the agenda uh I I don't go
very in detail about it but uh what are
the key architecture decisions we made
uh to uh basically achieve this right
that's one thing we'll talk about we'll
also talk about when you have an
enterprise you have multiple multiple
BUS how these multiple BUs can you know
build agent at scale how they can
communicate to each other right that's
where the lot of challenges are coming
in and many many of the enterprises are
you know still figuring out figuring it
out right and how these agents can be u
you know published right from each of
these BUS that's something we'll talk
about we'll also talk about like the
future looking state with respect to uh
A2A uh protocol how we are exploring A2A
protocol and all that and u finally the
more most interesting part is uh the
agent quality right uh because uh how
many of you have heard of eval so right
uh so it's a very interesting space uh
nobody has figured out uh with respect
to uh uh new agents right so that's
something we'll go in deep uh about u
we'll quickly we'll quickly start with
the three key decisions we made right u
so basically we had u multiple uh you
know uh APIs multiple products which is
there from multiple decade multiple
decades and all of that right so how do
you uh you know basically enable these
APIs to agent ready right so every every
team had the same challenge like you
know we have the APIs how do you make it
agentified right so we kind of took a
middle layer where you have a middle
thin layer which basically enables uh
you know uh connecting this uh uh
connecting to the existing services so
existing services are not touched
basically you build a thin layer uh
build and we deploy that so I Honey is
going to talk about how this is getting
deployed into production. Right? That's
one thing we'll talk about. uh basically
other thing is like as I said right ship
using plugins so plugins is heavily used
uh multiple B all of them are shipping
their uh you know agents using sh
plugins and u also we talk about initial
problems what we faced with respect to
how we are building these uh how we were
building these MCPS locally and how we
kind of deployed it right with that I'll
give for the internal deep dive
architecture honey is going to present
on
Uh thanks a lot Kiran for a warm
introduction about me and the team. So
yeah uh like at enterprise some time
back we started uh like as Karen
mentioned we have
any number of services serving millions
of customers externally as well as we
have internal customers as well like
data engineers and data scientists for
whom we used to build tools. So we
thought the services are running for
years and there is a paradigm shift.
Everyone wants to move to agents. People
now want to just write a prompt and the
services needs to do your work. So uh
again it's a fast-paced environment. We
needed to do things rapidly. So we
thought
like how can we do it? uh first solution
was uh changing all the existing
services to agent effect services but
again with a limited team having lot of
day-to-day deliverables production
important issues so it it was not a
viable solution for us um so we thought
of a different approach the approach was
uh at that time MCB was getting popular
and MCP is a way for
users for internal users as well as for
the external users to connect quickly to
the uh MCP enabled services. So we
thought of a way we we thought that
we'll create a middleware layer that
layer will be built on MCP and then
later on it will be again becoming a
full-fledged agent and that that will
give you a route to our existing
services. So from your UI interaction we
will take you to the level where it will
be prompts doing the task for you. So
like giving your alternate route to the
UI. So how we did it?
Um we found a way MCP but then we
started with local MCP. So local MCP has
its problem like as I told you
enterprise level applications running on
service mesh and running on Kubernetes
and on a cloud. So it has availability
to number of things. Now local MCP sits
on your machine and does the work for
you. it it it doesn't solve your
problem. Okay. So we figured out a way
that local is not a working solution for
us. We thought to go for remote and when
we went for remote things changed. Let
me tell you how. So if you can see
[snorts]
uh this is how on a high level our
enterprise network infrastructure layer
looks like. If you can see this in
middle it's a single pod running on
Kubernetes. Correct. Again Kubernetes is
an orchestration platform. So based on
load traffic the single port can scale
to tens of ports based on the number of
request. So what we thought here at the
bottom if you can see spring boot APIs
or there are again other nodejs APIs
that are internal services which are
doing few of the task for our products.
So in between we brought this layer of
fast MCP. So now I will tell you how the
journey looks like. Um like we started
with fast API. Fast API is again a
lightweight Python framework and it runs
on top of uvicon
lightning server. This two together goes
onto Kubernetes and inside that what we
installed was Langraph Fast MCP
and we made it a complete agent
ecosystem. Now as you say see the title
of the slide is one for one pot two
phases build once exposed twice. So what
it is all about the thing is this fast
API micros service that we created the
middleware layer it has langraph
installed inside it and it also has fast
MCP. So with the help of langraph
langraph is again opensource toolkit it
helps you to build multi- aent
ecosystem. Okay, it helps you to build
agent ecosystem which can be stateful
which can have multiple agents involved
and it can also enable your agent to
talk to other agents using protocol like
A2A, ACP and so on. So again this is the
step where we move little ahead. We
started with keeping things simple. We
went with fast MCP. So fast MCP is again
a lightweight framework.
You can put it on top of fast API and
what it helps it helps you to make your
service MCP enabled. You will now write
the tool with just a decorator that will
make your tools as MCP enabled tools.
And what's the advantage? Once you have
tools inside a server which are MCP
enabled,
they can be accessed by your ID clients.
Like if you can see these days we are
all using AI powered ids. So AI powered
ids follow MCP protocol and using MCP
protocol they connect to MCP server. So
once we had this middleware layer ready
okay we were able to roll out to our
internal customers as well as few of the
external customers using MCP servers. Um
and then they were able to connect to
our ecosystem.
And one thing I told at the beginning
only an enterprise like us has system
stable u from running from many years.
So we already have certain things in
place. If you can see at the bottom part
we have like inherited lot of things
from mesh like if you can see Kafka is
our message broker that we are using for
each of our services. We have vault to
store the secret information or SDKs
enabled service discovery observability
CI/CD. So all of these things were
existing in the picture just with the
with the introduction of a lightweight
middleware
service created using fast API powered
with fast MCP and langraph. We have
agentified our ecosystem. This
middleware now talks to the customer.
customer write the prompt fast MCP
server enabled MCP servers listen to
those prompts and it does the work for
you by routing your traffic to our
existing services which are already
there for years. So again choosing this
approach Kiran and me we were able to
get into agentic pave path I will tell
within few weeks and that has been a key
key milestone for an enterprise like us
where like shipping any new technology
shifting to any paradigm change it takes
it takes huge time. So this approach
actually helped us but again
uh if you can see agent ecosystem needs
to have some guarders in place. So we
were cautious. We didn't expose
everything.
We expose only certain things that have
non-destructivity in nature like we
enabled lot of get endpoints at
beginning more of the creation and
deletion aspects for certain internal uh
tools and services we didn't expose at
the beginning and we thought like over
time we'll see and and then we'll take
those endpoints again to the production
with proper guardrails in case.
So now I will try to give a brief
overview that how some of the internals
of the technology works. So langraph if
you can see langraph as I as I told is
an it helps you to power an agentic
ecosystem having multiple agents having
state.
So if you can see langraph has nodes and
edges. So langraph isn't like kubernetes
is an orchestration agent orchestration
engine for deploying your containerized
application to multiple servers.
Langraph on the other hand is an
orchestration tool that decides
internally what your code is running how
it will uh do certain task. So with the
respect of LLM so LLM having access to
multiple agents multiple tool langraph
helps you to determine
what to do when something you get a
success response and what to do when you
get a failure response for certain thing
and I will give you a detailed example
which will help you to gauge the power
of how langraph does an orchestration of
multiple agent in the coming slide but
first understand the fundamentals
Like it's a simple flow like we start
then there is an LLM node comes into
picture. LLM node has to do certain
works. It calls tools. It has a
description of tool available at its
level. So it it's it's able to
understand that which tool is for which
purpose. Like if we have tens of
internal services inside our company
each service has its own responsibility.
LLM will be able to figure out because
the tools have provided a proper
description. Then LLM does uh like LLM
node calls a tool tool does certain
action like calling or internal
microservices getting the response then
the assistant node having LLM will again
determine this is the output whatever is
needing or I need to call certain other
tools also so based on that if we again
have to hit another internal service
they'll again use some of that tool
we'll keep it will keep on iterating
because it has a brain it has LLM And
then once the result comes which can
satisfy the end user it terminates a
loop and then we send a end response to
the user. Again as I told governance we
maintained that helped us to release
these things without critical
bottlenecks at the beginning was
isolated data store per MCP. We didn't
allow MCP to touch our Intel
microservices database. We had isolated
data store no delete endpoints at the
beginning and initially we started with
a devance device bound identity.
Now I will give you a high level
overview of how MCP to an more ecosystem
friendly uh bigger scale problem can be
solved like MCPS can help you in solving
problem for a specific domain by because
MCP will give you capability to query
the tools the databases the internal
services to come to a certain conclusion
but if you have a suppose full-fledged
workflow like u one of the workflow that
I think Everyone is aware aware about
like suppose we have a SAS subscription
okay that needs to be renewed every
month. So that payment renewal workflow
okay now that payment renewal workflow
can involve multiple agent if you can
see payment agent reporting agent and
notification agent and at an enterprise
level this might be obtain like this
might be owned by different teams. So in
this kind of system one has to shift
from MCP to more agent to aagent
communication uh protocol correct. So
A2A was one of the uh protocol that we
have started with but again there are
certain other protocols like ACP and all
which also one can go ahead with there
are a lot of mesh protocols at this
stage. So we started with A2A protocol
and again it's a journey that we are
still traveling. So as I told you just
imagine an orchestration agent again
built of Langraph and you have a problem
statement like I have to uh see the
payment subscription renewal workflow
for my customers. Some customers payment
would be charged at the end end of the
month some customers payment would not
be charged because of insufficient
balance or some other reasons. So
keeping that in mind like our in the
agent will start it will figure out uh
like agents related to this problem
statement from a vector DV. Then once
those agents are fetched out the
complete workflow will be set up and
that transaction related workflow will
set in posgress. Again you need to learn
the importance. Vector DB is for agent
discovery for semantic search but
posgress SQL we are using more for
transactional like did the complete
payment workflow notification happen
successfully or not. So storing status
will be part of posgress but agent
related semantic search capability will
go to a vector DV once that is in place
using Kafka as a message broker will
start communicating with different agent
payments agent reporting agent
notification agent okay payment agent
will fetch user payment status is it
successful or not at the end of the
month if it is then we'll be going to a
reporting agent reporting agent will
again adjust internal
documentation, internal account balances
and also it will update a tax related
information. Then finally once those
things are successful, it will notify
notification agent which will ultimately
give a billing statement to end customer
that the payment has been successful.
Similar use case for a payment failure
scenario.
>> [snorts]
>> So uh this is how the end to end a2A
call and architecture look like. So now
I will again hand over like to Kiran. So
Kiran will be talking more about agent
quality at an enterprise level.
>> Hey thanks thanks Anie. Uh thank you
Anie. I think that was very insightful.
Um uh I think the next part which we
want to really talk about is that once
we identified and like you know as we
started getting lot of agents into the
system right uh one was like the
discovery right how do you identify the
right discovery that's what something
you know Tani was talking about but even
more problematic uh area was that um how
do you you know uh gauge the quality of
the agent right like
previously this was your system
basically you have a defined input You
have a you have your application with
with you know with the code base as well
as the database and all of that and you
have the output right where you it's all
the whole flow is deterministic
basically
always the input is always going to be
the for a given input the output is
always the same. So you have unit
testing, you have integration testing
and all of that right which you can uh
with which you can identify how your
system is uh behaving. But
uh with the new world with the where we
have the LLMs coming in right with the
agents right uh you have prompt skills
and uh you know you have LLM right so
all of this is not based on code right
basically there is you have skill which
which can degrade you have you know LLM
which can which is nondeterministic for
a given input you're not always assured
that your output will always be the same
right so it becomes uh your testing
becomes non deterministic basically
right you cannot say that hey assert
saying that if something is not uh
matching this right uh you have multiple
permission combinations which you have
to gauge for that is where it becomes uh
extremely complex for you know to ensure
that the quality of the you know how do
you uh test the uh agent quality right
so I think that's where uh you know we
probably want to you know uh started our
journey right uh specifically as I said
uh there's no defined the no fixed
output expected right which uh and
basically failures are not always
guaranteed it's going to be the failures
can be uh you know you can always
sometimes it might pass sometimes it
might fail right and uh more importantly
the silent regressions right how if your
system is degrading you won't even come
to know because uh uh if the user is
asking for a specific uh uh input right
specific uh ask but your system is
degrading and you're not even getting to
know right so those are like the risks
which we have and traditional QA cannot
uh testing cannot work right. Uh so uh
the so basically how you can achieve
this is having some of these uh uh you
know measures right when you uh when you
want to measure basically you will have
to measure for correctness uh how you uh
you know basically given a input uh is
your agent is solving the uh problem or
not right if I'm asking for a credit
score eventually the user has to get the
credit score right so that's what the
point is and uh is your is your system
is hallucinating right uh you know Is it
is it going out of the context and uh
tool accuracy? You want specific tools
to be called in the correct order. If
that is not happening, how are you you
know gauging that? How are you measuring
that? Right? And safety and trust and
cost and consistency, right? Your system
has to be more consistent. So those are
some of the parameters which you have to
measure, right? So this is like a very
high level architecture of how uh you
know we are do we are trying to do the
evaluation right of the agents. So like
any other systems right you basically
have to run your agent uh uh you have to
uh capture the observability metrics
right and then you have to see how your
observability outcome right is is
behaving right with the with the LLM as
a judge right and then you capture the
information and then you uh you know
look at those metrics uh how that look
at those metrics in terms of dashboards
and alerting right so to be precise
basically when you have uh when you run
an agent uh you have prompts, you have
LLMs, you have tool calls, you have
latency all of those are the metric all
of those are the parameters which you
capture and then you publish it to some
observity like you know lang langfuse
right uh if you have heard of langfuse
basically you kind of get all the traces
uh from the agent and then capture it in
the observity metrics like observity
store like langfuse and once you have it
you kind of use judges LLM judges is
another uh you know interesting area
right where LLMs are kind of the the
reason why you want to have a judge
right is that uh you cannot this system
has to be continuously monitored right
you no humans can do it so initially you
have to come up with some prompt based
on your test data like a golden a golden
uh data set with which you come up with
a prompt and that prompt will measure
those metrices which I talked about in
the uh which I talked about earlier
right and that becomes your measuring
metrics as to how your system is
performing right and that becomes a loop
every time you define a metrics you come
up with outcome and then based on that
you tune your basic you you tune your
prompts and lms and tool calls right um
so uh that's what we do and uh the human
in the loop is a very important point
here because u uh what if your LLM as a
judge itself is wrong right uh it is not
end of the day it is a prompt which
which is which is which is looking for
specific measurement right So when LLM
outcome out output comes in basically
you the human in the loop also can come
in and annotate saying that this
information what the judge evaluated is
incorrect right so there are various
techniques where using the human in the
loop annotations you can tune your judge
or you can also tune your prompts right
so so that is one thing you know we are
also evaluating
uh again as I said there are like two uh
techniques within this one is offline
and online. So offline is basically
where you say uh where you basically
calculate uh uh do everything before you
go to production right uh and uh and
this is more of a pre-est uh production
pre you know uh not in the production
right but but given these services are
online so you all have to monitor them
continuously how how your online system
is behaving that is something uh is is
called online so as as you see here
right so offline evaluation is basically
your you curate a golden data set curate
a golden set is basically you have your
production data. You take a sample out
of it and then you say these are my
various samples which is more or less
accurate representation of my production
sample. Right? So that's what a curated
data is against which you kind of
evaluate uh if my uh agent is ready to
be shipped into production. Right? But
uh in case of online basically you have
to make sure that the system is uh
behaving correct. Right? uh one
important point here is both of them are
actually connected online evalation
offline evalation is both are kind of
connected that's what we are talking
about the fly uh flywheel loop right u
once we observe curate and evaluate
offline you ship it and then you monitor
right when you monitor using online you
come up with various data sets right
which actually becomes again a curated
data set for your system so that is what
we call it as curated set but end of the
day both are kind of connected. Uh but
but you know both of them are like a
important aspect of uh uh offline and
online evaluation.
Um just a quick recap uh is that
basically we talked about uh how do we
how did we identify our services and uh
how did we host it, how did we
distribute it and how are we measuring
the quality of the performance of the
agent. Right? So yeah, I think with that
uh thank you so much. Uh uh we are uh uh
if you have any questions, I think we'll
be happy to take it.
[applause]