NEXT 26 – AI Accelerator - Agentic Release
121 views
A dense technical session unpacking the four pillars of Magnolia's agentic release: the Magnolia Dev MCP Server (a plugin-based toolkit that injects Magnolia's coding conventions into any AI agent via Skills files), Doc-to-Page (Word documents into fully designed Magnolia pages), the AI Agent internals — covering reasoning models, three-layer tool security, memory management and two-way MCP integration, as well as the upcoming Vector Database (semantic and hybrid search via context vectors and embeddings).
View transcript
Okay, so thank you for joining our talk about the AI accelerator agentic release. We're going to speak a little bit about the history, how did we basically end up here. We're going to speak about Dev MCP, we're going to speak about Doc-to-Page. So basically, take a document, automatically create a page based on this. our VectorDB, the agentic core that basically runs it all and there will be a lot of question and answer. We thought we're going to run it like this after each and every single stage. We're just going to take like two or three questions so just we basically stay in our time and then we just continue to the end and then there's a bigger question-and-answer block. How to build an agent? How did we basically end up here? And for that, a little bit of history. Technology is really changing extremely fast. One and a half years ago, we have been pretty leading if we just look at the general market if it comes to AI integration. So there are something like DALI or whatever it is. Boom, next day we have it in and we are ready to pitch and to deliver this. So also the way how AI was used to develop was compared to what it is today, a complete different story. That's the thing with the human mind. You forget really, really fast how it was even a year ago or one and a half years ago. At a certain point, we started to realize something is really changing in technology. Really, really subtle, but there's definitely a change coming because at the beginning, everything was just really smaller tasks within your network. You could just do this one thing maybe and then you put this one thing a little bit better and so on. But suddenly people started to speak about agents. And obviously we also thought quite a bit about agents. But what we also found out is that we are actually dealing with an extremely fast-moving target. And that fast-moving target was not moving in one direction. In fact, it was doing a lot of zigzagging because suddenly there are new standards and ChatGPT was all the rage. There was simply nothing else. And suddenly we have the first clients just say, you know, we are basically Gemini only. Just Gemini only? Whoa, okay. And then suddenly there's Anthropic and makes giant steps forward. And it becomes more or less even an almost enterprise standard. And the big question comes in really, okay, how are we going to take all those different systems that are available? How can we really integrate them in a uniform way? So you have really a chance to deal with not only the different models, but also with the different data points. In hindsight, it's logical and it's easy. But the thing is really, since everything changed so fast and we were really just building something that simply doesn't exist, it was definitely quite a ride to get it really done and to come to the stage that we finally reached today. So in a nutshell, it's been quite a ride, literally, really. We had many different iterations. We just also had various competing ideas and so on. And to really come up with a solution that follows the Magnolia DNA that is fully modular, that makes it really easy to plug in any data point and start to really reap the benefits of AI at scale. That was a challenge on many levels. And I absolutely want to say thank you, first of all, for obviously all the Magnolians that made it happen with the sleepless nights. At the same time, thank you for all the people and there have been many that really took the time, that took the closed beta, closed alpha, that really looked hard at it, that really tried many different cases and that basically provided the feedback for us to get certain things right that we simply did not see in the cases that we have foreseen. So it was really a massive group effort and in a nutshell, I could not be more happy with the outcome. I think this agentic core that is now basically available in this public beta phase, pretty stable, it's really something that will probably define the stuff that we do in the upcoming years. And I think now it's basically time to have a look at a few of those different things that we are shipping now. And we start with the one and only Scott Rhodes. Thank you very much. Unfortunately, you're not correct. My son is also Scott Rhodes, so I'm one of the Scott Rhodeses. All right, yeah, so I'd just like to introduce you to the Dev MCP. This is a tool that you can use on your development environments to help maybe accelerate your Magnolia author, public instances, all that good stuff. So let's just jump right into it. All right, so we have the Dev MCP server. This is a standard IO project and allows you to install it via MPX. With that, you can then install the plugins. So you've got the CLI, the API, the designer, the log, the generator. Excuse me. Now, originally, this was supposed to be a Figma application, but it started extending a bit more and more. So I just basically broke out the various tools. So you can use the CLI to generate pages just like you would with the CLI as it stands. But the designer, it contains tools for working with Figma, HTML, all that good stuff. And then you've got the registry, which is not too important to go into right now. You can read into the documentation if you'd like to. So this is basically built upon skills. So Claude introduced skills, and we have a Magnolia skills capability, which allows you to define just these prompt.md files and with those prompt.md files, you can say, I want to use this kind of branding. I want to use, yeah, the React pages should have this kind of basic setup and all that good stuff. You inject those tools into your server, and then you can use all those tools working together. In a seamless way, you just make a single prompt. It builds everything together. And let's see. Then the code, is then generated for your projects, the dialogues, the templates, all that good stuff. So you just would install the MPX, I'm sorry, the MCP server by MPX. Simple command-line tools with Claude Codex, you can see right there. You can provide all the different variables that you need for your setups. And then within each of your projects, you can define a simple config.json file where you can say, for this project, I want to use the Figma designer. I want to use the CLI. I want to use the API. All that good stuff. And you can give it your access token, so you never have to ask that again. And all that good stuff. Okay, we're going to skip over the setup just because I'm verbose. I don't need to go any deeper into that. Just know you can run the MPX, run a command to generate your initialization files. So, yeah, again, we'll skip over the video for that. And I'm not going to skip over that. So let's just go straight to the good stuff. The Figma to Magnolia page. So what we're going to see here is we're going to make a simple request. We're going to ask it to generate an entire page, break out its components, put it into a new light module, and in this case, it's going to be an SPA app. So it's going to break out the Next.js components. So let's go ahead and play. Trying to walk you through this. So here we are inside of our Magnolia project. It's currently running. We have the Spigma template. It's an entire page, multiple components inside of it. And I want to also keep track of, like, what decision-making processes did you follow to get to this point. And also put it inside of a new light module, which we currently don't have in our project. We just have the simple basic SPA LN, but I want this to be in our custom project. So it's now thinking. You're going to see it's thinking slowly now and starts thinking really fast. So I sped it up because this takes about 24 minutes to accomplish this task. It just takes a long time. It's taken a bit longer nowadays than it did before, but at the end of the day, you get a full page. You get all the components broken out. You got the reusable components, all that good stuff. So it's now found the page mock-up. It figured out the ID of that thing, this 359 from Figma itself. And yeah, now it says, I see these various components. Yeah. So it's now reading the React project to see, like, okay, how do I need to work on these components? Like, what is the existing infrastructure of the page? Is there anything reusable in those pages that I can, you know, make this, I don't know, a bit faster? And also it's keeping track of the tools used. I'm keeping a journal, as you saw above here, with all the various steps, so I can go then back later and say, can I make this better with skill files, injecting skill files, all that good stuff. Yeah, so it's continuing on. It's looking at how to do its visual validation now. And because I've configured this Playwright MCP server, it's going to determine that, oh, I have Playwright available to me. So I'm going to open that page up in Playwrights and make sure that, does that look the same as it did in Figma to the final product? And also looking to see, are there any existing editable fields or whatever that I can reuse that I don't have to reproduce? Yeah, it's reading those dialogue fields. It's applying the skills that are embedded inside of this project. And now let's go ahead and building all the different templates. And you can see that over here on the side, we have a new light module, Magnolia XLM. We now have all these components. We have a page. At the top of the page template, you saw that there was a commented-out ID, and that's so we don't reproduce those components in the future. So if I go back later on and say make this other page, but this other page has already built this component that already exists, I don't go and recreate the wheel, if you will. So yeah, now it's applying this to the SPA app, so we can see this thing actually run. You can see we're at already 13 and a half minutes of processing, but that is the project initially being built. Now once the project is built, we want to validate that, hey, this thing actually does look the way it should look. And so it's going to start doing that here momentarily. And as you see, it is not the fastest process in the world, but again, it's a lot faster than we are at doing this. Yeah, it's making sure that we have the node, the pages inside of the JCR, inside of Magnolia, so we can then open that page. This is just a page for validation purposes. So it's just kind of making it up as it goes. It says, I have a header, I have a navigation area, I'm going to inject this dummy content just so I can say it looks the same as it did in Figma. Okay, so all the components have been now sent by the REST API and generated. And yes, so there's a page that it has generated, as you can see. And now Playwright's being invoked. And so this is the page template. And if you had really fast eyes, you could see that that kind of looks the way it did in Figma. So not too bad. But it is finding some issues. So it's finding issues with things like, at this point, I know we're going to have an issue with the damn URLs that it's going to, you know, not be able to render those damn URLs via Playwright. So it's going to try to resolve that. So there's that damn URL that it's having an issue with. It also says, oh, yeah, actually I can't open any of these images in Playwright. And one thing that I have worked on a little bit, I haven't injected yet into this project, is to open it up directly in the author instance so we can, like, validate, like, dialogue fields and all that good stuff. And, yeah, so it's still thinking really hard about what went wrong there. So it says, oh, yeah, I'm getting 401s on all of the damn URLs. Trying to solve its own thing. Can't really solve it too well in this. But it's going to at least document to us that, hey, I was able to do this, wasn't able to verify the damn URLs and all that good stuff. But we can see here in Magnolia that we do have our page. That page has areas. There's our header. There's our hero components or areas. Here we have our stats. We can go ahead and edit that. We can see that that dialogue was generated so we can populate it with that stuff. And that is that. Okay. Any quick questions about what you just saw? Very, very, very quickly. Oh, good. Okay. Hey, I've... Have you thought about enabling this tool for a tool like this for non-developers? So in our case, we have all these brand guidelines. I'll start over. Hello. Hi. Have you thought about implementing a tool similar to this for marketers and non-developers, the ones actually creating the content? I don't think about those people. Okay. That's fair. Because we don't want to talk to them. We want them to deal. Now, this right now is just coming from me and I have more of a development background. But the intention of this tool is to make it extendable by the end user, whoever that end user may be. And so you'll probably have to work with the developer at first to get the thing working. But you can override these skills to say, actually, just I really want to be out of the loop on all the development side of things. I just want to see the page and give it a thumbs up or a thumbs down at the end of the day. And you can do that by scale files. Yeah. Like we want rapid prototyping at the end of the day. And like ideally leveraging Magnolia components that already exist instead of like creating new brand new ones. So if we could, I mean, something we want to experiment with is like having a tool where we have all our guidelines and like Magnolia guidelines built in, like here's all your templates, here's the areas, here's the subcomponents that you can use and in a structured way. And that seems like something you could do with MCP server. So that could be reinforced to make better and make it work to those use cases. So this is very early on in the days of this project. There is a JIRA project out there. And if you have any feedback whatsoever, can reach out to me directly as well. But you can submit those concepts there and we can analyze those together. to see if that's a possibility. And if I say no, then you can do it yourself. Any other questions besides Edwin? I was just trying to ask if it's publicly available or maybe open, like ready to use it? Yeah. Thank you for asking that. It is publicly available to anybody with a DX core license. So yeah, it is available. We have everything in our project, our GitLab. We have the artifacts for MPX, MPM, all that good stuff. That's in our Nexus, but it requires DX core access currently. We'll see where this goes from here. But right now, you do need to have an enterprise license to access it. Sorry, there was one other question. Yeah, real quick. You mentioned in there that you guys were tracking ID to prevent duplication of components. Is that something you're adding in Figma or is there something inside of the file where it's tracking for something like this? My number one fear is, cool, now we can do stuff really fast. How do we make sure we just do it once? Yeah. Yeah, so this was just a quick concept I threw in there. Figma, of course, has the IDs embedded, so the page has its components. Those components are being reused by this ID. As you can see that in the URL, I just basically grab that and I throw that into a comment and say, please be the same. I'm not doing any visual, oh, I think I have a component like this or I have a component where I could make it more dynamic. No, that's not there yet. Doesn't mean it can't be, but it's not there yet. Do we have time for another question? Okay, well, you can come and grab me afterwards if you'd like. So, there you go. So, welcome everyone. Thank you for being here. Just raising one question, who was missing Clippy here? Can you raise the hand? There are some people missing Clippy. Who has used Anthropic's official skills? Okay. Who has generated a doc page with Anthropic? Okay. Less people. Less people. So, we have more people interested in Clippy than what you actually can do to generate a doc. No? That points also that if you are developers, imagine about your authors. In this case, imagine you have a feature that you can safely put any content into it, into a document. And of course, you don't have to use the legacy version of Word 97. You can use Google Docs. You can copy it over. And you have a client component that it allows you to ensure your privacy. privacy. And that document is not going to be uploaded anywhere. So, in that document, you have some hints. And you can even adapt how those hints are processed. So, that's TalkToPage. So, as you can see, the nice thing about Magnolia, not only the nice thing, because everything in Magnolia is nice, we know. But you can bring, also, on the AI Accelerator model, you can bring your own model. And your model, in this case, can also be either you can have your own model for image processing. You can have your own model for any agentic prompt. And that also can be your own thing. So, if you are able to adapt it, you can make it that the response to the DocToPage component generation, page generation. It's specifically what you need at your company. And that's what we were guessing and trying to understand how to process. And we bring something that it will allow you to process with your own custom set of the agentic development. And at the same time, we will introduce some kind of snicks in the document that you can make your own search. You can search images. You can generate images. You can introduce promptings into that document. So, it gets specifically needs that you have to that component. And also, you can customize authoring-wise that layout in the way that you need. Internally, it will be processed recursively. And it will generate all the properties you need in that beautifully comprehensive GCR structure for the pages. You have the components, the components of the components, and the components of the components and the components divided in alias. And some of those components have required properties, others are optionals. And all those can be automatically generated by the agentic. And the cool thing is we are in the stage of doing something future-proof. So, it's API first. And also, it allows you to customize it as you want. How can you do that? First, it's about simple three points. The first step is write it or not. It's not a song. But it's true. You can do the doc generation by your authors. Some may have specific themes to do the authoring. Some may have not specific themes and they want agentic generation on the doc. So, imagine that you can shape as you want. In here, you will have three initial stages. You can embed the images in those docs. Or you can have a hind test that will allow searching in your DAM configuration. Or if not, it has different strategies and it will allow you to generate the images also with the model that you have included. In this case, you can search, upload or generate your images. Then you have the authoring experience. The authoring experience in the second layer is about how it's going to look. How does it look? How is that page? It was someone mentioning before that for each component it was measured 10 clicks per component. So if you generate a Magnolia page from scratch, how many clicks do you have in those beautiful green bars? You have dialogues opening, you need to introduce one by one, then you have validations, then you need to click, then you need to close the dialogue, you need to add the next component, then you need to go to the grid, then you need to... and so on and so on. So finally generating a draft of an initial page is a long process. In this case, what you can do is... let's do... Let's call it layout. And the layout is like the meta description of the page where you define just the structure. You don't define the properties. You just define... I want a grid here. I want two components in the first column, three other components, this type, this type, and this type in the other column, and I want a generic footer. And then that you will follow all your theme approach. So that's really as a concept, it was very interesting to approach. But imagine that then you do the agentic delegation into it. And in that test, you can put either your hints or you can do that your components are really following your needs. So you can't extend that micro-framework, let's say, in a way that you can put your own strategies. And you can make that test generation and that component generation fits your needs. Disclaimer here, you may listen something at the background. You are very comfy now, but sometimes when we go to the upper level, you feel less comfortable when you are in an outer area. So, you will see why I talk about this. So the first idea is about this layout page. Here in this part of the dialogue, we can either choose a page template or we can choose a layout from a page. In this case, it will choose and you can select the page you want to be authoring from and it will pick up the component structure. And in that case, then you can adapt, you can shuffle, you can generate new components, drag them, duplicate, delete, and then you create the layout. When you have the layout here, you can just upload your document. In this case, the document upload is happening in client-side, so there is no compromise to the Magnolia entity that you are uploading a virus or something like that, because of 97 there were a lot of virus. So, we, those people that were using Microsoft, in this case, you don't have to worry about that. So, it is happening client-side in your browser and then it will happen. You will see it now in full motion. In this case, you have, you just choose the page, you open the dialogue, we will go how it's setup and then you just can see how it works in the different components. The layout is going to be setup, so you can define the page type that you want, or either it will be chosen automatically. So you can just define the layout that you want or that you are really looking for. You can duplicate, delete as I have told you before, and also you set up that layout. Okay? Once, another way is that you choose the page, as I mentioned, and the layout is pick up. In this case, you ask confirm and then you upload the document that you want. That is going to be a page that you want to be generated in your authoring experience, with specific those components and what is going to happen, which is a long process, I'll let you know, is that that page is going to be, that document is going to be split and every chunk of that document is going to be matched with one specific definition that you have created in your layout and you just need to wait. So that's why I was telling you that you feel less confident when you are up sailing, no? Because in the elevator mirror you feel that something is cooking. And in this case, you just need to wait until the process is done. If you don't like the process, you don't have to worry because that layout, that definition that has happened, is going to be still editable. It's a draft. So you can go on it and you can see the typical pattern that we found that is normally to happen is that you have a component like the grid that may have different columns, but the column is nothing that I can invent from your disposal. And in this case, you can add that and then you publish and you go. In this case, I'm going to be accelerated here more than the AI accelerator does because there are some basics here. It's how we done the doc2page. In this case, you need to go to some basics. In this case, first, if you want to do something similar to doc2page, you can go to the AI task. And that goes to the registry. I'm going to really go, because I extended myself a little bit over, so first you need to define your task. Here you go to the task definition and here you define your type. And also you are going to implement what that class is going to happen. You then need to process with the registry. The registry is going to be the similar identity on the YAML file that you have defined already. When you have done that, you just need to define also the AI task type, which, this is very important. you define the input and the output of those parameters that are expected. That's going to the genetic call. The beautiful thing about this is how we have built the AI accelerator is that allows you to do a pure REST call where you have the task ID and the task parameters, which will be the input type task. That will come on a REST call that you can actually do in anything. And that's something of the extensibility of the AI accelerator that maybe it escapes your point of view. UI wise, on M7, you know that... I didn't say that, no? You know that in the next version of Magnolia, there is kind of a... They mentioned GS fields are going to be dropped. And it was mentioned before. The thing is, this dialogue, if you rely on the JavaScript dialogue still, you are defining a pure agnostic of the frontend definition. This allows you to embed in Magnolia. And it's happening now that it's not so known. You can embed any frontend that you want. So you don't have to wait. You can really do that on your own. And this is a way that we just followed something. We have used our DS system to implement this new UI. And this is a very nice use case on how to implement this. And I... Yeah, you can see later on. In this case, it's not Magnolia maybe the most sensible platform. What do you think? Thank you very much. Thank you. So, thank you. You have seen two presentations from Scott and Alberto that were quite living, quite entertaining. You saw a lot of moving parts. And now I have the task to give you a little bit more of a boring theoretical things. More talking about concept rather than showing you videos about how the thing are living. So, I want to start with a quick question. Who here in the audience has already been dealing with vector databases, context databases? I expected to see a few arms. Yeah, quite a bit. Very good. So, for the rest, maybe something new. And for you, maybe you hear the same thing in different words. Vector database. I mean, what is it? Why do we have it? We start with a problem statement. Full text search. Search. Typically, you index words. Where does this lead to? Well, we have an example of a bank account document which gets indexed in the database. You search for Swiss francs. Yes, you find it because it's there. It's indexed. You search for currency. Well, the word currency exactly is not indexed. You will not find it. So that the classical search algorithms, text indexing, they will find the words by matching the words, but it doesn't allow for a semantic search. So you search for the same thing, but with another exact word, it will not be found. So that's that. The idea of context structure. Capturing meaning, semantics instead of plain words. So we start with the idea of a context vector. What is a context vector? It's a n-dimensional vector in a multidimensional space describing the meaning of something, of a word, of a text, rather than, you know, it indexed. For example here, you have finance, Swiss francs. They are somewhat close together and very far away. You also have cheeseburger. Yeah, I mean, it's also a little bit related to, you have to buy it. It costs something, right? Context vector, I mean, here, I mean, this beamer here is two-dimensional. So I only show two dimensions. Sorry for that. Actually, vector space often can be 384 to 2024. So it's a multidimensional space. Well, it's really a lot of dimensions. When I said that physics, like the dimensions, we had four dimensions, like gravity, space, time, yes, and here. I mean, those who might know about string theory, you have a little bit more dimensions here. It's quite a lot. So how are those vectors calculated? They are calculated by so-called embeddings models. You calculate the embedding, so you turn a sentence or the word into such a vector and you get a representation of the meaning. You also refer to this as calculate the embedding. And now a context search. What is it? So basically you search for, you have a thing that you query. You turn this into a vector. And then you have a vector in this multidimensional space. And then you basically do a nearest neighbor search. And there are many ways to do that. You can calculate Euclidean distance, a Cosine similarity. Or yes, there are different well-known algorithms to do that. Like this very famous HNSW. So what does this allow you to do? So here's an example. We again have documents about banking. We can turn this into a vector representation. So they get indexed, not only by the word, but by the actual meaning. So you see this fancy image there. That's the most fancy things I have in my slides. Yeah. Sorry for that. And yeah, you see then that the information present there, for example, this junior account, where we say we have a junior account and you have a cultural benefit from it. It's not written as cultural benefit. But then you can search for cultural benefit in this vector space. It will yield you a vector. And this vector happens to be quite close to this area there. And that's how, well, you start to find and you will find something which you will not have been able to find if you would have used classical text indexing. So and then, well, how about combining classical search and semantic search? This is the so-called hybrid search. So well, you can then do both, of course. You have a corpus of text information and you can index it both in the classical way in a different technology, you use a database whatsoever. And you index it again in the vector database. So you have two systems. So, okay, you have search results coming from two different systems. Well, I mean, you have then still to say, okay, from this different system, what's the most relevant information? Because each has a different ranking. I mean, the first from one system compared to the first result from the other system, you have them to sort it again. And that's also a concept that gets important in, yeah, when you talk about semantics, it's a so-called re-ranking. So that means you get results from different systems and you have to sort them again and see what are the most relevant search results. Yeah. Let's say here, you search for card insurance, the query, full text index, semantic index, you get a result, you re-rank, well, and you present the findings. So yeah, that's the theory. And so I connect a little bit to what Alberto just started before. Our AI accelerator has been designed as a very flexible, extendable framework. So it allows you to, you've seen maybe last year, you can add your own AI tasks, you can add your own logic. And you can also, of course, use the logic that's there. For example, our context search exists as an AI task. Here, I'm going to read a little bit. I mean, we define the input, as Alberto said, what goes into the task, the output, what you get out. You define a query here. In this case, you say the language you want to search in. Then here, sneak peek, there is an AI description, what is it? That's a parameter description specific for LLMs and agents. More about that will follow in the next part. You say here, workspace, you want to search in the path you want to work in. And then, yeah, you search, you find your results in Magnolia data. What does it bring you? What are the use cases you can develop with it? Well, you can search, you can use this potentially, yeah, also just a normal Magnolia search as a Periscope provider. For example, Doc2Page, that has been presented to you. Also there, find the best fitting image. We have AI tasks that turn images, descriptions, to do AI, to do metadata generation. So they calculate, they give you a description of the image. And then you search in description, you find the best fitting image for the Doc2Page. Search to Magnolia agent. That will come soon. You can then cross-language content discovery. Because you can search in one language, it's turned into a context vector and you will find the results of other languages. You see different languages, different words, same meaning. You can do a content gap analysis. You can find related content. And well, where can this lead you to in the future? What are the next things that this potentially unlocks? There are some very interesting topics this is unlocking, like compliance topics, review topic, duplication detection, detection of conflicting content. I mean, the whole world of compliance. You say, remember, some price here, price there. You say, have some facts here, some facts there. And as an editor, I mean, well, would be nice if you can detect those and correct those. So, that was a little bit more theoretical part. And now, how this all can be seen in action, I hand over to... Oh, sorry. Yes. We still have some time for questions. Are there questions about the topic of vector databases before I hand over to something more living? So, two questions. So, which vector database are you embedding in Magnolia? And are you auto-indexing content as it's published within Magnolia into your VectorDB? Those two questions. I mean, Magnolia, AI Accelerator is a framework where we follow the pattern of bring your own model, bring your own LLM, bring your own provider. So, it's built in an agnostic way. You can choose your embedding model you want to use, your provider you want to use. And it's also designed in a way that you can store the data in the PG vector, in the Pinecone, in whatever system you want. There are some stuff which will support out of the box, but that framework is built that you can bring whatever you want to bring. Next question. I can ask you, how do you enforce security in the VectorDB? Because you said, Magnolia is AI with security, but the VectorDB is a bit harder to enforce security there. Are you using other indexes or something? I'm not that familiar with VectorDB, but how do you enforce the security? Security is a big field. Maybe to shortcut it quickly to one aspect. What aspect are you concretely asking? One editor is allowed to see one, like you have an app, with two folders. One editor can see folder A, one editor can see folder B. How do you enforce it in the search? Okay, good. Yes, that's a simple one to answer. What we do is that actually the access that you have is also part of the index. So like when we search and the results we retrieve, we already retrieve results that are pre-filtered. But I mean the index also has a little, always can potentially have a little bit of delay. I just realized I didn't answer the second question from you. That is the automatic indexing, right? So when new content gets created, it is automatically ingested there and then also with the path and things, etc. So we know like what access rights are required to read it. And then we have a two layer of security, like we fetch the thing from the database, so we have the results. But then we cross check again against Magnolia in the second step to verify you can really see. So you can only find the stuff. You will only get research results for things that you really have access to. So you can ask us later for further questions. Ask me later. And now I would really like to hand over to Sebastian for a bit more living things on the screen. Yeah, thank you, Alexander. Perfect introduction to the vector database topic. So let's go over to the agent. Looks like everybody is asking a question before their little presentation. So I asked this as well. Who of you worked with an agent before, right? Looks like mostly everybody. Okay, perfect. So first off, what is an agent actually about? So it's consisting of four pillars. It is reasoning and planning. So the LLM is actually analyzing what it's going to do. It consists of tools. So the execution units that an LLM can execute in the end. It consists of memory. It's also known as the context window. And also maybe a long-term memory. And last but not least, it contains observation and iteration. And this is what makes an agent very special. So an agent can reiterate on results that it has previously seen. All right. So let's go to these steps in more detail. The reasoning. Why is it important? So it allows for better selection to answer a user's request. It enables fewer iterations. So if a user asks a question, we only get the limited, sorry, fewer interactions with the LLM to actually achieve a goal. And how do you enable this in Magnolia? So we introduced about a year ago our model registry. And now you can simply add by YAML a new model that has reasoning capabilities. So let's say an Opus 4.8 or a GPT 5.5. And this is just by default. It comes inherently with the AI accelerator now. All right. Next, what is a tool? So a tool is actually the thing what an agent can do. And the good thing in Magnolia, anything can be a tool. It could be either a REST-endpoint. It can be an AI task that we have seen before, like the search and the doc-to-page. It can be a native command, such as publishing. And we can connect to MCP servers as well. So everything can be a tool. The good thing about it is it's still declarative. So only YAML configuration. No Java at all. Very nice. The tools are self-describing. I will show you in a bit later. And the good thing is it's always governed by security. So we have a kill switch that disables all the tools. We have a contributor list. So if you're not aware that a module contributes to tools, it's not there automatically. You have to allow it. The third thing is role-based access. So only authors that have the required roles can actually execute the tools for the agent. All right. Now let's go to the conversation history. It's basically the thing the agent remembers, the context window. Also, this is hidden behind a security concept. So only the actual user retrieves its history. We embedded history compression. So if you run out of context window, we do compression. We drop out all the messages that are not required anymore or not relevant to the agent anymore. And also an eviction. It's time-based as the same as before in the compression. And now the agent loop, basically the interaction with the agent. So first the agent thinks about what it's doing. Then it decides for a tool call. Maybe it is already answered through its inherited knowledge. So it can stream the answer to the client. Thirdly, we have acting. So if there is any tool calls to be done, we delivered it to the agent. And fourth, the observation. So the results of that tool calls are put into the agent again. It rethinks on what it's been doing. And potentially delivers the final answer. The cool thing is, in our agent, we stream all of this via SSE. So no delays. The user gets immediate feedback. It is hidden behind the security model, as before mentioned. And it's REST. So we don't do any long chain. No libraries. No whatsoever. It's plain REST calls based upon Magnolia's REST clients. All right. Now let's take a look at a request end-to-end. So, we want to ask the agent what pages are failing this month, right? So basically, first step, the user asks a question. That goes to the LLM. The LLM is processing the question. And it also processes the conversation so far, right? So if that answer might be there already by a previous round trip in that conversation, the answer might be inherited. Next step, the LLM picks on a decision, a tool to be called. Let's ask the analytics for analytics data. And fourth, so the analytics data is not enough to suffice, like the user requests. So it asks for another tool call, the SEO audit, which is another tool in AI accelerator. Perfect. With that, we have an answer. We can deliver that to the user. All right. So now let's take a look in deep what is a tool. So in this case, we have a little nice tool that wants to call an API because, as I said, it can be a REST client. In this case, we do a little joke. So we connect to the jokes API. We're asking for programmers jokes that are nonviolent and stuff like that. And then we define a tool. So a tool is basically a description. And that description allows the agent to better understand what it actually executes, right? So it's a knowledge for the agent. Then we define the security roles. So as before mentioned, it's governed by the security roles in Magnolia. We define the execution type. In this case, a REST client and some annotations. I think that's standard in the MCP as well. So we know it's non-destructive and it's read-only. And thirdly, we enable that tool in our agent. So the agent actually knows what to do. And now a fourth. Let's have some fun with that joke. So we have that generate a joke. That's a good one. Why programmers prefer dark mode? Because light attracts bugs. All right. And yeah, last but obviously not least, MCP. So we offer two ways of MCP. So basically all that is available in Magnolia. We ship as an MCP server now. AI tasks, REST clients, native commands, whatsoever. That can be shipped. It's perfect. But also we allow to consume MCP servers. So if you have an MCP in your stack, just connect it. It's light development. It's a YAML configuration only. We can do STDIO and HTTP once. All right. Let's see that chat in action. All right. So let's open up the chat window. Let's ask the agent, how can it help us today? So we're asking for some SEO audit. So first we see the agent gives us a list of pages that are not performing well. After that, we go, let's go and select the pages app. You can then see we have the pages app open. So this is part of the context that we give to the agents. So the selection of items, so the nodes, and also the open apps. Now we ask them to optimize the SEO metadata because that's a tool available in AI accelerator since quite some time. And we get the results of what it actually did. Afterwards, we want to optimize for LLM visibility as well. The GEO optimization that we've been talking. And we can execute this from the agent directly. Always we get like this nice summary of what happened. So the user always knows on what actually happened with the content. And now at last, let's ask for some SEO analysis again. Because that page might have been around. And we want to check if that actual metadata update had an impact. At last, make it yours, right? So it's your tools. You can do the declarative YAML ones. You can extend via Java if you need custom business logic. Use your models. We're offering already a bunch. But you might have special requests. You can implement. It's very easy. And, connect your MCP servers because it's widely available. And there are many tools out there already. Great. Perfect. Any questions? Okay. This is few questions. Let's see if this mic is on. Hey, Sebastian, I would have one question. And that's about this new AI act that's coming up. Is that something that you're factoring into the work you're doing? Or is that more of a future topic for you? So, yes. We are very much aware of that AI act. We are actively developing a solution or planning that solution. We have to do stuff, right? So, we have to annotate metadata-wise on what content has been AI-generated. We're working on this. We have it on the radar. It's not there yet in this release, but I'll promise it will be there before it hits. Right? So, I think the period is until December. It will be there until December. I promise. Great. Thank you very much. Yeah. Thanks, guys. That's awesome.