Submind YouTube summaries
Thumbnail for Restoring Trust in AI-Native Development | apidays India 2026

Restoring Trust in AI-Native Development | apidays India 2026

Watch on YouTube

Video summary

The core subject of the presentation is the pursuit of autonomy in AI-native development, specifically within the context of optimizing the concept-to-cash cycle for enterprises. The speaker argues that while organizations strive to make agents autonomous to accelerate time-to-market and reduce bottlenecks, a significant challenge remains: establishing sufficient trust to remove human oversight entirely. Drawing parallels from industrial history, such as the transition from hand looms to power looms where humans acted as constant monitors, the talk highlights that current software development often suffers from similar "toll booth" scenarios where humans must review agent output before production. The ultimate goal is to achieve a seamless flow where agents can operate without stopping for human intervention, much like modern toll-free highways or autonomous looms equipped with sensors that stop and alert only when necessary. To bridge the gap between current limitations and full autonomy, the speaker introduces three foundational principles adapted from manufacturing: Jidoka, Poka-Yoke, and Andon. In the context of APIs, these translate into creating systems where agents can self-correct rather than relying on human inspection. Poka-Yoke represents mistake-proofing, such as using enums in API contracts to prevent invalid data entry, while Andon involves making errors visible immediately through continuous integration feedback loops so they can be addressed instantly. Jidoka is described as automation with a human touch, where sensors and automated checks allow the system to detect issues like broken threads or code failures and halt automatically, only involving humans when the machine cannot resolve the issue itself. The presentation further details a framework called "Closed-Loop Engineering" which integrates these principles into a continuous cycle of guidance and validation. This approach relies on "Executable Intent," where business requirements are converted into executable specifications that agents can validate against before generating code, ensuring the intent is machine-understandable. It also incorporates "Executable Architecture," allowing developers to simulate entire system architectures using mocks and specifications to test integration patterns and drift detection before any code is written. By combining these with a control plane for governance and utilizing Model Context Protocol (MCP) tools to provide real-time feedback on API stability and best practices, the framework aims to create an environment where agents can safely operate at scale, handling resiliency, security, and performance metrics autonomously while still having a safety net for edge cases like contradictory requirements.
Read the full video transcript
Good morning everyone. Hope you had a good conferencing day yesterday, which is probably why you're here on time today. But we'll get started. I think there's been a lot of discussion around we want to make the agents autonomous. And I always joke that we've not got humans autonomous. We're trying to get agents autonomous, so that's a bit of a stretch, but I think there's been a lot of interesting work that's been happening in the last at least two years to move towards this direction, and I'm going to share some of my experience having worked with lots of enterprises in terms of how we are approaching this. I don't think we have an answer, but we have a direction, and that's kind of what I'm going to try and present here. Um But the first question to ask is why do we want the agents to be autonomous? What is that we're trying to achieve? Right? My hypothesis is that every organization wants to optimize the idea to cash cycle, right? And agents are a great way to accelerate that, to get faster. And so that is one of the motivations at least is to optimize this, to reduce the time to market, to be more responsive, etc. etc. And this is not new. I mean, as as a industry, as software, we've been doing this for many, many years, and there have been two kind of big ideas that we have been putting to use for many years in terms of optimizing the concept to cash cycle. One is modular production, which is basically defining components, defining modules, having a clean interface between them, and allowing them to be built parallelly so you can assemble rapidly and get it out, right? So, this is one way of basically reducing the time to market, right? And the other is just-in-time, which is again very important from minimizing inventory and optimizing flow. Um So, these two two ideas have been around with us for many many years, and we've been trying to do this. And since this is API Days conference, I'm going to try and map this to what does this mean, you know, to APIs, right? So, if you think of modular, right? I believe we've kind of now established that, you know, APIs are kind of the LEGO blocks, right? The building blocks by which we can assemble, integrate, and build products rapidly, right? So, we can reuse, we can you know, basically bring things very rapidly together and go from concept to idea in a very short cycle. Um However, we've had several challenges along the way, right? And one of the challenges to really talk about is what's happened in the last, I would say, 15 years at least in the, you know, the desire to move from monoliths to microservices, expose everything as interfaces. Actually, it's interesting to see who would you give credit to in terms of coming up with this idea. Any thoughts? Uncle Bob. No, no, no, no. Who actually made the case? I mean, of course, this is debatable. So, I'm going to present my viewpoint, but I would say the credit should go to Jeff Bezos for really pushing with the API mandate. He wrote a letter, you know, across Amazon to all the development team, all the engineering team, saying, "Going forward, everything should be built so that it can be exposed as a standard interface and integrated. It doesn't matter if you're building internal stuff or external stuff. Everything should have a clear service boundary, and your implementation can be in whatever language you care. I don't care, but it should essentially be remote procedure invocation with a clear service interface, right? And so, of course, there are a lot of other folks who also had this idea, and so we've gone through this. But one of the big challenges you will see when you move from a monolith to microservice is you lose the compiler safety. Right? Anyone's had this challenge? When you had a monolith, you had like a lot of feedback you could get if you made a function call, you missed a mandatory parameter, you know, it would be a compile-time error. When you do this across a network boundary, it's not easy to get this feedback. And where this becomes interesting is when you deploy agents at scale, the problem gets amplified, right? So, the problems of things like, you know, not having the compiler safety now becomes a run-time issue, and this is where the problems kind of start amplifying. So, what do we do to to kind of deal with this problem, right? Before we kind of jump into the solution, let's kind of quickly take a quick analogy to just put things into perspective, right? So, anyone's been at a really good highway where you eventually end up with a single booth or a few booths, and you have to pay toll before you can move, and you see a massive congestion. Right? So, you're building these massive parallel highways, so that people can, you know, go really fast, but then you introduce these artificial constraints, which really bottleneck people, right? And so, you can draw analogy to software, right? Everyone can draw an can can apply this back to your teams in software. Like a lot of companies I I still think have these central teams, which are kind of the toll booths, and they essentially block the path to production. I'm not saying that's a bad thing. What I'm saying is essentially this becomes a bottleneck in the system. And so, I think over the last 20 years, maybe because of Agile DevOps and a lot of things that have happened, people have moved to what we call as stream-aligned teams, where they are self-contained teams. They have all the cross-functional capabilities. And so, if you kind of apply that to this analogy, essentially what you're doing is you're basically introducing a toll booth per lane. Yeah? And I would say this is much better than what we had before, but this is not what will get us to that concept to cash in few days kind of a thought process that we have, right? So, if you really want to move to that, what you need to do is you need to make sure that the vehicles don't stop. The flow does not get impacted, right? So, if you if you do things which allow things to move seamlessly, so in case of like a lot of countries have implemented this where you don't have to stop at a toll booth, you just keep driving. Right? And you use RFIDs and other kinds of things which automatically, you know, charge, right? So, what is the equivalent of that in software that we are trying to do? Uh autonomous agents feel like the second one to me. At least as of today. Because in a lot of companies, you are deploying autonomous agents. The agents are producing things at a very rapid pace, and then you have someone who has to review that. That's a toll booth. So, some people say, "Okay, we're going to add more agents who are going to automate the toll booths, right?" But then, I've not at least met any large enterprise that can completely trust non-human, you know, toll booths, if you will, to let things just go to production. Some have tried, and then they have regretted. We've seen all those stories. So, I don't think we are yet at the stage where you can say that we have completely achieved a a flow in your software delivery which which has basically no stopping, no toll booths, right? It's just seamlessly flowing. So, >> [clears throat] >> let's quickly move forward. So, we are not the first to actually have this problem. So, I'll again draw another analogy from textile. Anyone's familiar with looms? Right? If you live in Bangalore, probably you should be familiar with looms because this used to be a pretty massive silk manufacturing hub. Those places got taken over by software factories, and you know that you see the history repeats itself in some sense. So, back in the days you would have hand looms where a craftsman would sit and basically hand weave cloth and produce really beautiful design but it was a very much a craftsman ship approach to building cloth, right? Of course, this had limited errors and it was kind of well controlled but you know you couldn't like really mass produce. So, during the Second World War or even probably the First World War, people wanted to mass produce cloth and this was not a solution. So, we had the next wave which is the power looms, right? Which basically meant that you could now mass produce cloth but unfortunately when power looms were originally introduced, you would see something like this. At every loom one person standing and watching the loom. Yeah? And so if you had a factory of 30 looms, you would have like 30 people standing and watching the loom. To me this is very similar to what we have today in software, right? We've hit the power loom moment with agents. But we don't fully trust the agents and so we basically put one human at every and we call it human in the loop, which is kind of very nice. But you know essentially you're putting a human to kind of monitor this, right? But of course, if you fast forward today, you wouldn't see in any factory stuff like this. So, what did what did the textile factory do to basically change the scenario? Right? So, we could draw some inspiration from that and that's kind of the crux of my talk is basically what are the things we can draw and one company that particularly pioneered this is a company called Toyota. It's a precursor to Toyota and what they ended up building is they ended up building these autonomous looms. Which essentially had all kinds of sensors built into the loom and that's generally now referred to as building quality in. So the loom would basically be self it's an autonomous loom it will run on its own and if something goes wrong it'll basically stop and ask a human to come and basically fix things, right? In fact they kind of evolved further. I believe they have about 118 patents if I'm not wrong on just one loom. And all the kinds of interesting things they have done to basically make the loom as autonomous as possible. So today in most places you would go you would see a factory with 100 looms managed by one human. Right? And that's to me kind of the aspiration or where you know I would personally like our industry to go, right? Where you don't need 100 humans sitting in front of a agent and becoming the toll booth to the agent, right? So how do we get there is is kind of the question and there are some principles we will talk about that actually help them achieve that. But before that I thought it'll be interesting for those who have not been to a power loom to see a quick video on this thing. Okay. That's how a power loom works. You don't see a human there. And this is just showing you when a thread breaks because that's one of the main challenge in in a power loom is the thread snaps. And so they built in these kinds of systems which basically as soon as the thread breaks the lever goes and jams the machine. So it kind of stops the machine from continuing with an error. Right? So, these are checks built into the machine, not inspection. Not some human watching over this, right? And so, this is kind of the one of the innovations that that they did. And so, this is referred to as If you look at the principle, it's referred to as jidoka. This is a Japanese term for basically what what the term means is automation with human touch. Because it's a little politically incorrect to say automation without human touch. Right? But, technically you would see that philosophy has, you know, in everyday life, things that we use. So, if you've ever used a washing machine and let's say the washing machine halfway through the wash cycle, water stops. There are sensors built into the machine that will not like just continue to wash your clothes and say, "Oh, even though water, I will just wash it and give it to you." Right? There are sensors built into it, it'll stop. Another example that's very popular is in the elevators, right? When the door is closing, there are sensors in the door. If you try to If some someone is in between, then the the doors will unlock, right? It won't continue to go through. So, these are all kind of mechanisms which basically makes them autonomous. Right? Which which basically helps them achieve this. What is the equivalent of this in APIs? So, I would say something like having a pre-commit hook, right? Before you push any change, you want to basically run a battery of tests, right? What whatever it could be linting, it could be contract tests, it could be backward compatibility checks, etc. And if if any of those checks fail, you want to basically stop uh the commit going out. Right? So, that's kind of my example of how we've tried to apply this. This is before agents, right? This is how we've tried to take some inspiration from this principle and apply this in in our work. The next principle I want to talk about is Poka-Yoke. Uh Poka-Yoke is essentially uh mistake-proofing. Uh and again, we've seen a lot of examples of this. Anyone remember uh USB 2 or USB A? Uh you have to always figure out which direction because it doesn't Like you can't just put it in any direction. And so, when you move to USB C, uh you don't care anymore, right? You can put it It's just you don't have to worry about the side or the direction. So, it's one way of mistake-proofing so people don't try to jam something. Sockets are another example. Uh so are uh you know, SD cards or your SIM cards. All of them kind of have a similar uh philosophy where you design something that it is not possible for you to make a mistake, right? So, it's mistake-proofing. So, what is an example of mistake-proofing in APIs? Contract testing seems a little bit as a uh the previous example to me, not necessarily a mistake-proofing, but more of a sensor that kind of tells you something's wrong, right? So, if you take this example where you say, "Okay, I have uh you know, I can post an order and uh status is a is a string uh and I've written a beautiful comment that it should be one of these three things, right?" Uh but this doesn't stop someone from sending a status which is not one of those three things. Then you'd have to put a sensor to stop someone from doing that, right? But if you were to mistake-proof this so that it's not possible at all, then you would essentially define an enum. And so it has to be one of these three values. Right? So that's kind of I would say an example of mistake-proofing in in the context of APIs. Right? And quickly I want to touch upon the third principle, which is very important because these have a daisy chain effect and they kind of work with each other is Andon. Andon, uh the idea with Andon is essentially if something goes wrong, make it visible as quickly as possible so an action can be taken, a corrective action can be taken. An example is you you see this every day in your uh cars, for example, if your tire pressure is low, the car can sense that and put it on the dashboard so you know about it and you don't drive halfway through and then have a flat tire, right? Uh so these are kind of giving you feedback so that you can avoid uh you know problems later. Uh same concept uh with uh you know your fire sensors. Uh all of these are again kind of idea to kind of give you the feedback so that you can uh you know and now quickly moving to Andon in case of API, what would be the example? Running things in CI and when they fail, you get a very visual feedback saying, "Hey, you know, something's wrong." Uh and then that kind of stops uh bad things, it notifies people and so whoever pushed this commit can actually uh address this, right? Uh so that So just to quickly summarize then, putting all three principles together, uh the way I kind of look at it is uh you know, Poka-Yoke is essentially mistake-proofing. Uh in spite of mistake-proofing, you may still end up with some challenges and this is where you would use the Dodo code to kind of uh sense and stop things from going bad. And then when things do slip through and show up, then typically during integration or in your CI, you would essentially make it visible. And then any learnings that come back from it circles back and you mistake proof it, right? And so this is kind of a principle that we've been applying for a long time, I would say. At least extreme programming made some of these things quite popular, right? So I've given some examples in software that kind of translate to that. But how does this relate to agents? What can we do with these principles to make agents autonomous? You've already probably seen a lot of this kind of stuff where we're moving from vibe coding to things like spec driven development and we're trying to say, "Okay, you know, if you provide a spec, the agents will probably do a much better job than just giving them some prompts." Right? And in some sense there are a bunch of principles baked into this idea and if you were to kind of double click on it, essentially what we're saying in this new spec driven development paradigm, spec is the new source code. Right? Spec is the new source code because that's the level of abstraction at which humans will operate and whatever code is generated is equivalent to assembly or byte code, so you don't really care about it. Every time you just recompile, you throw away and you start from scratch, right? Not everyone's fully on boarded with this idea, but that's kind of where you know, like if you see the industry is going is moving towards specifications being source of truth. One other interesting idea is harness engineering and recently I think there was a interesting blog on Martin's Martin Fowler's site where they try to kind of classify this into a little bit more categories so you have guides which basically give feedback to the agent so that the first generation of code that the agent would do is guided based on certain things, right? So we've all written agents.md file, we've written a bunch of we provide a bunch of skills which essentially, you know, act and then again, you know, you can have both inference-based things so any MD file and things like that you're writing is more inference-based so the agent will have to infer it, derive what you're trying to say and then guide itself. And there are also some computational things which are not necessarily just inference-based but they are something that the agent can execute as a way to get feedback and move forward, right? So you've got the initial generation done which typically we call as the forward loop, but that is not sufficient, right? Once the agent has produced something, you do want to then use a set of sensors and this is kind of your Girocco in action if you will where you're essentially providing feedback to the agent saying, "Oh, you produced this but you kind of dropped, let's say, the code coverage or you didn't write tests or you you made this architectural mistake, right? So you kind of provide that feedback so it goes into a self-correcting loop and and provides you the response finally, right? And again, while all of this is happening, human is still in the loop in some sense because the human is kind of watching what's happening and maybe steering. Not all the time sitting in in of it but maybe at some regular intervals you may want to steer that, right? So, this is uh kind of harness engineering. If you were to try and extrapolate this to like API specifically, what are the what are the guides and sensors in case of APIs? Right? So, if I were to quickly just jump ahead, uh what you will see is, you know, you can feed in like API best practices, uh you can feed in things like API specifications, you can give in examples, uh you can give in agent plugins which are skills and uh MCPs packaged together. Uh these all can act as guides for the agent when it's producing the code. It'll keep these things in mind and produce things, right? What are the kinds of sensors when it comes to uh APIs? Absolutely. So, contracts, uh contract tests, mocks, compatibility tests, these are all important things. Things like resiliency and security tests becomes important. Linters and other policies become important. You can execute them and kind of give feedback. You can look at things like API coverage, uh not just code coverage, but API coverage and kind of use that as a feedback again to the agents to say, "Hey, you've not covered these scenarios and things like that." So, uh there's quite a lot of work happening in this space both on the guides and sensors to basically make API design lot more autonomous uh with the agents. Uh but it doesn't have to stop here, right? This kind of can apply throughout the uh SDLC process in terms of even at further stages in the pipeline, in production, you can have a constantly learning running loop to basically do drift detection and so forth so that you can feed that back to the agent so they can self-correct, right? So, it doesn't have to stop at the first uh generation of the code. It can go all the way uh into your pipelines, it can go all the way into production and keep the loop running, right? And I think there's a lot of promise with harness engineering, lot of work is happening with harness engineering, but I would ask myself, is harness engineering sufficient? Will that really help us achieve the the dream of autonomous agents? And that's kind of where you start wondering about what happens to things like your architecture, overall architecture, not just an individual API, but the whole system architecture. What about things like governance, you know, would would it be able to handle all of those kinds of things? So, just kind of again, like if you have guides that help the coding agent, you have sensors, which basically are executable specifications, which kind of guide the thing. So, that's an important thing at a individual API level, but a system is not just an individual API level, right? So, typically when you have some kind of an intent that you're trying to communicate, how do you make sure that what you are thinking is being effectively communicated to an agent, right? So, there's a term that is emerging for this, which is called executable intent, which means that you are able to express the intent and validate the intent before you actually give it to the agent to make sure that what you are thinking is actually machine understandable, agent understandable, right? And there are things where you can go from like plain English to an executable specification, you can spin up a sandbox in which you can actually prototype and figure out whether, you know, if this is your business case, whether it has captured it correctly in terms of an API specification. And when I mean an API specification, it's not just OpenAPI specification, it's things like Arango, it's things like which allow you to orchestrate an entire workflow, right? So, it allows you to capture that, simulate that whole thing so that you'd be able to validate It's It's almost like Figma for API design, if you will, right? Where you can quickly do high-fidelity prototyping and kind of execute your intent and validate whether your intent is what you need, right? So, that's one idea that we've been working on. Lots of other folks are also doing a lot of interesting work in this space. The next one is what we call as executable architecture. Uh the idea with executable architecture is that individual APIs is fine, but across the several different integration patterns that I have, it could be uh RESTful integrations, it could be asynchronous integrations, it could be uh file-based integration, CLI-based integration, several other forms of integration. How do I define all of that not in a document which is again inference-based, but a document which is executable? A document that I can actually click a button, spin up my entire architecture, right? And then be able to kind of test itself, right? So, one of the ideas that you would see that is emerging is kind of using a combination of Arango specification with uh OpenAPI specification, AsyncAPI specification, and then spinning up a mock for the entire system. So, you have all the pieces that that basically spin up as a mock, and then you use the same specification to then generate a test from it. And so, it gives you uh a set of tests that will run against the mock. We call it the closed-loop uh test. And what this will do is it'll help you visualize if this is how you're envisioning your architecture to be, whether it makes sense, right? You know, so before you've actually built a single line of code, before you've even asked the agent to build anything, you want to kind of quickly validate your architecture itself, right? So, that's again another I would say idea on top of Harness Engineering that would allow you to you know, validate your architecture and keep this loop going, right? So, as as components get built, they get plugged in, but the overall feedback back loop on your architecture to make sure that you're not drifting. You intended this to be asynchronous. It should not suddenly become synchronous, right? Those kinds of things can be now validated at this level. Is that sufficient? Are we good with these two things? Is there anything missing? I would say there's one other important thing, which is the governance thing, but not the current style of governance that a lot of places we are seeing. What we want is essentially again a continuous governance, which is kind of a control plane, taking feedback and providing feedback to each of these. So, just to give you a little bit more context, when I'm trying to do executable intent, let's say I'm going from a plain English intent to executable specification, I don't want to reinvent things that already exist, right? How How does How does the agent know when it's going from plain English to an executable spec that this already exists? Today in a lot of organizations, we don't have a single view of the API inventory that exists in your organization. Even if you have, it's it's in lots of different formats, which is not very friendly for an agent to understand, right? So, imagine you had a kind of central repository of all your specification. You don't need the details, but mostly the metadata which an agent can understand and that can be fed into this upper cycle there, executable intent cycle. And so, it can basically leverage what is already there, not rebuild it. So, it avoids duplication and stuff like that. It can reuse schemas that already exist. So, for example, if shipping address is already defined in your system, you don't want to build a different implementation of a shipping address again, right? So, all of those things can be leveraged back in this. And also, same thing applies at executable architecture level. These all kind of feed into each other. So, there's almost you can imagine a loop going around this whole thing, right? So, you have executable intent, you have executable architecture, you have the hardness in between, and then you have governance, which is kind of your control plane. So, all put all of this together is what I think we're calling as closed-loop engineering and this is I'm not sure if this is sufficient, but it is at least something that we're all kind of building towards as we go to figure out if this can help avoid a lot of challenges that we are seeing to avoid kind of the toll booth, right? So, just to again quickly summarize what we're saying is you want autonomous generation, you want validation against executable specification, you want any deviation to be detected and removed. You then want the correction, the sensors to auto feed in and then that leads to a continuous flow which allows you to trust the output before a human gets it, right? So, all of this happens before you actually look at it and so, the trust in what the agents are doing would go up and hence probably you'll stop putting a human in front of an agent and slowing it down, right? So, I think that's pretty much what I had. I am uh I wanted to leave time for questions, so I think it's good time. We have 10 minutes, if I'm not wrong, or 8 minutes for questions. Yes. Can someone please help with the mic? >> So, my question's on the previous closed-loop diagram that you just showed. >> Yeah. >> So, what if we have an ability to treat that whole thing as a skill and then put it in a continuous uh self-learning mode? Would that be a good extension of improving that? >> Uh you will run out of context. >> [laughter] >> If you try to stuff all of this into one skill, you will run out of context. That's my short answer. >> Got you. >> Yeah, Naresh, uh really nice uh presentation. Uh so, I had one question. Uh you mentioned at one place uh in your uh kind of uh the structure you presented that uh whenever there's a mistake, uh we would like the human to get involved there. Yeah? So, with the uh new systems and AI becoming more and more powerful and uh all the experimentation going on, uh will it not be an idea where we actually have some bit of intelligent auto correction also built there? And then, if AI is not able to correct something, then only human comes in the loop. >> Absolutely. That's That's the idea with Basically, that's why you're providing the sensors, so it can self-correct itself. You don't necessarily need a human. You only need a human when the the agent is not able to figure out things. Uh but, you make sure that you can provide uh both the guides and the sensors, so that the agent can be autonomous to the extent. But, I'll give you an example, right? What if you've given contradicting uh you know requirements in your prompt to the agent? What should it do? Should it self-correct? >> Yeah, yeah, it can It can still try to self-correct, but when it gets into a situation, see, that that trigger has to be there somewhere, yeah? So, that trigger has to be there because AI in the current form is highly likely that it will never come back to us with the LM support will never come back to us saying that okay, I'm not able to do this, yeah? >> That's the problem I feel today is that the agent assumes, right? So, if you give a contradicting requirement, like to make it very specific, let's say in one place you've said that this particular value should be less than 10. In another place you are you've given that it should be more than 20, right? Today, the agent will pick one of them and move forward, right? So, you'd give some guides that will tell it like, "Hey, don't do this when you're confused." Like basically, pull the human. Don't So, the the difference, right? Is that don't expect a human watching over you, but when you can't figure out stuff, pull the human, right? So that you you can like not make assumptions because once you start making assumptions and people figure out it's not what they wanted, then the trust factor doesn't kick in. When the trust factor doesn't kick in, then you'll have one human standing in front of every agent waiting to watch, right? So, we want to get out of that loop, that mentality, and you want to let the agents do things, and that's where you want to provide as much information you can, but when you try to provide too much information, again, like you end up, you know, uh exceeding the context, you end out uh other kinds of problems, uh and you may not get the results, right? So, there's a lot of uh I would say skill involved in terms of optimizing the context that you're going to provide and when you're going to provide that. But, let the agent pull you when it's not able to figure out something rather than assuming and moving forward. But, to your point, absolutely, you'll provide the sensors, you'll provide everything so that it can self-correct, right? You don't want to be waiting and watching over it. But, that's not always possible. Like the example I gave you where you've given contradicting things, right? Or there may be other regulatory kinds of things where it's you wouldn't want it to just make Yeah, okay. >> Um hi. So, I really like how we are, you know, uh putting this together for APIs because right now in my organization, we are we have something called maturity index for each of the repositories. So, this stands first, I guess, the guides and the sensors and everything else should be put together for APIs and then separately for UI. My question is regarding the guides, uh where uh the agent plugin uh has skills and MCP. What do you specifically mean by MCP in this place because whether it's a developed MCP or you're just providing the guidance to create that MCP along with the API? >> Uh so, there are several different forms of MCPs that you can plug into it. Uh so, anytime like basically an agent is going from a prompt to generating the code for you, it'll need a set of uh inputs, right? So, a language server, for example, is an MCP that you could provide to it, right? But, you could also have an MCP sitting on your control plane that the agent can talk to to figure out like, "Hey, am I doing uh something that I should avoid, right?" Uh from uh let's say uh if you see like a API is unstable, should you be depending on that API? >> Okay. >> Right? You may not want to depend on an API which is unstable, which is not or deprecated. Like that's even better example, right? So, if an API is deprecated, you would want that feedback to go in. But you can't stuff all of that in up front, right? So, you would provide, you know, MCPs to kind of make those decisions. >> we are talking about real MCPs that do the job of implementation and correcting and all that, right? >> MCPs for mostly providing feedback to the agent or guidance to the agent so that they can kind of self-correct. >> Okay, yeah, yeah, understood. >> Or produce things right in the first place. >> Thank you. >> Uh so, really loved the presentation, Naresh, and especially the analogies of the loom and the traffic lights. Uh brilliantly done. And I was actually I worked on the Citrix API platform long back when I was 18, 19, and I just wish I could take all of this and go back in time and you know, use all of this. Uh coming to the question, to me looks like this takes care of a lot of the design aspects, implementation aspects, even testing. Where do you think you know, runtime characteristics like scale, performance fit into this whole you know, framework? >> That's That's a brilliant question. So, when we saying the governance piece, that's also looking at has all the observability aspects into it. And that's kind of where you want to have these feedback loops between them, right? Expose an MCP on your control plane. So, everybody else can tap into it. And you know, you basically are getting feedback from a monitoring from your governance, sorry, from your observability systems into this. So, you know what's happening in the production environment at runtime as you scale things. But also what at least we've done in a lot of cases is built a lot of that stuff here. Right? So, when you're individually designing an API, you can do a lot of resiliency testing. You can do a lot of things. For example, if a downstream service is down, how are you going to behave? You know, you have you implemented circuit breakers correctly? How do you validate that? So, both as part of sensors and guides, you can kind of So, guide would be essentially like, "Hey, for for this kind of an API, I want you to fall back to asynchronous." Right? So, instead of doing 201, do a 202 uh and then respond back with the monitor pattern. Right? Like that would be a like a best practice that you would feed into uh the the agent. Right? But then you need to validate whether it did actually implement it exactly in that way or not. Right? Is It's given you a monitor link, but is the monitor link actually when you hit it, eventually when it completes, does it give you back a result? Right? >> [clears throat] >> So, a lot of those kinds of things at an individual API level, today we already have the capability to do that. Right? But at a scale, when you're trying to look across like in my case, 40,000 services, then you essentially want all of that data coming into your control plane and then feeding it back into all the agents. Right? So, that's kind of another example of the MCP that kicks in. >> Thank you. That helps. And if I may add a part B to the question, if let's say you're specifically designing and implementing APIs to be consumed by agents, in that case, do you see this framework evolving and >> Absolutely. So, there are a lot of like AI quality metric score cards and things like that that you build into your governance, which essentially helps you understand whether the API itself is ready that you want to expose to an agent or not. I think there's a lot of great work that I don't know I Eric and Frank, the folks from Genentech are doing. Even Kin Lane is doing some very interesting work in that space. So, there's a lot of folks who are trying to figure out whether like how do I score, how do I guide, whether my APIs are actually ready for the agents to be consumed.