Skip to main content Sök

DevOpsAIDemo

GenAI agents demo: Accelerating the adoption of GenAI in software development

A tangible example of the power of GenAI in action: impactful results with minimal effort. This demo by Kalle Mäkelä, Lead Digital Solutions and AI at Eficode, showcases a fully AI-driven workflow where agents take on roles like Product Owner, Data Protection Officer, Software Architect, and Developer. These agents analyze user stories, generate specifications, ensure compliance, and produce working code.

GenAI agents demo: Accelerating the adoption of GenAI in software development
Transcript

hello all my name is Kal I come from epic code I work as lead AI uh consultant uh and my job here today is to show you what we have been building or basically experimenting on in regard of generative Ai and software engineering what you're about to see uh is basically a demo built on to of jeta uh we are using agents to drive uh software development from customer customer requirements to specifications to uh technical design and in the end uh writing up some code this is a POC demo and this is only the beginning but first of all let's actually start explaining a little bit what are llms and retrieval augmented generation functionality with the llms all about foundationally llms are a snapshot done in the past so they cannot have the data what you are now experiencing when you are reading this or seeing this video so uh they are inherently always or they are foundationally always uh trained on the data what you use uh and uh because of that you need to always retrain it if you want to include data uh that is not included in the uh training set before so for example here you can have a question that what is your our company's marketing strategy so of course in F code uh context it doesn't know so what we do to fix it fix it basically so we are going to uh build this kind of functionality called retrieval augmented generation next to the large language model meaning that uh basically when we ask about some some uh data or what you have in the llm uh we are seeing that okay it doesn't know that data so we are going to augment the data uh and the context when we are asking again so we will retrieve from your data sources Etc uh information and then we are going to generate an answer with the llm so this is very simple architect picture of of what we are having in in the demo um but with with this even simpler context what we have in the background in demo we have the large language model which is the open AI model what we are using there which is quite good at uh what we are doing in the demo context and of course in your business context it's not so easy uh we are going to have different roles and that are going to be run as agents to actually have the queries done uh automatically with code and then we are going to store the information and the response basically in the end in the cha uh as a from from rack point of view uh we have all of the data we have within the CH but in the future in the real in real world you have infinite amount of data that you need to include uh when you are doing decisions based on uh or using llm all right so let's uh go to the demo so here you can see very simply uh or very simple canaban board we have two tickets here uh first of which which is access that rag we don't have any Confluence in this case we have everything that we need uh in the Chira ticket itself to make this demo as simple as possible so uh we are we are uh actually operating this Coit solution company which is a kind of Amazon startup 25 years ago when they had database and they had books uh which they wanted to sell to the market so it was like a first first of uh It's Kind digital you know digital book book store let's say like that uh so we our data is within this ticket which means that we have all of the background information for the company so our mission uh which is very important when we do decisions based on requirements and specifications so it will direct our agents in the right direction also we have here uh basically defined the uh the agents themselves so we have four we have product owner agent we have data Protection Officer which comes from EU gdpr uh directive so meaning that we will check uh business domain and nonfunctional requirements when we are actually working uh on what we are going to implement which is very important and all of your all of the companies in the world have specific needs uh when they are running the business in some legislation or like continent or like what what is the business context is it Automotive is it banking is it Telo is it devc or whatever so then we have software architect which I'm going to explain later why it's quite important uh and then developer agent in the end so we are going to have the code written in the demo by that agent so the knowledge base actually is very important also to uh basically describe a process because like a like alternative AI agents which are autonomous uh digital extension of the roles what you have in any of your processes they are context dependent and the context is always the process they are not uh working as an in an island they are working as a part of uh of uh end to end flow what you are what how or how you are building products how you are Building Services like human beings if you take a human being from the University and put it uh to work in your process and if you don't train train that person to work within the process it just cannot fly it doesn't work so you need to tell uh agents like you tell human beings that uh what is your context and with definition ready and definition done we are kind of guiding the agent that what is your starting points or what is your what your end result is all about Etc and of course in the knowledge bace we want to tell uh for the technical people we want to tell more specifics for the what kind of Technologies we use to develop our services and products and in this case for example we are pure python python house here basically because we have only kind of like the data base and then an API develop with with python on top and then we have a source code repository link here all right but this is our uh day knowledge space which we are going to use when we are invoking the agents but now I have here another ticket for an example I have two customer or end user needs here and uh I'm going to remove one but I'm just like explaining here that we have I have a pois customer user story and then I have a sales manager so for example for the customer would have something like I want to see new books that are available for me based on my previous buying history so that I can quickly see a potential book so that uh that I want to read that I like but there is now this one thing that I want to do because I haven't actually tried it before so as a buit sales manager I want to see last month's customer purchase history so that I can dck books that aren't sold uh that much to be on sale little bit bad English there but let's see LMS are quite good at understanding the meaning between the lines uh let's rewrite the uh title here so that I have uh books on sale okay and it's quite important also when you are using alternative AI uh to actually have the motivation of who wants to do what and this is also of course important when you are working with human beings uh so that the motivation is very very important because now when we are creating specifications in specifications we we have we are what we are writing we are writing with gin and uh you can see in the in the end what I mean about this motivation to be important so let's let's see how it goes I'm going to save it and by the way here is this draft uh so this draft is just like a label that we are searching for the agent uh to be you know uh it will find find all of the basically issues that have this label and it will basically read the information on the description build and then uh we'll do its job okay I will close this up and then I'm going to then I'm going to execute the agent let's see now it starts to work so it reads now the information in that knowledge base and um after that we should have a new ticket on on the Canan board let's see if we need to refresh no we didn't need to refresh so now we have this user story kind of like analyzed and then we have then we have content in the description field so let's let's see what uh the AI did uh did for us so user story RW last month's customer purchase history allow the book brid sales manager to view last month's customer purchase history to identify books that aren't sold much and Tack them for sale so we have two so now you can immediately see that okay we have two scenarios access purchase history and then TX books for sale so it kind of it it dissected the user story so it took the who wants to do what and then why as separate scenarios which is very cool in my opinion because now you now we are able to verify in the functionality also that we are actually addressing the motivation of this user story which is number one reasons that I like I'm frustrated working with uh with the specification and user stories because the motivation for any actions in uh regard Ed to any uh system is very very key so here we have access purchase history given I'm logged in sales manager when I navigate to the purchase History Section and I select the options to be the last month history then I should see a list of all customer purchases from the last month okay sounds good uh that book for sale given I am Ving last month's purpose Purchase history and I identify books that haven't sold so much uh and I select option to attack them for sale then the selected book should be marked for sale all right so cool so we have functional specification there so let's let's see what uh comes later or after this so we have here uh very very simple non uh nonfunctional requirements so we have dependencies design markups technical visibility performance criteria and so so in the agent itself we are actually saying that hey this needs to be handled in the process all right but let's see how the ne uh what the next agent does so you will get more you will get more uh context to that so we I will run the DPO agent and let's wait for that to be finished and no yeah so we got the new ticket or sorry the same ticket but let's see what we have all right so we have a DPO data Protection Officer that took the function specification and derived nonfunctional requirements for that all right so this is kind of like very very foundational thing that you need to start uh or like when you are doing your business it's very domain specific and you have like uh you have standards that you need to uphold you need n to coming in the industry in the EU you have like you have all of the things that needs to be included into this requirement and specification work you know you can automate I believe most of it so that you can just drive through the agents these kind of like uh reading the documentation getting the input from for example from customer interface so we can have uh previous uh previous week's main uh box here we can see from per for the performance criteria there okay we have some performance issues and those are kind of included automatically here so so we have here data Pro uh privacy Access Control uh Etc compliancy do we see any like very interesting stuff here so they only collect and display the minimum necessary data required for the sales manager to perform the T so very good point so we don't want to actually tell up okay what which customers are using what next up we want to go to more technical stuff or technical details so we we start start talking about uh designing the solution so what we just what we have been doing for two like uh columns now or phases we have done specifications derived from requ functional requirements or customer need basically then we have a place a column where we have any uh amount of of business domain non uh kind of functional requirements check that okay is the safety in for example for automotive things so safety is quite critical so we can have analysis there what whatever agents we want to be uh to be done like for the quality Loop quality assurance Loop we can get uh any kind of information there but I just triggered the uh in the background the architect agent so we have next up here all right so what the architect agent now does is that it will take uh the specifications and uh the whole ticket basically there and start design in against our repository a solution on it and why do we want to do it like this so uh like why don't why don't we just take the user story and then you know write the code but kind of like in a startup startup phase when you are like doing like you know like if you have small teams you can quite easily like very very quickly like experiment stuff if we are in a very kind of um like heavy industry for example or Healthcare we are working on that domain where we want to audit our steps we me we need to have this process uh like observability in in check and also if we are basically going from directly to from customer need to to uh to for example using goil and start developing we are we are kind of like missing the possibility to keep our larger uh code base in check so we maybe we will have in the end a lot of code turn or whatever we are going to rewrite code a lot based on based on whoever wants to do whatever so it's kind of good practice that uh like the like the reasons why you having in a human human uh way of working also that you have uh you have an architect that is kind of like uh keeping the architecture and logical architecture in good condition uh so it's a it's like a good place to have discussions also so let's see so here we have actually a couple of end points that we are going to create uh so we have last month in purchase history endpoint then we have books book ID tax for sale database SEMA is uh going to have some changes uh because we don't have these informations here and then we have all of these process related stuff for the for the developer but by the way I forgot to tell you you can always of course go to this ticket and have uh like modifications you know let's see if that comes through for example so so uh it is imperative that humans are in the loop we are agreeing on when we want to do these changes but kind of like this is very a very nice way to have the minimum amount of work kind of like very quickly uh you know uh in the ticket itself and then you can collaborate so you can imagine in in the teamwork for for example scenario we can actually use these kind of flows these agent driven flows to really really have the team uh like uh cross functional teams working together and personal personal note here is that 15 years ago I was uh working in extreme programming manner so I had PE programming I had actually mob programming we we kind of like had two days of actual programming Workshop in a meeting room where we had one screen where we coded and then other people were thinking about different kind of aspects of what of the solution what we are bringing in so this is kind of like again the same situation which is in my opinion very fun all right so and let's that let's now then start coding and uh how we do it we actually go and select this to be like uh to be implemented so uh it's kind of like that we had this definition of ready check um and now we are going to do the development work so we are using here open AI so we don't have uh here for example CLA used so we are taking the ticket again and uh basically prompting that okay Implement these uh these to these uh files or what files needs to be changed Etc and every time I have something different so okay I have here for example open pool request uh J created implementation of task back in implementation that's not a nice title we should fix it of course you can use the C pilot actions here uh for example to analyze what we are doing and so what we have changes so we have database changes coming here we have purchase history dto we have a new t for sales response then we have the models that Pi implementation so we have purchase history here which we have like purchase date quantity so okay so we are storing purchase history which is a good thing uh so that we can so that we can get the least least amount of uh sold books there and now I have a new get routine here uh call here one month ago so we are going to get all of the books yes so that are you know the least amount of I hope it's least amount of least amount of uh sales uh then I have tag for sale so I'm going to basically have here tagging so yeah leave book for s through so I'm going to get a list of books here and then I'm going to tag them for to be sold to be under sale and here we have the test cases so mock purchase history I have couple of I have couple of uh test uh data uh books here and then I'm going to have the test case for the functionality with a quick glance it looks to be okay all right so of course now comes the comes the fun part which is of course uh validation QA so like you saw saw in the end you have unit tests but in reality of course what you had on the in the beginning uh in here in the board you you have the specifications and many of you get May guess already actually these kin scenarios are user accepted testing death cases so you can actually do manual testing with this or you can automate these test case to be your end2end test cases and of course in this case we had all of the N2 and test cases are kind of API test case on API level but you could have UI component here so you would be of course implementing new end to test cases here and I'm going to show you in couple of months uh basically a new version where we have uh the QA agents working together with these uh developer agents uh like in a proper way uh to actually to be more robust more robust on the test driven development way but thank you for your time and um see you around