{
  "text": "This is a full social media content machine.\nFour AI agents that research, write, design, and publish posts for you.\nWatch it work right now.\nThis content idea, five signs your agent stack is overengineered, is turning itself into a finished Instagram carousel.\nAtlas found the angle Vera is writing the slides and in about 2 minutes, Kite renders all of them with just a few clicks.\nAnd here's the thing, nothing goes online without your approval.\nYou check the words first and you approve the final post.\nThe agents do the work and you keep control.\nToday we are building the entire thing from the scratch.\nEvery prompt and template is linked below.\nIf you'd rather skip the 4 plus hours build, there is also an auto installer that can set up everything for you in a matter of minutes.\nHey, Larry here and welcome to the channel.\nToday we're building Cadence, a content operations autopilot run by four specialists you just saw.\nPacked with over 50 beautifully designed templates, Atlas researches and posts your ideas.\nVera writes every slide, caption, and hashtag for you.\nThen Kite does the finished designs.\nOnce this is done, Orion ships them to your social media platform.\nAnd above them all is an orchestrator agent that can take your orders in the Telegram chat and route every job down the [music] chain.\nIf you post content regularly, you know the hassle.\nYou stare at a blank page hunting for [music] an idea.\nWhen you finally get one, now comes the research, then writing slide after slide.\nThey're making it look good in a template followed by the caption, the hashtag, the scul and all that.\nNow, Cadence orchestrates and eats up the entire chain in a matter of minutes.\nYou tell the agents once what your brand is about.\nFrom then on, one click generates fresh post ideas for you or you type your own rough thought and they build the entire story for you from idea to publish post all handled in a few clicks.\nThen your post is online.\nAnd here is where this build beats every other AI slide tool.\nNormally, you would generate slides with an image model and you would pay for every single slide.\nAnd even fixing one word means you pay again to regenerate the whole image.\nCadence doesn't touch an [music] image model at all.\nEvery slide is built from a beautifully designed HTML template with real code, not with AI pixels.\nSo, every edit is free.\nYou can grab any elements, change the text, the size, the position, and it rerenders it in a matter of seconds.\nMeaning you have unlimited revisions with zero cost per slide.\nSo your money goes into the words, not into the pictures.\nThe dashboard shows the whole operation in one glance.\nEvery number pulled from your own agent's database where every agent logs its name, the task they performed, the AI model they used, and exactly when they performed that task.\nSo there are no fake metrics anywhere.\nMy favorite part is the studio.\nYou can edit every slice text or grab a single element, move it, resize it, rewrite it, plus even the phone preview, a template library, and some that carousel into a video rule.\nWe would also build a published archive where you can see all the posts that you've generated so far and published, and also a calendar tab where every schedule content can be seen.\nWe would also have a configurations page which would hold your brand name, handle, voice, and it flows into every word the agent writes.\nNow, let me give you a live demo and walk through of what we are building today.\nSo on the dashboard you see the total number of runs that the agents have performed.\nThe number of ideas that we have generated in this setup.\nThe number of posts that we have published.\nIn my case I just have one because I used this to test for the tutorial and the percentage of runs that have been successful.\nNow here we have an agent activity that is pulled from the agents activity database.\nSo you can see currently on Friday I did a lot with the agents because I was building the setup and that is why you see that this is basically going up and on the right side you can also see which of the agents have currently the largest workload.\nSo in my case for instance these are Vera who is my content writer and Kite who is a developer because those are the two that were doing most of the work so far.\nNow when you come down here you can also see a summary of what the agents have been doing all pulled from the agent login database.\nNow the magic happens in the ideas tab.\nHere you can see a few ideas that the agents generated for me because I'm doing stuff with AI.\nSo I just made them generate ideas around AI automation and stuff like that.\nNow here you can put in your own idea whatever idea that you have or when you don't even have an idea you can tell the agent hey generate some ideas for me.\nSo let me just click on generate some ideas and let me see what ideas are going to be generated.\nSo here you can see that Atlas who is our researcher is the one that is going to look for ideas around what we are building and what we haven't posted before.\nAnd this is going to trigger Atlas who is our researcher who is going to basically look for ideas of what we can post based on what the agents have learned so far about what I'm building.\nAnd then you can see that they generated five ideas.\nSo the first idea is automation fails at the handoff.\nWe also have some ideas like your agent should run the test it claims to fix which is going to be a good one because the agents hallucinate a lot.\nNow just to demonstrate an example let's say I want to write some slides on this idea.\nAll I have to do is to just click on promote and then here I can put in a number of slides that I want to put in.\nSo for instance I want to go for eight slides 10 or whatever number you want to go for.\nSo what you have to remember is that the first slide is always going to be the hook and then the last slide is going to be the CTA.\nSo the main content is going to be between the hook and the CTA.\nSo here if I go for 10 slides or let's say eight slides that it means that I'm going to have six content slides with one being the hook and one being the CTA.\nAnd then here I can decide if the agent should do a deep research.\nSo for instance if I click research with perplexity then the agents are going to do a deep research through perplexity to really find the right content for this job.\nAnd then here I also built in a sort of a steroids mode where the agents are going to write more punchy slides.\nAnd then when you are done you can just click on write eight slides.\nNow what is going to happen is that basically Atlas is done with his job.\nAtlas did the research right and now Vera is going to take over.\nVera is the AI agent that does the writing of the content.\nSo let's wait till Vera is done with the research and have the content ready.\nAll right.\nSo Vera is done with the research.\nRemember we asked for nice slides and Vera is basically giving us an idea of what the content on each slide is going to be.\nBasically you can see the content that is going to come on every slide.\nIf I do not like the slide and I want to refine the slide, I can click on refine copy and then the agents would basically refine this based on what I tell them.\nNow, assuming I'm fine with this and I want to promote this, I can click on approve and pick a templates.\nRemember that the contents that the agents did is basically from the idea of what the content should look like.\nBut here, I have a pile of beautifully designed templates that I'm going to give to you guys, which you can just copy without you having to design everything yourself.\nSo, what we're going to have to do is just look for whatever templates we want to build with.\nNow, because my brand is orange, let me go with this template here, 10 count.\nNow what is going to happen is I'm going to click fit copy to this.\nNow why do we do this step?\nBecause every template has the number of characters it can support.\nSo assuming the number of characters is way more than what a template can support then the design basically looks ugly.\nSo what Vera is going to do is that Vera is going to look at the template that we have picked and adapt the text that goes onto the slides to match that particular template and then Vera adapted the slide text to the template that we picked.\nSo here I'm just going to click on render this and then this is going to trigger another agent called kite who is basically for design.\nSo when I come here you can see that the slide is ready and I can click to open this in the studio or you can also come to the studio tab and this will show you the slides.\nSo when I click open in studio you can see the slides that the agents generated.\nSo that you can see that I have eight slides basically tailored to exactly what we did.\nNow the beauty about how these slides are generated is that typically when people are generating Instagram slides you need to get an image generation agent or an an image generating model that is going to cost you for every slide that you generate.\nAnd the most painful part is that whenever you want to change any text, then you need to pay for every API call.\nThe beauty about what we building here is that every slide is rendered as an HTML file.\nThat means that when you come here and click on fine-tune the slide and I pick on any slide, I can basically edit and add my name Larry here.\nI can do whatever I want to do without having to pay for anything.\nWhat you can even also do that I also added is that you can also tune the slide to be left to up down.\nYou can reduce the slide.\nYou can change the font size and everything.\nAnd then when you're done, you just click on save and this will be done.\nNow assuming you're done and you're basically happy with all the contents, then you can promote this.\nNow you can also convert this into a real where you can click on animate this carousel.\nYou can animate all the slides that are going to come one after the other like a real with a 4 is to 5 aspect ratio or you can also create a full reel with a 9 is to 16 aspect ratio.\nNow assuming I'm done and I'm happy with what I've built so far, I can just come here click post now and then in my case I have already configured Instagram.\nSo I can click on post to only.\nAnd then the agents are going to warn me, hey, are you sure you want to post this image to is I'm going to say yes, post now.\nAnd then the image is going to be pushed through a platform that we're going to be using, which is called Buffer that connects to all the social platforms.\nAnd then this will be pushed directly to Instagram for us.\nAnd now I get a notification from Orion, which is our publisher, that the post has been pushed to buffer.\nSo in a few minutes, we should see this directly on Instagram.\nAnd right then you see it.\nSo this is a test account that I created on basically to test what I'm building.\nAnd when I come here, you see that the post that we just created is live on Instagram exactly as we rendered them.\nAnd this exactly what I'm going to be building with you guys today.\nWe also do have a dedicated agents tab that gives you more insight into the agent architecture that we have.\nYou can see that we have every sub agents have their dedicated card where you can see the AI model that the agents are using.\nYou can see the number of runs that particular agent has performed, how many of these runs have been successful and also some of the recent tasks that the agents performed.\nOn top of all these four agents, we have the orchestrator who is more or less the boss agent.\nNow below we have an activity heat map where you can see in a time frame of 24 hours which agent has been active.\nSo the more brighter the color here, it just means that the agent was more active within that hour window.\nAnd darker spaces just mean that the agent was not active within that time frame.\nSo the entire build is going to take you about four to 5 hours if you have all the prompts and the templates.\nSo I also created an auto installer that can do everything for you in a matter of minutes.\nIf you'll be interested in getting the auto installer, this model will also be in the description section.\nNow, let's get into the build.\nTo get started, we're going to first install her.\nHe agents allows you to be able to build multiple agent infrastructure where you can be talking to your AI agents using all the popular applications out there like Telegram, Discord, Slack, WhatsApp, and all the popular messaging applications\nthat are out there.\nAdditionally, instead of being confined to using one particular AI model, you can use any AI model that you want. been it from OpenAI, Ben from Antropic or any other popular model that is out there.\nAnd to install Hemisen, there are several options that are out there for you.\nYou can install this on a Windows PC if you have a dedicated PC that you want to run this on, or you can also install this via a Linux operating system.\nFor this setup, I'm going to be using the Linux approach.\nI know Linux sounds intimidating.\nDon't worry, I'm going to walk you through the entire step.\nAnd then once we are done with the setup, which is going to take a few minutes, everything that you're going to be doing is going to be from the dashboard that we're going to be building or also from the Telegram messaging application.\nSo you wouldn't have to come into the terminal to do any stuff with quotes and stuff like that.\nBut I'm going to walk you through the entire process from A to Z so that you get a breast with how this whole flow would work.\nNow, if you have a PC that you can run this on, hey, you can use this as well.\nBut in my case, for instance, I do not have a dedicated PC.\nSo you can rent a server somewhere that you used to run this on.\nI personally prefer this option, but hey, it's up to you.\nWith using a private server is that you rent a server from a different company where you pay about $4 a month and then this server is going to be on 24/7.\nYou do not have to worry about maintenance.\nYou do not have to worry about internet connectivity and stuff like that.\nBut of course, this comes for a price and that is why you have to decide if you want to run this on your personal PC that you have at home or if you want to rent a server to run this on.\nAnd for the VPS provider, my personal picks are typically Racknet and Conabo.\nNow, with Rocknet, for instance, you can get a server with two CPU cores, 35 GB of this space, 2 GB of RAM for about $35 a year, which amounts to about $2.9 a month, which is quite affordable for a server, considering that you do not have to worry about\nkeeping it online 24/7, internet activity, maintenance, and stuff like that.\nWith Rak, you pay once a year and you're basically done.\nYou don't need to worry about monthly payments and stuff like that.\nThe second option that you can also go for is from Contabo.\nThey also do have quite reliable servers and the price are also quite affordable for the specifications of the VPS that you get.\nSo with Contabo for instance, you can get a server that has four CPU cores, 8 GB of RAM and about 100 GB of SSD disc space for about $8 a month.\nThis one here is going to be way more sufficient for what we're going to be building.\nSo you can decide on either going with Raknet or going with Contabo.\nSo I'm going to put a referral link in the description section that you can get one of these.\nAnd these videos are not sponsored by any of these companies.\nI'm just giving you what I typically use when I'm setting up these infrastructures.\nIf you want to go with Raknet, just come here.\nLike I said, my recommended option would be this one here.\nClick on order now.\nAnd then you're going to be brought to a page where you would see the summary of the hardware specifications of your VPS that you selected.\nAnd then when you scroll down as well, you see the server label, which you can change later if you want.\nNow, in terms of the configuration options, I would recommend that you keep this as a default.\nOperating system, we're going to be using Ubuntu 2012.04.\nFor the RAM, leave everything as a default. immedately you increase the RAM it's going to in an additional cost and that is why I would recommend that you go with the default options that is also here in terms of the location you can\nchoose whatever location that is closest to you but what we're going to be building latency is not much of an issue so I wouldn't worry too much about having it as close to you cost leave it as a default if you take something\nhigher you would basically pay more after that click on continue you're going to get an email that would contain all the credentials you're going to need to connect to the VPS ser and I'm going to walk you through that process as well\nif you want to go with a contabo option like I said this option that we have here cloudvp4 or the lowest option that they have is going to be way more powerful for what we're going to be building.\nSo here click on get started here.\nBe careful the default is sometimes 24 years.\nThat means that you're going to be locked with this VPS for 2 years.\nAnd of course it gets cheaper the longer the contract is going to be.\nBut just be careful because if you go for 2 years then you are locked to pay this amount of money for 2 years.\nIf you want to have the flexibility of cancelelling this every month then you can go for the one month option where you're going to be paying about 5.5 in my case a month.\nNow in terms of the region you can leave this as European Union which is the default because Contabo is in European Union with Contabo immediately you choose a different location then it would incur an additional cost but like I said\nearlier with what we're going to be building latency is not going to be that much of an issue.\nSo you can leave this completely as European Union.\nWhen you scroll down for the storage you can choose SSD 100 GB which is going to be free and way more sufficient for what we want to build.\nFor the operating system leave this as YUbuntu which is the default.\nFor data protection, I typically recommend that you go for the auto backup option.\nSometimes I'm working with my agents and something completely gets screwed up.\nAnd then with the auto backup, it basically takes a snapshot of your VPS every day.\nSo that means that if something goes wrong, you can always go back to about 10 days back and then you can always restore whatever image you had on that VPS for that particular day.\nNow this optional but like I said it's highly recommended because if you imagine if you've been building your content management system for over one year and by mistake something screws up you completely lose this.\nNow to save this as well you can also configure your own auto backup which is going to take a snapshot of your VPS every day.\nThis for instance you can build with cloth but if you don't want to do this and you want to go with contabo's default auto backup option you can choose this which would about 1.65 a month.\nNow additional features you can leave everything as a default.\nIn this section here, you're going to have to put in a password where you're going to connect to the VPS server.\nHere you can generate a new password or you can put in any password that you want.\nThis is going to be a password that you're going to have to remember because this is a password that you're going to use to connect to the VPS server.\nIf you forget this password, you can go into your conso control panel and reset the password.\nBut why go through the hassle after that?\nJust click on next, make the payment, and I'm going to walk you through the next steps.\nIf you went with a racknet option after making the payments, you're going to get an email like this from Racknet.\nWith this email, we basically going to need three things.\nThe first thing that you're going to need is the IP address of your VPS server.\nEvery VPS server has a unique IP address and they're going to provide this IP address to you.\nThe second thing that we're going to need is the username of the account that you use to connect to the VPS server.\nWith Raknet, most of the time name is always going to be root.\nAnd then thirdly, you're going to need a password which they're also going to provide to you here called root password.\nAnd here's what they're going to provide the password to you.\nAll these three credentials are going to be in your email.\nWith the SSH port, you do not have to worry about this because with most of the applications that you use to connect to the VPS server, they always default to an SSH port of three.\nNow, with the IP address, with username, and with a password, you would be able to connect to the VPS server, which I would walk you through in the next step.\nIf you went for the Contabo option, you're going to get an email like this from Contabo.\nMine is in German, but the layout is going to be the same irrespective of which country or which language that you have.\nIn the email from Contabo, we're going to need two things.\nWe're going to need on this left side here the IP address which is the unique IP address of your VPS server and we're also going to need the username with Contabo as well.\nThe username is in most of the cases root the password they wouldn't provide the password to you in the email but this is going to be the password that you put in when you were purchasing the VPS server.\nSo with the IP address with the username and with the password that you put in when you were purchasing to the VPS server we would be able to connect to the VPS server.\nAnd to connect to the VPS server there are several applications that are out there.\nThe good news is that whether you're using a Windows operating system or you're using a Mac operating system, both do come with inbuilt applications that you can use to connect to the VPS server.\nUsing a Windows operating system, just click on the search bar and look for an application that is called Windows PowerShell.\nAnd then when you click on this, this is how the Windows PowerShell application looks.\nIf you're using a macrop system, the application that you're going to be using is called terminal.\nThe commands that we're going to be using here in PowerShell are identical to what you would be using in PowerShell.\nSo you do not have to worry about differences in terms of commands.\nTo connect to the VPS server, just put in the command ssh space and then put in root.\nRoot is going to be the username of the VPS server, which is the same for Contabo and for racknet.\nAnd after that, you're going to put in the IP address of your VPS server.\nThe trick here with PowerShell is that whenever you have something in the clipboard and you right click on your mouse, it basically paste whatever you have in the clipboard, which can be quite useful, especially when you are typing in passwords.\nAnd after that, just press enter.\nIf this is the first time that you're connecting to the server, you're going to be asked whether you want to add this fingerprint of the server to your PC.\nIf you're sure you're connecting to the right server, just type in yes and it should be fine.\nAnd after that, you're going to be prompted to put in the password of your VPS server.\nAnd here, if you have a complex password, just type this password somewhere.\nCome in here, just right click on your mouse.\nIt would paste the password into the clipboard and just press enter.\nAnd then you can see that in my case, I'm connected to my VPS server.\nSo, I'm going to clear the screen by just typing clear.\nAnd then we can start with the configuration process.\nSo now we connected the VPS server using the router name and root as a user is typically the highest authority on a Linux server.\nNow to install Hermes my tip for you would be not to install Hermes on the root user but create a new profile or a new user on which we're going to run this on.\nNow this is quite helpful because then you do not have Hermes being the highest authority on your VPS server.\nIn my earlier videos, we always did this on root, which is absolutely fine.\nBut I always try to improve and bring you guys the best safety tips out there.\nAnd that is why we're not going to be installing Hemis this time around on root.\nWe're going to be creating a dedicated user on which we're going to install the whole Hemis application on.\nNow, to create a new user on Linux, just use the command user space.\nAnd after that, just put in the name of the user that you want to create.\nIn my case, I'm going to call this Larry.\nSo, add Larry.\nAnd after that, you're going to be prompted to put in a password for this user.\nSo, I'm going to put in my password.\nAnd after that, just press enter.\nYou're going to be prompted to retype the password.\nAnd then after that, just press enter.\nAnd then we're going to be asked if you want to put in a full name.\nYou can just skip this by pressing enter.\nRoom number.\nEnter.\nPhone.\nEnter.\nJust skip this.\nHome phone.\nYou can also skip this.\nYou can also skip this.\nAnd then you're going to be prompted if the information that you have put in is correct.\nJust press Y for yes.\nAnd after that, just press enter.\nNow, you can see that then Larry is added as a user.\nNow, we're going to give this Larry user some pseudo privileges so that the user can be able to run some commands and install the Hemis application.\nAnd to do that, we're going to use this command here.\nUser mod space minus ag p sudo larry.\nSo here, just replace this Larry with your username.\nAnd after that, just press enter.\nBy the way, I'm also going to provide you these commands.\nSo you do not need to type this or you do not need to remember them.\nAfter that, just press enter.\nAnd then we're going to get Larry now being a user with pseudo privileges.\nI'm going to clear the screen just to make it a bit cleaner.\nAnd now we're going to switch from the root user into the Larry user for us to be able to login into the Larry user that we just created.\nAnd for that just use the command su space minus or hyphen space and then just type in Larry.\nAnd you can see that the syntax change from root to Larry.\nSo that means that now I'm not on the root application which has the highest authority.\nI'm now logged in into the Larry path which has this authority.\nNow when we're connecting to the VPS server, we use the command ss space root the IP address.\nBut here as well if you want to connect to the VPS server instead of root you can use the new user that we created which is in my case Larry and then you can just put in the IP address of the VPS server then press enter put in the password that you\ncreated and then you see that I'm also connected to the VPS server so you can connect to the VPS server either using root and after that switching to the larger using su space minus Larry or you can also directly go into that using the\nSSH path for Larry.\nSo I'm just going to be sticking to with this because I already created a set with this here.\nI'm just going to type in clear to clear the screen.\nAnd then now we can start with the Hemis installation.\nTo install Hemis, we're just going to come to the original website from Hemsus.\nAnd then when you're on this page, scroll down here and then come to the install via terminal.\nWe're going to be going with the native application.\nAnd here the command always starts with curl so that you are sure that you are on the right one.\nNow click here to copy the oneline installer.\nThe advantage here is that with this oneline installer, it's going to install all the dependent that required to install or to run hemis without you having to install application A, application B and stuff like that.\nAfter that, just press enter and then the installation is going to run.\nSo, it detected that I'm running Linux and it's also going to run all the other things that are missing on my server.\nNow, here I'm being asked, do you want to install RIP for faster file search for TTS voice message?\nThis would be good.\nSo, we can just type in yes that we want to install this and press enter. and then I'm going to put in a password and then press enter and then the installation is going to proceed.\nSo I'm going to wait for the installation to be done and then we can continue with the build.\nAll right, so the prerequisite installation is done.\nSo now we can start with the setup.\nNow for here we're going to have to choose how we want to set up Hemis.\nI would recommend that we go with a quick setup because a full setup is going to ask us so many things that we're going to have to configure which we do not need.\nAnd this is also the recommended part.\nSo just make sure that this option is selected.\nIf not, just press up and down on your keyboard.\nMake sure that the pointer is on this and then press the space bar or enter key.\nNow in the next stage, we're going to have to create an account with news research.\nIf you do have an account, then you do not have to create a new one.\nAnd basically, this is a step where we're going to bind this VPS or this server or this Hemis installation to our news research account.\nNow, here you can go with their free subscription.\nNose research does have some paid plans where you can use a pool of AI models that they have, but in my case, I'm going to be coming with my own AI model.\nSo, I'm going to go with a free option.\nSo just press control on the keyboard and click on this URL here.\nAnd if you do not have an account, you're going to get an option to create an account.\nBut in my case, because I already have an account and I'm logged into my account, it directly brings me to a screen where I can bind my account to the setup.\nSo here, just click on connect.\nAnd when this is successfully, you're going to get a notification that this has been connected.\nAnd then when you come back to the Hemis installer screen, you see that it brings you to the model selection process.\nLike I said, in my case, I'm not going to be using any of the models that no research provides.\nI'm going to bring in my own model.\nSo here you can just press enter on the keyboard to skip the model selection process.\nIn the next stage we're going to pick a few tools that you can use with her agent.\nFor instance, you can give your agents the options to be able to search on the internet and script data from the internet on particular websites.\nAnd here for instance you can use a tool that is called fire crawl and the same applies.\nThere are other tools that you can use for image generation for text to speech for speech to text and so on.\nSo here you can just press enter to use all of these or you can also uncheck them if you do not need them.\nIn the next stage, we're going to select the terminal back end.\nHere you can keep this as the default, which is local by just pressing on the space bar.\nIn the next stage, we're going to connect a messaging platform with which we're going to use to talk to all our AI agents.\nAnd here, it's recommended that you set this up because we don't want to be talking to the AI agents every time through the terminal here on the VPS.\nWe want to have a simple, more friendly user interface that we can talk to the AI agents.\nSo, here we're going to select set up messaging, which is recommended anyway.\nSo press space bar on the keyboard and then you're going to list all the messaging platforms that are currently configured with Hemis.\nAnd as you can see there are a pool of them that you can use.\nBut in this setup we're going to be going with Telegram.\nSo just press down on your keyboard and then here don't press enter.\nIf you press enter it would skip this part.\nPress spacear on your keyboard to make sure that is checked.\nAnd after that you can just press enter.\nAnd then here we're going to create a telegram bot.\nAnd this is going to be the bot with which we will talk to the agents that we're going to create.\nFor the Telegram B setup, you can either go with the automatic setup or you can also go with a manual.\nIn my case, I'm going to go with the middle option just to show you how you can do this if later you would need this for another application.\nSo for manual, just press two and then press enter.\nAnd then HS is going to ask us what is the Telegram bot token.\nSo to do that, just come to Telegram and look for a bot called BotFather.\nSo you can see that the right botfather bot has over 7 million monthly users.\nSo that you are pretty sure that you are using the right bot.\nBe careful here.\nAs you can see there a lot of botfather here.\nBut the one that you need is this one here with a check mark here and also with over 7 million monthly users.\nTo create a new ground, use the command forward slash and then type in new bot.\nAnd then you can press enter or you can click on the suggestion that we have here.\nNow here we're going to have to give our bot a name.\nI'm going to call this km in my case for computer mechanic content creation OS.\nSo when you're done with the name just press enter and then you're going to be asked to put in the user of the bot.\nNow very important here the username has to end with the name but and that is why I copied this because in my case I just want to call it the same name but just add the word but to it and after that just press enter and then the bot is going to be\ncreated for you.\nNow when the bot is created the botfather is going to give you a unique key that means that you are the creator of that bot or you are basically the owner of the bot.\nSo I'm going to click here to copy the key because that is what the hemis installation is asking and I'm going to paste in the key here and after that just press enter.\nNow this step is a highly recommended step.\nHermes is asking you, do you want to put some users who are the only people that are allowed to talk to the bot?\nNow this is very very important because if someone has the username of your bot, you don't want them to be able to talk to your bot.\nAnd that is why we're going to tell her, hey, let me be the only one that can talk to this bot.\nAnd the only way Hermes can know that it's you is by giving Hermes what your user ID for Telegram is.\nAnd to get your Telegram user ID, we're also going to use a bot that is called user info bot which also has over 400,000 users.\nThere are a lot of other bots out there.\nSo make sure that you have the right one here.\nAnd to get your user ID, you can just send the bot any message like hi.\nAnd the bot is going to respond with your user ID.\nSo I'm going to click here to copy my user ID.\nI'm going to come back to the terminal in Hermes installation.\nI'm going to paste in the user ID and I'm going to press enter.\nAnd then Hermes is going to ask you if you want to set this user ID as the home channel.\nThat means that in the messaging chat that you are talking to the bots, whenever the Hemis gateway is restarting or any system things are going on, you're just going to get a notification in this chat window.\nYou can type in a Y for yes and then press enter.\nAnd then you're going to be asked if you want to install the Hemis gateway as a system service.\nThis very important because whenever your VPS server restarted due to a system update or anything, the Hemis gateway is going to start automatic which is quite useful so that you do not have to start this manually.\nPress Y for yes and then press enter.\nAnd then here you're going to be asked how do you want to run the gateway?\nIn our case, we're going to go with the system service.\nSo press enter.\nAnd then I'm going to be prompted again, do you want to run and install the gateway as a background system service?\nI'm going to press Y for yes and I'm going to press enter.\nAnd then the Hemis installation is completed.\nNow very important here, we're going to have to reload our shell so that we can just type in Hemus and this will launch the Hemis application.\nAnd to do that, just copy the command that they have provided for you here.\nPaste this command back in the terminal and just press enter.\nIt's basically going to restart the shell for you.\nNow remember, we are basically done with the Hemis installation.\nBut in my case, I didn't select any AI model because I want to bring in my own AI model.\nSo here we're going to configure our own AI model.\nAnd I'm also doing this in this way so that you guys can learn how you can add your own AI models later.\nNow, if in future you want to add some AI models, you can basically ask your AI agents to do this for you.\nBut I typically do not recommend this because in most of the cases the AI model is not very smart, they basically mess up with your configuration.\nAnd that is why for stuffs like that I prefer to do this on my own.\nNow for which AI model to use this is absolutely up to you.\nBut what I typically use most of the time which a lot of people do not also know is that if you do have a charge GPT subscription if you the plus account or the pro account you would be able to use an AI model from open AAI that is called Codex\non her agent basically for free.\nIf you have the $20 plan you can use you can use this.\nIf you have the pro plan you can also use this.\nI'm I'm not very sure if this is available for the Go plan.\nIn my case, most of the time I'm using the pro plan.\nAnd the usage limits that you have for the pro plan is more than you would get for the $20 plan, obviously.\nSo, if you're not sure which one you need, you can go with the plus account.\nIf you hit your limit, you can basically always upgrade to the pro plan.\nNow, the is also a bit generous in terms of the token limits.\nSo, you would be able to do a lot even if you are using the $20 subscription.\nThe advantage here is that it's not basically a pay as you go.\nWhenever your limits are done, you are done.\nYou do not get any surprise bill from OPDI that hey, you've used more than your subscription allowed, so you have to pay extra.\nThat does not exist.\nAnd that is why I personally go with these options because it's you don't have to worry about having a surprise bill or anything like that.\nPersonally, I'm on the pro plan because I have a lot of Hem setups and that is why my token usage is also very high.\nAnd also for the tutorials that I create for you guys, I typically try this over 10 times and that is why I typically need a higher limit in terms of the tokens that they make available to you. when I had one Hemis account or when I had one open\nCL account, this one was way more sufficient for me.\nNow, what people also not aware of is that if you also do have an X account, you can also use the Crog model on Hermes agents for free.\nSo whether you have a chat GPT paid account or you have a premium or paid subscription, you can use in both cases their AI models on her agent for free.\nIf you do not want any of these and probably you want a particular model like from Antropic, oo, sonet or whatever, we can also come to open router.\nOpen router has quite a pool of a models like all the popular AI models that are out there.\nYou can get them on Open Router.\nThe advantage with Open Router is that they're going to give you one API key and with that API key, you can get access to all the models that are out there.\nThe tricky thing that you have to take note of the fact that with Open Router is basically pay as you go.\nIt's not a case where you paid a month and then when you hit your limit, you hit your limits.\nYou basically pay as you go.\nThe more you use, the more you pay.\nSo, I mean with whatever model that you want to use is completely up to you.\njust go for the option that makes the most sense to you.\nNow, in my case, I'm going to be going with my OpenAI because I have a CHBT subscription.\nAnd to use that, I'm going to clear the screen here to make it a bit cleaner.\nJust put in a command Heis space model and then press enter.\nAnd [clears throat] this is going to load all the models that are currently available on Hemis agent.\nIf you do have an paid premium X account, then your option would be here, the X AI Grock.\nThe process is going to be the same irrespective of which option that you go for.\nSo, in my case, I'm going to select this by pressing the space bar.\nAnd then here we're going to have the option to choose between open open AI API.\nIf you go with API then you pay as you go.\nSo the more you use the more you pay and then you would have to create a dedicated API key to collect this.\nBut in our setup we're going to be using our charging subscription.\nSo I'm going to go with the open AAI codeex.\nAnd to do that we're going to press control and we're going to click on this URL that is provided here.\nAnd in the process we're going to have to enter this code that is over here.\nSo just highlight this code.\nVery important.\nPress control shift C.\nDo not press Ctrl C.\nCtrl C in Linux cancel an application and this would quit this whole screen and that is why you press control shift C and then the link is going to bring you to this page.\nAll you're going to have to do is to just log into your OpenAI account.\nSo I'm going to click here and then click on continue and then just put in the code that we copied from the PowerShell from the Hermise installation and click continue.\nAnd then our CEX account or our OpenAI account is now bound to our Hemis setup and then when you come here you see that the authentication is done and then here we are being asked to select an AI model.\nAnd then here you can use any of the models that you have here.\nRemember the higher the number like 5.6 takes way more tokens than 5.4 4 than 5.5, which also takes higher tokens than 5.4.\nIn my case, I go with 5.5 most of the time because it's still a very super powerful model and I always want more tokens.\nBut hey, if you are on the $100 plan and you have a lot of tokens, you can also go with a 5.6.\nThat's absolutely up to you.\nI'm going to go with 5.5 here.\nI'm going to press spacebar.\nAnd then you can see that it says that my default model has been set to GPT 5.5.\nNow before we go into the telegram to test to see if everything works from the Hemis installation and from the model configuration just type in Hemus and this is going to open what is called a Hermes terminal user interface.\nNow it's going to be a chat box where you can basically talk to your default AI agents to make sure that everything works.\nBut a lot of people like me do not use this part because then you always have to log into your VPS come to this weird page to talk to the AI agent.\nWe just want to make sure that the setup works and that is why I'm coming here.\nSo here I'm just going to send in a message like hi and if the agent responds then it means that the hemis installation works.\nIt also means that the AI model configuration worked and here you can see that the agent response hi what can I help you with?\nSo that means that our installation worked the AI model configuration works.\nNow to leave this screen you can press Ctrl C on your keyboard or you can also just type forward slash and type in exit and press enter and this is going to kick you out of the Hemis terminal user interface.\nA quick word from today's sponsor, Sudalis AI, and it's worth paying attention to this one.\nProblem they are solving is that enterprises are currently drowning in disconnected AI.\nMost companies are using AI tools that do not even talk to each other.\nOne tool does this, another does that, but nothing connects.\nSo nothing really works together.\nSudalis AI built a system that connects everything into one stack.\nCheck them out at sudalis.ai with all the links in the description section.\nThanks Sudalis AI for sponsoring this video.\nNow we're going to come back to botfather.\nWhen bot created them for us, he also gives us this URL with which we can start talking to the bots.\nSo here just click on this URL here.\nIt's going to open a new chat session with the bot that was created.\nYou can just click start.\nNow this is going to send a message like start to the bot.\nBut the bot doesn't respond but it doesn't understand what start means.\nSo here we're just going to send a message to the bot like hi.\nAnd if everything works the bot is going to start typing it.\nSo if you see this typing symbol then it means that the bot is configured and the bot is going to respond to you.\nSo the bot responded hi what can I help you with today.\nNow we're not going to be talking to the bot in this session here.\nWhat we want to create is we're going to create a telegram group for our bots.\nThe reason why we're going to create a group is that we're going to have basically three topics.\nThe first topic is going to be where we're going to be talking to the bots which is going to be our orchestrator.\nAnd then we're going to have a second topic or a second channel which we're going to use to talk to our developer agent who is going to build the whole dashboard for us.\nAnd then we're going to have a third channel which we're going to call studio.\nAnd that is where we're going to brainstorm ideas and stuff like that with our agents.\nWhen we are creating the group, a prerequisite to create a group is that you have to get at least two people in the group.\nSo we're going to need the username of our bots so that we can add this bot to the group that we're going to create.\nI'm going to click on the name of the bot here.\nAnd then here we can click to copy the username of the bot.\nAnd after that we can close this dialogue box and then we can create this new group.\nNow to create a new group, click on the hamburger menu that you have here on the left section here and then click on new group.\nAnd then we're going to name the group.\nIn my case, I'm going to call this KM Content OS and then click on next.\nAnd then we're going to have to add at least one person to the group.\nAnd that is why we copy the username of our bots.\nSo I paste in the username and I'm going to click to select the bots and I'm going to click on create.\nAnd then now we have our group created.\nBut like I said, we want to create different channels in this group.\nNow, we're going to have to make the bots that we added an administrator so that the bots can talk in this group.\nClick on the three dots that we have here.\nCome to group info.\nClick on manage.\nCome down here and click on administrators.\nAdd administrator.\nWe're going to select the board that we created because the board is already in that group.\nAnd just review the permissions that you want to give to the board and just click on save.\nAnd then now you see that our bot has an admin privileges.\nAfter that, click on close.\nNow, whilst we are here, we also going to enable this aspect that I call channels.\nSo by default, Telegram doesn't enable these channels or what is called in Telegram topics for you.\nSo to enable this, just click on the topics section here, which is in my case by default off.\nClick on this and then you can enable this.\nAnd then here you can decide the view that you want to go for.\nIn this case, I'm going to go with the tabs option here.\nAnd then just click on save.\nAnd I'm going to click on save again.\nAnd then we can now close this.\nAnd then immediately we do that when we enable topics.\nYou see that now we have different channels.\nWe have all channel where we going to see all the messages from all the channels.\nAnd also we have the general channel.\nSo first let's rename this general channel.\nClick on the three dots here.\nCome to edit.\nAnd then we can call this channel orchestrator because this is the channel where we're going to talk to our main bot.\nI'm going to click on save.\nAnd then we're going to start talking to orchestrator here.\nSo let me just send a message in the chat here.\nWhen I send hi and our bot is typing that means that orchestrator is in this chat.\nSo we can basically start talking to orchestrator.\nWe are going to create other two channels.\nBut we are not there yet.\nLet's just build the foundation and then when we get there, we're going to go through that process as well.\nAll the prompts that I'm going to be using in this build can be made available if you interested.\nYou can get this for a token of support on my website or if you are also a member of my community, you can also get this.\nIf you guys want to be a member of my community, it's $10 a month and you can get basically access to all the prompts and all the templates and all the tutorials prompts that I have on my channel.\nAnd this goes to also support the work that I do.\nA lot of effort goes into creating all these tutorials, creating all these forms that I give to you.\nAll the AI models that I also use in building these are also quite expensive and that is why I would need to get this with a token of support to help me to be able to keep bringing these tutorials to you as well.\nSo if you want to join my membership group, I'll be very happy to have you there.\nWe also do have a telegram channel where you can basically get access to me or all the people in the community ask any questions that you want and everyone there would be happy to support you with the questions that you have.\nAnd I also do create auto installers.\nFor instance, for the setup that I'm creating, I'm building an auto installer that would build the entire thing for you in less than 5 minutes.\nAnd this is going to be available to people in my community or my membership as well.\nSaid, hey, if you want to join, I'm very happy to have you on board.\nSo, what I did now is that I moved Telegram to the left and it basically had all the prompts on the right so that we can basically copy this and it will be very easy.\nNow, whenever you set up Hemis for the first time, the bot has no idea who you are.\nThe bot doesn't have a name. the bot has no idea how the bots can help you with with whatever you want to do.\nSo the first thing that I always recommend to users is hey let the bot understand who you are.\nGive the bot a name.\nTell the bot your name and give the B a gist of how he or she can help you for this.\nMy first point that I'm going to give to my bot is this.\nYour name is going to be orchestrator.\nYou are going to be my top level coordinator for my multi- aent setup and I am the owner and I have the highest authority.\nAnd then here you're going to fill in your name to the agents.\nYou're going to also give the agents your brand name.\nYou're going to give the agents your social media handle because remember we are creating a social media content creation machine.\nYou're going to tell the agents what your brand teaches.\nNow, this is very important because we're going to have this dashboard that is going to create ideas for us.\nAnd for the agents to be able to create these content creation ideas or these post ideas for you, they need to understand what you're building.\nAnd that is why this part here is non-negotiable.\nYou can also tell the agent what your audience is and stuff like that.\nSo, I'm going to copy this.\nI'm going to paste this in here.\nAnd I'm going to fill in the sections for my build.\nSo here I bought, hey, my name is Larry.\nMy brand is computer mechanic.\nMy social handle is computer mechanic.\nAnd here I teach it technical builders to build AI agents and automation, who my audience is, my voice, and my working time zone.\nNow the working time zone, for instance, is important because when the agent is creating like Chrome jobs, then the agents will basically know when to reach you and stuff like that.\nNow I'm going to send this to orchestrator to get him breast with who I am and also what we're going to be building today.\nAnd then orchestrator responded, \"Hey, got it.\nI'm orchestrator and you are Larry.\nYour brand is computer mechanic and your content is plain direct content teaching builders to build agents and automation.\" Now, the next two prompts here are what I would recommend that you do.\nThe second prompt here is basically where you're telling orchestrator to interview you.\nNow, what you give to orchestrator here is basically the backbone, the foundation.\nBut there are so much that you can let your agents learn about you.\nSo just take time and give this prompt to Kasha is going to ask you some questions to understand who you are of the setup that you want to build your audience and all those things.\nBut I'm going to skip this in the tutorial because otherwise the tutorial will get lengthy because for my testing or would ask you about 10 15 questions.\nSo I would skip this just not to get the tutorial too lengthy.\nThe second thing that I would also suggest to you is this permanent operating rules.\nNow when you are working with the agents it's always advisable to let the agents always give you a plan before they do anything they want to do.\nAnd also when the agents are working, you always want the agents to keep you updated in the process of what they are building.\nOtherwise, sometimes you just sit in the dark and you do not know if the task is completed or the task is is done.\nAnd that is why I prepare always these permanent operating rules which you can also give to your agent.\nIt's optional for you if you want to have this this there ready for you.\nI'm going to skip this part as well otherwise in my build orchestrator is always going to ask me give me a plan that I have to type a proof before he does it and this would slow down the build.\nNow we're going to start with the main hat of the build.\nWe're going to tell orchestrator that hey we're going to create different agents.\nWe're going to create an agent like Atlas who is going to take care of content creates carousel ideas.\nWe're going to have Vera who is going to be our writer.\nWe're going to have Kite who is going to be our designer and also Kite is going to be our developer.\nAnd we're also going to have origin who is going to be our publisher publishing things to whatever channel that we want to use.\nAnd here we are basically giving orchestrator a prep or a gist of what we want to build.\nRight?\nAnd we are telling orchestrator that hey you are already one of these five agents that we're going to create.\nYou are going to be the main agent and you are the one I'm talking to right now.\nAnd also important I'm telling him when he is creating these profiles he shouldn't create one for himself because I did test with some AI models that created a profile for themsel as well which doesn't make sense and that is why I also tell it here that\nhey you do not need to create one for yourself.\nSo I'm going to copy this prompt and I'm going to give this to orchestrator to prep him what we're going to be building.\nI'm also telling him, hey, confirm that you understand the plan, the five rows and the profile name mapping before he even goes to change or build anything.\nAnd what I like about Hermes is that whenever you send Hermes something that if he finds useful long-term, he commits this to the memory.\nAnd that is why you always see this message like memory.\nIt means that something has been written to the memory.\nAnd by the way, cadence is the name that I give to the content creating OS that we're going to be working on today.\nAnd then he's just saying hey the five cadence rules are orchestrator which is me and then the other profiles that we're going to be creating.\nAnd he's saying that you are Larry the owner and the final authority.\nNow in the next prompt this is going to be the most important prompt.\nThis is going to be the prompt that is going to create the AI agents that we're going to need.\nI'm going to send the prompt to orchestrator.\nSo I'm telling orchestrator that hey create five persistent hemis profiles.\nNow the reason why I use persistent is that hemis can also create agents that are basically called in to do a task and then after that they basically dead.\nSo what I want to create is that I be created permanently.\nSo that means that whenever we need them, they are going to be there.\nNow here whenever you are creating an agent always with Hermes there is always one default agent.\nThere's always one agent who is going to be at the top and that is typically the default agent.\nAnd below the default agent you can have whatever number of agents that you want to have but there's always going to be one agent at the top.\nAnd that is why in my setup I typically make the default agent who is at the top orchestrator and then he builds the other agents that would work under him.\nSo someone for instance asked if you can have two orchestrators.\nIn principle you can have two orchestrators that but it means that one orchestrator would have to be under the default orchestrator which you can also do.\nThis is basically up to you how you want to configure this.\nNow in creating a profile for an agent you basically need to tell the agent hey what am I as an agent?\nSo for all the agents we are telling orchestrator to add this information into a document that would be called their soul.md.\nSo a soul.md is a document that tells an agent hey my name is Larry.\nThis is what I do.\nThis is the person that I'm working with.\nThis is the system that we are working with and stuff like that.\nAnd that is why in this prompt for all the agents I tell orchestrator what he is supposed to put in their description.\nSo for instance for scout I'm saying hey your name is scout you are a content scout for candid studio.\nYour job is to find fresh scroll stopping Instagram Tik Tok carousel ideas and to research facts behind them.\nSo for all the agents I'm telling them what they are going to be doing.\nAnd for instance Kite Kite is also going to be our designer.\nHe's also going to be our engineer.\nSo he has what I'm describing for Skype for him to understand what he does.\nNow whenever you start a new chat session with an agent, they always load in their soul.md.\nAnd that is why it's very advisable that we describe in detail what the agents are going to do.\nNow he can change the text to whatever you want, whatever fits what you are doing.\nFor instance, in my case, I said Instagram and Tik Tok, but maybe you want to have both, LinkedIn and stuff like that.\nYou can basically add this here as well.\nSo, orchestrator responded.\nHe says done.\nI have created a persistent herm profiles each with their own soul.MD.\nAnd then you can see here we have scout who is Atlas.\nWe have Scribe who is Vera.\nWe have Dev who is Kite.\nWe have Rich who is Orin.\nAnd he also confirmed that the profiles indeed exist.\nNow if you want to also confirm yourself because sometimes the agents do hallucinate.\nIt can be that the agent orchestrator told you especially if you're not using a very good model or can tell you hey I created the agents but basically they were not created.\nSo you can double check this yourself.\nYou can come into your terminal and just type in a command hemis profile list and then press enter and then this is going to list all the profiles that you have on your hemis setup.\nSo you can see that in my case I have default which is orchestrator and then we also have the four agents that we created.\nNow here you can see that the gateways are not running.\nTheir gateways are stopped which is fine because we want the gateway only to be activated when the agents are working.\nSo we verify that indeed orchestrator created all these agents.\nNow this is going to be a prompt that is also very very important.\nNow in this prompt I'm telling orchestrator to define this for each agent.\nNow I want every agent to have their own dedicated memory.\nImagine you have five agents.\nEvery agent has their own particular role.\nIt's going to be a mess if all these agents are sharing one file for their memory.\nSo agents always write long-term stuffs into a file that is called memory.mmd.\nSo if all the five agents are using one file, it's going to be a mess.\nNow that means that orchestrator is going to dump his long-term memory in there very it's going to dump her long-term memory stuff in there and it's going to be a mess.\nAnd additionally, this is going to make the memory file very very heavy.\nAnd remember, the bigger the memory MD file, the more tokens that you use.\nAnd that is why I typically like to go with a dedicated memory for every agent so that every agent writes own stuff into their own lane.\nAnd every agent is also going to have their unique identity, their dedicated folders and role boundaries.\nSo here we are telling every agent to only do stuffs that are within their role.\nSo for instance, if I go to my agent who does my research like Scout and I tell Scout, hey build me a dashboard, and Scout will tell me, hey, no, probably you should talk to Jeff because he's a developer.\nNow this is quite important because for instance imagine that you have an agent who is your finance and this agent maybe has access to your PayPal has access to your stripe and stuff like that and you give your finance agent the particular rules\nthat he's supposed to work with maybe don't withdraw money from my account and stuff like that.\nSo finance agents knows these rules but if another agent comes in and does that particular thing and the agent doesn't even know what the rules that you give to finance is then the agent can basically mess up your setup and that is why I always have this\nsort of role boundaries where every agent understands what their particular role is and then here orchestrator is working on that as well for us and here orchestrator is done as well all the agents have their dedicated memory and\nhe also created dedicated folders for all the agents and he also tested the role boundaries for instance he asked Vera, Vera, can you write a code for me?\nAnd then Vera responded, hey, that is Kite's department.\nAnd he also asked Kite's ver research and kite responded that is Atlas department.\nSo that means that the role boundaries are working.\nNow in the next step, we're going to create a project folder that is going to host our project.\nAnd very important, we're going to create the agents login database system.\nNow, whenever the agents are performing a task, we want them to log whatever they do.\nSo we're going to build sort of an agent login database.\nThe idea here is that before an agent sends you a message that, hey, I'm done with this task.\nThe agent is going to log their name into the list, they're going to log exactly a description of what they did.\nThey also going to log the time stamp that they did this and they're also going to write the AI model that they use for that particular task.\nAnd then we're going to do this using what is called an SQL lightsaber.\nWe're going to build a small database server on our server where the agents are going to log all the activities.\nFor instance, when we come to the dashboard I'm going to be building.\nWhen you come to the agents tab, you can see that we have this heat map where we see when every agent was active.\nAnd here for instance, the agents also post the work that they did, the most recent work that they did.\nSo this gives you full transparency of what the agents are doing.\nSo that if an agent is stuck somewhere, then you know that the agent for instance didn't perform that task.\nAnd by the way, this is the dashboard that we're going to be building.\nAnd for that, I'm going to give this prompt to orchestrator to build this agent login database system for us.\nSo orchestrator is done with the agent login database.\nAnd he also did a smoke test where we can see dev built the cadence store the AI model that he used and the state that he's completed and when he performed this task.\nNow remember we have created a base but the agents do not know.\nSo currently it's only orchestrator that knows that such a database exists.\nSo we're going to have to roll this out to all the agents and then we are telling the orchestrator hey save this operating rule in your own memory and then first distribute it to Atlas Vera and all the other agents.\nAnd this is the instruction that we are giving to them.\nBefore sending any response, log what you did into the kid into the cadence runs table by running this command.\nSo that's going to be the command that you're going to run to basically insert what they did into the database.\nI'm going to copy this and I'm going to send this to install this to make sure that all the agents are aware of the setup that we did.\nAnd after that I'm also going to tell him hey have every agent run a smoke test so that they lock something into the database.\nNow this would help us for us to know that all the agents have access to this database that we created.\nNow when the agents are working sometimes you get a prompt like this where you're going to have to allow them to be able to run some commands.\nIn my case you can either go with allow once allow only for this particular session or you can also allow this always so that they don't ask you this every time and then that is also done.\nSo he also did a smoke test where all the five agents that we have performed the smoke test where they just completed the AI model that they used and the time that he performed and the date and time that he performed this\ntask.\nNow we're going to move in to one of the major parts.\nSo currently you can see that we are sending all our messages in the orchestrator channel because so far we've been working with orchestrator but now we're going to move into the aspect where we're going to start building the dashboard and for that\nwe're not going to be using orchestrator.\nWe're going to have a dedicated agent kite who is our designer and our developer who is going to be creating the dashboard for us because he's going to be our developer.\nWe're also going to have a third channel which we're going to call studio and that is going to be the channel we're going to use to brainstorm ideas on new content to create and stuff like that.\nNow, by default, the issue is that Telegram doesn't allow you to use one bot token to talk to several bots.\nSo, with Telegram, one bot, one token.\nSo, if we want to create another dedicated Telegram channel where we're going to talk to Kite, then we basically can't use orchestrators B token.\nWe have to create a dedicated bot token for kite.\nNow, there are workarounds around this like I did in my earlier video where we basically created a router plugin.\nSo what the router basically does is that whenever you send a message in a channel it first goes through that single B token and the router determines hey this is a message that is coming from orchestrator's channel so let me send\nthis to orchestrator the same thing that also happens for instance if you have an agent that is called a message comes from that scribe telegram channel then it goes to your same bin and then the router determines hey this is coming\nfrom thread 4 because every channel has their dedicated ID so with that ID the router is able to determine where the message is coming from and then it routes it to that particular agent.\nNow, this is quite useful if you have different channels that you want to create.\nBut in our setup, we're going to create only three channels.\nSo, I'm going to show you another workar around because with every tutorial, I try to bring in a new flavor so you guys can learn also new things as well.\nSo, what we're going to do in this setup is that we're going to create another bot token exclusively for kites.\nSo, that means that every message that goes through this particular gateway or this particular telegram bot token would go directly to kite.\nBut then we have another challenge.\nSo by default whenever you create channels in telegram all the messages that we create in these channels are going to go through one bot.\nSo which is now our case every message is going to go through orchestrator but which doesn't make sense right we want orchestrator to only listen in a particular channel and we also want kite to only listen in the channel that we'll create for him.\nSo what we're going to do is we're going to tell orchestrator to build sort of a plug-in where orchestrator would only listen in the channels that are dedicated to him.\nSo orchestrator would never listen in the channel that we would create for Kite.\nAnd the same thing also applies to Kite.\nKite would only listen to his channel that we'll create for him.\nThis would all make sense soon.\nTrust me.\nBecause this is very very complex.\nI typically like to brief the agents whenever we want to create something complex for them to know what is coming.\nSo here I'm sending this message to prep him on what we want to do.\nSo I'm telling Oka, hey, we're going to build something together.\nThe goal is that kite by default is going to build our studios dashboard and I want to talk to this engineer directly in his own group where he would have his own bot and his own identity and then I'm explaining to why we need a second bot\nand you can also read this to understand basically the reason why we need the second bot.\nSo I'm basically telling him hey this is what we're going to build so that can understand what we going to do.\nNow, whilst orchestrator is working on this, we're going to have to create a second bot token for Kite because remember that Kite would need his own dedicated bot token.\nOrchestrator responded that he understands the goal is that Kite has his own Telegram presence where we can speak to him directly.\nBut we first going to have to create this bot for Kite.\nAnd to do so, we're going to come back to our bot fer that we used to create the first B that we have forestrator.\nAnd we're going to create a second bot.\nSo, just type in new bot just like we did for the first time for orchestrator.\nAnd we're going to call this bot km kite content.\nLet me call this content kites.\nRight?\nAnd I'm going to copy the username.\nWe press enter.\nAnd just like we did earlier, I'm going to use the same name that I g.\nBut I'm just going to end with a bot because every username with telegram for a bot has to end with the name bot.\nAnd I'm going to press enter.\nAnd then we get a dedicated token for bot.\nRemember this was the token that we had for orchestrator.\nAnd we have now create a dedicated token for kite.\nSo we're going to have to add this bottle for kites also to our hemis setup.\nAnd to do that I created this command for you here.\nCome here.\nCopy this command here.\nCome back into your terminal instance.\nLet me clear the screen.\nVery important.\nMake sure that you're not on root.\nYou are on Larry or the new user that you created and just paste in this command.\nNow this command is going to ask you to put in the bot token.\nSo I'm just going to run the command here and then it's going to tell you hey paste your kite token and press enter.\nSo I'm going to come back to Telegram.\nI'm going to click here.\nMake sure that you are copying the one for kite.\nI'm going to click to copy this.\nI'm going to minimize this.\nI'm going to come back to the and I'm going to right click to paste this in.\nAnd then the key is pasted here.\nAnd after that, I'm just going to press enter.\nAnd this is going to save the keys into our dashboard.\nSo, let's go back into our setup.\nAnd then let's go into our group.\nAnd then I'm going to tell the I have created this B token for Kite and I have also added the B token myself in this space here.\nSo, I'm telling him to verify that the token that I have added exist and also to do a few sanity checks to make sure that it would work for Kite.\nI'm going to copy this and I'm going to send this to orchestrator.\nAnd also what is quite useful and what I always recommend to you guys is that whenever you're giving your agent a complex tax that you're not sure if the agents would be able to pull this off, you can always give the agents reference\nto the hemis.\nSo for instance, if I'm telling you, hey, if you are unsure, please look into the hemis in this part here so that the agents would basically understand how he's supposed to build this.\nThen I get this command approval from orchestrator.\nI'm going to click on always.\nAnd then orchestrator said, hey, step one is completed.\nHe's verified that the token that we added exists and he's also saying that hey the bot is live.\nWe can basically send stats to him to directly message Kite.\nNow what we're going to do now is that we're going to create the channels that we need.\nSo we're going to create one channel for Kite.\nWe're going to create one channel as well for studio which we're going to use for the brainstorming before we even bring Kite into that chat.\nSo to do that we're going to click on the three dots here.\nYou wouldn't see the option to create a group.\nSo we're going to come back to all and then you're going to click on the three dots here.\nThen you're going to create a topic.\nNow you're going to have to give the topic a name.\nIn our case, I'm going to call this kite, right?\nAnd because kite is going to be a developer, let me just give him a laptop icon.\nAnd after that, just click on create.\nNow, whenever you are creating a new topic, before topic can be activated, you're going to have to send a message in that topic.\nFor this topic that we are creating, we're going to need the thread ID for this topic because it is with this ID that orchestrator would bind this topic exclusively to kite.\nSo to kick off this group, I'm just going to copy this prompt here and I'm going to send this immediately to orchestrate that hey, what is this topic's thread ID?\nYou can send it any message.\nWe could have sent in hi just to create the channel and then we could follow up with a message like what is the topic thread of this ID.\nI'm also going to show you that other approach as well.\nNow kite is created.\nWe have the telegram topic ID.\nWe have the thread ID.\nCome back to all and then here click on create topic.\nAnd then we're going to create the next topic which is going to be the studio.\nNow remember the studio is where we're going to be brainstorming ideas on new content, promos, ideas and stuff like that.\nSo I'm going to call this idea with this icon here and I'm going to click on create and to trigger and create this as well.\nI'm just going to use a welcome message like hey what is the topic ID of this group and then here as well we're going to get a response.\nNow remember we have created kites but still it's orchestrator that we are talking to because kite hasn't even been added to this group yet.\nRight?\nSo all the messages that you are seeing here the thread the response to the thread ID for kite the response ID for studio all of this is still coming from orchestrator.\nSo now we have the thread ID.\nSo we're going to send a message to orchestrator that hey now we have the thread ids.\nSo we want you to wire our telegram group.\nI'm going to give orchestrator telegram group ID of our current group.\nAnd I'm also going to give him the thread ids of all the channels.\nSo he would have the thread ID of where I'm talking to him.\nHe would have the thread ID for kite.\nHe would also have the thread ID for the studio group.\nAnd then only with this he would be able to bind the channels to the particular agent.\nSo for orchestrator would have access to this channel that we are talking to him and orchestrator would also have access to the studio channel because that is what we going to he's the boss and basically we will be brainstorming the ideas with him on the\nstudio channel but kite would only listen in this channel and kite would have no access to the orchestra channel and also to the kite channel.\nI'm going to open notepad and I'm going to paste in this prompt because we're going to change a few things in there.\nThe first thing that we're going to need is the telegram group ID.\nNow to get your telegram group ID.\nWe're going to use the same bot that we used to fetch our telegram ID called user infobot.\nSo when this opens, click on forum down here and select the group that you just created.\nIn my case, this is KM content.\nAnd then when you click on this, just press send.\nAnd then the bot will send you the ID of the Telegram group.\nYou can click on here to copy this.\nAnd I'm just going to replace this with this section here called Telegram ID.\nIn the next stage, we're going to fill in the thread ID for the three channels.\nAnd for that, I'm going to come back into our Telegram group.\nBut in most of the cases, the first channel that you create always has a thread ID one.\nSo most likely orchestrator would reply that is one.\nBut just to be sure, let me just ask him this as well.\nOkay, she responded that his thread ID is one because that is that was created.\nSo I'm going to put in one here.\nI'm going to go to kite.\nKite was 36.\nI'm going to put in 30 and I'm going to come to studio and studio is 40.\nAnd then basically we're done.\nOnly these are the four parameters that you're going to have to fill in in this prompt.\nAnd after that, copy the message.\nVery important.\nDon't do this in studio or kite. do this in orchestrator's channel and then paste this message and send this message to orchestrator to basically implement the topic lane agents binding and he orchestrator responds hey I've saved the\nfour lane members to memory and completed the save part but there is an issue that he's having he's not able to run this command to restart the gateway so he's telling us if we can run this for him so I'm just going to copy the\ncommand here I'm going to come back to my terminal let me just clear the screen to make it a bit cleaner and I'm going to paste in this command here very very important again make sure that if you created a new user you are on the new\nuser not your root account and and press enter.\nAnd then it happened as well when I was testing this that you get this response failed to connect to bus.\nSo just copy everything here and then come to telegram and then tell okay I got this error and just paste it.\nOops, I think I didn't copy it.\nWell, let me come back into PowerShell control shift C to copy this.\nI'm going to come back to Telegram and I'm going to paste this.\nAnd then he would basically correct this and give me another command that I can use to fix this issue.\nAnd I should have found this.\nHe says the error means your shell didn't use a bus environment.\nSo he's basically giving me another command to run.\nSo I'm going to copy this and I'm going to clear the screen again.\nI'm going to paste in this new command.\nI'm going to press enter.\nAnd then you see that immediately I get a notification that my gateway is restarting.\nSo that means that the command is so it took a few seconds for everything to complete.\nSo just be a bit more patient when you see this.\nSo I'm going to copy this here.\nControl shift C and I'm going to send this orchestrator it worked out.\nThis is the message I got.\nSo you see that when I sent it to immediately orchestrator, he didn't respond because the gateway I think was still booting all the agents.\nSo sometimes when you restart a gateway immediately it takes a while for all the gateways for the agents to get restarted.\nSo when you send this immediately and you do not see a response just be a bit more patient.\nAnd here just as a tip when you come back into your terminal and you type in hemis profile list and enter you would see that now we have two gateways running.\nInitially we only had the default gateway that was running and the gateway for dev was stopped.\nBut now you can see that we have another gateway that we have built for kite which is running.\nSo what we're going to do now is we're going to have to add kite into this group that we have created.\nAnd to do that we're going to come to botfather click on the URL that he gave to us to be able to fetch the ID for kite.\nClick on the name and then we're going to click to copy the of kite and then we're going to come back into our group.\nI'm going to go to all.\nI'm going to click on the three dots here and go to view group info.\nAnd then here I'm going to click on manage and I'm going to come to members down here and I'm going to click on add members and I'm going to put in the username of kitespot.\nAnd I'm going to select this and I'm going to click on add.\nAnd then now Kite is added to this group.\nWe also have to make Kite an administrator for him to be able to work here.\nStill on the all tab, I'm going to click on the three dots.\nI'm going to come to manage group.\nThen I'm going to come to administrator and I'm going to click on add administrator.\nI'm going to add Kite there.\nReview the permissions.\nIf you're fine with that, just click on save.\nAnd then we can close this.\nSo now we have added Kite to the group.\nSo what we're going to do now, we're going to come into Kite's channel and we're going to send a message like who are you?\nAnd this is the part that always gets me nervous because that is the point that you see if the agent to channel binding works.\nIf everything works, we are supposed to see a message from Kite that I am Kite.\nSo let's see if this is going to work.\nPerfect.\nI'm a bit relieved.\nSo here Kite responded.\nI'm Kite Laris Cadence designer and engineer.\nNow just to make sure that the other parts are working, I'm also going to send this to orchestrator.\nAnd if this should respond that he is orchestrator.\nSo if Kite is responding in the shadow, then we are screwed up.\nLet me do the same thing for studio just to be on the safe side that we have the right agents behind these channels.\nGreat.\nSo in orchestrator's channel he still responded I'm orchestrator which means that this is working very well.\nKite if you remember also responded he is kite.\nAnd then now when I go to studio orchestrator also responded orchestrator is there.\nSo that means that the telegram channel to agent binding work.\nKite is never going to listen in orchestrator's channel and orchestrator would also not listen to ka's channel and that's exactly what we want.\nSo now that we have all the core aspects of the framework that we need ready, her message agent is ready, orchestrator is fully set up and kite our developer is also set up, group is ready, we can now start with the build\nof the dashboard.\nNow with the entire build of the dashboard, we're going to be using Kite who is basically playing the role of a designer and also our developer.\nAnd before we even let Kite start building the dashboard, we're going to have to brief Kite on the whole thing that we want to build from the beginning to the end and a concept that we have for what we're building.\nAnd for that I'm going to give Kite this prompt here as a briefing to know what we want to do.\nSo I just sent this to Kite and in the process I'll be explaining to you guys what I just sent to Kite.\nI'm telling Kite, hey before we even write any single line of code, here is the whole picture of what we building.\nSo I'm telling Kite we're building a premium content automation studio with a beautiful web dashboard.\nI'm telling Kite how the whole process is going to work.\nSo we're going to have Atlas who is going to be our researcher. basically go and propose some ideas and then we will promote one as a user and then Vera would write the content of the slides and after this is done Kite who is also\nour developer and our designer would fit this content into one of the templates that we would pick and then we would render that template from an HTML document into an image with about 10 1080 to 1350p and then Orin who is going\nto be our publisher would publish this to any network that we want to build this on and I'm also telling Sky that we're going to set this on a small Python server which is going to be on dashboard and also very important I'm\ntelling Kai that we're going to give him or a template that we're going to be working with and I want this template to be the design source of truth because I don't want him to change anything that we're going to be putting in the\ntemplate and also a few things that I'm giving him that I want to have a backup protocol and also some principles of how the whole build is going to be.\nSo Kite responded that hey understood here is the plan in my own words.\nCandice is a complete content automation studio with a polished web dashboard as a control interface and he's basically just repeating all the things that we told Kite in the sequence how the whole flow is going to work.\nSo Kite is basically ready to fill in to build the dashboard with us.\nSo in the next stage we're going to tell Kite to build the Python back end on which this web dashboard is going to be running on.\nI'm going to give this prompt here to get that ready.\nI'm telling Kai that hey we're going to build this dashboard in a way that is going to be very secured.\nSo for the first part we're going to be setting this thing on what is called SSA tunneling.\nSo that means that whenever you want to connect to the dashboard you're going to use a command like SS minus N minus L this port here and at the end you're going to put in your username and your IP address.\nBut I'm going to show you how this would work.\nNow the reason why we are using this in the first place is that the web dashboard is not going to be available to the public internet.\nIt's only someone who knows the password of your VPS server that would be able to connect to the dashboard.\nAnd that is why it makes it so secured.\nBut even after we are done with the build, we're going to be installing tails skill that will save the dashboard for us.\nNow tail skill is one of the most solid security setups that we can use to get our dashboard online.\nSo for the first time, we're going to use SSH tunneling to access the dashboard.\nBut when we are done, we're going to be installing tail skill which is going to host the whole thing for us.\nAnd the best thing about tail skill is that we would then be able to access the dashboard on any PC that is running our tail skill account or even on your mobile phone.\nAll right.\nSo kite is done.\nHe set up the back end that we used to run the dashboard and he also gave us the SSH tunnel command that we're going to use to access the dashboard.\nSo what we're going to have to do is to just copy this command that Kite has provided for us here.\nWe're going to go back into PowerShell and then in PowerShell just put in this command ssh minus L.\nThis is the port that we use to save the dashboard.\nThis is the security end and also this is the your username which in my case I created a new username if you remember called Larry and this is the IP address of the VPS server.\nNow here I'm going to put in my password and then just press enter.\nNow it's going to bring you to this point here.\nIt's going to be a ca just blinking.\nThat means that you are connected to the back end of the VPS server.\nSo what we're going to do now is we're going to open a browser and then just as Kite gave to us, he says that we should open this URL on our browser.\nWe're going to copy this URL here.\nWe're going to paste this in here and press enter.\nAnd then you see that we are connected to the dashboard.\nBut because we do not have anything there yet, that is why we get this error response.\nBut in principle, we are connected to the back end of the Python server.\nNow what we're going to do is in the next thing we're going to have to put something on the dashboard for us to see basically what we're building.\nAnd for that we're going to tell Kite to create a web upload page.\nNow in this web upload page we're going to upload all the files that is going to save the template of what we want to build.\nI'm going to copy this prompt to Kite and I'm going to send this to Kite to build the upload point where we can upload all the dashboard stuffs that we need.\nAnd this would contain the HTML template to the dashboard and all the the slides that we're going to be using when we building these carousel slides.\nWhilst Kite is building that, let me show you how the template looks.\nSo this is the empty template that we're going to give to Kite to upload on the dashboard for us.\nSo we see that we have the content tab which is a bit populated.\nThe idea tab looks empty.\nThe studio tab also looks empty.\nEverything looks empty.\nBut once he's done, he's going to basically add this to the back end and then we're going to populate this dashboard template as we build.\nAll right.\nSo Kite is done.\nHe's built the back end which we're going to use to upload all the files that he would need to build the dashboard.\nAnd he gave us this URL here for that.\nSo I'm going to copy the URL.\nI'm going to open the browser and I'm going to paste in this URL.\nHopefully, we have a web upload upload dashboard.\nOkay, so this is working quite well.\nSo, he built the cadence upload back end and he's telling us that he expects four files.\nSo, the template, so the HTML templates and three JSON files which are going to be the templates of the carousel slides and for the reuse.\nSo, I uploaded all the four files that are required and also this is confirmed on the dashboard that these four files are saved.\nSo the next point what I'm going to tell Kite is that hey I have uploaded all the four files that are required to build the templates to build the dashboard.\nSo I want him to serve these files on the Python temp so that we can actually see that this is working.\nSo what we're basically telling Kite in this prompt is that the file that we upload the template is called cadence dashboard template.html but I want him to rename this to index.html into the dedicated folder that we have created\nfor the dashboard that we're going to be building.\nAnd also very very important at least in my case if you want to change the templates then you don't need to give Kite this instruction but what I'm telling Kite is that hey this is going to be the design source of truth.\nSo whenever he's building anything he should always check for the template to make sure that he hasn't made any design changes to the temp so that whatever he's going to be building is going to be identical to what we have in the\ntemplates. on telling him that hey the template contains basically mock values like hardcoded stuff so that nothing basically looks empty but those numbers that we have on the templates are going to be replaced with real metrics once we\nstart building the dashboard and this one of the nice things not that I like about Hermes so what you can see here for instance is that he's done with basically the work that we give to him and you can see that he's using an\ninbuilt browser to check to see if everything that is there is correct so he's clicking and taking browser snapshots he's clicking different sections and taking snapshots of that aspect just to be sure that whatever he did is identical to what is in the\ntemplate.\nAnd this is one of the main reasons why I really like working with Hemis because I build dashboards a lot.\nAnd if the agents or Hemis allows the agent to be able to work with a headless browser to be able to see what it's building, this is really cool.\nAll right.\nSo Kite says he's done.\nHe says the template is logged in but is partially complete because there's one file that is missing.\nSo when I look here, he says that he didn't find the templates packed because it's false zero.\nLet me see why this is the case.\nSo it could be that our upload didn't work.\nSo he's saying that we should re-upload this file through the upload point.\nSo I'm going to put in this here again and I'm going to re-upload the templates pack.\nSo I'm going to tell Kite I have re-upload templates pack.json.\nCan you confirm?\nPerfect.\nSo it appears that something happened the first time that I uploaded this.\nSo he says that yes, he can see it now.\nHe checked the file and all the uploaded source files are now present in the folder that we require them to be which is perfect.\nSo now let's go to the dashboard and see if the dashboard is actually rendering on the Python ser.\nSo to do that we're going to use local host to do that we're going to use local host col8892.\nThe 8892 is the part of the server and the local host is basically the local area on our server that we're going to use to access the dashboard.\nAnd then when I open this hopefully beautiful.\nSo you can see that now we have the dashboard loaded just as we had in the template.\nSo let me open the template for us to do a one is to one copy.\nThis what we had in the template and this is what is being saved on our dashboard.\nSo all the pages are identical to what we had in the template.\nSo kite is doing a pretty good job.\nNow, in the next stage, we're going to, this is one of the things that I always recommend when you're building stuffs with the agents.\nLet the agents always create a copy of the dashboard before they make any changes.\nI always say this in every video that I worked on the dashboard for several days and my agent just made a mistake and basically I lost everything.\nAnd that is why it's very important that you tell your agent that, hey, before you make any changes to the dashboard, please create a copy of the dashboard and save it somewhere.\nAnd also on the dashboard, we have this section here that is the version number.\nAnd I want him to update a version number anytime he makes a change to the dashboard.\nSo I'm going to copy this prompt and I'm going to send it to Kite to implement this and Kite is done with that as well.\nSo when we come to the dashboard and we reload the template.\nSo we should now see that he has changed.\nSo we used to have editorial.\nLet me open the template for you to see what this looked like before.\nSo in the template in this bottom section here we used to have version 0.1 editorial and you can see that now this is updated in our version to version 0.1 which means that kite is going to keep the version update always\nupdated as we move on.\nSo currently we're going to start with the build.\nSo all the parameters that you see here in the content tab are basically hardcoded from the template that I built and also the all the stuffs that we have in the agents tab, the heat map, everything is hardcoded.\nSo we're going to tell Kite, we're going to give Kite a prompt to basically update the dashboard metrics that we have here and also the agents tab so that we have real data, real data from our hemis setup that we have but\nnot from the hardcoded stuff that we have in the template.\nAnd I'm telling him that hey when you are done confirm that both tabs show the real data and the heat map matches the run table.\nNow for the heat map all the information is going to be pulled from the agents login database that we built.\nIf you remember we built something where every agent is going to log the activity whenever they do something whenever they perform any action.\nAll right.\nSo Kite is done with that as well.\nLet's look at what Kite built.\nLet's reload the dashboard.\nSo here you can see that he's now pulling the real metrics from our data agent database that we built.\nSo you can see that now kite is trying to pull the real metrics from the agents login database.\nSo you can see that currently in the agent workload because none of the agents have done something today that is why everything stays at zero for atlas vera and origin and kite is the only one that'll be working with today.\nSo kite is basically at 100%.\nAnd the same thing when you come to the agent database you can see that everything is almost zero for all the agents because they haven't done anything today.\nSo I'm recording today on the second day.\nSo basically I would expect that there would be some metrics from the previous day.\nSo I'm going to tell Kai that hey it appears that the metrics that are being pulled are only being pulled from today but there should be some activity from the agents the previous day.\nSo he should make sure that the dashboard doesn't only reflect today but basically reflects all the data that we have in the agent login database.\nSo I'm telling Kite hey this looks awesome.\nThanks.\nHowever it appears that the agent metrics being displayed are only from today.\nI do not see any data for instance from yesterday. even though the database should contain this.\nSo he should basically investigate and see what is wrong and make sure that we are serving all the data that is currently in our agent login database.\nAll right.\nSo Kai says he's done.\nIt appears there was an issue.\nSo he says that the real problem was there was this issue with the test server Python server that was basically deleting stuff from the production database.\nSo he basically fixed this as well.\nSo he says that the fixes are made.\nThe test no longer touch the production database and he's basically put in some metrics some implementations to make sure that this does not happen.\nBut what I would like Kai to do here before we even proceed further, I want to be sure that this problem is fixed.\nI'm going to tell Kai that hey perform a quick end to end smoke test to all the agent trigger a few test activities and verify that the resulting data are saved in the database and also correctly reflected on the dashboard.\nIf there is anything that is not there, he should fix it as well because the agent login database is going to be an integral part of what we are going to be building.\nAnd that is why I want to be thousand% sure that the agents are logging and also that all the things that they do also reflect here on the dashboard.\nAnd by the way, all these deep prompts that I'm adding, I'm going to make these available to you.\nSo that should you have the same situation, you can just copy paste the prompt and give it to the agents or Kite to fix this for you.\nAll right.\nSo Kite says he's done with the smoke test.\nHe repeated this across all the agents.\nAnd currently you can see that all the agents completed.\nWhen we come back to the dashboard, you can see that now we don't have the 00 that we had.\nWe basically have metrics from all the agents that is being pulled correctly from the agent login database.\nAnd the same thing also applies to the heat map.\nAnd when we come to the dashboard, we also see that the agents total runs are also correct.\nThere is one more thing that is not correct here which has to do with the agent workload distribution.\nThis would always have to sum up to 100 so that we can always see which agent has the most workload.\nI'm also going to tell Kite to fix this and after that we can continue with the build.\nAnd for that I'm telling Kite, hey on the dashboard homepage, the agent workload share distribution does not make sense.\nSo basically I'm telling him that everything should add up to 100% but currently everything adds up to 350.\nThe idea is that whenever I look at this I'm supposed to see which agent has been more active.\nSo he should basically correct this for us as well.\nAnd Kite has done with that as well.\nSo basically now when I look on the dashboard you can see that the distribution now makes sense.\nIt all adds up to 100% and I can see clearly that Kite is the most active agent because he is the one building the dashboard anyway.\nSo now the agent login database is working correctly. all the metrics that have been put on the agent tab are also making sense so we can start with the build of the other components of the dashboard.\nI'm going to explain the concept of what all the prompts are going to do and I'm going to put in all these prompts in one go so that you don't have to sit and watch me put in one after the other.\nNow in the next prompt we're going to build an exporter and let me explain why we need this.\nSo initially, previously whenever you wanted to build a carousel image like a slide or something like that, you always had to design everything in a photo editor, right?\nAnd then save it, export it as a picture and then you had your carousel image.\nBut the trick what we're going to be using here is we're going to render every slide.\nWe're going to build every slide as an HTML.\nNow, if you build a slide as an image, you pay for every image that you generate.\nSo if you want to change any text in the image, then it means that you always have to pay for API calls, which makes it not fun anymore to work on slides.\nSo, we're going to build this in a smarter way.\nWhat we're going to do is we're going to build every carousel as an HTML file.\nNow, because it's going to be an HTML file, it will be very easy for us to edit any text that we want to edit.\nAnd let me just go into my setup just to explain for you guys to get a concept of how we're going to build a slice.\nSo, let me take this one here for instance.\nEverything that you are seeing here looks like an image, but it's basically not an image.\nIt's an HTML document that is rendering the file like this.\nSo whenever I want to export this as an image then I'm going to deploy what is called a headless browser.\nSo a headless browser doesn't need a desktop to run.\nIt's basically going to render this file here which is basically an HTML file and then take a snapshot of what it sees.\nSo eventually all the things here that we are seeing which is rendered as a code would be then exported as a JPEG and then with that you can upload this to Instagram, Tik Tok or whatever wherever you want to build this on.\nNow the reason why we do it in this smart way is that originally whenever you want to build any carousel slide you have to use an image generator.\nMaybe you can use nano banana or all the AI models that are out there to generate images.\nBut when you even want to change one text then you have to tell the AI model again hey I want to change the text.\nMaybe for instance I want to change this from most people to most users and I have to tell my a model again hey I want to change the text from most people to most users.\nAnd then you pay for every edit that you do which is probably not the smartest way.\nSo how I build this and what most users are using is that you build the whole slide as an HTML file.\nAnd by so doing when you can change everything that you want to do in the file without having to regenerate the prompts or regenerate some API keys.\nSo here for instance this is what our dashboard is also going to do.\nWhen I click on fine-tune and I pick this element I can just change the text here from people to most builders, right?\nAnd you see that it does I can save and rerender and then I have my new slide without me having to do any API call.\nthe same thing.\nI can change all the contents.\nThis is why I really like what we're building here.\nI can change the layout.\nI can move every content here, change the size, put it in every format that I want to do it without me having to pay for any API calls.\nSo, what we build, we're building every carousel slide as an HTML file and then when we are ready, we deploy a headless browser that looks at that HTML file we have created and creates a snapshot of as a picture that we can then upload to more\nany social media platform.\nSo we avoiding the aspect of complicating the whole carousel image design where you have to make an API call for every edit and pay for every edit.\nWe are rendering everything as an HTML file that will be completely edited.\nQuite crazy the things that you can do with standard HTML.\nLike you see here all these templates that you are seeing here, none of it is a picture.\nEverything is built with standls that someone might not even believe you that this built with HTML.\nSo basically with this prompt here, what the prompt is doing is that we're going to build this setup of this headless browser that would render whatever that we build from an HTML file into an image that can be uploaded on any social media platform\nthat we have.\nSo we are not building images straight ahead.\nWe build an HTML file which contains the structure that we want.\nThen once we are satisfied with it, we export it into an image.\nAnd for this we are using a headless browser that is called Chromium.\nAnd by default, most of the Hemis setups come with Chromium.\nSo we might not even need to install this on our own.\nWe can just leverage what Hemis already has and then use it to build what we want to build.\nIf you remember when we were building the dashboard, there was a aspect that I told you that the agents were basically.\nSo here for instance, you can see that Kite was rendering a browser where he was going to the dashboard and making sure that everything was working.\nThat is the same concept I'm going to use.\nWe're going to let the designer in this case as well is going to be Kite use the same headless browser.\nBut right now he's not going to use it to check the dashboard, but he's going to use it lots of what the HTML file contains.\nIt makes it so easy to be able to build slides without having to pay for API calls every time.\nAnd Kite is done with that as well.\nHe did a smoke test and he verified that the images were indeed being rendered from the browser into for instance here a PNG file.\nNow in the next stage we're going to build all the things that are going to run from the back end.\nSo I'm going to explain all these backend prompts and then I'm going to give these to kites but I'm going to explain all these prompts to the point where we get to a prompt that would trigger a front-end design.\nSo when you are using the prompt everything that I say backend back end I try to add this so that you can see what to expect.\nIf it's a backend prompt then it wouldn't show anything on the dashboard.\nIt's basically building the foundation on which we would build to show something on the dashboard.\nWhen we get to the aspect here where I write design then it means that what you going to do is going to show a design.\nBut if I get to an aspect where I realize that it's quite useful to explain I'm going to explain this to you guys as well so that you can also understand what these prompts look like.\nAnd in every case I always include sort of a description to basically explain what the prompt is going to do and what you should expect.\nSo now we are done with the exporter prompt.\nThe next prompt is going to be the template packs auto fit.\nNow whenever we are generating an idea, let me use my setup to give you a concept of what I'm doing.\nSo when I click on generate ideas, let's see.\nI already have some ideas that are already generated here.\nSo let's look at for instance building a one person AI operation team.\nNow when I like this idea and I click on promote basically I can decide on the number of slides that I want to generate.\nSo let's say for instance I want to generate six slides and I say write slides.\nWhat is going to happen is that Vera who is going to be our right is going to write the slides for the carousel or the content or the text for the carousel that we want to generate.\nNow like I said all these things that Vera is going to give to us is just going to be raw text but we have to be able to insert these text into the template.\nThis prompt that we're going to build here is going to build that part where it's going to take the content that has been generated by Vera and insert it into the HTML template that we have.\nSo all the templates that you see here like I said these are basically HTML templates.\nSo for instance when I look at this example here you can see that some of it have longer word characters than some.\nSo this one for instance has longer characters.\nThis has a different layout and stuff like that.\nSo then what is going to happen is that the back end that we're going to build is going to look at a template that you select and then adapt the text that Vera generated here to fit that template.\nAnd this is what I call the auto fit feature.\nAnd for this to work, we have to build a render engine that is going to look at the content that Vera generated look at a destination template.\nSo here for instance, if I say that, hey, I like this content.\nWhen I come to approve and pick templates, then it ask me which of the templates I want to use.\nSo whenever I select the template that I want to use, then the back end that we're going to build here is going to look at the template that we selected, look at the number of words and characters that are in there and then adapt the text that\nVera generated to fit that template.\nNow imagine that if the words that Vera generated are way longer than what the template can fit, then the carousel just becomes ugly and that is why we build this render take care of that for us and after that we're going to build a\npipeline to talk to the crew.\nSo currently whenever I'm talking to the crew right I'm chatting with Kite able to chat with Vera I'm not able to chat to our publisher but we want to be able to chat with them from the dashboard and by chat what I mean is that when I come\nto the idea tab and I click on generate idea this sends a message to Atlas who is our research look for ideas of what we can build.\nI'm talking to Atlas through a code where I send a trigger to Atlas that hey generate some ideas and the same thing applies for all the other agents.\nWhenever we want to publish something we're not going to come to Telegram and tell them to publish.\nWe want to push a button the dashboard that is going to trigger the agent to publish the content.\nAnd these are the things that prompt 17 is going to do.\nIt's going to build an interface where whenever we click a button on the dashboard, it sends and triggers an agent to do that particular task for us.\nAnd then we're going to have prompt 18.\nPrompt 18 is going to be exclusively for Atlas who is our ideas guy and our researcher.\nAnd I'm basically just telling Atlas how I want the carousels to be designed.\nSo here, these are just examples of what I put in.\nI'm telling Atlas that hey whenever you're writing the carousel slides I want to have this written in plain simple language short words short sentences no hype no buzz words and stuff like that.\nSo this prompt is basically giving Atlas an orientation of how we want the content and also Vera who is our content writer how we want the content of the slides to look like.\nAnd here we're also giving them an orientation on how he's generating an idea.\nHe should generate four ideas and basically an orientation on how we want the whole carousel slides to look like.\nAnd then we're going to have this last prompt here which is going to be basically for our publisher whenever we want to publish.\nSo for instance when we come to the dashboard and I come to my studio tab for instance if I want to publish something here I'm just going to click on post and then this can be published directly to Instagram to Tik Tok or wherever you\nwant to apply this to.\nBut for that as well we need to build a backend and that is what this prompt is going to do.\nThis prompt is going to build a backend so that whenever we trigger an upload then the upload can be pushed directly to whatever social media platform that we want to push this in.\nSo I'm going to render all these prompts.\nThe first prompt being the one that is going to take the text that has been generated and adapt it to the template.\nThe next prompt which is going to be taking care of that we can use all the buttons on our dashboard to trigger an action to the agent.\nThe prompt 18 which is going to take care of how we want our ideas to be generated.\nThe number of ideas that we want to be generated, how we want the cast, how we want the carousel slides, the content to look like.\nAnd we would also have the last prompt that is going to take care of publishing to the server or the social media platform that we want to publish this to.\nSo I'm going to run all these prompts.\nIf I get any backs, I'm going to pause and I'm going to explain this to you so that you guys can also follow what we would do there.\nRight.\nSo Kite is done with processing all those prompts as well.\nLike I said, I didn't have to respond to anything.\nI just copy pasted all the prompts to Kite and he processed all the back end.\nNow in the next stage, we're going to grab some API keys and I'm going to explain every API key and why we need that.\nThe first API key that we're going to search is for publicity.\nSo perplexity is one of the AI models that you can use that is very very strong in research.\nSo I added this feature so that when you are writing a carousel and you want the agents to really use recent data then for instance you can use perplexity as a research model where Atlas is going to query perplexity to do the research\nbefore the contents of the slides have been written.\nJust to give you an example of where we would need this.\nFor instance, when I come to my dashboard and I click on generate ideas, you see that I have a couple of ideas that have been generated for me.\nSo for instance, let's go for the builder AI automation map.\nNow when I want to promote this article or when I want to promote this idea into slides, I do have this option where I take research with publicity.\nIf you take research with publicity, then the agent will query publicity as a research tool to gather this information on this new idea.\nIf you do not take this article, then the agent will just do a standard web search to get ideas for this content or probably what the agent is also already trained on.\nBut if you want really research based content, then you can toggle this research perplexity and then the agents will basically do a researchbased content for the article or for the idea that you want to create.\nSo that's going to be the first key that we're going to get.\nNow to get this, you can come to Now to get this, you can come to console.plexity.ai.\nI'm also going to provide a link to this in the description section.\nThen when you're here, just create an account or login if you already have one.\nAnd then when you are logged in into the console, you do not have to do much here.\nYou can just come to the left section here and click on API keys.\nAnd then under API keys, just come to the top right section here, click on generate API key.\nAnd you can put in web key you want to go with.\nFor this tutorial, I'm going to call this comp mechanic tutorial test and then just click on create a key.\nAnd after that, you see that an API key would be generated for you.\nSo just copy this API key, save it in the safe space, and we're going to use this API key.\nThe next stage we're going to get an API key from imageB.\nBut let me explain to you why we need this.\nSo what we want to do with our setup is that we have our cadence and we want to push images from here to Instagram for an example.\nRight?\nThe issue is that if we want to push our slides directly from cadence to we need to get Instagram API key.\nIf you want to do this for Tik Tok, you need to build your own Tik Tok flow.\nIf you want to do this for Facebook, you have to create your own keys, your own flow and stuff like that.\nAnd this is very very complex, right?\nWe're going to spend more time building those connections than basically focusing on the dashboard that we want to create.\nSo what we're going to do is that there are some platforms like buffer or metrical.\nAnd what these platforms do is they have access to all the social media platforms and they have worked on all those backends for you.\nSo all we would have to do is to push our slides through a platform like metricle or buffer and they would push the slides to the social media platforms that we want to go to.\nThere is one c however that at least from my testing buffer doesn't allow us to push our images directly to that platform.\nSo what we're going to need is an intermediate storage where the images that we generate will be pushed to and then from there the images would go to buffer and for that we're going to need a platform called image BB.\nNow this BB is free.\nSo what is going to happen is that whenever you push an image or whenever you push a story or a carousel from our cadence this would be first be pushed to BB and then from image they would go to Instagram.\nNow, it looks complicated from the setup that I'm explaining to you, but we're going to wire this in.\nAnd when you click on post, like for instance, when I come to my dashboard here and I click on post and I choose, for instance, I want to post to Instagram.\nThis is going to happen.\nAll this transfer is going to happen automatically.\nSo, you do not have to go here, push from here to here, push from here to here.\nWe're going to wire in all those connections.\nAnd to do that, we're going to come to image.b.\nIt's completely free.\nSo, you can just create an free account.\nAnd then once you create the account, come to the left section here and click on API.\nAnd this brings you to the API page.\nWhen you are here, just click on add API key.\nCreate an API key, store the API key, and then we can proceed to the next API key that we will need.\nNow, the next API key that we will need is the platform that is going to push our slides to the social media platform that we want to go to.\nNow, here there are several platforms that are out there.\nAs an example, we have Buffer who can do this for us.\nAnd we also have Metro who can also do this for us.\nBoth of them work.\nI know that a lot of people use metrical because they have a very very powerful dashboard that they use.\nBut from my testing, I realized that for you to be able to push our slides from Cadence OS to Instagram or Tik Tok, if you want to use metrical, then we have to go for a higher payment plan.\nIt's only the advanced option where you're going to pay 43 in my case a month that would come with the metrical API.\nSo this was quite expensive for me because in my case if you really need metric code to work with kers then you would have to go with advance where you pay dollars a month a month to be able to get access to their API.\nRemember an AP is an interface that would allow us to be able to communicate with the platform.\nAnd in my case I had just two social media accounts that I was using to test.\nSo I didn't want to pay €43 a month just for two social media platforms.\nBut advantage with metricle is that you can go for instance with their starter plan where you would pay $16 a month and then you can add so many social media platforms without having to increase your pricing.\nSo for instance if you have four social media platforms Tik Tok, Facebook, LinkedIn etc. you would still be paying $16 a month which I find pretty cool and I'm going to show you when I would go with metric.\nWe have another platform that is called buffer and that is what I used in what we are building with hidden.\nAdvantage with buffer is that they would allow us to be able to use their API assets even with a standard plan.\nAnd I think in my case I went with the five plan which is essential right?\nSo even with this you have access to three API keys and you would be able to use this but with metrical you can only get access to the API key if you have the dollar plan.\nBut the caveat with Buffer is that every social media platform that you add you pay an extra $5.\nSo if you have Tik Tok, Facebook, Instagram it becomes $15.\nIf you add LinkedIn it becomes $20 and so it can get a bit expensive.\nSo in that case, if you don't really care about pushing directly from cadence to the social media platform, I also did add an option on the dashboard where you can basically download all the slides.\nLet me do an example here for you.\nWhen I click on slides, you can see that the slides are downloaded here.\nWhen I click on this, you see that I have all the slides downloaded here.\nLet me go to thumbnails and you can see that I have all the images.\nAnd what I also added for you is that you can click on caption where you're going to see the caption that is going to be required for you to post. and then you can post this yourself and in that case then probably metrical would be a best option because\nthey do have for instance for the $16 plan you would be able to add more social media you can see here up to 10 brands which makes it very cool but if you really want to leverage the push from cadence directly to your social\nmedia platform then buffer might be a cheaper option I'm just trying to explain how you can decide on which are the platforms that you want to go for so for this example we're going to be going with Buffer because like I said I had\nonly two social media accounts and I didn't want to pay €43 here for my testing so you can just create an account with whatever platform that you want to go for and then just loging into your account.\nOnce you're logged in into your buffer dashboard, just come to the bottom section here where you have my organization and click on API and then here click on new key and then you can create an API key.\nNow with these three API keys from perplexity, imageb and buffer, we would be able to wire this into cadence and continue with the build.\nNow with these API keys that we have gathered, we have to store these API keys to our server.\nAnd to do that, we're going to come back to PowerShell.\nI'm going to log in back into the terminal. come back into the and I'm going to paste in this command.\nNow this command is going to ask us for all the API keys and these are going to be secretly stored into the you can in principle just give kite directly into the API keys but this is not a recommended approach because if gets\ncompromised then someone has access to your API keys and that is why whenever I'm adding API keys or secrets I prefer to do it from the rather than directly giving it to kite or telegram.\nSo just press enter and then it's going to ask you for your buffer access token.\nSo here I'm going to paste in my buffer key.\nPaste this in.\nAnd after that just press enter.\nAnd then it's going to ask you if your image BB API key.\nI'm going to copy this as well.\nI'm going to paste this in.\nPress enter.\nAnd then the last one you're going to be asked for your perplexity.\nOops.\nI realized that I made a mistake.\nSo the first one that I put in wasn't for buffer.\nIt was for perplexity.\nSo I'm going to cancel this and I'm going to run this again.\nI hope it doesn't get messed up.\nI'm going to tell Kite in the process that I made a mistake.\nI'm going to recall the same command that I used.\nI'm going to press enter and then I'm going to copy the right buffer key.\nThen I'm going to copy the image PV.\nThen I'm going to copy the Plexity API key.\nI'm going to paste this in.\nAnd then you can see that all the characters are saved and we get a notification that all done.\nSo what I'm going to do now is I'm going to come to Kite and I'm going to tell Kite that hey, we've stored these three API keys.\nHe should do a smoke test to make sure that all the keys are working.\nSo I'm going to copy this and I'm going to give to Kite.\nBut because I made a mistake and did it twice, I'm going to send him a I'm going to write I did make a mistake and added it twice so you can ignore this entry.\nThen I'm going to tell him to do a smoke test.\nI hope that the first mistake that I did, he would be able to just rectify it and see that all the keys are working.\nHey, if you're finding value in this content that I'm creating, hit the subscribe button, subscribe to my channel, and hit the like button for YouTube algorithm to keep pushing this video to other people that will be out there.\nIt doesn't cost you anything, but it really does support my channel's growth.\nA lot of work goes into crafting all these tutorials, creating that, creating the prompt, and that is why I'm not even able to upload a video every week because I test everything about 20 times before I push it out there.\nAnd that is why I have to upload videos on a bi-weekly schedule because a lot of work goes into crafting all these things.\nAnd kite is done as well.\nSo he did a smoke test.\nHe verified that buffer works, imageb works, and perplexity works.\nAll right.\nIn the next stage, we're going to put in prompt 20.\nPrompt 20 is basically going to give us a trigger where we can publish an idea, create an idea, render a content, render a carousel and stuff like that.\nSo just copy this prompt here and we're going to give this as well to Kite.\nAll right.\nAnd Kite is done with that as well.\nNow the next three prompts are basically going to be the design prompts.\nThis is going to wire the ideas tab, the promotes tab, and also the studio tab.\nAnd after that, we're going to basically test the whole thing.\nSo now we have this idea tab that has nothing there.\nWe have the studio tab that has nothing there.\nWe have the publish tab that also has nothing there.\nAnd also the templates tab.\nSo what we're going to do is we're going to give Kite these prompts to wire those up.\nAnd after that, we can test some functions so that you guys can see what we are building.\nSo I'm going to give all these prompts to Kite sequentially and then we can go to see the test.\nAll right.\nSo Kite is done with processing all those prompts.\nNow, I know we've been building for some time now.\nNow, let's see a real demo of the end to end to make sure that everything is working.\nSo, I'm going to come back to the dashboard and I'm going to reload the dashboard and then let's go to the ideas tab.\nNow, I see that Kite did a smoke test where he tested one agent tonight before you trusted.\nSo, he just did a smoke test to make sure that the ideas are working.\nNow, let's click on generate ideas to see if the end to end flow with Atlas doing the research, giving us some ideas is going to work.\nSo, I see a notification that he's doing the research.\nLet's wait till the results come out.\nAnd this worked very well.\nSo you can see that we have four ideas that was generated by Atlas.\nBrowser agents should verify, not just click.\nYour agent needs a sandbox before it needs more tokens.\nNow let's say that we want to promote one of these ideas.\nSo let's go with stop giving agents your whole app.\nAnd let's click on promote.\nAnd then here, let's say we want to generate 10 carousel slides.\nAnd I'm going to say research perlexity.\nAnd then here perplexity is enabled because we want to research perplexity is enabled just to make sure that we test that the API key is working.\nAnd I also added this option here steroid mode.\nNow this is going to create more of like a power sort of words for the carousel slides.\nSo let's just enable those two as well.\nAnd then let's go to write 10 slides.\nAnd then this is working.\nSo Vera is triggered.\nVera is the agent that does the writing of the content.\nSo he's basically reading the idea and doing the research to make sure that everything is working.\nDoing the research to make sure that she got us all the information that we need to write that content.\nAll right.\nAnd Vera created the content.\nSo you can see here that we have all the 10 slides generated.\nWe have the cover text which says your agent is not dump your packet is bloated and then it basically writes all the content that would be on every slide that we have.\nNow let's say we want to approve this and we want to promote this into a template.\nSo let's click on approve and then let's pick a template in the next stage.\nNow here we're going to be generating an Instagram carousel.\nSo we need a 4 is to5 aspect ratio.\nLet's say just for this example I'm going to go with this purple one that we have here.\nI'm going to select that and I'm going to click fit copy to this.\nNow what is going to happen is that Vera is going to check if the content the text that she generated fits the number of characters that are in that template because if the words are way more than what the template can fit then the whole design gets ugly.\nSo what Vera is going to do is Vera is going to read all the hardcoded text that are in the template and try to adapt and fit the content that she generated to that particular template and Vera basically readapted the content\nthat she generated to fit the template that we have.\nSo because the template that we chose has less words in the cover, she just rewrote the package into agent.\nOkay, package fat and then basically wrote all the content that would be on the slide.\nNow I'm going to click on render now to push this into the studio tab so that we would see how this would look on the template that we selected.\nNow you see a notification open in studio.\nNow we can click open in studio here and this would open the slide that we just generated in studio.\nNow let's click on this and you can see that just as Barard wrote agent okay packet fat packet fat bad agent run starts with too much context whole ripple noise guesses and then when you click on this you can see all the text\nthat was generated so assuming maybe we don't want to go with this text here for the cover we want to just fine-tune you can click on fine-tune the slide here and this would basically load the slide here and when we click on this here just\nfor an example I can write agents not the problem packet fat and then you can also move the slides up and down however you want to have them right this is all possible in the fine tune tab so I'm going to close this I'm going to discard\nthe changes and then let's say we want to push this to Instagram and this is the part that makes me nervous and for that I created a dummy Instagram account called content vibe so that when we push directly from our this would come\nhopefully it would go through buffer and then this would come to this Instagram account open the package again let me click on and then here by the way you can come here and you can always change the template whenever you want to pick a\ndifferent template you can pick whatever template that you want and then cadence would basically rewrite the content to fit that template.\nNow, let me come here.\nLet me click on post now.\nAnd then here, because I've configured only Instagram, it's only going to show Instagram.\nI'm going to click on Instagram only.\nAnd it's going to warn me and I'm going to get notification.\nHey, are you sure you want to post this?\nI'm going to say yes, post now.\nAnd then this is going to be pushed to buffer.\nAnd hopefully, if the end to end stream works, we should see the post coming directly to Instagram.\nAnd we get notification that this has been pushed to buffer.\nLet's click on okay.\nAnd this gets put from the studio tab into the publish tab.\nOnce this is pushed to buffer.\nNow let's go to Instagram and see if we'll see this post.\nI'm going to come to my Instagram and hey you see this it posted directly to Instagram.\nSo you can see this exact post that we had and generated in our cadence which is the first post that I've tested with this account.\nAnd then you can see that all the text came just as we rendered them on the cadence website.\nAnd then here as well we have the text that was generated also by the AI for the description section.\nSo this is working very well.\nNow when I come back to the studio tab and I go to the published I should see oh so this is not working.\nSo it renders that we have one all but I do not see the slide that was generated.\nSo I'm telling kite hey the publish tab is not displaying any published content.\nI can see a count of one which indicates that the item exists but the page itself is completely empty.\nSo that kite should fix this for us and hopefully after that we should see the content popping up here.\nNow two more things that we're going to do.\nI'm going to be show you how that tab would work like on the configuration tab.\nYou would have the opportunity to be able to always edit your brand name, edit your handle, write a bit about what content you are creating so that the agents would always read this to find ideas and to generate your content for you.\nAnd then you can also select the number of generation defaults that you want to have.\nAnd for that, we're going to give Cadence this prompt here to wire the configuration tab.\nBut I'm going to wait till he's done with the back that we have on the publish tab.\nAnd after that, we can go into the configuration tab and wire this in as well.\nAnd then also whilst we are here we also do have the calendar tab where whenever you schedule a post maybe you don't want to publish immediately you want to schedule this as a particular date when you come into your calendar you would also see the number\nof posts that you have scheduled.\nSo here for instance you can see that the post that we posted today 24th of July this is already showing up in the calendar tab.\nAll right so kite is done with that.\nLet's reload the dashboard.\nThen let's come to the publish tab.\nPerfect.\nAnd now you see that the post that was published is already here.\nNow the next two things that we're going to work on like I said is a configuration tab where you can basically alter the configurations here and the agent would pick the new updates that you have and for that I'm going to send kite to this\nprompt to wire in the configuration tab.\nAll right.\nSo that means that when we come to the configuration put up, let me reload this.\nYou can basically change your brand name, the handle, the number of slides that you want to default with, if you want to have perlexity by default.\nFor instance, when I toggle this off and I save the configuration and I'm generating an idea, it wouldn't use publicity toggle on as a default.\nAnd after that, we're basically done with the main aspect of the build.\nI do have some other prompts that I'm giving to you as optional things that you can add to your setup to make it even more powerful.\nNow what we're going to build now is going to be the telegram remote control.\nSo if you remember we do have this studio tab that we created which ideally we want to also use to be able to generate ideas without us having to come to the dashboard.\nNow the idea here is that whenever you want to create an idea you can just come to the studio tab here in telegram generate an idea promoted and stuff like that.\nSo for that we're going to give kite as prompt here to set up the telegram remote control.\nAll right so kite says he's done he built and verified the telegram remote so far as he could.\nHe also said that he did a smoke test.\nSo let's come to the studio tab and then we can see that he did a test where we can see the things that he triggered on the studio tab.\nNow he did mention something that he couldn't run.\nLet me scroll down to the bottom.\nHe said that he's he has a blocker.\nSo he wasn't able to restart the hermits gateway himself.\nSo he's telling us from a separate shell on the machine we should run this and then we should just tell him that it's restarted.\nSo let me copy this.\nLet me come to PowerShell.\nLet me clear the screen here.\nThen let me paste in this.\nLet me connect to the server again.\nThen let me run the command he gave to us.\nAll right.\nSo this gateway has restarted.\nSo, I'm going to wait a bit for the gateway to completely boot.\nAnd after that, I'm going to send a message to Kite restarted.\nSo, I'm going to now send Kite a message restarted.\nAnd then hopefully he should be able to continue with what he was doing.\nAll right.\nAnd he says that he's done.\nSo, basically, everything is wired in.\nNow, let's go to the studio tab and let's write something like let's forward slash let's run idea.\nNow, let me check what the slash command was.\nI don't remember if it was ideas or if it was idea.\nSo, it's ideas.\nSo, let's send forward slash ideas.\nAnd then hopefully this should trigger the ideas tab on the studio right in this work in this workown.\nSo we have fresh ideas stop asking one agent to do the whole job.\nSo when I come to the studio tab I also see the same thing.\nSo basically this is mirroring whatever that we have on our dashboard.\nNow the reason why we are doing this is that I want you to be able to build ideas and stuff like that without you having to always come to the dashboard.\nNow let's say we want to promote this idea/promote and then let's put in the number of that idea 11.\nOops, I made a mistake.\nI intended to type in 11.\nAnd this was exactly correct.\nHe says that idea one was not found.\nSo let me do it again.\nForward/promotees and then let me send 11.\nThat was what I intended to send.\nAnd then you can see that immediately we triggered this.\nThis is also live on the dashboard.\nWe can see that Vera is now promoted.\nYou can see that the idea was promoted and Vera is basically writing this idea that we have.\nAnd we can see exactly the same thing here is actually done with the promotion of the idea.\nSo it worked on the dashboard.\nWe can see the ideas have been generated.\nBut on Telegram we did get this promotes field list attributes no get.\nSo I'm going to tell Kite to fix this as well for us.\nSo I'm giving Kite this prompt.\nI tested the idea telegram command enabled perfectly.\nHowever, when I promote an idea using the command promote idea number, the idea is promoted correctly on the dashboard, but Telegram sends us this message.\nSo you see what the problem is and fix it for us.\nAll right.\nSo Kite says he's done.\nLet's try this again.\nI'm going to come back to this app and I'm going to trigger ideas.\nNow what you can also do to make it a bit easier when you are promoting an idea, you can also directly add the template that you want to use, right?\nAnd then what I would suggest to you is that just use it to basically brainstorm ideas and then promote it to come into the studio tab and then once you're in the studio tab then you do all the stuff to do with the templates which\ntemplates you want to use the edits that you want to do and stuff like that but it would be better to use the telegram just for the idea generation and stuff like that or maybe whenever you want to have an idea you can just come here and\ntell which agent say hey give me some ideas on automation and stuff like that.\nSo let's say here for instance that we want to promote just an example.\nLet me go to promote and let me put in oops 18.\nSorry there's a typo here promote 18 and then let me put in the templates.\nLet me go to the templates tab just to get an example.\nLet's say I want to go with the statement template.\nLet me just type in statements then enter and then hopefully this will be produced then for us.\nSo weirdly it says template not found.\nLet me see why this is the case.\nLet me type in templates to see if I can get a list of templates.\nSo it appears that the names of the templates are different than what I see here.\nSo let's look for an example.\nLet me say I want to go with a template called isometric.\nRight?\nLet me come back and promote this again.\nAnd then let me go to isometric.\nNow what you can also tell kites to do for you later would be to basically make sure that the names that you see for the template stylist with the names that is on the dashboard so that it becomes a bit easier for you to work with it.\nI think the reason why there are different names is that for instance tip deck has two words and then for you to use it you have to use tip hyphen deck but it's just a prompt we can tell kite to just do this and he would be able to correct\nthis for you as well and then basically you can see that the slides are generated.\nSo when I come to this now you can see that the template that we picked is here and then we can see all the slides that are generated.\nNow, what I think I can also do for you is I can just give you the prompts to correct this inconsistency where we have the temp name been different than the templates that we can use in Telegram.\nAnd then I'm also going to give you this prompt that we can just give to Kite to fix this for us.\nSo, we're just going to tell Kite, hey, the template names shown on the dashboard do not match the names accepted by promote command.\nFor instance, on the dashboard when I type statement, it tells me template not found.\nSo, he should make sure that he fixes this.\nNow I'm going to provide all these prompts to you so that you guys can also if you have the same issue you can just copy paste the prompts and your agent should be able to fix this for you.\nNow whilst kite is building and correcting the issue with the templates name not matching telegram there is one more thing that we want to do.\nI just want to make good use of the time whilst we are waiting for kite to be done.\nSo currently if you remember whenever we want to access a dashboard we do this through what is called SSH tunneling right where we put in this command here SSH minus N minus L and all the name and stuff like that we press enter and then\nwe put in the password of our user account and then only with that the SSH handling is activated that we are able to access the dashboard but what you can do which is even a better way to access the dashboard is to use tail skill.\nNow what tails skill does is that tilk skill gives you with which you can access the dashboard without you having to go through SSA tunneling and stuff like that.\nThe idea is that you going to download the tail skill application connect your account and right there you get a unique with that URL you would be able to connect to the dashboard very easily without you having to put in your\npassword every time.\nThe best part about tail skill in the setup is that on every PC for instance in my case I have a desktop that I'm working with and I have a MacBook I have my mobile phone and a whole lot of devices that I work with.\nNow on any of these devices that I have installed tail skill on and connected my account I can also access the dashboard without me having to go through all the terminal every time especially on your mobile phone.\nWherever you are you can work with the dashboard on your mobile phone so long as you have the tail skill app installed and connect your account.\nNow to do this we're going to download the application that is called tail skill.\nNow this is completely for free.\nI have seven servers currently running on tail skill and I do not pay anything for this.\nNow when you are here just come to this section here and click on get started.\nNow when you click on get started you can basically sign up create an account everything is free you you would not have to pay for anything.\nNow once the installation is complete you can then come here and download sales skills.\nSo on their homepage.com just click on the download button here and then this is going to download the tail skill application here.\nSelect whatever operating system that you're working with.\nIn my case I'm working with Windows.\nSo I'm going to click on the Windows and download the Windows application for TK skill.\nIf you're using the interface for Mac OS is even way better than the interface for Windows.\nSo I'm going to open the installer.\nI'm going to accept the terms and conditions and then just click on install.\nAnd the tail scale application is going to be completed.\nLooks like the task that I gave to Kite to basically make sure that the template matches with the was a pretty heavy tax.\nHe's been working for close to 15 minutes now.\nAnd he's still not done.\nNow once the tail installation is completed on my end, I can basically click on close here.\nAnd then when I come down here in Windows, you're going to see a small symbol here.\nYeah, this one here for tail skill with some I think about eight or seven dots.\nRight?\nWhen you right click on this then you would have to sign in into your tailskll account.\nNow once you are signing into your tailskll account you are basically done with the installation on tailskll.\nNow when you loging into your tail skill account you would see all the devices that are currently connected to your tail skill account.\nAnd with all these devices you're going to get a unique URL that you would be able to use to access the server that we are building.\nSo now the tail skill application is installed.\nWe've created a tail skill account or if you already have an account this would be perfect.\nWhat we would have to then do is to tell kites to install tailskll for us and bind the dashboard or the cadence dashboard that we have built to our tail skill server and with that we would be able to access the dashboard directly\nfrom the URL directly on the browser without us having to go through the part where the sit tunneling.\nSo let me wait for kite to finish the task that he's doing.\nI think he's almost done.\nSo currently you can see that he's browsing to make sure that all the changes that he did are working and then once he's done we can basically give Kite the command to do the tail skill wiring for us and then we would be done with this\ntutorial.\nAnd hey I'm working on an auto installer that is going to install all this for you in a matter of minutes.\nSo just sign up to my membership.\nYou're going to get a unique key which would you'll be able to use the installer and I will also create a tutorial for you on how to use the installer as well when this is ready.\nAnd now finally kite is done with that big job.\nThe names of the templates that we see on the dashboard here would tally with the names that we see on Telegram.\nGoing back to the tail skill points, Kite is done with the work.\nSo, we can basically give Kite the prompt to work on the tail skill connection for us.\nAnd for that, I'm going to give Kite this prompt here.\nI'm telling Kite, hey, set up tail skill access to the dashboard so I can securely access it from my own devices without the SSA tunnel.\nAnd I'm just giving him the guide on how I want this to be.\nAnd when he's done, he's going to give us a link that we're going to use click to bind this particular server to our tail skill account.\nSo let make sure I'm on kite stop and let me send this prompt to kite to do this.\nAnd then once we are done with this, then we are basically at the end of the tutorial.\nI'm already exhausted.\nI've been recording for more than 10 hours.\nSo I'm getting tired myself.\nAll right.\nSo Kite is done.\nHe's given us this login link that we're going to use to authenticate our account to this particular server that we have built.\nSo I'm going to open a new tab and just put in the URL that Kite gave to us.\nAnd after that, all you're going to have to do is to connect and sign in into your tail skill account.\nNow, this is going to bring you to a page here where tailskll is going to ask you, hey, I want to connect the device cadence dashboard to your computer.\nSo, in my case, computer mechanic.com tailnet.\nI'm going to click on connect and then the login is accessible.\nSo, our device has now been bound to our tail skill account.\nSo, I'm going to come here and I'm going to tell kite done because he says that when I'm done with authentication, I should just reply we're done.\nRight.\nSo, kite is done with that as well.\nHe also said that he did a public IP testing and all failed to connect which means that the dashboard can only be accessed through the tail skill IP.\nNow let me be sure that this is working.\nLet me reload the dashboard.\nHere we have the SSA tunneling working which is expected.\nI'm going to come to PowerShell and I'm going to kill the SSH connection and then I'm going to come back to the dashboard and I'm going to try to access the dashboard through the SSA tunnel and you see that I get the sites cannot be\nreached.\nNow whenever I want to connect to the dashboard I can just use this URL that Kite gave to us.\nSo let me copy the dashboard URL.\nLet me paste in this URL.\nAnd then hooray.\nYou see that we can access the dashboard without us having to go through the complication with the SSA tunnel.\nNow tails skill works by setting sort of a local viva or on the PC on which it's installed.\nSo if you have any other VPN services running, you would have to stop this VPN before tail skill can work because if you have two parallel services running, then tails scale would not be able to work.\nSo make sure that you always stop any other running so that tail scale would be able to deploy the server for you.\nSo this brings us to the end of the tutorial.\nLet me walk you through shortly what we have built.\nWe have the dashboard tab where we can see and all the things that the agents are doing an activity log all pulled from the agents database.\nNow when you come to the ideas tab, we can always create any new idea by picking your idea and the agents at last is going to pick up that idea and build it into a content for you.\nAnd then also whenever you don't have any idea, you can just come and click on the generate idea and an idea will be generated for you.\nWhenever we want to promote an idea, we can just click on promote and this will be promoted for us into the studio tab.\nAnd whenever we want to push any of the post to Instagram, Tik Tok, whatever we want to do.\nWhen we click on post now, this will directly be pushed to the social media platform that we want to use.\nAnd then when this is done, this will bring the post to the publish tab so that you can always refer to it whenever you want to do something with it.\nWe also have a templates tab that is packed with a lot of templates currently in the setup that you can always pick from and develop any carousel slide that you want to develop.\nAnd then we have the dedicated agents tab where we see all the agents that we have their heat map.\nYou have your calendar where you can see the post that you have scheduled, post that you have already published and also upcoming post.\nA configuration tab where you can configure your brand name, the things that you want the agents to work on when they are generating the and a docs tab where you can basically understand the dashboard.\nNow I do have way more prompts that I'm going to provide to you that you can also use that I would highly recommend that you use.\nFor instance, for the agent login activity, the agents are going to log in the database whenever they perform a task.\nBut if you run this for a whole year, then your database is going to get so cluttered.\nSo you can set up sort of a weekly cleanup where the agents are going to look for activities that are older than 7 days and basically clean all of them.\nAnd I also included some additional problems that you can use to basically amplify the setup that you have.\nI know it's a lengthy tutorial, but I wanted to go through everything that we are building, the thought process that I have when I'm building something like this.\nAnd also you see me troubleshoot all the errors that we have so that when you have a similar situation, you can do the same thing as well.\nIf you found the video helpful, please hit the like button.\nSubscribe to my channel to see more like this.",
  "language": "en",
  "duration": 6873.803188,
  "segments": [
    {
      "start": 0.16,
      "end": 3.066,
      "text": "This is a full social media content machine.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3.066,
      "end": 7.588,
      "text": "Four AI agents that research, write, design, and publish posts for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 7.588,
      "end": 8.961,
      "text": "Watch it work right now.",
      "source": "youtube_auto_original"
    },
    {
      "start": 8.961,
      "end": 16.044,
      "text": "This content idea, five signs your agent stack is overengineered, is turning itself into a finished Instagram carousel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 16.044,
      "end": 22.845,
      "text": "Atlas found the angle Vera is writing the slides and in about 2 minutes, Kite renders all of them with just a few clicks.",
      "source": "youtube_auto_original"
    },
    {
      "start": 22.845,
      "end": 26.448,
      "text": "And here's the thing, nothing goes online without your approval.",
      "source": "youtube_auto_original"
    },
    {
      "start": 26.448,
      "end": 29.904,
      "text": "You check the words first and you approve the final post.",
      "source": "youtube_auto_original"
    },
    {
      "start": 29.904,
      "end": 32.426,
      "text": "The agents do the work and you keep control.",
      "source": "youtube_auto_original"
    },
    {
      "start": 32.426,
      "end": 34.699,
      "text": "Today we are building the entire thing from the scratch.",
      "source": "youtube_auto_original"
    },
    {
      "start": 34.699,
      "end": 36.813,
      "text": "Every prompt and template is linked below.",
      "source": "youtube_auto_original"
    },
    {
      "start": 36.813,
      "end": 43.315,
      "text": "If you'd rather skip the 4 plus hours build, there is also an auto installer that can set up everything for you in a matter of minutes.",
      "source": "youtube_auto_original"
    },
    {
      "start": 43.315,
      "end": 45.556,
      "text": "Hey, Larry here and welcome to the channel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 45.556,
      "end": 51.51,
      "text": "Today we're building Cadence, a content operations autopilot run by four specialists you just saw.",
      "source": "youtube_auto_original"
    },
    {
      "start": 51.52,
      "end": 56.751,
      "text": "Packed with over 50 beautifully designed templates, Atlas researches and posts your ideas.",
      "source": "youtube_auto_original"
    },
    {
      "start": 56.751,
      "end": 60.284,
      "text": "Vera writes every slide, caption, and hashtag for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 60.284,
      "end": 62.296,
      "text": "Then Kite does the finished designs.",
      "source": "youtube_auto_original"
    },
    {
      "start": 62.296,
      "end": 65.818,
      "text": "Once this is done, Orion ships them to your social media platform.",
      "source": "youtube_auto_original"
    },
    {
      "start": 65.818,
      "end": 71.892,
      "text": "And above them all is an orchestrator agent that can take your orders in the Telegram chat and route every job down the [music] chain.",
      "source": "youtube_auto_original"
    },
    {
      "start": 71.892,
      "end": 74.205,
      "text": "If you post content regularly, you know the hassle.",
      "source": "youtube_auto_original"
    },
    {
      "start": 74.205,
      "end": 76.756,
      "text": "You stare at a blank page hunting for [music] an idea.",
      "source": "youtube_auto_original"
    },
    {
      "start": 76.756,
      "end": 80.954,
      "text": "When you finally get one, now comes the research, then writing slide after slide.",
      "source": "youtube_auto_original"
    },
    {
      "start": 80.954,
      "end": 86.642,
      "text": "They're making it look good in a template followed by the caption, the hashtag, the scul and all that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 86.642,
      "end": 90.714,
      "text": "Now, Cadence orchestrates and eats up the entire chain in a matter of minutes.",
      "source": "youtube_auto_original"
    },
    {
      "start": 90.714,
      "end": 93.309,
      "text": "You tell the agents once what your brand is about.",
      "source": "youtube_auto_original"
    },
    {
      "start": 93.309,
      "end": 103.934,
      "text": "From then on, one click generates fresh post ideas for you or you type your own rough thought and they build the entire story for you from idea to publish post all handled in a few clicks.",
      "source": "youtube_auto_original"
    },
    {
      "start": 103.934,
      "end": 105.413,
      "text": "Then your post is online.",
      "source": "youtube_auto_original"
    },
    {
      "start": 105.413,
      "end": 108.545,
      "text": "And here is where this build beats every other AI slide tool.",
      "source": "youtube_auto_original"
    },
    {
      "start": 108.545,
      "end": 113.51,
      "text": "Normally, you would generate slides with an image model and you would pay for every single slide.",
      "source": "youtube_auto_original"
    },
    {
      "start": 113.52,
      "end": 118.149,
      "text": "And even fixing one word means you pay again to regenerate the whole image.",
      "source": "youtube_auto_original"
    },
    {
      "start": 118.159,
      "end": 121.269,
      "text": "Cadence doesn't touch an [music] image model at all.",
      "source": "youtube_auto_original"
    },
    {
      "start": 121.269,
      "end": 127.155,
      "text": "Every slide is built from a beautifully designed HTML template with real code, not with AI pixels.",
      "source": "youtube_auto_original"
    },
    {
      "start": 127.155,
      "end": 128.657,
      "text": "So, every edit is free.",
      "source": "youtube_auto_original"
    },
    {
      "start": 128.657,
      "end": 134.757,
      "text": "You can grab any elements, change the text, the size, the position, and it rerenders it in a matter of seconds.",
      "source": "youtube_auto_original"
    },
    {
      "start": 134.757,
      "end": 138.493,
      "text": "Meaning you have unlimited revisions with zero cost per slide.",
      "source": "youtube_auto_original"
    },
    {
      "start": 138.493,
      "end": 141.731,
      "text": "So your money goes into the words, not into the pictures.",
      "source": "youtube_auto_original"
    },
    {
      "start": 141.731,
      "end": 144.944,
      "text": "The dashboard shows the whole operation in one glance.",
      "source": "youtube_auto_original"
    },
    {
      "start": 144.944,
      "end": 154.39,
      "text": "Every number pulled from your own agent's database where every agent logs its name, the task they performed, the AI model they used, and exactly when they performed that task.",
      "source": "youtube_auto_original"
    },
    {
      "start": 154.4,
      "end": 156.79,
      "text": "So there are no fake metrics anywhere.",
      "source": "youtube_auto_original"
    },
    {
      "start": 156.8,
      "end": 158.358,
      "text": "My favorite part is the studio.",
      "source": "youtube_auto_original"
    },
    {
      "start": 158.358,
      "end": 168.544,
      "text": "You can edit every slice text or grab a single element, move it, resize it, rewrite it, plus even the phone preview, a template library, and some that carousel into a video rule.",
      "source": "youtube_auto_original"
    },
    {
      "start": 168.544,
      "end": 177.181,
      "text": "We would also build a published archive where you can see all the posts that you've generated so far and published, and also a calendar tab where every schedule content can be seen.",
      "source": "youtube_auto_original"
    },
    {
      "start": 177.181,
      "end": 184.07,
      "text": "We would also have a configurations page which would hold your brand name, handle, voice, and it flows into every word the agent writes.",
      "source": "youtube_auto_original"
    },
    {
      "start": 184.08,
      "end": 187.618,
      "text": "Now, let me give you a live demo and walk through of what we are building today.",
      "source": "youtube_auto_original"
    },
    {
      "start": 187.618,
      "end": 191.233,
      "text": "So on the dashboard you see the total number of runs that the agents have performed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 191.233,
      "end": 194.138,
      "text": "The number of ideas that we have generated in this setup.",
      "source": "youtube_auto_original"
    },
    {
      "start": 194.138,
      "end": 195.91,
      "text": "The number of posts that we have published.",
      "source": "youtube_auto_original"
    },
    {
      "start": 195.92,
      "end": 201.119,
      "text": "In my case I just have one because I used this to test for the tutorial and the percentage of runs that have been successful.",
      "source": "youtube_auto_original"
    },
    {
      "start": 201.119,
      "end": 205.204,
      "text": "Now here we have an agent activity that is pulled from the agents activity database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 205.204,
      "end": 216.107,
      "text": "So you can see currently on Friday I did a lot with the agents because I was building the setup and that is why you see that this is basically going up and on the right side you can also see which of the agents have currently the largest workload.",
      "source": "youtube_auto_original"
    },
    {
      "start": 216.107,
      "end": 223.35,
      "text": "So in my case for instance these are Vera who is my content writer and Kite who is a developer because those are the two that were doing most of the work so far.",
      "source": "youtube_auto_original"
    },
    {
      "start": 223.36,
      "end": 229.146,
      "text": "Now when you come down here you can also see a summary of what the agents have been doing all pulled from the agent login database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 229.146,
      "end": 231.16,
      "text": "Now the magic happens in the ideas tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 231.16,
      "end": 235.484,
      "text": "Here you can see a few ideas that the agents generated for me because I'm doing stuff with AI.",
      "source": "youtube_auto_original"
    },
    {
      "start": 235.484,
      "end": 239.44,
      "text": "So I just made them generate ideas around AI automation and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 239.44,
      "end": 246.093,
      "text": "Now here you can put in your own idea whatever idea that you have or when you don't even have an idea you can tell the agent hey generate some ideas for me.",
      "source": "youtube_auto_original"
    },
    {
      "start": 246.093,
      "end": 250.077,
      "text": "So let me just click on generate some ideas and let me see what ideas are going to be generated.",
      "source": "youtube_auto_original"
    },
    {
      "start": 250.077,
      "end": 257.581,
      "text": "So here you can see that Atlas who is our researcher is the one that is going to look for ideas around what we are building and what we haven't posted before.",
      "source": "youtube_auto_original"
    },
    {
      "start": 257.581,
      "end": 266.326,
      "text": "And this is going to trigger Atlas who is our researcher who is going to basically look for ideas of what we can post based on what the agents have learned so far about what I'm building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 266.326,
      "end": 268.646,
      "text": "And then you can see that they generated five ideas.",
      "source": "youtube_auto_original"
    },
    {
      "start": 268.646,
      "end": 271.59,
      "text": "So the first idea is automation fails at the handoff.",
      "source": "youtube_auto_original"
    },
    {
      "start": 271.6,
      "end": 278.056,
      "text": "We also have some ideas like your agent should run the test it claims to fix which is going to be a good one because the agents hallucinate a lot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 278.056,
      "end": 282.39,
      "text": "Now just to demonstrate an example let's say I want to write some slides on this idea.",
      "source": "youtube_auto_original"
    },
    {
      "start": 282.4,
      "end": 287.27,
      "text": "All I have to do is to just click on promote and then here I can put in a number of slides that I want to put in.",
      "source": "youtube_auto_original"
    },
    {
      "start": 287.28,
      "end": 290.903,
      "text": "So for instance I want to go for eight slides 10 or whatever number you want to go for.",
      "source": "youtube_auto_original"
    },
    {
      "start": 290.903,
      "end": 296.179,
      "text": "So what you have to remember is that the first slide is always going to be the hook and then the last slide is going to be the CTA.",
      "source": "youtube_auto_original"
    },
    {
      "start": 296.179,
      "end": 298.977,
      "text": "So the main content is going to be between the hook and the CTA.",
      "source": "youtube_auto_original"
    },
    {
      "start": 298.977,
      "end": 306.047,
      "text": "So here if I go for 10 slides or let's say eight slides that it means that I'm going to have six content slides with one being the hook and one being the CTA.",
      "source": "youtube_auto_original"
    },
    {
      "start": 306.047,
      "end": 309.129,
      "text": "And then here I can decide if the agent should do a deep research.",
      "source": "youtube_auto_original"
    },
    {
      "start": 309.129,
      "end": 317.401,
      "text": "So for instance if I click research with perplexity then the agents are going to do a deep research through perplexity to really find the right content for this job.",
      "source": "youtube_auto_original"
    },
    {
      "start": 317.401,
      "end": 322.619,
      "text": "And then here I also built in a sort of a steroids mode where the agents are going to write more punchy slides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 322.619,
      "end": 325.965,
      "text": "And then when you are done you can just click on write eight slides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 325.965,
      "end": 329.501,
      "text": "Now what is going to happen is that basically Atlas is done with his job.",
      "source": "youtube_auto_original"
    },
    {
      "start": 329.501,
      "end": 332.903,
      "text": "Atlas did the research right and now Vera is going to take over.",
      "source": "youtube_auto_original"
    },
    {
      "start": 332.903,
      "end": 336.199,
      "text": "Vera is the AI agent that does the writing of the content.",
      "source": "youtube_auto_original"
    },
    {
      "start": 336.199,
      "end": 339.765,
      "text": "So let's wait till Vera is done with the research and have the content ready.",
      "source": "youtube_auto_original"
    },
    {
      "start": 339.765,
      "end": 340.397,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 340.397,
      "end": 342.061,
      "text": "So Vera is done with the research.",
      "source": "youtube_auto_original"
    },
    {
      "start": 342.061,
      "end": 348.15,
      "text": "Remember we asked for nice slides and Vera is basically giving us an idea of what the content on each slide is going to be.",
      "source": "youtube_auto_original"
    },
    {
      "start": 348.16,
      "end": 351.13,
      "text": "Basically you can see the content that is going to come on every slide.",
      "source": "youtube_auto_original"
    },
    {
      "start": 351.13,
      "end": 357.27,
      "text": "If I do not like the slide and I want to refine the slide, I can click on refine copy and then the agents would basically refine this based on what I tell them.",
      "source": "youtube_auto_original"
    },
    {
      "start": 357.28,
      "end": 361.371,
      "text": "Now, assuming I'm fine with this and I want to promote this, I can click on approve and pick a templates.",
      "source": "youtube_auto_original"
    },
    {
      "start": 361.371,
      "end": 366.777,
      "text": "Remember that the contents that the agents did is basically from the idea of what the content should look like.",
      "source": "youtube_auto_original"
    },
    {
      "start": 366.777,
      "end": 373.048,
      "text": "But here, I have a pile of beautifully designed templates that I'm going to give to you guys, which you can just copy without you having to design everything yourself.",
      "source": "youtube_auto_original"
    },
    {
      "start": 373.048,
      "end": 376.711,
      "text": "So, what we're going to have to do is just look for whatever templates we want to build with.",
      "source": "youtube_auto_original"
    },
    {
      "start": 376.711,
      "end": 379.928,
      "text": "Now, because my brand is orange, let me go with this template here, 10 count.",
      "source": "youtube_auto_original"
    },
    {
      "start": 379.928,
      "end": 382.34,
      "text": "Now what is going to happen is I'm going to click fit copy to this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 382.34,
      "end": 383.73,
      "text": "Now why do we do this step?",
      "source": "youtube_auto_original"
    },
    {
      "start": 383.73,
      "end": 386.87,
      "text": "Because every template has the number of characters it can support.",
      "source": "youtube_auto_original"
    },
    {
      "start": 386.88,
      "end": 392.113,
      "text": "So assuming the number of characters is way more than what a template can support then the design basically looks ugly.",
      "source": "youtube_auto_original"
    },
    {
      "start": 392.113,
      "end": 403.625,
      "text": "So what Vera is going to do is that Vera is going to look at the template that we have picked and adapt the text that goes onto the slides to match that particular template and then Vera adapted the slide text to the template that we picked.",
      "source": "youtube_auto_original"
    },
    {
      "start": 403.625,
      "end": 409.347,
      "text": "So here I'm just going to click on render this and then this is going to trigger another agent called kite who is basically for design.",
      "source": "youtube_auto_original"
    },
    {
      "start": 409.347,
      "end": 416.235,
      "text": "So when I come here you can see that the slide is ready and I can click to open this in the studio or you can also come to the studio tab and this will show you the slides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 416.235,
      "end": 419.73,
      "text": "So when I click open in studio you can see the slides that the agents generated.",
      "source": "youtube_auto_original"
    },
    {
      "start": 419.73,
      "end": 424.13,
      "text": "So that you can see that I have eight slides basically tailored to exactly what we did.",
      "source": "youtube_auto_original"
    },
    {
      "start": 424.13,
      "end": 436.309,
      "text": "Now the beauty about how these slides are generated is that typically when people are generating Instagram slides you need to get an image generation agent or an an image generating model that is going to cost you for every slide that you generate.",
      "source": "youtube_auto_original"
    },
    {
      "start": 436.319,
      "end": 441.51,
      "text": "And the most painful part is that whenever you want to change any text, then you need to pay for every API call.",
      "source": "youtube_auto_original"
    },
    {
      "start": 441.52,
      "end": 445.609,
      "text": "The beauty about what we building here is that every slide is rendered as an HTML file.",
      "source": "youtube_auto_original"
    },
    {
      "start": 445.609,
      "end": 452.627,
      "text": "That means that when you come here and click on fine-tune the slide and I pick on any slide, I can basically edit and add my name Larry here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 452.627,
      "end": 455.468,
      "text": "I can do whatever I want to do without having to pay for anything.",
      "source": "youtube_auto_original"
    },
    {
      "start": 455.468,
      "end": 461.575,
      "text": "What you can even also do that I also added is that you can also tune the slide to be left to up down.",
      "source": "youtube_auto_original"
    },
    {
      "start": 461.575,
      "end": 462.649,
      "text": "You can reduce the slide.",
      "source": "youtube_auto_original"
    },
    {
      "start": 462.649,
      "end": 463.911,
      "text": "You can change the font size and everything.",
      "source": "youtube_auto_original"
    },
    {
      "start": 463.911,
      "end": 466.436,
      "text": "And then when you're done, you just click on save and this will be done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 466.436,
      "end": 470.562,
      "text": "Now assuming you're done and you're basically happy with all the contents, then you can promote this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 470.562,
      "end": 474.368,
      "text": "Now you can also convert this into a real where you can click on animate this carousel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 474.368,
      "end": 482.733,
      "text": "You can animate all the slides that are going to come one after the other like a real with a 4 is to 5 aspect ratio or you can also create a full reel with a 9 is to 16 aspect ratio.",
      "source": "youtube_auto_original"
    },
    {
      "start": 482.733,
      "end": 489.687,
      "text": "Now assuming I'm done and I'm happy with what I've built so far, I can just come here click post now and then in my case I have already configured Instagram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 489.687,
      "end": 491.227,
      "text": "So I can click on post to only.",
      "source": "youtube_auto_original"
    },
    {
      "start": 491.227,
      "end": 496.904,
      "text": "And then the agents are going to warn me, hey, are you sure you want to post this image to is I'm going to say yes, post now.",
      "source": "youtube_auto_original"
    },
    {
      "start": 496.904,
      "end": 502.871,
      "text": "And then the image is going to be pushed through a platform that we're going to be using, which is called Buffer that connects to all the social platforms.",
      "source": "youtube_auto_original"
    },
    {
      "start": 502.871,
      "end": 505.744,
      "text": "And then this will be pushed directly to Instagram for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 505.744,
      "end": 510.454,
      "text": "And now I get a notification from Orion, which is our publisher, that the post has been pushed to buffer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 510.454,
      "end": 512.961,
      "text": "So in a few minutes, we should see this directly on Instagram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 512.961,
      "end": 514.214,
      "text": "And right then you see it.",
      "source": "youtube_auto_original"
    },
    {
      "start": 514.214,
      "end": 517.24,
      "text": "So this is a test account that I created on basically to test what I'm building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 517.24,
      "end": 522.23,
      "text": "And when I come here, you see that the post that we just created is live on Instagram exactly as we rendered them.",
      "source": "youtube_auto_original"
    },
    {
      "start": 522.24,
      "end": 525.139,
      "text": "And this exactly what I'm going to be building with you guys today.",
      "source": "youtube_auto_original"
    },
    {
      "start": 525.139,
      "end": 530.389,
      "text": "We also do have a dedicated agents tab that gives you more insight into the agent architecture that we have.",
      "source": "youtube_auto_original"
    },
    {
      "start": 530.389,
      "end": 536.156,
      "text": "You can see that we have every sub agents have their dedicated card where you can see the AI model that the agents are using.",
      "source": "youtube_auto_original"
    },
    {
      "start": 536.156,
      "end": 543.531,
      "text": "You can see the number of runs that particular agent has performed, how many of these runs have been successful and also some of the recent tasks that the agents performed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 543.531,
      "end": 548.206,
      "text": "On top of all these four agents, we have the orchestrator who is more or less the boss agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 548.206,
      "end": 554.753,
      "text": "Now below we have an activity heat map where you can see in a time frame of 24 hours which agent has been active.",
      "source": "youtube_auto_original"
    },
    {
      "start": 554.753,
      "end": 559.567,
      "text": "So the more brighter the color here, it just means that the agent was more active within that hour window.",
      "source": "youtube_auto_original"
    },
    {
      "start": 559.567,
      "end": 563.438,
      "text": "And darker spaces just mean that the agent was not active within that time frame.",
      "source": "youtube_auto_original"
    },
    {
      "start": 563.438,
      "end": 567.93,
      "text": "So the entire build is going to take you about four to 5 hours if you have all the prompts and the templates.",
      "source": "youtube_auto_original"
    },
    {
      "start": 567.93,
      "end": 571.472,
      "text": "So I also created an auto installer that can do everything for you in a matter of minutes.",
      "source": "youtube_auto_original"
    },
    {
      "start": 571.472,
      "end": 575.594,
      "text": "If you'll be interested in getting the auto installer, this model will also be in the description section.",
      "source": "youtube_auto_original"
    },
    {
      "start": 575.594,
      "end": 576.756,
      "text": "Now, let's get into the build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 576.756,
      "end": 579.212,
      "text": "To get started, we're going to first install her.",
      "source": "youtube_auto_original"
    },
    {
      "start": 579.212,
      "end": 591.43,
      "text": "He agents allows you to be able to build multiple agent infrastructure where you can be talking to your AI agents using all the popular applications out there like Telegram, Discord, Slack, WhatsApp, and all the popular messaging applications",
      "source": "youtube_auto_original"
    },
    {
      "start": 591.44,
      "end": 592.336,
      "text": "that are out there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 592.336,
      "end": 603.103,
      "text": "Additionally, instead of being confined to using one particular AI model, you can use any AI model that you want. been it from OpenAI, Ben from Antropic or any other popular model that is out there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 603.103,
      "end": 606.424,
      "text": "And to install Hemisen, there are several options that are out there for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 606.424,
      "end": 613.713,
      "text": "You can install this on a Windows PC if you have a dedicated PC that you want to run this on, or you can also install this via a Linux operating system.",
      "source": "youtube_auto_original"
    },
    {
      "start": 613.713,
      "end": 616.482,
      "text": "For this setup, I'm going to be using the Linux approach.",
      "source": "youtube_auto_original"
    },
    {
      "start": 616.482,
      "end": 618.114,
      "text": "I know Linux sounds intimidating.",
      "source": "youtube_auto_original"
    },
    {
      "start": 618.114,
      "end": 619.976,
      "text": "Don't worry, I'm going to walk you through the entire step.",
      "source": "youtube_auto_original"
    },
    {
      "start": 619.976,
      "end": 629.187,
      "text": "And then once we are done with the setup, which is going to take a few minutes, everything that you're going to be doing is going to be from the dashboard that we're going to be building or also from the Telegram messaging application.",
      "source": "youtube_auto_original"
    },
    {
      "start": 629.187,
      "end": 632.925,
      "text": "So you wouldn't have to come into the terminal to do any stuff with quotes and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 632.925,
      "end": 637.902,
      "text": "But I'm going to walk you through the entire process from A to Z so that you get a breast with how this whole flow would work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 637.902,
      "end": 641.614,
      "text": "Now, if you have a PC that you can run this on, hey, you can use this as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 641.614,
      "end": 644.007,
      "text": "But in my case, for instance, I do not have a dedicated PC.",
      "source": "youtube_auto_original"
    },
    {
      "start": 644.007,
      "end": 647.38,
      "text": "So you can rent a server somewhere that you used to run this on.",
      "source": "youtube_auto_original"
    },
    {
      "start": 647.38,
      "end": 649.904,
      "text": "I personally prefer this option, but hey, it's up to you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 649.904,
      "end": 657.451,
      "text": "With using a private server is that you rent a server from a different company where you pay about $4 a month and then this server is going to be on 24/7.",
      "source": "youtube_auto_original"
    },
    {
      "start": 657.451,
      "end": 659.555,
      "text": "You do not have to worry about maintenance.",
      "source": "youtube_auto_original"
    },
    {
      "start": 659.555,
      "end": 662.617,
      "text": "You do not have to worry about internet connectivity and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 662.617,
      "end": 670.699,
      "text": "But of course, this comes for a price and that is why you have to decide if you want to run this on your personal PC that you have at home or if you want to rent a server to run this on.",
      "source": "youtube_auto_original"
    },
    {
      "start": 670.699,
      "end": 674.583,
      "text": "And for the VPS provider, my personal picks are typically Racknet and Conabo.",
      "source": "youtube_auto_original"
    },
    {
      "start": 674.583,
      "end": 688.47,
      "text": "Now, with Rocknet, for instance, you can get a server with two CPU cores, 35 GB of this space, 2 GB of RAM for about $35 a year, which amounts to about $2.9 a month, which is quite affordable for a server, considering that you do not have to worry about",
      "source": "youtube_auto_original"
    },
    {
      "start": 688.48,
      "end": 692.262,
      "text": "keeping it online 24/7, internet activity, maintenance, and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 692.262,
      "end": 694.762,
      "text": "With Rak, you pay once a year and you're basically done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 694.762,
      "end": 697.735,
      "text": "You don't need to worry about monthly payments and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 697.735,
      "end": 701.058,
      "text": "The second option that you can also go for is from Contabo.",
      "source": "youtube_auto_original"
    },
    {
      "start": 701.058,
      "end": 707.238,
      "text": "They also do have quite reliable servers and the price are also quite affordable for the specifications of the VPS that you get.",
      "source": "youtube_auto_original"
    },
    {
      "start": 707.238,
      "end": 716.47,
      "text": "So with Contabo for instance, you can get a server that has four CPU cores, 8 GB of RAM and about 100 GB of SSD disc space for about $8 a month.",
      "source": "youtube_auto_original"
    },
    {
      "start": 716.48,
      "end": 720.057,
      "text": "This one here is going to be way more sufficient for what we're going to be building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 720.057,
      "end": 723.59,
      "text": "So you can decide on either going with Raknet or going with Contabo.",
      "source": "youtube_auto_original"
    },
    {
      "start": 723.6,
      "end": 726.742,
      "text": "So I'm going to put a referral link in the description section that you can get one of these.",
      "source": "youtube_auto_original"
    },
    {
      "start": 726.742,
      "end": 729.295,
      "text": "And these videos are not sponsored by any of these companies.",
      "source": "youtube_auto_original"
    },
    {
      "start": 729.295,
      "end": 732.522,
      "text": "I'm just giving you what I typically use when I'm setting up these infrastructures.",
      "source": "youtube_auto_original"
    },
    {
      "start": 732.522,
      "end": 734.468,
      "text": "If you want to go with Raknet, just come here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 734.468,
      "end": 736.716,
      "text": "Like I said, my recommended option would be this one here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 736.716,
      "end": 737.612,
      "text": "Click on order now.",
      "source": "youtube_auto_original"
    },
    {
      "start": 737.612,
      "end": 742.901,
      "text": "And then you're going to be brought to a page where you would see the summary of the hardware specifications of your VPS that you selected.",
      "source": "youtube_auto_original"
    },
    {
      "start": 742.901,
      "end": 747.43,
      "text": "And then when you scroll down as well, you see the server label, which you can change later if you want.",
      "source": "youtube_auto_original"
    },
    {
      "start": 747.44,
      "end": 751.62,
      "text": "Now, in terms of the configuration options, I would recommend that you keep this as a default.",
      "source": "youtube_auto_original"
    },
    {
      "start": 751.62,
      "end": 755.11,
      "text": "Operating system, we're going to be using Ubuntu 2012.04.",
      "source": "youtube_auto_original"
    },
    {
      "start": 755.12,
      "end": 764.87,
      "text": "For the RAM, leave everything as a default. immedately you increase the RAM it's going to in an additional cost and that is why I would recommend that you go with the default options that is also here in terms of the location you can",
      "source": "youtube_auto_original"
    },
    {
      "start": 764.88,
      "end": 774.47,
      "text": "choose whatever location that is closest to you but what we're going to be building latency is not much of an issue so I wouldn't worry too much about having it as close to you cost leave it as a default if you take something",
      "source": "youtube_auto_original"
    },
    {
      "start": 774.48,
      "end": 784.15,
      "text": "higher you would basically pay more after that click on continue you're going to get an email that would contain all the credentials you're going to need to connect to the VPS ser and I'm going to walk you through that process as well",
      "source": "youtube_auto_original"
    },
    {
      "start": 784.16,
      "end": 792.966,
      "text": "if you want to go with a contabo option like I said this option that we have here cloudvp4 or the lowest option that they have is going to be way more powerful for what we're going to be building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 792.966,
      "end": 794.505,
      "text": "So here click on get started here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 794.505,
      "end": 796.907,
      "text": "Be careful the default is sometimes 24 years.",
      "source": "youtube_auto_original"
    },
    {
      "start": 796.907,
      "end": 799.916,
      "text": "That means that you're going to be locked with this VPS for 2 years.",
      "source": "youtube_auto_original"
    },
    {
      "start": 799.916,
      "end": 803.251,
      "text": "And of course it gets cheaper the longer the contract is going to be.",
      "source": "youtube_auto_original"
    },
    {
      "start": 803.251,
      "end": 808.23,
      "text": "But just be careful because if you go for 2 years then you are locked to pay this amount of money for 2 years.",
      "source": "youtube_auto_original"
    },
    {
      "start": 808.24,
      "end": 815.942,
      "text": "If you want to have the flexibility of cancelelling this every month then you can go for the one month option where you're going to be paying about 5.5 in my case a month.",
      "source": "youtube_auto_original"
    },
    {
      "start": 815.942,
      "end": 826.47,
      "text": "Now in terms of the region you can leave this as European Union which is the default because Contabo is in European Union with Contabo immediately you choose a different location then it would incur an additional cost but like I said",
      "source": "youtube_auto_original"
    },
    {
      "start": 826.48,
      "end": 830.054,
      "text": "earlier with what we're going to be building latency is not going to be that much of an issue.",
      "source": "youtube_auto_original"
    },
    {
      "start": 830.054,
      "end": 832.804,
      "text": "So you can leave this completely as European Union.",
      "source": "youtube_auto_original"
    },
    {
      "start": 832.804,
      "end": 839.894,
      "text": "When you scroll down for the storage you can choose SSD 100 GB which is going to be free and way more sufficient for what we want to build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 839.894,
      "end": 842.947,
      "text": "For the operating system leave this as YUbuntu which is the default.",
      "source": "youtube_auto_original"
    },
    {
      "start": 842.947,
      "end": 846.879,
      "text": "For data protection, I typically recommend that you go for the auto backup option.",
      "source": "youtube_auto_original"
    },
    {
      "start": 846.879,
      "end": 850.383,
      "text": "Sometimes I'm working with my agents and something completely gets screwed up.",
      "source": "youtube_auto_original"
    },
    {
      "start": 850.383,
      "end": 854.502,
      "text": "And then with the auto backup, it basically takes a snapshot of your VPS every day.",
      "source": "youtube_auto_original"
    },
    {
      "start": 854.502,
      "end": 863.622,
      "text": "So that means that if something goes wrong, you can always go back to about 10 days back and then you can always restore whatever image you had on that VPS for that particular day.",
      "source": "youtube_auto_original"
    },
    {
      "start": 863.622,
      "end": 873.239,
      "text": "Now this optional but like I said it's highly recommended because if you imagine if you've been building your content management system for over one year and by mistake something screws up you completely lose this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 873.239,
      "end": 879.648,
      "text": "Now to save this as well you can also configure your own auto backup which is going to take a snapshot of your VPS every day.",
      "source": "youtube_auto_original"
    },
    {
      "start": 879.648,
      "end": 888.074,
      "text": "This for instance you can build with cloth but if you don't want to do this and you want to go with contabo's default auto backup option you can choose this which would about 1.65 a month.",
      "source": "youtube_auto_original"
    },
    {
      "start": 888.074,
      "end": 891.073,
      "text": "Now additional features you can leave everything as a default.",
      "source": "youtube_auto_original"
    },
    {
      "start": 891.073,
      "end": 895.447,
      "text": "In this section here, you're going to have to put in a password where you're going to connect to the VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 895.447,
      "end": 898.875,
      "text": "Here you can generate a new password or you can put in any password that you want.",
      "source": "youtube_auto_original"
    },
    {
      "start": 898.875,
      "end": 903.351,
      "text": "This is going to be a password that you're going to have to remember because this is a password that you're going to use to connect to the VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 903.351,
      "end": 907.797,
      "text": "If you forget this password, you can go into your conso control panel and reset the password.",
      "source": "youtube_auto_original"
    },
    {
      "start": 907.797,
      "end": 909.29,
      "text": "But why go through the hassle after that?",
      "source": "youtube_auto_original"
    },
    {
      "start": 909.29,
      "end": 912.521,
      "text": "Just click on next, make the payment, and I'm going to walk you through the next steps.",
      "source": "youtube_auto_original"
    },
    {
      "start": 912.521,
      "end": 917.11,
      "text": "If you went with a racknet option after making the payments, you're going to get an email like this from Racknet.",
      "source": "youtube_auto_original"
    },
    {
      "start": 917.12,
      "end": 919.082,
      "text": "With this email, we basically going to need three things.",
      "source": "youtube_auto_original"
    },
    {
      "start": 919.082,
      "end": 922.92,
      "text": "The first thing that you're going to need is the IP address of your VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 922.92,
      "end": 927.544,
      "text": "Every VPS server has a unique IP address and they're going to provide this IP address to you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 927.544,
      "end": 933.198,
      "text": "The second thing that we're going to need is the username of the account that you use to connect to the VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 933.198,
      "end": 936.195,
      "text": "With Raknet, most of the time name is always going to be root.",
      "source": "youtube_auto_original"
    },
    {
      "start": 936.195,
      "end": 941.095,
      "text": "And then thirdly, you're going to need a password which they're also going to provide to you here called root password.",
      "source": "youtube_auto_original"
    },
    {
      "start": 941.095,
      "end": 943.215,
      "text": "And here's what they're going to provide the password to you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 943.215,
      "end": 945.674,
      "text": "All these three credentials are going to be in your email.",
      "source": "youtube_auto_original"
    },
    {
      "start": 945.674,
      "end": 953.608,
      "text": "With the SSH port, you do not have to worry about this because with most of the applications that you use to connect to the VPS server, they always default to an SSH port of three.",
      "source": "youtube_auto_original"
    },
    {
      "start": 953.608,
      "end": 960.377,
      "text": "Now, with the IP address, with username, and with a password, you would be able to connect to the VPS server, which I would walk you through in the next step.",
      "source": "youtube_auto_original"
    },
    {
      "start": 960.377,
      "end": 963.833,
      "text": "If you went for the Contabo option, you're going to get an email like this from Contabo.",
      "source": "youtube_auto_original"
    },
    {
      "start": 963.833,
      "end": 968.751,
      "text": "Mine is in German, but the layout is going to be the same irrespective of which country or which language that you have.",
      "source": "youtube_auto_original"
    },
    {
      "start": 968.751,
      "end": 971.216,
      "text": "In the email from Contabo, we're going to need two things.",
      "source": "youtube_auto_original"
    },
    {
      "start": 971.216,
      "end": 979.207,
      "text": "We're going to need on this left side here the IP address which is the unique IP address of your VPS server and we're also going to need the username with Contabo as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 979.207,
      "end": 987.926,
      "text": "The username is in most of the cases root the password they wouldn't provide the password to you in the email but this is going to be the password that you put in when you were purchasing the VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 987.926,
      "end": 995.18,
      "text": "So with the IP address with the username and with the password that you put in when you were purchasing to the VPS server we would be able to connect to the VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 995.18,
      "end": 998.206,
      "text": "And to connect to the VPS server there are several applications that are out there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 998.206,
      "end": 1006.598,
      "text": "The good news is that whether you're using a Windows operating system or you're using a Mac operating system, both do come with inbuilt applications that you can use to connect to the VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1006.598,
      "end": 1011.512,
      "text": "Using a Windows operating system, just click on the search bar and look for an application that is called Windows PowerShell.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1011.512,
      "end": 1014.813,
      "text": "And then when you click on this, this is how the Windows PowerShell application looks.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1014.813,
      "end": 1018.738,
      "text": "If you're using a macrop system, the application that you're going to be using is called terminal.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1018.738,
      "end": 1024.196,
      "text": "The commands that we're going to be using here in PowerShell are identical to what you would be using in PowerShell.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1024.196,
      "end": 1027.27,
      "text": "So you do not have to worry about differences in terms of commands.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1027.28,
      "end": 1032.155,
      "text": "To connect to the VPS server, just put in the command ssh space and then put in root.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1032.155,
      "end": 1036.855,
      "text": "Root is going to be the username of the VPS server, which is the same for Contabo and for racknet.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1036.855,
      "end": 1040.16,
      "text": "And after that, you're going to put in the IP address of your VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1040.16,
      "end": 1050.964,
      "text": "The trick here with PowerShell is that whenever you have something in the clipboard and you right click on your mouse, it basically paste whatever you have in the clipboard, which can be quite useful, especially when you are typing in passwords.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1050.964,
      "end": 1052.421,
      "text": "And after that, just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1052.421,
      "end": 1058.184,
      "text": "If this is the first time that you're connecting to the server, you're going to be asked whether you want to add this fingerprint of the server to your PC.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1058.184,
      "end": 1061.75,
      "text": "If you're sure you're connecting to the right server, just type in yes and it should be fine.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1061.76,
      "end": 1064.806,
      "text": "And after that, you're going to be prompted to put in the password of your VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1064.806,
      "end": 1068.501,
      "text": "And here, if you have a complex password, just type this password somewhere.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1068.501,
      "end": 1070.595,
      "text": "Come in here, just right click on your mouse.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1070.595,
      "end": 1073.337,
      "text": "It would paste the password into the clipboard and just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1073.337,
      "end": 1076.425,
      "text": "And then you can see that in my case, I'm connected to my VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1076.425,
      "end": 1078.754,
      "text": "So, I'm going to clear the screen by just typing clear.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1078.754,
      "end": 1080.996,
      "text": "And then we can start with the configuration process.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1080.996,
      "end": 1088.551,
      "text": "So now we connected the VPS server using the router name and root as a user is typically the highest authority on a Linux server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1088.551,
      "end": 1097.295,
      "text": "Now to install Hermes my tip for you would be not to install Hermes on the root user but create a new profile or a new user on which we're going to run this on.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1097.295,
      "end": 1103.353,
      "text": "Now this is quite helpful because then you do not have Hermes being the highest authority on your VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1103.353,
      "end": 1107.234,
      "text": "In my earlier videos, we always did this on root, which is absolutely fine.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1107.234,
      "end": 1111.451,
      "text": "But I always try to improve and bring you guys the best safety tips out there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1111.451,
      "end": 1114.579,
      "text": "And that is why we're not going to be installing Hemis this time around on root.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1114.579,
      "end": 1119.22,
      "text": "We're going to be creating a dedicated user on which we're going to install the whole Hemis application on.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1119.22,
      "end": 1122.599,
      "text": "Now, to create a new user on Linux, just use the command user space.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1122.599,
      "end": 1125.847,
      "text": "And after that, just put in the name of the user that you want to create.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1125.847,
      "end": 1127.55,
      "text": "In my case, I'm going to call this Larry.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1127.55,
      "end": 1128.402,
      "text": "So, add Larry.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1128.402,
      "end": 1132.135,
      "text": "And after that, you're going to be prompted to put in a password for this user.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1132.135,
      "end": 1133.399,
      "text": "So, I'm going to put in my password.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1133.399,
      "end": 1134.496,
      "text": "And after that, just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1134.496,
      "end": 1136.43,
      "text": "You're going to be prompted to retype the password.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1136.43,
      "end": 1138.021,
      "text": "And then after that, just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1138.021,
      "end": 1140.392,
      "text": "And then we're going to be asked if you want to put in a full name.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1140.392,
      "end": 1142.297,
      "text": "You can just skip this by pressing enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1142.297,
      "end": 1142.87,
      "text": "Room number.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1142.88,
      "end": 1143.271,
      "text": "Enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1143.271,
      "end": 1143.661,
      "text": "Phone.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1143.661,
      "end": 1144.052,
      "text": "Enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1144.052,
      "end": 1145.029,
      "text": "Just skip this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1145.039,
      "end": 1145.583,
      "text": "Home phone.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1145.583,
      "end": 1146.722,
      "text": "You can also skip this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1146.722,
      "end": 1147.455,
      "text": "You can also skip this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1147.455,
      "end": 1150.933,
      "text": "And then you're going to be prompted if the information that you have put in is correct.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1150.933,
      "end": 1152.04,
      "text": "Just press Y for yes.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1152.04,
      "end": 1153.727,
      "text": "And after that, just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1153.727,
      "end": 1156.587,
      "text": "Now, you can see that then Larry is added as a user.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1156.587,
      "end": 1164.481,
      "text": "Now, we're going to give this Larry user some pseudo privileges so that the user can be able to run some commands and install the Hemis application.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1164.481,
      "end": 1166.789,
      "text": "And to do that, we're going to use this command here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1166.799,
      "end": 1170.13,
      "text": "User mod space minus ag p sudo larry.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1170.13,
      "end": 1172.927,
      "text": "So here, just replace this Larry with your username.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1172.927,
      "end": 1174.19,
      "text": "And after that, just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1174.19,
      "end": 1176.072,
      "text": "By the way, I'm also going to provide you these commands.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1176.072,
      "end": 1178.338,
      "text": "So you do not need to type this or you do not need to remember them.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1178.338,
      "end": 1179.543,
      "text": "After that, just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1179.543,
      "end": 1183.99,
      "text": "And then we're going to get Larry now being a user with pseudo privileges.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1184.0,
      "end": 1186.099,
      "text": "I'm going to clear the screen just to make it a bit cleaner.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1186.099,
      "end": 1193.188,
      "text": "And now we're going to switch from the root user into the Larry user for us to be able to login into the Larry user that we just created.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1193.188,
      "end": 1198.904,
      "text": "And for that just use the command su space minus or hyphen space and then just type in Larry.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1198.904,
      "end": 1201.789,
      "text": "And you can see that the syntax change from root to Larry.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1201.789,
      "end": 1205.78,
      "text": "So that means that now I'm not on the root application which has the highest authority.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1205.78,
      "end": 1209.298,
      "text": "I'm now logged in into the Larry path which has this authority.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1209.298,
      "end": 1214.221,
      "text": "Now when we're connecting to the VPS server, we use the command ss space root the IP address.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1214.221,
      "end": 1225.909,
      "text": "But here as well if you want to connect to the VPS server instead of root you can use the new user that we created which is in my case Larry and then you can just put in the IP address of the VPS server then press enter put in the password that you",
      "source": "youtube_auto_original"
    },
    {
      "start": 1225.919,
      "end": 1238.07,
      "text": "created and then you see that I'm also connected to the VPS server so you can connect to the VPS server either using root and after that switching to the larger using su space minus Larry or you can also directly go into that using the",
      "source": "youtube_auto_original"
    },
    {
      "start": 1238.08,
      "end": 1239.088,
      "text": "SSH path for Larry.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1239.088,
      "end": 1243.029,
      "text": "So I'm just going to be sticking to with this because I already created a set with this here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1243.039,
      "end": 1244.996,
      "text": "I'm just going to type in clear to clear the screen.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1244.996,
      "end": 1247.466,
      "text": "And then now we can start with the Hemis installation.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1247.466,
      "end": 1251.16,
      "text": "To install Hemis, we're just going to come to the original website from Hemsus.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1251.16,
      "end": 1255.788,
      "text": "And then when you're on this page, scroll down here and then come to the install via terminal.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1255.788,
      "end": 1258.188,
      "text": "We're going to be going with the native application.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1258.188,
      "end": 1262.226,
      "text": "And here the command always starts with curl so that you are sure that you are on the right one.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1262.226,
      "end": 1264.578,
      "text": "Now click here to copy the oneline installer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1264.578,
      "end": 1274.797,
      "text": "The advantage here is that with this oneline installer, it's going to install all the dependent that required to install or to run hemis without you having to install application A, application B and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1274.797,
      "end": 1277.794,
      "text": "After that, just press enter and then the installation is going to run.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1277.794,
      "end": 1283.014,
      "text": "So, it detected that I'm running Linux and it's also going to run all the other things that are missing on my server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1283.014,
      "end": 1288.255,
      "text": "Now, here I'm being asked, do you want to install RIP for faster file search for TTS voice message?",
      "source": "youtube_auto_original"
    },
    {
      "start": 1288.255,
      "end": 1289.305,
      "text": "This would be good.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1289.305,
      "end": 1297.18,
      "text": "So, we can just type in yes that we want to install this and press enter. and then I'm going to put in a password and then press enter and then the installation is going to proceed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1297.18,
      "end": 1300.761,
      "text": "So I'm going to wait for the installation to be done and then we can continue with the build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1300.761,
      "end": 1303.173,
      "text": "All right, so the prerequisite installation is done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1303.173,
      "end": 1304.715,
      "text": "So now we can start with the setup.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1304.715,
      "end": 1307.808,
      "text": "Now for here we're going to have to choose how we want to set up Hemis.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1307.808,
      "end": 1314.575,
      "text": "I would recommend that we go with a quick setup because a full setup is going to ask us so many things that we're going to have to configure which we do not need.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1314.575,
      "end": 1316.222,
      "text": "And this is also the recommended part.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1316.222,
      "end": 1318.059,
      "text": "So just make sure that this option is selected.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1318.059,
      "end": 1320.217,
      "text": "If not, just press up and down on your keyboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1320.217,
      "end": 1324.533,
      "text": "Make sure that the pointer is on this and then press the space bar or enter key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1324.533,
      "end": 1328.111,
      "text": "Now in the next stage, we're going to have to create an account with news research.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1328.111,
      "end": 1330.693,
      "text": "If you do have an account, then you do not have to create a new one.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1330.693,
      "end": 1337.606,
      "text": "And basically, this is a step where we're going to bind this VPS or this server or this Hemis installation to our news research account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1337.606,
      "end": 1339.755,
      "text": "Now, here you can go with their free subscription.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1339.755,
      "end": 1346.93,
      "text": "Nose research does have some paid plans where you can use a pool of AI models that they have, but in my case, I'm going to be coming with my own AI model.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1346.93,
      "end": 1348.93,
      "text": "So, I'm going to go with a free option.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1348.93,
      "end": 1352.149,
      "text": "So just press control on the keyboard and click on this URL here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1352.159,
      "end": 1354.966,
      "text": "And if you do not have an account, you're going to get an option to create an account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1354.966,
      "end": 1362.06,
      "text": "But in my case, because I already have an account and I'm logged into my account, it directly brings me to a screen where I can bind my account to the setup.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1362.06,
      "end": 1363.455,
      "text": "So here, just click on connect.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1363.455,
      "end": 1366.716,
      "text": "And when this is successfully, you're going to get a notification that this has been connected.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1366.716,
      "end": 1371.695,
      "text": "And then when you come back to the Hemis installer screen, you see that it brings you to the model selection process.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1371.695,
      "end": 1377.027,
      "text": "Like I said, in my case, I'm not going to be using any of the models that no research provides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1377.027,
      "end": 1378.491,
      "text": "I'm going to bring in my own model.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1378.491,
      "end": 1382.175,
      "text": "So here you can just press enter on the keyboard to skip the model selection process.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1382.175,
      "end": 1385.546,
      "text": "In the next stage we're going to pick a few tools that you can use with her agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1385.546,
      "end": 1392.124,
      "text": "For instance, you can give your agents the options to be able to search on the internet and script data from the internet on particular websites.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1392.124,
      "end": 1396.149,
      "text": "And here for instance you can use a tool that is called fire crawl and the same applies.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1396.159,
      "end": 1401.428,
      "text": "There are other tools that you can use for image generation for text to speech for speech to text and so on.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1401.428,
      "end": 1406.21,
      "text": "So here you can just press enter to use all of these or you can also uncheck them if you do not need them.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1406.21,
      "end": 1408.433,
      "text": "In the next stage, we're going to select the terminal back end.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1408.433,
      "end": 1412.573,
      "text": "Here you can keep this as the default, which is local by just pressing on the space bar.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1412.573,
      "end": 1417.801,
      "text": "In the next stage, we're going to connect a messaging platform with which we're going to use to talk to all our AI agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1417.801,
      "end": 1424.038,
      "text": "And here, it's recommended that you set this up because we don't want to be talking to the AI agents every time through the terminal here on the VPS.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1424.038,
      "end": 1428.295,
      "text": "We want to have a simple, more friendly user interface that we can talk to the AI agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1428.295,
      "end": 1432.4,
      "text": "So, here we're going to select set up messaging, which is recommended anyway.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1432.4,
      "end": 1438.26,
      "text": "So press space bar on the keyboard and then you're going to list all the messaging platforms that are currently configured with Hemis.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1438.26,
      "end": 1440.675,
      "text": "And as you can see there are a pool of them that you can use.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1440.675,
      "end": 1442.63,
      "text": "But in this setup we're going to be going with Telegram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1442.64,
      "end": 1445.629,
      "text": "So just press down on your keyboard and then here don't press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1445.629,
      "end": 1447.59,
      "text": "If you press enter it would skip this part.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1447.6,
      "end": 1450.382,
      "text": "Press spacear on your keyboard to make sure that is checked.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1450.382,
      "end": 1452.133,
      "text": "And after that you can just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1452.133,
      "end": 1454.39,
      "text": "And then here we're going to create a telegram bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1454.4,
      "end": 1458.061,
      "text": "And this is going to be the bot with which we will talk to the agents that we're going to create.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1458.061,
      "end": 1461.997,
      "text": "For the Telegram B setup, you can either go with the automatic setup or you can also go with a manual.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1461.997,
      "end": 1467.594,
      "text": "In my case, I'm going to go with the middle option just to show you how you can do this if later you would need this for another application.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1467.594,
      "end": 1470.077,
      "text": "So for manual, just press two and then press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1470.077,
      "end": 1473.464,
      "text": "And then HS is going to ask us what is the Telegram bot token.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1473.464,
      "end": 1477.621,
      "text": "So to do that, just come to Telegram and look for a bot called BotFather.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1477.621,
      "end": 1481.923,
      "text": "So you can see that the right botfather bot has over 7 million monthly users.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1481.923,
      "end": 1484.422,
      "text": "So that you are pretty sure that you are using the right bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1484.422,
      "end": 1485.271,
      "text": "Be careful here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1485.271,
      "end": 1487.11,
      "text": "As you can see there a lot of botfather here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1487.12,
      "end": 1492.599,
      "text": "But the one that you need is this one here with a check mark here and also with over 7 million monthly users.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1492.599,
      "end": 1496.39,
      "text": "To create a new ground, use the command forward slash and then type in new bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1496.4,
      "end": 1499.354,
      "text": "And then you can press enter or you can click on the suggestion that we have here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1499.354,
      "end": 1501.309,
      "text": "Now here we're going to have to give our bot a name.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1501.309,
      "end": 1505.988,
      "text": "I'm going to call this km in my case for computer mechanic content creation OS.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1505.988,
      "end": 1511.023,
      "text": "So when you're done with the name just press enter and then you're going to be asked to put in the user of the bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1511.023,
      "end": 1523.269,
      "text": "Now very important here the username has to end with the name but and that is why I copied this because in my case I just want to call it the same name but just add the word but to it and after that just press enter and then the bot is going to be",
      "source": "youtube_auto_original"
    },
    {
      "start": 1523.279,
      "end": 1524.006,
      "text": "created for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1524.006,
      "end": 1532.88,
      "text": "Now when the bot is created the botfather is going to give you a unique key that means that you are the creator of that bot or you are basically the owner of the bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1532.88,
      "end": 1540.05,
      "text": "So I'm going to click here to copy the key because that is what the hemis installation is asking and I'm going to paste in the key here and after that just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1540.05,
      "end": 1542.233,
      "text": "Now this step is a highly recommended step.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1542.233,
      "end": 1547.85,
      "text": "Hermes is asking you, do you want to put some users who are the only people that are allowed to talk to the bot?",
      "source": "youtube_auto_original"
    },
    {
      "start": 1547.85,
      "end": 1553.49,
      "text": "Now this is very very important because if someone has the username of your bot, you don't want them to be able to talk to your bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1553.49,
      "end": 1557.998,
      "text": "And that is why we're going to tell her, hey, let me be the only one that can talk to this bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1557.998,
      "end": 1564.183,
      "text": "And the only way Hermes can know that it's you is by giving Hermes what your user ID for Telegram is.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1564.183,
      "end": 1571.352,
      "text": "And to get your Telegram user ID, we're also going to use a bot that is called user info bot which also has over 400,000 users.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1571.352,
      "end": 1573.566,
      "text": "There are a lot of other bots out there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1573.566,
      "end": 1575.573,
      "text": "So make sure that you have the right one here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1575.573,
      "end": 1578.638,
      "text": "And to get your user ID, you can just send the bot any message like hi.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1578.638,
      "end": 1581.398,
      "text": "And the bot is going to respond with your user ID.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1581.398,
      "end": 1583.254,
      "text": "So I'm going to click here to copy my user ID.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1583.254,
      "end": 1586.452,
      "text": "I'm going to come back to the terminal in Hermes installation.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1586.452,
      "end": 1589.219,
      "text": "I'm going to paste in the user ID and I'm going to press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1589.219,
      "end": 1593.066,
      "text": "And then Hermes is going to ask you if you want to set this user ID as the home channel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1593.066,
      "end": 1602.496,
      "text": "That means that in the messaging chat that you are talking to the bots, whenever the Hemis gateway is restarting or any system things are going on, you're just going to get a notification in this chat window.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1602.496,
      "end": 1604.568,
      "text": "You can type in a Y for yes and then press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1604.568,
      "end": 1609.098,
      "text": "And then you're going to be asked if you want to install the Hemis gateway as a system service.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1609.098,
      "end": 1618.515,
      "text": "This very important because whenever your VPS server restarted due to a system update or anything, the Hemis gateway is going to start automatic which is quite useful so that you do not have to start this manually.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1618.515,
      "end": 1620.441,
      "text": "Press Y for yes and then press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1620.441,
      "end": 1623.151,
      "text": "And then here you're going to be asked how do you want to run the gateway?",
      "source": "youtube_auto_original"
    },
    {
      "start": 1623.151,
      "end": 1625.852,
      "text": "In our case, we're going to go with the system service.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1625.852,
      "end": 1626.71,
      "text": "So press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1626.72,
      "end": 1631.51,
      "text": "And then I'm going to be prompted again, do you want to run and install the gateway as a background system service?",
      "source": "youtube_auto_original"
    },
    {
      "start": 1631.52,
      "end": 1634.296,
      "text": "I'm going to press Y for yes and I'm going to press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1634.296,
      "end": 1636.256,
      "text": "And then the Hemis installation is completed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1636.256,
      "end": 1642.429,
      "text": "Now very important here, we're going to have to reload our shell so that we can just type in Hemus and this will launch the Hemis application.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1642.429,
      "end": 1645.462,
      "text": "And to do that, just copy the command that they have provided for you here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1645.462,
      "end": 1648.58,
      "text": "Paste this command back in the terminal and just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1648.58,
      "end": 1650.411,
      "text": "It's basically going to restart the shell for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1650.411,
      "end": 1653.243,
      "text": "Now remember, we are basically done with the Hemis installation.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1653.243,
      "end": 1657.514,
      "text": "But in my case, I didn't select any AI model because I want to bring in my own AI model.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1657.514,
      "end": 1660.128,
      "text": "So here we're going to configure our own AI model.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1660.128,
      "end": 1665.358,
      "text": "And I'm also doing this in this way so that you guys can learn how you can add your own AI models later.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1665.358,
      "end": 1670.834,
      "text": "Now, if in future you want to add some AI models, you can basically ask your AI agents to do this for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1670.834,
      "end": 1677.394,
      "text": "But I typically do not recommend this because in most of the cases the AI model is not very smart, they basically mess up with your configuration.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1677.394,
      "end": 1680.305,
      "text": "And that is why for stuffs like that I prefer to do this on my own.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1680.305,
      "end": 1683.957,
      "text": "Now for which AI model to use this is absolutely up to you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1683.957,
      "end": 1696.549,
      "text": "But what I typically use most of the time which a lot of people do not also know is that if you do have a charge GPT subscription if you the plus account or the pro account you would be able to use an AI model from open AAI that is called Codex",
      "source": "youtube_auto_original"
    },
    {
      "start": 1696.559,
      "end": 1698.37,
      "text": "on her agent basically for free.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1698.37,
      "end": 1701.445,
      "text": "If you have the $20 plan you can use you can use this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1701.445,
      "end": 1704.155,
      "text": "If you have the pro plan you can also use this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1704.155,
      "end": 1707.728,
      "text": "I'm I'm not very sure if this is available for the Go plan.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1707.728,
      "end": 1710.048,
      "text": "In my case, most of the time I'm using the pro plan.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1710.048,
      "end": 1715.669,
      "text": "And the usage limits that you have for the pro plan is more than you would get for the $20 plan, obviously.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1715.679,
      "end": 1718.71,
      "text": "So, if you're not sure which one you need, you can go with the plus account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1718.72,
      "end": 1722.332,
      "text": "If you hit your limit, you can basically always upgrade to the pro plan.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1722.332,
      "end": 1724.93,
      "text": "Now, the is also a bit generous in terms of the token limits.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1724.93,
      "end": 1728.769,
      "text": "So, you would be able to do a lot even if you are using the $20 subscription.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1728.769,
      "end": 1731.75,
      "text": "The advantage here is that it's not basically a pay as you go.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1731.76,
      "end": 1733.756,
      "text": "Whenever your limits are done, you are done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1733.756,
      "end": 1739.511,
      "text": "You do not get any surprise bill from OPDI that hey, you've used more than your subscription allowed, so you have to pay extra.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1739.511,
      "end": 1740.389,
      "text": "That does not exist.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1740.399,
      "end": 1746.456,
      "text": "And that is why I personally go with these options because it's you don't have to worry about having a surprise bill or anything like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1746.456,
      "end": 1752.393,
      "text": "Personally, I'm on the pro plan because I have a lot of Hem setups and that is why my token usage is also very high.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1752.393,
      "end": 1763.59,
      "text": "And also for the tutorials that I create for you guys, I typically try this over 10 times and that is why I typically need a higher limit in terms of the tokens that they make available to you. when I had one Hemis account or when I had one open",
      "source": "youtube_auto_original"
    },
    {
      "start": 1763.6,
      "end": 1766.826,
      "text": "CL account, this one was way more sufficient for me.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1766.826,
      "end": 1774.725,
      "text": "Now, what people also not aware of is that if you also do have an X account, you can also use the Crog model on Hermes agents for free.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1774.725,
      "end": 1782.87,
      "text": "So whether you have a chat GPT paid account or you have a premium or paid subscription, you can use in both cases their AI models on her agent for free.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1782.88,
      "end": 1790.455,
      "text": "If you do not want any of these and probably you want a particular model like from Antropic, oo, sonet or whatever, we can also come to open router.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1790.455,
      "end": 1795.274,
      "text": "Open router has quite a pool of a models like all the popular AI models that are out there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1795.274,
      "end": 1796.518,
      "text": "You can get them on Open Router.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1796.518,
      "end": 1803.445,
      "text": "The advantage with Open Router is that they're going to give you one API key and with that API key, you can get access to all the models that are out there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1803.445,
      "end": 1807.669,
      "text": "The tricky thing that you have to take note of the fact that with Open Router is basically pay as you go.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1807.679,
      "end": 1811.551,
      "text": "It's not a case where you paid a month and then when you hit your limit, you hit your limits.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1811.551,
      "end": 1812.791,
      "text": "You basically pay as you go.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1812.791,
      "end": 1814.701,
      "text": "The more you use, the more you pay.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1814.701,
      "end": 1818.23,
      "text": "So, I mean with whatever model that you want to use is completely up to you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1818.24,
      "end": 1820.951,
      "text": "just go for the option that makes the most sense to you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1820.951,
      "end": 1825.147,
      "text": "Now, in my case, I'm going to be going with my OpenAI because I have a CHBT subscription.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1825.147,
      "end": 1827.953,
      "text": "And to use that, I'm going to clear the screen here to make it a bit cleaner.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1827.953,
      "end": 1831.038,
      "text": "Just put in a command Heis space model and then press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1831.038,
      "end": 1835.625,
      "text": "And [clears throat] this is going to load all the models that are currently available on Hemis agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1835.625,
      "end": 1841.438,
      "text": "If you do have an paid premium X account, then your option would be here, the X AI Grock.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1841.438,
      "end": 1844.506,
      "text": "The process is going to be the same irrespective of which option that you go for.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1844.506,
      "end": 1847.35,
      "text": "So, in my case, I'm going to select this by pressing the space bar.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1847.36,
      "end": 1850.878,
      "text": "And then here we're going to have the option to choose between open open AI API.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1850.878,
      "end": 1853.971,
      "text": "If you go with API then you pay as you go.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1853.971,
      "end": 1859.31,
      "text": "So the more you use the more you pay and then you would have to create a dedicated API key to collect this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1859.31,
      "end": 1861.872,
      "text": "But in our setup we're going to be using our charging subscription.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1861.872,
      "end": 1864.005,
      "text": "So I'm going to go with the open AAI codeex.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1864.005,
      "end": 1868.745,
      "text": "And to do that we're going to press control and we're going to click on this URL that is provided here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1868.745,
      "end": 1872.166,
      "text": "And in the process we're going to have to enter this code that is over here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1872.166,
      "end": 1873.75,
      "text": "So just highlight this code.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1873.76,
      "end": 1874.696,
      "text": "Very important.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1874.696,
      "end": 1876.07,
      "text": "Press control shift C.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1876.08,
      "end": 1878.04,
      "text": "Do not press Ctrl C.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1878.04,
      "end": 1886.23,
      "text": "Ctrl C in Linux cancel an application and this would quit this whole screen and that is why you press control shift C and then the link is going to bring you to this page.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1886.24,
      "end": 1889.466,
      "text": "All you're going to have to do is to just log into your OpenAI account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1889.466,
      "end": 1898.037,
      "text": "So I'm going to click here and then click on continue and then just put in the code that we copied from the PowerShell from the Hermise installation and click continue.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1898.037,
      "end": 1908.81,
      "text": "And then our CEX account or our OpenAI account is now bound to our Hemis setup and then when you come here you see that the authentication is done and then here we are being asked to select an AI model.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1908.81,
      "end": 1912.216,
      "text": "And then here you can use any of the models that you have here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1912.216,
      "end": 1920.095,
      "text": "Remember the higher the number like 5.6 takes way more tokens than 5.4 4 than 5.5, which also takes higher tokens than 5.4.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1920.095,
      "end": 1926.022,
      "text": "In my case, I go with 5.5 most of the time because it's still a very super powerful model and I always want more tokens.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1926.022,
      "end": 1931.35,
      "text": "But hey, if you are on the $100 plan and you have a lot of tokens, you can also go with a 5.6.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1931.36,
      "end": 1932.503,
      "text": "That's absolutely up to you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1932.503,
      "end": 1933.885,
      "text": "I'm going to go with 5.5 here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1933.885,
      "end": 1935.205,
      "text": "I'm going to press spacebar.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1935.205,
      "end": 1939.664,
      "text": "And then you can see that it says that my default model has been set to GPT 5.5.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1939.664,
      "end": 1951.869,
      "text": "Now before we go into the telegram to test to see if everything works from the Hemis installation and from the model configuration just type in Hemus and this is going to open what is called a Hermes terminal user interface.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1951.869,
      "end": 1957.461,
      "text": "Now it's going to be a chat box where you can basically talk to your default AI agents to make sure that everything works.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1957.461,
      "end": 1964.516,
      "text": "But a lot of people like me do not use this part because then you always have to log into your VPS come to this weird page to talk to the AI agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1964.516,
      "end": 1967.691,
      "text": "We just want to make sure that the setup works and that is why I'm coming here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1967.691,
      "end": 1972.938,
      "text": "So here I'm just going to send in a message like hi and if the agent responds then it means that the hemis installation works.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1972.938,
      "end": 1979.076,
      "text": "It also means that the AI model configuration worked and here you can see that the agent response hi what can I help you with?",
      "source": "youtube_auto_original"
    },
    {
      "start": 1979.076,
      "end": 1982.711,
      "text": "So that means that our installation worked the AI model configuration works.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1982.711,
      "end": 1993.082,
      "text": "Now to leave this screen you can press Ctrl C on your keyboard or you can also just type forward slash and type in exit and press enter and this is going to kick you out of the Hemis terminal user interface.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1993.082,
      "end": 1997.84,
      "text": "A quick word from today's sponsor, Sudalis AI, and it's worth paying attention to this one.",
      "source": "youtube_auto_original"
    },
    {
      "start": 1997.84,
      "end": 2002.23,
      "text": "Problem they are solving is that enterprises are currently drowning in disconnected AI.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2002.24,
      "end": 2005.902,
      "text": "Most companies are using AI tools that do not even talk to each other.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2005.902,
      "end": 2009.275,
      "text": "One tool does this, another does that, but nothing connects.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2009.275,
      "end": 2011.333,
      "text": "So nothing really works together.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2011.333,
      "end": 2015.001,
      "text": "Sudalis AI built a system that connects everything into one stack.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2015.001,
      "end": 2019.238,
      "text": "Check them out at sudalis.ai with all the links in the description section.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2019.238,
      "end": 2021.25,
      "text": "Thanks Sudalis AI for sponsoring this video.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2021.25,
      "end": 2023.912,
      "text": "Now we're going to come back to botfather.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2023.912,
      "end": 2029.167,
      "text": "When bot created them for us, he also gives us this URL with which we can start talking to the bots.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2029.167,
      "end": 2030.81,
      "text": "So here just click on this URL here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2030.81,
      "end": 2034.07,
      "text": "It's going to open a new chat session with the bot that was created.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2034.08,
      "end": 2035.35,
      "text": "You can just click start.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2035.35,
      "end": 2037.897,
      "text": "Now this is going to send a message like start to the bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2037.897,
      "end": 2041.669,
      "text": "But the bot doesn't respond but it doesn't understand what start means.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2041.679,
      "end": 2044.653,
      "text": "So here we're just going to send a message to the bot like hi.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2044.653,
      "end": 2047.27,
      "text": "And if everything works the bot is going to start typing it.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2047.27,
      "end": 2053.039,
      "text": "So if you see this typing symbol then it means that the bot is configured and the bot is going to respond to you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2053.039,
      "end": 2055.85,
      "text": "So the bot responded hi what can I help you with today.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2055.85,
      "end": 2058.207,
      "text": "Now we're not going to be talking to the bot in this session here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2058.207,
      "end": 2061.588,
      "text": "What we want to create is we're going to create a telegram group for our bots.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2061.588,
      "end": 2064.985,
      "text": "The reason why we're going to create a group is that we're going to have basically three topics.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2064.985,
      "end": 2069.672,
      "text": "The first topic is going to be where we're going to be talking to the bots which is going to be our orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2069.672,
      "end": 2076.906,
      "text": "And then we're going to have a second topic or a second channel which we're going to use to talk to our developer agent who is going to build the whole dashboard for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2076.906,
      "end": 2080.177,
      "text": "And then we're going to have a third channel which we're going to call studio.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2080.177,
      "end": 2083.333,
      "text": "And that is where we're going to brainstorm ideas and stuff like that with our agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2083.333,
      "end": 2088.717,
      "text": "When we are creating the group, a prerequisite to create a group is that you have to get at least two people in the group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2088.717,
      "end": 2093.494,
      "text": "So we're going to need the username of our bots so that we can add this bot to the group that we're going to create.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2093.494,
      "end": 2095.187,
      "text": "I'm going to click on the name of the bot here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2095.187,
      "end": 2098.194,
      "text": "And then here we can click to copy the username of the bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2098.194,
      "end": 2102.041,
      "text": "And after that we can close this dialogue box and then we can create this new group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2102.041,
      "end": 2107.425,
      "text": "Now to create a new group, click on the hamburger menu that you have here on the left section here and then click on new group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2107.425,
      "end": 2108.91,
      "text": "And then we're going to name the group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2108.91,
      "end": 2112.653,
      "text": "In my case, I'm going to call this KM Content OS and then click on next.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2112.653,
      "end": 2115.63,
      "text": "And then we're going to have to add at least one person to the group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2115.63,
      "end": 2117.944,
      "text": "And that is why we copy the username of our bots.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2117.944,
      "end": 2122.152,
      "text": "So I paste in the username and I'm going to click to select the bots and I'm going to click on create.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2122.152,
      "end": 2124.266,
      "text": "And then now we have our group created.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2124.266,
      "end": 2127.438,
      "text": "But like I said, we want to create different channels in this group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2127.438,
      "end": 2133.03,
      "text": "Now, we're going to have to make the bots that we added an administrator so that the bots can talk in this group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2133.04,
      "end": 2134.736,
      "text": "Click on the three dots that we have here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2134.736,
      "end": 2136.013,
      "text": "Come to group info.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2136.013,
      "end": 2136.937,
      "text": "Click on manage.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2136.937,
      "end": 2139.249,
      "text": "Come down here and click on administrators.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2139.249,
      "end": 2140.267,
      "text": "Add administrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2140.267,
      "end": 2143.775,
      "text": "We're going to select the board that we created because the board is already in that group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2143.775,
      "end": 2147.086,
      "text": "And just review the permissions that you want to give to the board and just click on save.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2147.086,
      "end": 2150.392,
      "text": "And then now you see that our bot has an admin privileges.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2150.392,
      "end": 2151.75,
      "text": "After that, click on close.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2151.76,
      "end": 2155.977,
      "text": "Now, whilst we are here, we also going to enable this aspect that I call channels.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2155.977,
      "end": 2161.404,
      "text": "So by default, Telegram doesn't enable these channels or what is called in Telegram topics for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2161.404,
      "end": 2165.883,
      "text": "So to enable this, just click on the topics section here, which is in my case by default off.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2165.883,
      "end": 2167.888,
      "text": "Click on this and then you can enable this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2167.888,
      "end": 2170.23,
      "text": "And then here you can decide the view that you want to go for.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2170.24,
      "end": 2172.307,
      "text": "In this case, I'm going to go with the tabs option here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2172.307,
      "end": 2173.633,
      "text": "And then just click on save.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2173.633,
      "end": 2175.097,
      "text": "And I'm going to click on save again.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2175.097,
      "end": 2176.63,
      "text": "And then we can now close this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2176.64,
      "end": 2178.964,
      "text": "And then immediately we do that when we enable topics.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2178.964,
      "end": 2181.074,
      "text": "You see that now we have different channels.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2181.074,
      "end": 2184.406,
      "text": "We have all channel where we going to see all the messages from all the channels.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2184.406,
      "end": 2186.243,
      "text": "And also we have the general channel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2186.243,
      "end": 2188.401,
      "text": "So first let's rename this general channel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2188.401,
      "end": 2189.861,
      "text": "Click on the three dots here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2189.861,
      "end": 2190.551,
      "text": "Come to edit.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2190.551,
      "end": 2195.537,
      "text": "And then we can call this channel orchestrator because this is the channel where we're going to talk to our main bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2195.537,
      "end": 2196.737,
      "text": "I'm going to click on save.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2196.737,
      "end": 2198.844,
      "text": "And then we're going to start talking to orchestrator here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2198.844,
      "end": 2201.218,
      "text": "So let me just send a message in the chat here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2201.218,
      "end": 2205.382,
      "text": "When I send hi and our bot is typing that means that orchestrator is in this chat.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2205.382,
      "end": 2208.069,
      "text": "So we can basically start talking to orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2208.079,
      "end": 2209.861,
      "text": "We are going to create other two channels.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2209.861,
      "end": 2211.03,
      "text": "But we are not there yet.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2211.04,
      "end": 2214.862,
      "text": "Let's just build the foundation and then when we get there, we're going to go through that process as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2214.862,
      "end": 2219.214,
      "text": "All the prompts that I'm going to be using in this build can be made available if you interested.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2219.214,
      "end": 2225.533,
      "text": "You can get this for a token of support on my website or if you are also a member of my community, you can also get this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2225.533,
      "end": 2236.096,
      "text": "If you guys want to be a member of my community, it's $10 a month and you can get basically access to all the prompts and all the templates and all the tutorials prompts that I have on my channel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2236.096,
      "end": 2238.586,
      "text": "And this goes to also support the work that I do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2238.586,
      "end": 2243.154,
      "text": "A lot of effort goes into creating all these tutorials, creating all these forms that I give to you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2243.154,
      "end": 2253.485,
      "text": "All the AI models that I also use in building these are also quite expensive and that is why I would need to get this with a token of support to help me to be able to keep bringing these tutorials to you as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2253.485,
      "end": 2256.624,
      "text": "So if you want to join my membership group, I'll be very happy to have you there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2256.624,
      "end": 2267.092,
      "text": "We also do have a telegram channel where you can basically get access to me or all the people in the community ask any questions that you want and everyone there would be happy to support you with the questions that you have.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2267.092,
      "end": 2268.633,
      "text": "And I also do create auto installers.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2268.633,
      "end": 2274.208,
      "text": "For instance, for the setup that I'm creating, I'm building an auto installer that would build the entire thing for you in less than 5 minutes.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2274.208,
      "end": 2278.632,
      "text": "And this is going to be available to people in my community or my membership as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2278.632,
      "end": 2281.466,
      "text": "Said, hey, if you want to join, I'm very happy to have you on board.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2281.466,
      "end": 2288.591,
      "text": "So, what I did now is that I moved Telegram to the left and it basically had all the prompts on the right so that we can basically copy this and it will be very easy.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2288.591,
      "end": 2293.032,
      "text": "Now, whenever you set up Hemis for the first time, the bot has no idea who you are.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2293.032,
      "end": 2298.42,
      "text": "The bot doesn't have a name. the bot has no idea how the bots can help you with with whatever you want to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2298.42,
      "end": 2302.941,
      "text": "So the first thing that I always recommend to users is hey let the bot understand who you are.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2302.941,
      "end": 2304.047,
      "text": "Give the bot a name.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2304.047,
      "end": 2308.748,
      "text": "Tell the bot your name and give the B a gist of how he or she can help you for this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2308.748,
      "end": 2311.037,
      "text": "My first point that I'm going to give to my bot is this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2311.037,
      "end": 2312.93,
      "text": "Your name is going to be orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2312.93,
      "end": 2319.519,
      "text": "You are going to be my top level coordinator for my multi- aent setup and I am the owner and I have the highest authority.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2319.519,
      "end": 2321.637,
      "text": "And then here you're going to fill in your name to the agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2321.637,
      "end": 2323.956,
      "text": "You're going to also give the agents your brand name.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2323.956,
      "end": 2329.589,
      "text": "You're going to give the agents your social media handle because remember we are creating a social media content creation machine.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2329.599,
      "end": 2332.001,
      "text": "You're going to tell the agents what your brand teaches.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2332.001,
      "end": 2336.27,
      "text": "Now, this is very important because we're going to have this dashboard that is going to create ideas for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2336.27,
      "end": 2343.109,
      "text": "And for the agents to be able to create these content creation ideas or these post ideas for you, they need to understand what you're building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2343.119,
      "end": 2345.596,
      "text": "And that is why this part here is non-negotiable.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2345.596,
      "end": 2348.583,
      "text": "You can also tell the agent what your audience is and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2348.583,
      "end": 2349.51,
      "text": "So, I'm going to copy this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2349.52,
      "end": 2350.759,
      "text": "I'm going to paste this in here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2350.759,
      "end": 2352.878,
      "text": "And I'm going to fill in the sections for my build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2352.878,
      "end": 2354.979,
      "text": "So here I bought, hey, my name is Larry.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2354.979,
      "end": 2356.677,
      "text": "My brand is computer mechanic.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2356.677,
      "end": 2358.486,
      "text": "My social handle is computer mechanic.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2358.486,
      "end": 2365.699,
      "text": "And here I teach it technical builders to build AI agents and automation, who my audience is, my voice, and my working time zone.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2365.699,
      "end": 2373.771,
      "text": "Now the working time zone, for instance, is important because when the agent is creating like Chrome jobs, then the agents will basically know when to reach you and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2373.771,
      "end": 2378.63,
      "text": "Now I'm going to send this to orchestrator to get him breast with who I am and also what we're going to be building today.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2378.64,
      "end": 2380.51,
      "text": "And then orchestrator responded, \"Hey, got it.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2380.51,
      "end": 2382.204,
      "text": "I'm orchestrator and you are Larry.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2382.204,
      "end": 2392.298,
      "text": "Your brand is computer mechanic and your content is plain direct content teaching builders to build agents and automation.\" Now, the next two prompts here are what I would recommend that you do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2392.298,
      "end": 2396.267,
      "text": "The second prompt here is basically where you're telling orchestrator to interview you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2396.267,
      "end": 2399.899,
      "text": "Now, what you give to orchestrator here is basically the backbone, the foundation.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2399.899,
      "end": 2403.159,
      "text": "But there are so much that you can let your agents learn about you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2403.159,
      "end": 2411.318,
      "text": "So just take time and give this prompt to Kasha is going to ask you some questions to understand who you are of the setup that you want to build your audience and all those things.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2411.318,
      "end": 2417.992,
      "text": "But I'm going to skip this in the tutorial because otherwise the tutorial will get lengthy because for my testing or would ask you about 10 15 questions.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2417.992,
      "end": 2421.367,
      "text": "So I would skip this just not to get the tutorial too lengthy.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2421.367,
      "end": 2424.934,
      "text": "The second thing that I would also suggest to you is this permanent operating rules.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2424.934,
      "end": 2432.591,
      "text": "Now when you are working with the agents it's always advisable to let the agents always give you a plan before they do anything they want to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2432.591,
      "end": 2437.539,
      "text": "And also when the agents are working, you always want the agents to keep you updated in the process of what they are building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2437.539,
      "end": 2442.556,
      "text": "Otherwise, sometimes you just sit in the dark and you do not know if the task is completed or the task is is done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2442.556,
      "end": 2447.395,
      "text": "And that is why I prepare always these permanent operating rules which you can also give to your agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2447.395,
      "end": 2450.971,
      "text": "It's optional for you if you want to have this this there ready for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2450.971,
      "end": 2459.323,
      "text": "I'm going to skip this part as well otherwise in my build orchestrator is always going to ask me give me a plan that I have to type a proof before he does it and this would slow down the build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2459.323,
      "end": 2461.569,
      "text": "Now we're going to start with the main hat of the build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2461.569,
      "end": 2465.196,
      "text": "We're going to tell orchestrator that hey we're going to create different agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2465.196,
      "end": 2470.102,
      "text": "We're going to create an agent like Atlas who is going to take care of content creates carousel ideas.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2470.102,
      "end": 2472.299,
      "text": "We're going to have Vera who is going to be our writer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2472.299,
      "end": 2476.728,
      "text": "We're going to have Kite who is going to be our designer and also Kite is going to be our developer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2476.728,
      "end": 2482.103,
      "text": "And we're also going to have origin who is going to be our publisher publishing things to whatever channel that we want to use.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2482.103,
      "end": 2486.897,
      "text": "And here we are basically giving orchestrator a prep or a gist of what we want to build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2486.897,
      "end": 2487.111,
      "text": "Right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 2487.111,
      "end": 2492.299,
      "text": "And we are telling orchestrator that hey you are already one of these five agents that we're going to create.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2492.299,
      "end": 2495.853,
      "text": "You are going to be the main agent and you are the one I'm talking to right now.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2495.853,
      "end": 2506.63,
      "text": "And also important I'm telling him when he is creating these profiles he shouldn't create one for himself because I did test with some AI models that created a profile for themsel as well which doesn't make sense and that is why I also tell it here that",
      "source": "youtube_auto_original"
    },
    {
      "start": 2506.64,
      "end": 2508.415,
      "text": "hey you do not need to create one for yourself.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2508.415,
      "end": 2512.755,
      "text": "So I'm going to copy this prompt and I'm going to give this to orchestrator to prep him what we're going to be building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2512.755,
      "end": 2520.895,
      "text": "I'm also telling him, hey, confirm that you understand the plan, the five rows and the profile name mapping before he even goes to change or build anything.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2520.895,
      "end": 2528.526,
      "text": "And what I like about Hermes is that whenever you send Hermes something that if he finds useful long-term, he commits this to the memory.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2528.526,
      "end": 2531.017,
      "text": "And that is why you always see this message like memory.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2531.017,
      "end": 2533.15,
      "text": "It means that something has been written to the memory.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2533.15,
      "end": 2537.591,
      "text": "And by the way, cadence is the name that I give to the content creating OS that we're going to be working on today.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2537.591,
      "end": 2543.589,
      "text": "And then he's just saying hey the five cadence rules are orchestrator which is me and then the other profiles that we're going to be creating.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2543.589,
      "end": 2547.126,
      "text": "And he's saying that you are Larry the owner and the final authority.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2547.126,
      "end": 2549.88,
      "text": "Now in the next prompt this is going to be the most important prompt.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2549.88,
      "end": 2553.772,
      "text": "This is going to be the prompt that is going to create the AI agents that we're going to need.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2553.772,
      "end": 2555.254,
      "text": "I'm going to send the prompt to orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2555.254,
      "end": 2559.265,
      "text": "So I'm telling orchestrator that hey create five persistent hemis profiles.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2559.265,
      "end": 2566.942,
      "text": "Now the reason why I use persistent is that hemis can also create agents that are basically called in to do a task and then after that they basically dead.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2566.942,
      "end": 2569.321,
      "text": "So what I want to create is that I be created permanently.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2569.321,
      "end": 2572.139,
      "text": "So that means that whenever we need them, they are going to be there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2572.139,
      "end": 2577.589,
      "text": "Now here whenever you are creating an agent always with Hermes there is always one default agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2577.599,
      "end": 2582.091,
      "text": "There's always one agent who is going to be at the top and that is typically the default agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2582.091,
      "end": 2588.55,
      "text": "And below the default agent you can have whatever number of agents that you want to have but there's always going to be one agent at the top.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2588.56,
      "end": 2596.63,
      "text": "And that is why in my setup I typically make the default agent who is at the top orchestrator and then he builds the other agents that would work under him.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2596.64,
      "end": 2599.828,
      "text": "So someone for instance asked if you can have two orchestrators.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2599.828,
      "end": 2607.432,
      "text": "In principle you can have two orchestrators that but it means that one orchestrator would have to be under the default orchestrator which you can also do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2607.432,
      "end": 2609.949,
      "text": "This is basically up to you how you want to configure this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2609.949,
      "end": 2615.495,
      "text": "Now in creating a profile for an agent you basically need to tell the agent hey what am I as an agent?",
      "source": "youtube_auto_original"
    },
    {
      "start": 2615.495,
      "end": 2622.8,
      "text": "So for all the agents we are telling orchestrator to add this information into a document that would be called their soul.md.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2622.8,
      "end": 2627.069,
      "text": "So a soul.md is a document that tells an agent hey my name is Larry.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2627.069,
      "end": 2628.088,
      "text": "This is what I do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2628.088,
      "end": 2629.743,
      "text": "This is the person that I'm working with.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2629.743,
      "end": 2631.899,
      "text": "This is the system that we are working with and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2631.899,
      "end": 2637.934,
      "text": "And that is why in this prompt for all the agents I tell orchestrator what he is supposed to put in their description.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2637.934,
      "end": 2643.941,
      "text": "So for instance for scout I'm saying hey your name is scout you are a content scout for candid studio.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2643.941,
      "end": 2649.99,
      "text": "Your job is to find fresh scroll stopping Instagram Tik Tok carousel ideas and to research facts behind them.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2650.0,
      "end": 2652.708,
      "text": "So for all the agents I'm telling them what they are going to be doing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2652.708,
      "end": 2655.561,
      "text": "And for instance Kite Kite is also going to be our designer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2655.561,
      "end": 2657.257,
      "text": "He's also going to be our engineer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2657.257,
      "end": 2660.912,
      "text": "So he has what I'm describing for Skype for him to understand what he does.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2660.912,
      "end": 2666.119,
      "text": "Now whenever you start a new chat session with an agent, they always load in their soul.md.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2666.119,
      "end": 2671.51,
      "text": "And that is why it's very advisable that we describe in detail what the agents are going to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2671.52,
      "end": 2675.383,
      "text": "Now he can change the text to whatever you want, whatever fits what you are doing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2675.383,
      "end": 2680.557,
      "text": "For instance, in my case, I said Instagram and Tik Tok, but maybe you want to have both, LinkedIn and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2680.557,
      "end": 2682.169,
      "text": "You can basically add this here as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2682.169,
      "end": 2683.396,
      "text": "So, orchestrator responded.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2683.396,
      "end": 2684.067,
      "text": "He says done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2684.067,
      "end": 2688.138,
      "text": "I have created a persistent herm profiles each with their own soul.MD.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2688.138,
      "end": 2691.044,
      "text": "And then you can see here we have scout who is Atlas.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2691.044,
      "end": 2692.462,
      "text": "We have Scribe who is Vera.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2692.462,
      "end": 2693.75,
      "text": "We have Dev who is Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2693.75,
      "end": 2695.298,
      "text": "We have Rich who is Orin.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2695.298,
      "end": 2698.415,
      "text": "And he also confirmed that the profiles indeed exist.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2698.415,
      "end": 2702.716,
      "text": "Now if you want to also confirm yourself because sometimes the agents do hallucinate.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2702.716,
      "end": 2710.315,
      "text": "It can be that the agent orchestrator told you especially if you're not using a very good model or can tell you hey I created the agents but basically they were not created.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2710.315,
      "end": 2711.864,
      "text": "So you can double check this yourself.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2711.864,
      "end": 2719.896,
      "text": "You can come into your terminal and just type in a command hemis profile list and then press enter and then this is going to list all the profiles that you have on your hemis setup.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2719.896,
      "end": 2726.161,
      "text": "So you can see that in my case I have default which is orchestrator and then we also have the four agents that we created.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2726.161,
      "end": 2728.374,
      "text": "Now here you can see that the gateways are not running.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2728.374,
      "end": 2734.579,
      "text": "Their gateways are stopped which is fine because we want the gateway only to be activated when the agents are working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2734.579,
      "end": 2737.791,
      "text": "So we verify that indeed orchestrator created all these agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2737.791,
      "end": 2740.724,
      "text": "Now this is going to be a prompt that is also very very important.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2740.724,
      "end": 2744.762,
      "text": "Now in this prompt I'm telling orchestrator to define this for each agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2744.762,
      "end": 2748.225,
      "text": "Now I want every agent to have their own dedicated memory.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2748.225,
      "end": 2750.15,
      "text": "Imagine you have five agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2750.16,
      "end": 2752.375,
      "text": "Every agent has their own particular role.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2752.375,
      "end": 2757.249,
      "text": "It's going to be a mess if all these agents are sharing one file for their memory.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2757.249,
      "end": 2761.315,
      "text": "So agents always write long-term stuffs into a file that is called memory.mmd.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2761.315,
      "end": 2764.572,
      "text": "So if all the five agents are using one file, it's going to be a mess.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2764.572,
      "end": 2771.67,
      "text": "Now that means that orchestrator is going to dump his long-term memory in there very it's going to dump her long-term memory stuff in there and it's going to be a mess.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2771.68,
      "end": 2775.305,
      "text": "And additionally, this is going to make the memory file very very heavy.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2775.305,
      "end": 2778.892,
      "text": "And remember, the bigger the memory MD file, the more tokens that you use.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2778.892,
      "end": 2785.773,
      "text": "And that is why I typically like to go with a dedicated memory for every agent so that every agent writes own stuff into their own lane.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2785.773,
      "end": 2791.589,
      "text": "And every agent is also going to have their unique identity, their dedicated folders and role boundaries.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2791.599,
      "end": 2796.353,
      "text": "So here we are telling every agent to only do stuffs that are within their role.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2796.353,
      "end": 2806.009,
      "text": "So for instance, if I go to my agent who does my research like Scout and I tell Scout, hey build me a dashboard, and Scout will tell me, hey, no, probably you should talk to Jeff because he's a developer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2806.009,
      "end": 2817.75,
      "text": "Now this is quite important because for instance imagine that you have an agent who is your finance and this agent maybe has access to your PayPal has access to your stripe and stuff like that and you give your finance agent the particular rules",
      "source": "youtube_auto_original"
    },
    {
      "start": 2817.76,
      "end": 2821.278,
      "text": "that he's supposed to work with maybe don't withdraw money from my account and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2821.278,
      "end": 2833.109,
      "text": "So finance agents knows these rules but if another agent comes in and does that particular thing and the agent doesn't even know what the rules that you give to finance is then the agent can basically mess up your setup and that is why I always have this",
      "source": "youtube_auto_original"
    },
    {
      "start": 2833.119,
      "end": 2845.109,
      "text": "sort of role boundaries where every agent understands what their particular role is and then here orchestrator is working on that as well for us and here orchestrator is done as well all the agents have their dedicated memory and",
      "source": "youtube_auto_original"
    },
    {
      "start": 2845.119,
      "end": 2853.19,
      "text": "he also created dedicated folders for all the agents and he also tested the role boundaries for instance he asked Vera, Vera, can you write a code for me?",
      "source": "youtube_auto_original"
    },
    {
      "start": 2853.2,
      "end": 2856.223,
      "text": "And then Vera responded, hey, that is Kite's department.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2856.223,
      "end": 2860.456,
      "text": "And he also asked Kite's ver research and kite responded that is Atlas department.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2860.456,
      "end": 2862.55,
      "text": "So that means that the role boundaries are working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2862.56,
      "end": 2865.626,
      "text": "Now in the next step, we're going to create a project folder that is going to host our project.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2865.626,
      "end": 2869.37,
      "text": "And very important, we're going to create the agents login database system.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2869.37,
      "end": 2873.817,
      "text": "Now, whenever the agents are performing a task, we want them to log whatever they do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2873.817,
      "end": 2876.542,
      "text": "So we're going to build sort of an agent login database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2876.542,
      "end": 2881.647,
      "text": "The idea here is that before an agent sends you a message that, hey, I'm done with this task.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2881.647,
      "end": 2886.813,
      "text": "The agent is going to log their name into the list, they're going to log exactly a description of what they did.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2886.813,
      "end": 2892.234,
      "text": "They also going to log the time stamp that they did this and they're also going to write the AI model that they use for that particular task.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2892.234,
      "end": 2895.545,
      "text": "And then we're going to do this using what is called an SQL lightsaber.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2895.545,
      "end": 2900.504,
      "text": "We're going to build a small database server on our server where the agents are going to log all the activities.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2900.504,
      "end": 2903.418,
      "text": "For instance, when we come to the dashboard I'm going to be building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2903.418,
      "end": 2908.686,
      "text": "When you come to the agents tab, you can see that we have this heat map where we see when every agent was active.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2908.686,
      "end": 2913.424,
      "text": "And here for instance, the agents also post the work that they did, the most recent work that they did.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2913.424,
      "end": 2916.243,
      "text": "So this gives you full transparency of what the agents are doing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2916.243,
      "end": 2920.749,
      "text": "So that if an agent is stuck somewhere, then you know that the agent for instance didn't perform that task.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2920.749,
      "end": 2923.106,
      "text": "And by the way, this is the dashboard that we're going to be building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2923.106,
      "end": 2928.239,
      "text": "And for that, I'm going to give this prompt to orchestrator to build this agent login database system for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2928.239,
      "end": 2931.268,
      "text": "So orchestrator is done with the agent login database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2931.268,
      "end": 2939.374,
      "text": "And he also did a smoke test where we can see dev built the cadence store the AI model that he used and the state that he's completed and when he performed this task.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2939.374,
      "end": 2942.124,
      "text": "Now remember we have created a base but the agents do not know.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2942.124,
      "end": 2945.423,
      "text": "So currently it's only orchestrator that knows that such a database exists.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2945.423,
      "end": 2956.286,
      "text": "So we're going to have to roll this out to all the agents and then we are telling the orchestrator hey save this operating rule in your own memory and then first distribute it to Atlas Vera and all the other agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2956.286,
      "end": 2958.394,
      "text": "And this is the instruction that we are giving to them.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2958.394,
      "end": 2964.862,
      "text": "Before sending any response, log what you did into the kid into the cadence runs table by running this command.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2964.862,
      "end": 2969.708,
      "text": "So that's going to be the command that you're going to run to basically insert what they did into the database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2969.708,
      "end": 2976.059,
      "text": "I'm going to copy this and I'm going to send this to install this to make sure that all the agents are aware of the setup that we did.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2976.059,
      "end": 2981.91,
      "text": "And after that I'm also going to tell him hey have every agent run a smoke test so that they lock something into the database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2981.92,
      "end": 2986.7,
      "text": "Now this would help us for us to know that all the agents have access to this database that we created.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2986.7,
      "end": 2992.702,
      "text": "Now when the agents are working sometimes you get a prompt like this where you're going to have to allow them to be able to run some commands.",
      "source": "youtube_auto_original"
    },
    {
      "start": 2992.702,
      "end": 3001.142,
      "text": "In my case you can either go with allow once allow only for this particular session or you can also allow this always so that they don't ask you this every time and then that is also done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3001.142,
      "end": 3010.71,
      "text": "So he also did a smoke test where all the five agents that we have performed the smoke test where they just completed the AI model that they used and the time that he performed and the date and time that he performed this",
      "source": "youtube_auto_original"
    },
    {
      "start": 3010.72,
      "end": 3011.013,
      "text": "task.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3011.013,
      "end": 3013.852,
      "text": "Now we're going to move in to one of the major parts.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3013.852,
      "end": 3024.39,
      "text": "So currently you can see that we are sending all our messages in the orchestrator channel because so far we've been working with orchestrator but now we're going to move into the aspect where we're going to start building the dashboard and for that",
      "source": "youtube_auto_original"
    },
    {
      "start": 3024.4,
      "end": 3025.796,
      "text": "we're not going to be using orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3025.796,
      "end": 3033.562,
      "text": "We're going to have a dedicated agent kite who is our designer and our developer who is going to be creating the dashboard for us because he's going to be our developer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3033.562,
      "end": 3041.288,
      "text": "We're also going to have a third channel which we're going to call studio and that is going to be the channel we're going to use to brainstorm ideas on new content to create and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3041.288,
      "end": 3047.272,
      "text": "Now, by default, the issue is that Telegram doesn't allow you to use one bot token to talk to several bots.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3047.272,
      "end": 3049.443,
      "text": "So, with Telegram, one bot, one token.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3049.443,
      "end": 3056.063,
      "text": "So, if we want to create another dedicated Telegram channel where we're going to talk to Kite, then we basically can't use orchestrators B token.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3056.063,
      "end": 3059.109,
      "text": "We have to create a dedicated bot token for kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3059.119,
      "end": 3064.608,
      "text": "Now, there are workarounds around this like I did in my earlier video where we basically created a router plugin.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3064.608,
      "end": 3074.47,
      "text": "So what the router basically does is that whenever you send a message in a channel it first goes through that single B token and the router determines hey this is a message that is coming from orchestrator's channel so let me send",
      "source": "youtube_auto_original"
    },
    {
      "start": 3074.48,
      "end": 3084.71,
      "text": "this to orchestrator the same thing that also happens for instance if you have an agent that is called a message comes from that scribe telegram channel then it goes to your same bin and then the router determines hey this is coming",
      "source": "youtube_auto_original"
    },
    {
      "start": 3084.72,
      "end": 3094.075,
      "text": "from thread 4 because every channel has their dedicated ID so with that ID the router is able to determine where the message is coming from and then it routes it to that particular agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3094.075,
      "end": 3097.522,
      "text": "Now, this is quite useful if you have different channels that you want to create.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3097.522,
      "end": 3099.458,
      "text": "But in our setup, we're going to create only three channels.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3099.458,
      "end": 3105.17,
      "text": "So, I'm going to show you another workar around because with every tutorial, I try to bring in a new flavor so you guys can learn also new things as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3105.17,
      "end": 3110.908,
      "text": "So, what we're going to do in this setup is that we're going to create another bot token exclusively for kites.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3110.908,
      "end": 3117.66,
      "text": "So, that means that every message that goes through this particular gateway or this particular telegram bot token would go directly to kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3117.66,
      "end": 3119.635,
      "text": "But then we have another challenge.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3119.635,
      "end": 3126.408,
      "text": "So by default whenever you create channels in telegram all the messages that we create in these channels are going to go through one bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3126.408,
      "end": 3137.351,
      "text": "So which is now our case every message is going to go through orchestrator but which doesn't make sense right we want orchestrator to only listen in a particular channel and we also want kite to only listen in the channel that we'll create for him.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3137.351,
      "end": 3144.65,
      "text": "So what we're going to do is we're going to tell orchestrator to build sort of a plug-in where orchestrator would only listen in the channels that are dedicated to him.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3144.65,
      "end": 3148.497,
      "text": "So orchestrator would never listen in the channel that we would create for Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3148.497,
      "end": 3150.492,
      "text": "And the same thing also applies to Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3150.492,
      "end": 3153.28,
      "text": "Kite would only listen to his channel that we'll create for him.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3153.28,
      "end": 3154.475,
      "text": "This would all make sense soon.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3154.475,
      "end": 3154.863,
      "text": "Trust me.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3154.863,
      "end": 3156.449,
      "text": "Because this is very very complex.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3156.449,
      "end": 3162.256,
      "text": "I typically like to brief the agents whenever we want to create something complex for them to know what is coming.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3162.256,
      "end": 3166.052,
      "text": "So here I'm sending this message to prep him on what we want to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3166.052,
      "end": 3168.687,
      "text": "So I'm telling Oka, hey, we're going to build something together.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3168.687,
      "end": 3182.87,
      "text": "The goal is that kite by default is going to build our studios dashboard and I want to talk to this engineer directly in his own group where he would have his own bot and his own identity and then I'm explaining to why we need a second bot",
      "source": "youtube_auto_original"
    },
    {
      "start": 3182.88,
      "end": 3186.711,
      "text": "and you can also read this to understand basically the reason why we need the second bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3186.711,
      "end": 3191.27,
      "text": "So I'm basically telling him hey this is what we're going to build so that can understand what we going to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3191.28,
      "end": 3199.494,
      "text": "Now, whilst orchestrator is working on this, we're going to have to create a second bot token for Kite because remember that Kite would need his own dedicated bot token.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3199.494,
      "end": 3205.336,
      "text": "Orchestrator responded that he understands the goal is that Kite has his own Telegram presence where we can speak to him directly.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3205.336,
      "end": 3208.027,
      "text": "But we first going to have to create this bot for Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3208.027,
      "end": 3213.233,
      "text": "And to do so, we're going to come back to our bot fer that we used to create the first B that we have forestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3213.233,
      "end": 3214.847,
      "text": "And we're going to create a second bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3214.847,
      "end": 3218.323,
      "text": "So, just type in new bot just like we did for the first time for orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3218.323,
      "end": 3221.105,
      "text": "And we're going to call this bot km kite content.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3221.105,
      "end": 3222.862,
      "text": "Let me call this content kites.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3222.862,
      "end": 3223.198,
      "text": "Right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 3223.198,
      "end": 3224.703,
      "text": "And I'm going to copy the username.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3224.703,
      "end": 3225.346,
      "text": "We press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3225.346,
      "end": 3228.803,
      "text": "And just like we did earlier, I'm going to use the same name that I g.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3228.803,
      "end": 3234.081,
      "text": "But I'm just going to end with a bot because every username with telegram for a bot has to end with the name bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3234.081,
      "end": 3235.367,
      "text": "And I'm going to press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3235.367,
      "end": 3237.71,
      "text": "And then we get a dedicated token for bot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3237.71,
      "end": 3241.258,
      "text": "Remember this was the token that we had for orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3241.258,
      "end": 3243.887,
      "text": "And we have now create a dedicated token for kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3243.887,
      "end": 3248.048,
      "text": "So we're going to have to add this bottle for kites also to our hemis setup.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3248.048,
      "end": 3250.47,
      "text": "And to do that I created this command for you here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3250.48,
      "end": 3250.953,
      "text": "Come here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3250.953,
      "end": 3252.041,
      "text": "Copy this command here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3252.041,
      "end": 3253.991,
      "text": "Come back into your terminal instance.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3253.991,
      "end": 3255.032,
      "text": "Let me clear the screen.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3255.032,
      "end": 3255.661,
      "text": "Very important.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3255.661,
      "end": 3257.022,
      "text": "Make sure that you're not on root.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3257.022,
      "end": 3260.511,
      "text": "You are on Larry or the new user that you created and just paste in this command.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3260.511,
      "end": 3263.196,
      "text": "Now this command is going to ask you to put in the bot token.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3263.196,
      "end": 3267.984,
      "text": "So I'm just going to run the command here and then it's going to tell you hey paste your kite token and press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3267.984,
      "end": 3269.543,
      "text": "So I'm going to come back to Telegram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3269.543,
      "end": 3270.71,
      "text": "I'm going to click here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3270.72,
      "end": 3272.447,
      "text": "Make sure that you are copying the one for kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3272.447,
      "end": 3273.701,
      "text": "I'm going to click to copy this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3273.701,
      "end": 3274.681,
      "text": "I'm going to minimize this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3274.681,
      "end": 3277.467,
      "text": "I'm going to come back to the and I'm going to right click to paste this in.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3277.467,
      "end": 3278.803,
      "text": "And then the key is pasted here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3278.803,
      "end": 3280.445,
      "text": "And after that, I'm just going to press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3280.445,
      "end": 3283.628,
      "text": "And this is going to save the keys into our dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3283.628,
      "end": 3285.291,
      "text": "So, let's go back into our setup.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3285.291,
      "end": 3287.109,
      "text": "And then let's go into our group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3287.119,
      "end": 3293.97,
      "text": "And then I'm going to tell the I have created this B token for Kite and I have also added the B token myself in this space here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3293.97,
      "end": 3300.398,
      "text": "So, I'm telling him to verify that the token that I have added exist and also to do a few sanity checks to make sure that it would work for Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3300.398,
      "end": 3303.451,
      "text": "I'm going to copy this and I'm going to send this to orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3303.451,
      "end": 3313.43,
      "text": "And also what is quite useful and what I always recommend to you guys is that whenever you're giving your agent a complex tax that you're not sure if the agents would be able to pull this off, you can always give the agents reference",
      "source": "youtube_auto_original"
    },
    {
      "start": 3313.44,
      "end": 3314.043,
      "text": "to the hemis.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3314.043,
      "end": 3322.466,
      "text": "So for instance, if I'm telling you, hey, if you are unsure, please look into the hemis in this part here so that the agents would basically understand how he's supposed to build this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3322.466,
      "end": 3324.543,
      "text": "Then I get this command approval from orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3324.543,
      "end": 3325.623,
      "text": "I'm going to click on always.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3325.623,
      "end": 3328.4,
      "text": "And then orchestrator said, hey, step one is completed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3328.4,
      "end": 3333.115,
      "text": "He's verified that the token that we added exists and he's also saying that hey the bot is live.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3333.115,
      "end": 3335.996,
      "text": "We can basically send stats to him to directly message Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3335.996,
      "end": 3339.267,
      "text": "Now what we're going to do now is that we're going to create the channels that we need.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3339.267,
      "end": 3340.668,
      "text": "So we're going to create one channel for Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3340.668,
      "end": 3346.9,
      "text": "We're going to create one channel as well for studio which we're going to use for the brainstorming before we even bring Kite into that chat.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3346.9,
      "end": 3349.267,
      "text": "So to do that we're going to click on the three dots here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3349.267,
      "end": 3351.155,
      "text": "You wouldn't see the option to create a group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3351.155,
      "end": 3354.385,
      "text": "So we're going to come back to all and then you're going to click on the three dots here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3354.385,
      "end": 3355.791,
      "text": "Then you're going to create a topic.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3355.791,
      "end": 3357.13,
      "text": "Now you're going to have to give the topic a name.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3357.13,
      "end": 3359.175,
      "text": "In our case, I'm going to call this kite, right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 3359.175,
      "end": 3362.933,
      "text": "And because kite is going to be a developer, let me just give him a laptop icon.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3362.933,
      "end": 3364.638,
      "text": "And after that, just click on create.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3364.638,
      "end": 3370.32,
      "text": "Now, whenever you are creating a new topic, before topic can be activated, you're going to have to send a message in that topic.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3370.32,
      "end": 3378.986,
      "text": "For this topic that we are creating, we're going to need the thread ID for this topic because it is with this ID that orchestrator would bind this topic exclusively to kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3378.986,
      "end": 3386.728,
      "text": "So to kick off this group, I'm just going to copy this prompt here and I'm going to send this immediately to orchestrate that hey, what is this topic's thread ID?",
      "source": "youtube_auto_original"
    },
    {
      "start": 3386.728,
      "end": 3387.83,
      "text": "You can send it any message.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3387.83,
      "end": 3393.792,
      "text": "We could have sent in hi just to create the channel and then we could follow up with a message like what is the topic thread of this ID.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3393.792,
      "end": 3396.306,
      "text": "I'm also going to show you that other approach as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3396.306,
      "end": 3397.446,
      "text": "Now kite is created.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3397.446,
      "end": 3399.27,
      "text": "We have the telegram topic ID.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3399.28,
      "end": 3400.571,
      "text": "We have the thread ID.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3400.571,
      "end": 3403.505,
      "text": "Come back to all and then here click on create topic.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3403.505,
      "end": 3405.99,
      "text": "And then we're going to create the next topic which is going to be the studio.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3406.0,
      "end": 3411.141,
      "text": "Now remember the studio is where we're going to be brainstorming ideas on new content, promos, ideas and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3411.141,
      "end": 3416.489,
      "text": "So I'm going to call this idea with this icon here and I'm going to click on create and to trigger and create this as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3416.489,
      "end": 3422.47,
      "text": "I'm just going to use a welcome message like hey what is the topic ID of this group and then here as well we're going to get a response.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3422.48,
      "end": 3429.246,
      "text": "Now remember we have created kites but still it's orchestrator that we are talking to because kite hasn't even been added to this group yet.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3429.246,
      "end": 3429.537,
      "text": "Right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 3429.537,
      "end": 3437.451,
      "text": "So all the messages that you are seeing here the thread the response to the thread ID for kite the response ID for studio all of this is still coming from orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3437.451,
      "end": 3438.685,
      "text": "So now we have the thread ID.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3438.685,
      "end": 3442.352,
      "text": "So we're going to send a message to orchestrator that hey now we have the thread ids.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3442.352,
      "end": 3444.468,
      "text": "So we want you to wire our telegram group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3444.468,
      "end": 3447.708,
      "text": "I'm going to give orchestrator telegram group ID of our current group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3447.708,
      "end": 3450.564,
      "text": "And I'm also going to give him the thread ids of all the channels.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3450.564,
      "end": 3453.343,
      "text": "So he would have the thread ID of where I'm talking to him.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3453.343,
      "end": 3455.246,
      "text": "He would have the thread ID for kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3455.246,
      "end": 3457.556,
      "text": "He would also have the thread ID for the studio group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3457.556,
      "end": 3461.989,
      "text": "And then only with this he would be able to bind the channels to the particular agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3461.989,
      "end": 3472.71,
      "text": "So for orchestrator would have access to this channel that we are talking to him and orchestrator would also have access to the studio channel because that is what we going to he's the boss and basically we will be brainstorming the ideas with him on the",
      "source": "youtube_auto_original"
    },
    {
      "start": 3472.72,
      "end": 3479.834,
      "text": "studio channel but kite would only listen in this channel and kite would have no access to the orchestra channel and also to the kite channel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3479.834,
      "end": 3483.792,
      "text": "I'm going to open notepad and I'm going to paste in this prompt because we're going to change a few things in there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3483.792,
      "end": 3486.525,
      "text": "The first thing that we're going to need is the telegram group ID.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3486.525,
      "end": 3488.274,
      "text": "Now to get your telegram group ID.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3488.274,
      "end": 3493.074,
      "text": "We're going to use the same bot that we used to fetch our telegram ID called user infobot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3493.074,
      "end": 3498.069,
      "text": "So when this opens, click on forum down here and select the group that you just created.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3498.079,
      "end": 3499.852,
      "text": "In my case, this is KM content.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3499.852,
      "end": 3501.91,
      "text": "And then when you click on this, just press send.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3501.92,
      "end": 3504.863,
      "text": "And then the bot will send you the ID of the Telegram group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3504.863,
      "end": 3506.333,
      "text": "You can click on here to copy this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3506.333,
      "end": 3509.655,
      "text": "And I'm just going to replace this with this section here called Telegram ID.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3509.655,
      "end": 3513.239,
      "text": "In the next stage, we're going to fill in the thread ID for the three channels.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3513.239,
      "end": 3515.726,
      "text": "And for that, I'm going to come back into our Telegram group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3515.726,
      "end": 3519.904,
      "text": "But in most of the cases, the first channel that you create always has a thread ID one.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3519.904,
      "end": 3522.47,
      "text": "So most likely orchestrator would reply that is one.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3522.48,
      "end": 3524.535,
      "text": "But just to be sure, let me just ask him this as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3524.535,
      "end": 3528.118,
      "text": "Okay, she responded that his thread ID is one because that is that was created.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3528.118,
      "end": 3529.283,
      "text": "So I'm going to put in one here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3529.283,
      "end": 3530.574,
      "text": "I'm going to go to kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3530.574,
      "end": 3531.191,
      "text": "Kite was 36.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3531.191,
      "end": 3535.841,
      "text": "I'm going to put in 30 and I'm going to come to studio and studio is 40.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3535.841,
      "end": 3537.455,
      "text": "And then basically we're done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3537.455,
      "end": 3540.563,
      "text": "Only these are the four parameters that you're going to have to fill in in this prompt.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3540.563,
      "end": 3541.998,
      "text": "And after that, copy the message.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3541.998,
      "end": 3542.593,
      "text": "Very important.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3542.593,
      "end": 3553.75,
      "text": "Don't do this in studio or kite. do this in orchestrator's channel and then paste this message and send this message to orchestrator to basically implement the topic lane agents binding and he orchestrator responds hey I've saved the",
      "source": "youtube_auto_original"
    },
    {
      "start": 3553.76,
      "end": 3563.43,
      "text": "four lane members to memory and completed the save part but there is an issue that he's having he's not able to run this command to restart the gateway so he's telling us if we can run this for him so I'm just going to copy the",
      "source": "youtube_auto_original"
    },
    {
      "start": 3563.44,
      "end": 3572.069,
      "text": "command here I'm going to come back to my terminal let me just clear the screen to make it a bit cleaner and I'm going to paste in this command here very very important again make sure that if you created a new user you are on the new",
      "source": "youtube_auto_original"
    },
    {
      "start": 3572.079,
      "end": 3574.336,
      "text": "user not your root account and and press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3574.336,
      "end": 3579.47,
      "text": "And then it happened as well when I was testing this that you get this response failed to connect to bus.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3579.47,
      "end": 3585.473,
      "text": "So just copy everything here and then come to telegram and then tell okay I got this error and just paste it.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3585.473,
      "end": 3586.727,
      "text": "Oops, I think I didn't copy it.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3586.727,
      "end": 3590.164,
      "text": "Well, let me come back into PowerShell control shift C to copy this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3590.164,
      "end": 3592.789,
      "text": "I'm going to come back to Telegram and I'm going to paste this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3592.799,
      "end": 3596.917,
      "text": "And then he would basically correct this and give me another command that I can use to fix this issue.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3596.917,
      "end": 3598.163,
      "text": "And I should have found this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3598.163,
      "end": 3600.931,
      "text": "He says the error means your shell didn't use a bus environment.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3600.931,
      "end": 3602.949,
      "text": "So he's basically giving me another command to run.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3602.949,
      "end": 3605.634,
      "text": "So I'm going to copy this and I'm going to clear the screen again.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3605.634,
      "end": 3607.003,
      "text": "I'm going to paste in this new command.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3607.003,
      "end": 3607.794,
      "text": "I'm going to press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3607.794,
      "end": 3611.374,
      "text": "And then you see that immediately I get a notification that my gateway is restarting.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3611.374,
      "end": 3615.27,
      "text": "So that means that the command is so it took a few seconds for everything to complete.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3615.28,
      "end": 3617.674,
      "text": "So just be a bit more patient when you see this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3617.674,
      "end": 3618.839,
      "text": "So I'm going to copy this here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3618.839,
      "end": 3622.63,
      "text": "Control shift C and I'm going to send this orchestrator it worked out.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3622.64,
      "end": 3624.135,
      "text": "This is the message I got.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3624.135,
      "end": 3629.749,
      "text": "So you see that when I sent it to immediately orchestrator, he didn't respond because the gateway I think was still booting all the agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3629.749,
      "end": 3635.655,
      "text": "So sometimes when you restart a gateway immediately it takes a while for all the gateways for the agents to get restarted.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3635.655,
      "end": 3639.51,
      "text": "So when you send this immediately and you do not see a response just be a bit more patient.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3639.52,
      "end": 3647.105,
      "text": "And here just as a tip when you come back into your terminal and you type in hemis profile list and enter you would see that now we have two gateways running.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3647.105,
      "end": 3651.738,
      "text": "Initially we only had the default gateway that was running and the gateway for dev was stopped.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3651.738,
      "end": 3656.16,
      "text": "But now you can see that we have another gateway that we have built for kite which is running.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3656.16,
      "end": 3660.152,
      "text": "So what we're going to do now is we're going to have to add kite into this group that we have created.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3660.152,
      "end": 3665.429,
      "text": "And to do that we're going to come to botfather click on the URL that he gave to us to be able to fetch the ID for kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3665.429,
      "end": 3670.407,
      "text": "Click on the name and then we're going to click to copy the of kite and then we're going to come back into our group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3670.407,
      "end": 3671.211,
      "text": "I'm going to go to all.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3671.211,
      "end": 3674.464,
      "text": "I'm going to click on the three dots here and go to view group info.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3674.464,
      "end": 3683.277,
      "text": "And then here I'm going to click on manage and I'm going to come to members down here and I'm going to click on add members and I'm going to put in the username of kitespot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3683.277,
      "end": 3686.003,
      "text": "And I'm going to select this and I'm going to click on add.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3686.003,
      "end": 3688.36,
      "text": "And then now Kite is added to this group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3688.36,
      "end": 3691.517,
      "text": "We also have to make Kite an administrator for him to be able to work here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3691.517,
      "end": 3694.527,
      "text": "Still on the all tab, I'm going to click on the three dots.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3694.527,
      "end": 3695.838,
      "text": "I'm going to come to manage group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3695.838,
      "end": 3699.697,
      "text": "Then I'm going to come to administrator and I'm going to click on add administrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3699.697,
      "end": 3701.199,
      "text": "I'm going to add Kite there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3701.199,
      "end": 3702.549,
      "text": "Review the permissions.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3702.559,
      "end": 3704.283,
      "text": "If you're fine with that, just click on save.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3704.283,
      "end": 3705.811,
      "text": "And then we can close this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3705.811,
      "end": 3707.662,
      "text": "So now we have added Kite to the group.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3707.662,
      "end": 3713.186,
      "text": "So what we're going to do now, we're going to come into Kite's channel and we're going to send a message like who are you?",
      "source": "youtube_auto_original"
    },
    {
      "start": 3713.186,
      "end": 3719.117,
      "text": "And this is the part that always gets me nervous because that is the point that you see if the agent to channel binding works.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3719.117,
      "end": 3722.649,
      "text": "If everything works, we are supposed to see a message from Kite that I am Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3722.649,
      "end": 3724.648,
      "text": "So let's see if this is going to work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3724.648,
      "end": 3725.217,
      "text": "Perfect.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3725.217,
      "end": 3726.568,
      "text": "I'm a bit relieved.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3726.568,
      "end": 3728.032,
      "text": "So here Kite responded.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3728.032,
      "end": 3730.721,
      "text": "I'm Kite Laris Cadence designer and engineer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3730.721,
      "end": 3734.13,
      "text": "Now just to make sure that the other parts are working, I'm also going to send this to orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3734.13,
      "end": 3736.862,
      "text": "And if this should respond that he is orchestrator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3736.862,
      "end": 3739.762,
      "text": "So if Kite is responding in the shadow, then we are screwed up.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3739.762,
      "end": 3745.112,
      "text": "Let me do the same thing for studio just to be on the safe side that we have the right agents behind these channels.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3745.112,
      "end": 3745.481,
      "text": "Great.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3745.481,
      "end": 3750.626,
      "text": "So in orchestrator's channel he still responded I'm orchestrator which means that this is working very well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3750.626,
      "end": 3752.742,
      "text": "Kite if you remember also responded he is kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3752.742,
      "end": 3756.57,
      "text": "And then now when I go to studio orchestrator also responded orchestrator is there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3756.57,
      "end": 3759.53,
      "text": "So that means that the telegram channel to agent binding work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3759.53,
      "end": 3766.684,
      "text": "Kite is never going to listen in orchestrator's channel and orchestrator would also not listen to ka's channel and that's exactly what we want.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3766.684,
      "end": 3777.03,
      "text": "So now that we have all the core aspects of the framework that we need ready, her message agent is ready, orchestrator is fully set up and kite our developer is also set up, group is ready, we can now start with the build",
      "source": "youtube_auto_original"
    },
    {
      "start": 3777.04,
      "end": 3777.753,
      "text": "of the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3777.753,
      "end": 3783.635,
      "text": "Now with the entire build of the dashboard, we're going to be using Kite who is basically playing the role of a designer and also our developer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3783.635,
      "end": 3792.504,
      "text": "And before we even let Kite start building the dashboard, we're going to have to brief Kite on the whole thing that we want to build from the beginning to the end and a concept that we have for what we're building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3792.504,
      "end": 3796.418,
      "text": "And for that I'm going to give Kite this prompt here as a briefing to know what we want to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3796.418,
      "end": 3800.565,
      "text": "So I just sent this to Kite and in the process I'll be explaining to you guys what I just sent to Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3800.565,
      "end": 3805.915,
      "text": "I'm telling Kite, hey before we even write any single line of code, here is the whole picture of what we building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3805.915,
      "end": 3810.53,
      "text": "So I'm telling Kite we're building a premium content automation studio with a beautiful web dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3810.53,
      "end": 3812.752,
      "text": "I'm telling Kite how the whole process is going to work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3812.752,
      "end": 3823.99,
      "text": "So we're going to have Atlas who is going to be our researcher. basically go and propose some ideas and then we will promote one as a user and then Vera would write the content of the slides and after this is done Kite who is also",
      "source": "youtube_auto_original"
    },
    {
      "start": 3824.0,
      "end": 3837.029,
      "text": "our developer and our designer would fit this content into one of the templates that we would pick and then we would render that template from an HTML document into an image with about 10 1080 to 1350p and then Orin who is going",
      "source": "youtube_auto_original"
    },
    {
      "start": 3837.039,
      "end": 3846.15,
      "text": "to be our publisher would publish this to any network that we want to build this on and I'm also telling Sky that we're going to set this on a small Python server which is going to be on dashboard and also very important I'm",
      "source": "youtube_auto_original"
    },
    {
      "start": 3846.16,
      "end": 3855.349,
      "text": "telling Kai that we're going to give him or a template that we're going to be working with and I want this template to be the design source of truth because I don't want him to change anything that we're going to be putting in the",
      "source": "youtube_auto_original"
    },
    {
      "start": 3855.359,
      "end": 3861.942,
      "text": "template and also a few things that I'm giving him that I want to have a backup protocol and also some principles of how the whole build is going to be.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3861.942,
      "end": 3865.774,
      "text": "So Kite responded that hey understood here is the plan in my own words.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3865.774,
      "end": 3877.444,
      "text": "Candice is a complete content automation studio with a polished web dashboard as a control interface and he's basically just repeating all the things that we told Kite in the sequence how the whole flow is going to work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3877.444,
      "end": 3880.797,
      "text": "So Kite is basically ready to fill in to build the dashboard with us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3880.797,
      "end": 3887.022,
      "text": "So in the next stage we're going to tell Kite to build the Python back end on which this web dashboard is going to be running on.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3887.022,
      "end": 3889.349,
      "text": "I'm going to give this prompt here to get that ready.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3889.359,
      "end": 3893.479,
      "text": "I'm telling Kai that hey we're going to build this dashboard in a way that is going to be very secured.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3893.479,
      "end": 3897.361,
      "text": "So for the first part we're going to be setting this thing on what is called SSA tunneling.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3897.361,
      "end": 3906.0,
      "text": "So that means that whenever you want to connect to the dashboard you're going to use a command like SS minus N minus L this port here and at the end you're going to put in your username and your IP address.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3906.0,
      "end": 3907.349,
      "text": "But I'm going to show you how this would work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3907.359,
      "end": 3913.225,
      "text": "Now the reason why we are using this in the first place is that the web dashboard is not going to be available to the public internet.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3913.225,
      "end": 3918.495,
      "text": "It's only someone who knows the password of your VPS server that would be able to connect to the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3918.495,
      "end": 3920.146,
      "text": "And that is why it makes it so secured.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3920.146,
      "end": 3925.286,
      "text": "But even after we are done with the build, we're going to be installing tails skill that will save the dashboard for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3925.286,
      "end": 3930.526,
      "text": "Now tail skill is one of the most solid security setups that we can use to get our dashboard online.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3930.526,
      "end": 3933.885,
      "text": "So for the first time, we're going to use SSH tunneling to access the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3933.885,
      "end": 3938.15,
      "text": "But when we are done, we're going to be installing tail skill which is going to host the whole thing for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3938.16,
      "end": 3945.315,
      "text": "And the best thing about tail skill is that we would then be able to access the dashboard on any PC that is running our tail skill account or even on your mobile phone.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3945.315,
      "end": 3945.772,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3945.772,
      "end": 3946.444,
      "text": "So kite is done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3946.444,
      "end": 3952.802,
      "text": "He set up the back end that we used to run the dashboard and he also gave us the SSH tunnel command that we're going to use to access the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3952.802,
      "end": 3957.009,
      "text": "So what we're going to have to do is to just copy this command that Kite has provided for us here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3957.009,
      "end": 3961.283,
      "text": "We're going to go back into PowerShell and then in PowerShell just put in this command ssh minus L.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3961.283,
      "end": 3963.743,
      "text": "This is the port that we use to save the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3963.743,
      "end": 3971.785,
      "text": "This is the security end and also this is the your username which in my case I created a new username if you remember called Larry and this is the IP address of the VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3971.785,
      "end": 3974.47,
      "text": "Now here I'm going to put in my password and then just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3974.48,
      "end": 3976.248,
      "text": "Now it's going to bring you to this point here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3976.248,
      "end": 3977.979,
      "text": "It's going to be a ca just blinking.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3977.979,
      "end": 3980.882,
      "text": "That means that you are connected to the back end of the VPS server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3980.882,
      "end": 3987.67,
      "text": "So what we're going to do now is we're going to open a browser and then just as Kite gave to us, he says that we should open this URL on our browser.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3987.68,
      "end": 3988.996,
      "text": "We're going to copy this URL here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3988.996,
      "end": 3990.906,
      "text": "We're going to paste this in here and press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3990.906,
      "end": 3993.062,
      "text": "And then you see that we are connected to the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3993.062,
      "end": 3996.667,
      "text": "But because we do not have anything there yet, that is why we get this error response.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3996.667,
      "end": 3999.714,
      "text": "But in principle, we are connected to the back end of the Python server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 3999.714,
      "end": 4004.79,
      "text": "Now what we're going to do is in the next thing we're going to have to put something on the dashboard for us to see basically what we're building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4004.79,
      "end": 4007.731,
      "text": "And for that we're going to tell Kite to create a web upload page.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4007.731,
      "end": 4012.943,
      "text": "Now in this web upload page we're going to upload all the files that is going to save the template of what we want to build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4012.943,
      "end": 4020.299,
      "text": "I'm going to copy this prompt to Kite and I'm going to send this to Kite to build the upload point where we can upload all the dashboard stuffs that we need.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4020.299,
      "end": 4027.927,
      "text": "And this would contain the HTML template to the dashboard and all the the slides that we're going to be using when we building these carousel slides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4027.927,
      "end": 4030.921,
      "text": "Whilst Kite is building that, let me show you how the template looks.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4030.921,
      "end": 4035.51,
      "text": "So this is the empty template that we're going to give to Kite to upload on the dashboard for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4035.52,
      "end": 4038.198,
      "text": "So we see that we have the content tab which is a bit populated.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4038.198,
      "end": 4039.551,
      "text": "The idea tab looks empty.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4039.551,
      "end": 4041.27,
      "text": "The studio tab also looks empty.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4041.27,
      "end": 4042.457,
      "text": "Everything looks empty.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4042.457,
      "end": 4048.503,
      "text": "But once he's done, he's going to basically add this to the back end and then we're going to populate this dashboard template as we build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4048.503,
      "end": 4049.048,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4049.048,
      "end": 4049.801,
      "text": "So Kite is done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4049.801,
      "end": 4054.381,
      "text": "He's built the back end which we're going to use to upload all the files that he would need to build the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4054.381,
      "end": 4056.038,
      "text": "And he gave us this URL here for that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4056.038,
      "end": 4057.19,
      "text": "So I'm going to copy the URL.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4057.2,
      "end": 4059.661,
      "text": "I'm going to open the browser and I'm going to paste in this URL.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4059.661,
      "end": 4062.39,
      "text": "Hopefully, we have a web upload upload dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4062.4,
      "end": 4063.794,
      "text": "Okay, so this is working quite well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4063.794,
      "end": 4068.487,
      "text": "So, he built the cadence upload back end and he's telling us that he expects four files.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4068.487,
      "end": 4075.245,
      "text": "So, the template, so the HTML templates and three JSON files which are going to be the templates of the carousel slides and for the reuse.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4075.245,
      "end": 4080.292,
      "text": "So, I uploaded all the four files that are required and also this is confirmed on the dashboard that these four files are saved.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4080.292,
      "end": 4087.083,
      "text": "So the next point what I'm going to tell Kite is that hey I have uploaded all the four files that are required to build the templates to build the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4087.083,
      "end": 4091.915,
      "text": "So I want him to serve these files on the Python temp so that we can actually see that this is working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4091.915,
      "end": 4103.669,
      "text": "So what we're basically telling Kite in this prompt is that the file that we upload the template is called cadence dashboard template.html but I want him to rename this to index.html into the dedicated folder that we have created",
      "source": "youtube_auto_original"
    },
    {
      "start": 4103.679,
      "end": 4105.147,
      "text": "for the dashboard that we're going to be building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4105.147,
      "end": 4113.749,
      "text": "And also very very important at least in my case if you want to change the templates then you don't need to give Kite this instruction but what I'm telling Kite is that hey this is going to be the design source of truth.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4113.759,
      "end": 4123.11,
      "text": "So whenever he's building anything he should always check for the template to make sure that he hasn't made any design changes to the temp so that whatever he's going to be building is going to be identical to what we have in the",
      "source": "youtube_auto_original"
    },
    {
      "start": 4123.12,
      "end": 4134.309,
      "text": "templates. on telling him that hey the template contains basically mock values like hardcoded stuff so that nothing basically looks empty but those numbers that we have on the templates are going to be replaced with real metrics once we",
      "source": "youtube_auto_original"
    },
    {
      "start": 4134.319,
      "end": 4143.11,
      "text": "start building the dashboard and this one of the nice things not that I like about Hermes so what you can see here for instance is that he's done with basically the work that we give to him and you can see that he's using an",
      "source": "youtube_auto_original"
    },
    {
      "start": 4143.12,
      "end": 4155.59,
      "text": "inbuilt browser to check to see if everything that is there is correct so he's clicking and taking browser snapshots he's clicking different sections and taking snapshots of that aspect just to be sure that whatever he did is identical to what is in the",
      "source": "youtube_auto_original"
    },
    {
      "start": 4155.6,
      "end": 4155.877,
      "text": "template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4155.877,
      "end": 4160.309,
      "text": "And this is one of the main reasons why I really like working with Hemis because I build dashboards a lot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4160.319,
      "end": 4166.644,
      "text": "And if the agents or Hemis allows the agent to be able to work with a headless browser to be able to see what it's building, this is really cool.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4166.644,
      "end": 4167.131,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4167.131,
      "end": 4168.402,
      "text": "So Kite says he's done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4168.402,
      "end": 4172.986,
      "text": "He says the template is logged in but is partially complete because there's one file that is missing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4172.986,
      "end": 4177.127,
      "text": "So when I look here, he says that he didn't find the templates packed because it's false zero.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4177.127,
      "end": 4178.709,
      "text": "Let me see why this is the case.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4178.719,
      "end": 4180.231,
      "text": "So it could be that our upload didn't work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4180.231,
      "end": 4183.678,
      "text": "So he's saying that we should re-upload this file through the upload point.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4183.678,
      "end": 4187.446,
      "text": "So I'm going to put in this here again and I'm going to re-upload the templates pack.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4187.446,
      "end": 4190.934,
      "text": "So I'm going to tell Kite I have re-upload templates pack.json.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4190.934,
      "end": 4192.175,
      "text": "Can you confirm?",
      "source": "youtube_auto_original"
    },
    {
      "start": 4192.175,
      "end": 4192.795,
      "text": "Perfect.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4192.795,
      "end": 4195.546,
      "text": "So it appears that something happened the first time that I uploaded this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4195.546,
      "end": 4197.41,
      "text": "So he says that yes, he can see it now.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4197.41,
      "end": 4203.997,
      "text": "He checked the file and all the uploaded source files are now present in the folder that we require them to be which is perfect.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4203.997,
      "end": 4208.544,
      "text": "So now let's go to the dashboard and see if the dashboard is actually rendering on the Python ser.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4208.544,
      "end": 4211.75,
      "text": "So to do that we're going to use local host to do that we're going to use local host col8892.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4211.76,
      "end": 4218.57,
      "text": "The 8892 is the part of the server and the local host is basically the local area on our server that we're going to use to access the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4218.57,
      "end": 4220.692,
      "text": "And then when I open this hopefully beautiful.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4220.692,
      "end": 4223.737,
      "text": "So you can see that now we have the dashboard loaded just as we had in the template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4223.737,
      "end": 4226.635,
      "text": "So let me open the template for us to do a one is to one copy.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4226.635,
      "end": 4230.216,
      "text": "This what we had in the template and this is what is being saved on our dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4230.216,
      "end": 4233.766,
      "text": "So all the pages are identical to what we had in the template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4233.766,
      "end": 4235.24,
      "text": "So kite is doing a pretty good job.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4235.24,
      "end": 4239.59,
      "text": "Now, in the next stage, we're going to, this is one of the things that I always recommend when you're building stuffs with the agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4239.6,
      "end": 4243.456,
      "text": "Let the agents always create a copy of the dashboard before they make any changes.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4243.456,
      "end": 4250.07,
      "text": "I always say this in every video that I worked on the dashboard for several days and my agent just made a mistake and basically I lost everything.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4250.08,
      "end": 4257.345,
      "text": "And that is why it's very important that you tell your agent that, hey, before you make any changes to the dashboard, please create a copy of the dashboard and save it somewhere.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4257.345,
      "end": 4260.877,
      "text": "And also on the dashboard, we have this section here that is the version number.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4260.877,
      "end": 4264.7,
      "text": "And I want him to update a version number anytime he makes a change to the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4264.7,
      "end": 4269.51,
      "text": "So I'm going to copy this prompt and I'm going to send it to Kite to implement this and Kite is done with that as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4269.52,
      "end": 4272.012,
      "text": "So when we come to the dashboard and we reload the template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4272.012,
      "end": 4274.143,
      "text": "So we should now see that he has changed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4274.143,
      "end": 4275.522,
      "text": "So we used to have editorial.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4275.522,
      "end": 4278.417,
      "text": "Let me open the template for you to see what this looked like before.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4278.417,
      "end": 4289.35,
      "text": "So in the template in this bottom section here we used to have version 0.1 editorial and you can see that now this is updated in our version to version 0.1 which means that kite is going to keep the version update always",
      "source": "youtube_auto_original"
    },
    {
      "start": 4289.36,
      "end": 4290.543,
      "text": "updated as we move on.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4290.543,
      "end": 4292.403,
      "text": "So currently we're going to start with the build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4292.403,
      "end": 4301.644,
      "text": "So all the parameters that you see here in the content tab are basically hardcoded from the template that I built and also the all the stuffs that we have in the agents tab, the heat map, everything is hardcoded.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4301.644,
      "end": 4313.27,
      "text": "So we're going to tell Kite, we're going to give Kite a prompt to basically update the dashboard metrics that we have here and also the agents tab so that we have real data, real data from our hemis setup that we have but",
      "source": "youtube_auto_original"
    },
    {
      "start": 4313.28,
      "end": 4315.714,
      "text": "not from the hardcoded stuff that we have in the template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4315.714,
      "end": 4322.374,
      "text": "And I'm telling him that hey when you are done confirm that both tabs show the real data and the heat map matches the run table.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4322.374,
      "end": 4327.379,
      "text": "Now for the heat map all the information is going to be pulled from the agents login database that we built.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4327.379,
      "end": 4334.54,
      "text": "If you remember we built something where every agent is going to log the activity whenever they do something whenever they perform any action.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4334.54,
      "end": 4334.97,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4334.97,
      "end": 4336.327,
      "text": "So Kite is done with that as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4336.327,
      "end": 4337.499,
      "text": "Let's look at what Kite built.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4337.499,
      "end": 4338.85,
      "text": "Let's reload the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4338.85,
      "end": 4343.289,
      "text": "So here you can see that he's now pulling the real metrics from our data agent database that we built.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4343.289,
      "end": 4348.47,
      "text": "So you can see that now kite is trying to pull the real metrics from the agents login database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4348.48,
      "end": 4359.544,
      "text": "So you can see that currently in the agent workload because none of the agents have done something today that is why everything stays at zero for atlas vera and origin and kite is the only one that'll be working with today.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4359.544,
      "end": 4361.083,
      "text": "So kite is basically at 100%.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4361.083,
      "end": 4367.967,
      "text": "And the same thing when you come to the agent database you can see that everything is almost zero for all the agents because they haven't done anything today.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4367.967,
      "end": 4370.179,
      "text": "So I'm recording today on the second day.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4370.179,
      "end": 4373.725,
      "text": "So basically I would expect that there would be some metrics from the previous day.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4373.725,
      "end": 4381.619,
      "text": "So I'm going to tell Kai that hey it appears that the metrics that are being pulled are only being pulled from today but there should be some activity from the agents the previous day.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4381.619,
      "end": 4388.636,
      "text": "So he should make sure that the dashboard doesn't only reflect today but basically reflects all the data that we have in the agent login database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4388.636,
      "end": 4391.016,
      "text": "So I'm telling Kite hey this looks awesome.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4391.016,
      "end": 4391.43,
      "text": "Thanks.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4391.44,
      "end": 4395.154,
      "text": "However it appears that the agent metrics being displayed are only from today.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4395.154,
      "end": 4400.1,
      "text": "I do not see any data for instance from yesterday. even though the database should contain this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4400.1,
      "end": 4406.185,
      "text": "So he should basically investigate and see what is wrong and make sure that we are serving all the data that is currently in our agent login database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4406.185,
      "end": 4406.709,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4406.719,
      "end": 4407.733,
      "text": "So Kai says he's done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4407.733,
      "end": 4409.011,
      "text": "It appears there was an issue.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4409.011,
      "end": 4416.737,
      "text": "So he says that the real problem was there was this issue with the test server Python server that was basically deleting stuff from the production database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4416.737,
      "end": 4418.315,
      "text": "So he basically fixed this as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4418.315,
      "end": 4419.898,
      "text": "So he says that the fixes are made.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4419.898,
      "end": 4426.688,
      "text": "The test no longer touch the production database and he's basically put in some metrics some implementations to make sure that this does not happen.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4426.688,
      "end": 4431.724,
      "text": "But what I would like Kai to do here before we even proceed further, I want to be sure that this problem is fixed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4431.724,
      "end": 4442.641,
      "text": "I'm going to tell Kai that hey perform a quick end to end smoke test to all the agent trigger a few test activities and verify that the resulting data are saved in the database and also correctly reflected on the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4442.641,
      "end": 4449.602,
      "text": "If there is anything that is not there, he should fix it as well because the agent login database is going to be an integral part of what we are going to be building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4449.602,
      "end": 4457.588,
      "text": "And that is why I want to be thousand% sure that the agents are logging and also that all the things that they do also reflect here on the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4457.588,
      "end": 4461.326,
      "text": "And by the way, all these deep prompts that I'm adding, I'm going to make these available to you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4461.326,
      "end": 4466.586,
      "text": "So that should you have the same situation, you can just copy paste the prompt and give it to the agents or Kite to fix this for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4466.586,
      "end": 4467.049,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4467.049,
      "end": 4468.963,
      "text": "So Kite says he's done with the smoke test.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4468.963,
      "end": 4470.576,
      "text": "He repeated this across all the agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4470.576,
      "end": 4473.11,
      "text": "And currently you can see that all the agents completed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4473.12,
      "end": 4476.942,
      "text": "When we come back to the dashboard, you can see that now we don't have the 00 that we had.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4476.942,
      "end": 4481.59,
      "text": "We basically have metrics from all the agents that is being pulled correctly from the agent login database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4481.6,
      "end": 4483.317,
      "text": "And the same thing also applies to the heat map.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4483.317,
      "end": 4487.45,
      "text": "And when we come to the dashboard, we also see that the agents total runs are also correct.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4487.45,
      "end": 4492.226,
      "text": "There is one more thing that is not correct here which has to do with the agent workload distribution.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4492.226,
      "end": 4497.521,
      "text": "This would always have to sum up to 100 so that we can always see which agent has the most workload.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4497.521,
      "end": 4501.172,
      "text": "I'm also going to tell Kite to fix this and after that we can continue with the build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4501.172,
      "end": 4506.278,
      "text": "And for that I'm telling Kite, hey on the dashboard homepage, the agent workload share distribution does not make sense.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4506.278,
      "end": 4511.189,
      "text": "So basically I'm telling him that everything should add up to 100% but currently everything adds up to 350.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4511.199,
      "end": 4515.069,
      "text": "The idea is that whenever I look at this I'm supposed to see which agent has been more active.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4515.069,
      "end": 4517.521,
      "text": "So he should basically correct this for us as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4517.521,
      "end": 4518.965,
      "text": "And Kite has done with that as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4518.965,
      "end": 4522.883,
      "text": "So basically now when I look on the dashboard you can see that the distribution now makes sense.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4522.883,
      "end": 4530.057,
      "text": "It all adds up to 100% and I can see clearly that Kite is the most active agent because he is the one building the dashboard anyway.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4530.057,
      "end": 4539.344,
      "text": "So now the agent login database is working correctly. all the metrics that have been put on the agent tab are also making sense so we can start with the build of the other components of the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4539.344,
      "end": 4547.597,
      "text": "I'm going to explain the concept of what all the prompts are going to do and I'm going to put in all these prompts in one go so that you don't have to sit and watch me put in one after the other.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4547.597,
      "end": 4551.93,
      "text": "Now in the next prompt we're going to build an exporter and let me explain why we need this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4551.93,
      "end": 4559.303,
      "text": "So initially, previously whenever you wanted to build a carousel image like a slide or something like that, you always had to design everything in a photo editor, right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 4559.303,
      "end": 4563.001,
      "text": "And then save it, export it as a picture and then you had your carousel image.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4563.001,
      "end": 4566.341,
      "text": "But the trick what we're going to be using here is we're going to render every slide.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4566.341,
      "end": 4568.564,
      "text": "We're going to build every slide as an HTML.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4568.564,
      "end": 4573.495,
      "text": "Now, if you build a slide as an image, you pay for every image that you generate.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4573.495,
      "end": 4581.189,
      "text": "So if you want to change any text in the image, then it means that you always have to pay for API calls, which makes it not fun anymore to work on slides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4581.199,
      "end": 4582.916,
      "text": "So, we're going to build this in a smarter way.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4582.916,
      "end": 4586.929,
      "text": "What we're going to do is we're going to build every carousel as an HTML file.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4586.929,
      "end": 4592.54,
      "text": "Now, because it's going to be an HTML file, it will be very easy for us to edit any text that we want to edit.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4592.54,
      "end": 4597.549,
      "text": "And let me just go into my setup just to explain for you guys to get a concept of how we're going to build a slice.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4597.549,
      "end": 4599.37,
      "text": "So, let me take this one here for instance.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4599.37,
      "end": 4603.84,
      "text": "Everything that you are seeing here looks like an image, but it's basically not an image.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4603.84,
      "end": 4607.002,
      "text": "It's an HTML document that is rendering the file like this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4607.002,
      "end": 4612.677,
      "text": "So whenever I want to export this as an image then I'm going to deploy what is called a headless browser.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4612.677,
      "end": 4615.466,
      "text": "So a headless browser doesn't need a desktop to run.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4615.466,
      "end": 4622.121,
      "text": "It's basically going to render this file here which is basically an HTML file and then take a snapshot of what it sees.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4622.121,
      "end": 4633.765,
      "text": "So eventually all the things here that we are seeing which is rendered as a code would be then exported as a JPEG and then with that you can upload this to Instagram, Tik Tok or whatever wherever you want to build this on.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4633.765,
      "end": 4640.572,
      "text": "Now the reason why we do it in this smart way is that originally whenever you want to build any carousel slide you have to use an image generator.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4640.572,
      "end": 4645.172,
      "text": "Maybe you can use nano banana or all the AI models that are out there to generate images.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4645.172,
      "end": 4650.547,
      "text": "But when you even want to change one text then you have to tell the AI model again hey I want to change the text.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4650.547,
      "end": 4658.267,
      "text": "Maybe for instance I want to change this from most people to most users and I have to tell my a model again hey I want to change the text from most people to most users.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4658.267,
      "end": 4662.628,
      "text": "And then you pay for every edit that you do which is probably not the smartest way.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4662.628,
      "end": 4667.264,
      "text": "So how I build this and what most users are using is that you build the whole slide as an HTML file.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4667.264,
      "end": 4675.27,
      "text": "And by so doing when you can change everything that you want to do in the file without having to regenerate the prompts or regenerate some API keys.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4675.28,
      "end": 4677.858,
      "text": "So here for instance this is what our dashboard is also going to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4677.858,
      "end": 4683.88,
      "text": "When I click on fine-tune and I pick this element I can just change the text here from people to most builders, right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 4683.88,
      "end": 4690.39,
      "text": "And you see that it does I can save and rerender and then I have my new slide without me having to do any API call.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4690.4,
      "end": 4691.15,
      "text": "the same thing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4691.15,
      "end": 4692.545,
      "text": "I can change all the contents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4692.545,
      "end": 4694.634,
      "text": "This is why I really like what we're building here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4694.634,
      "end": 4695.641,
      "text": "I can change the layout.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4695.641,
      "end": 4702.398,
      "text": "I can move every content here, change the size, put it in every format that I want to do it without me having to pay for any API calls.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4702.398,
      "end": 4715.27,
      "text": "So, what we build, we're building every carousel slide as an HTML file and then when we are ready, we deploy a headless browser that looks at that HTML file we have created and creates a snapshot of as a picture that we can then upload to more",
      "source": "youtube_auto_original"
    },
    {
      "start": 4715.28,
      "end": 4716.614,
      "text": "any social media platform.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4716.614,
      "end": 4724.232,
      "text": "So we avoiding the aspect of complicating the whole carousel image design where you have to make an API call for every edit and pay for every edit.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4724.232,
      "end": 4728.147,
      "text": "We are rendering everything as an HTML file that will be completely edited.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4728.147,
      "end": 4730.525,
      "text": "Quite crazy the things that you can do with standard HTML.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4730.525,
      "end": 4734.675,
      "text": "Like you see here all these templates that you are seeing here, none of it is a picture.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4734.675,
      "end": 4741.559,
      "text": "Everything is built with standls that someone might not even believe you that this built with HTML.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4741.559,
      "end": 4753.51,
      "text": "So basically with this prompt here, what the prompt is doing is that we're going to build this setup of this headless browser that would render whatever that we build from an HTML file into an image that can be uploaded on any social media platform",
      "source": "youtube_auto_original"
    },
    {
      "start": 4753.52,
      "end": 4754.081,
      "text": "that we have.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4754.081,
      "end": 4756.562,
      "text": "So we are not building images straight ahead.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4756.562,
      "end": 4759.479,
      "text": "We build an HTML file which contains the structure that we want.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4759.479,
      "end": 4762.96,
      "text": "Then once we are satisfied with it, we export it into an image.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4762.96,
      "end": 4766.123,
      "text": "And for this we are using a headless browser that is called Chromium.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4766.123,
      "end": 4769.507,
      "text": "And by default, most of the Hemis setups come with Chromium.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4769.507,
      "end": 4771.754,
      "text": "So we might not even need to install this on our own.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4771.754,
      "end": 4775.83,
      "text": "We can just leverage what Hemis already has and then use it to build what we want to build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4775.84,
      "end": 4780.31,
      "text": "If you remember when we were building the dashboard, there was a aspect that I told you that the agents were basically.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4780.32,
      "end": 4786.315,
      "text": "So here for instance, you can see that Kite was rendering a browser where he was going to the dashboard and making sure that everything was working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4786.315,
      "end": 4787.83,
      "text": "That is the same concept I'm going to use.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4787.84,
      "end": 4791.779,
      "text": "We're going to let the designer in this case as well is going to be Kite use the same headless browser.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4791.779,
      "end": 4796.893,
      "text": "But right now he's not going to use it to check the dashboard, but he's going to use it lots of what the HTML file contains.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4796.893,
      "end": 4801.472,
      "text": "It makes it so easy to be able to build slides without having to pay for API calls every time.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4801.472,
      "end": 4803.292,
      "text": "And Kite is done with that as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4803.292,
      "end": 4810.793,
      "text": "He did a smoke test and he verified that the images were indeed being rendered from the browser into for instance here a PNG file.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4810.793,
      "end": 4814.557,
      "text": "Now in the next stage we're going to build all the things that are going to run from the back end.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4814.557,
      "end": 4823.414,
      "text": "So I'm going to explain all these backend prompts and then I'm going to give these to kites but I'm going to explain all these prompts to the point where we get to a prompt that would trigger a front-end design.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4823.414,
      "end": 4829.264,
      "text": "So when you are using the prompt everything that I say backend back end I try to add this so that you can see what to expect.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4829.264,
      "end": 4832.608,
      "text": "If it's a backend prompt then it wouldn't show anything on the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4832.608,
      "end": 4836.731,
      "text": "It's basically building the foundation on which we would build to show something on the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4836.731,
      "end": 4841.853,
      "text": "When we get to the aspect here where I write design then it means that what you going to do is going to show a design.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4841.853,
      "end": 4849.277,
      "text": "But if I get to an aspect where I realize that it's quite useful to explain I'm going to explain this to you guys as well so that you can also understand what these prompts look like.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4849.277,
      "end": 4856.052,
      "text": "And in every case I always include sort of a description to basically explain what the prompt is going to do and what you should expect.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4856.052,
      "end": 4858.094,
      "text": "So now we are done with the exporter prompt.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4858.094,
      "end": 4861.108,
      "text": "The next prompt is going to be the template packs auto fit.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4861.108,
      "end": 4866.07,
      "text": "Now whenever we are generating an idea, let me use my setup to give you a concept of what I'm doing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4866.08,
      "end": 4867.872,
      "text": "So when I click on generate ideas, let's see.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4867.872,
      "end": 4870.599,
      "text": "I already have some ideas that are already generated here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4870.599,
      "end": 4874.67,
      "text": "So let's look at for instance building a one person AI operation team.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4874.67,
      "end": 4880.609,
      "text": "Now when I like this idea and I click on promote basically I can decide on the number of slides that I want to generate.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4880.609,
      "end": 4883.893,
      "text": "So let's say for instance I want to generate six slides and I say write slides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4883.893,
      "end": 4892.762,
      "text": "What is going to happen is that Vera who is going to be our right is going to write the slides for the carousel or the content or the text for the carousel that we want to generate.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4892.762,
      "end": 4900.006,
      "text": "Now like I said all these things that Vera is going to give to us is just going to be raw text but we have to be able to insert these text into the template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4900.006,
      "end": 4908.304,
      "text": "This prompt that we're going to build here is going to build that part where it's going to take the content that has been generated by Vera and insert it into the HTML template that we have.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4908.304,
      "end": 4912.098,
      "text": "So all the templates that you see here like I said these are basically HTML templates.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4912.098,
      "end": 4917.405,
      "text": "So for instance when I look at this example here you can see that some of it have longer word characters than some.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4917.405,
      "end": 4919.58,
      "text": "So this one for instance has longer characters.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4919.58,
      "end": 4921.536,
      "text": "This has a different layout and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4921.536,
      "end": 4930.117,
      "text": "So then what is going to happen is that the back end that we're going to build is going to look at a template that you select and then adapt the text that Vera generated here to fit that template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4930.117,
      "end": 4932.324,
      "text": "And this is what I call the auto fit feature.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4932.324,
      "end": 4938.381,
      "text": "And for this to work, we have to build a render engine that is going to look at the content that Vera generated look at a destination template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4938.381,
      "end": 4941.17,
      "text": "So here for instance, if I say that, hey, I like this content.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4941.17,
      "end": 4945.644,
      "text": "When I come to approve and pick templates, then it ask me which of the templates I want to use.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4945.644,
      "end": 4955.75,
      "text": "So whenever I select the template that I want to use, then the back end that we're going to build here is going to look at the template that we selected, look at the number of words and characters that are in there and then adapt the text that",
      "source": "youtube_auto_original"
    },
    {
      "start": 4955.76,
      "end": 4957.892,
      "text": "Vera generated to fit that template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4957.892,
      "end": 4969.189,
      "text": "Now imagine that if the words that Vera generated are way longer than what the template can fit, then the carousel just becomes ugly and that is why we build this render take care of that for us and after that we're going to build a",
      "source": "youtube_auto_original"
    },
    {
      "start": 4969.199,
      "end": 4970.612,
      "text": "pipeline to talk to the crew.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4970.612,
      "end": 4980.79,
      "text": "So currently whenever I'm talking to the crew right I'm chatting with Kite able to chat with Vera I'm not able to chat to our publisher but we want to be able to chat with them from the dashboard and by chat what I mean is that when I come",
      "source": "youtube_auto_original"
    },
    {
      "start": 4980.8,
      "end": 4988.195,
      "text": "to the idea tab and I click on generate idea this sends a message to Atlas who is our research look for ideas of what we can build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4988.195,
      "end": 4995.447,
      "text": "I'm talking to Atlas through a code where I send a trigger to Atlas that hey generate some ideas and the same thing applies for all the other agents.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4995.447,
      "end": 4999.502,
      "text": "Whenever we want to publish something we're not going to come to Telegram and tell them to publish.",
      "source": "youtube_auto_original"
    },
    {
      "start": 4999.502,
      "end": 5003.729,
      "text": "We want to push a button the dashboard that is going to trigger the agent to publish the content.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5003.729,
      "end": 5006.768,
      "text": "And these are the things that prompt 17 is going to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5006.768,
      "end": 5013.99,
      "text": "It's going to build an interface where whenever we click a button on the dashboard, it sends and triggers an agent to do that particular task for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5014.0,
      "end": 5015.75,
      "text": "And then we're going to have prompt 18.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5015.76,
      "end": 5020.583,
      "text": "Prompt 18 is going to be exclusively for Atlas who is our ideas guy and our researcher.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5020.583,
      "end": 5024.755,
      "text": "And I'm basically just telling Atlas how I want the carousels to be designed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5024.755,
      "end": 5026.628,
      "text": "So here, these are just examples of what I put in.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5026.628,
      "end": 5036.263,
      "text": "I'm telling Atlas that hey whenever you're writing the carousel slides I want to have this written in plain simple language short words short sentences no hype no buzz words and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5036.263,
      "end": 5046.041,
      "text": "So this prompt is basically giving Atlas an orientation of how we want the content and also Vera who is our content writer how we want the content of the slides to look like.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5046.041,
      "end": 5049.861,
      "text": "And here we're also giving them an orientation on how he's generating an idea.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5049.861,
      "end": 5055.767,
      "text": "He should generate four ideas and basically an orientation on how we want the whole carousel slides to look like.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5055.767,
      "end": 5061.258,
      "text": "And then we're going to have this last prompt here which is going to be basically for our publisher whenever we want to publish.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5061.258,
      "end": 5071.91,
      "text": "So for instance when we come to the dashboard and I come to my studio tab for instance if I want to publish something here I'm just going to click on post and then this can be published directly to Instagram to Tik Tok or wherever you",
      "source": "youtube_auto_original"
    },
    {
      "start": 5071.92,
      "end": 5073.008,
      "text": "want to apply this to.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5073.008,
      "end": 5076.732,
      "text": "But for that as well we need to build a backend and that is what this prompt is going to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5076.732,
      "end": 5084.834,
      "text": "This prompt is going to build a backend so that whenever we trigger an upload then the upload can be pushed directly to whatever social media platform that we want to push this in.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5084.834,
      "end": 5086.433,
      "text": "So I'm going to render all these prompts.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5086.433,
      "end": 5091.212,
      "text": "The first prompt being the one that is going to take the text that has been generated and adapt it to the template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5091.212,
      "end": 5097.884,
      "text": "The next prompt which is going to be taking care of that we can use all the buttons on our dashboard to trigger an action to the agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5097.884,
      "end": 5102.027,
      "text": "The prompt 18 which is going to take care of how we want our ideas to be generated.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5102.027,
      "end": 5108.276,
      "text": "The number of ideas that we want to be generated, how we want the cast, how we want the carousel slides, the content to look like.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5108.276,
      "end": 5115.102,
      "text": "And we would also have the last prompt that is going to take care of publishing to the server or the social media platform that we want to publish this to.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5115.102,
      "end": 5116.732,
      "text": "So I'm going to run all these prompts.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5116.732,
      "end": 5121.75,
      "text": "If I get any backs, I'm going to pause and I'm going to explain this to you so that you guys can also follow what we would do there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5121.76,
      "end": 5122.057,
      "text": "Right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5122.057,
      "end": 5124.633,
      "text": "So Kite is done with processing all those prompts as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5124.633,
      "end": 5126.746,
      "text": "Like I said, I didn't have to respond to anything.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5126.746,
      "end": 5130.255,
      "text": "I just copy pasted all the prompts to Kite and he processed all the back end.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5130.255,
      "end": 5136.021,
      "text": "Now in the next stage, we're going to grab some API keys and I'm going to explain every API key and why we need that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5136.021,
      "end": 5139.024,
      "text": "The first API key that we're going to search is for publicity.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5139.024,
      "end": 5144.293,
      "text": "So perplexity is one of the AI models that you can use that is very very strong in research.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5144.293,
      "end": 5155.83,
      "text": "So I added this feature so that when you are writing a carousel and you want the agents to really use recent data then for instance you can use perplexity as a research model where Atlas is going to query perplexity to do the research",
      "source": "youtube_auto_original"
    },
    {
      "start": 5155.84,
      "end": 5158.13,
      "text": "before the contents of the slides have been written.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5158.13,
      "end": 5160.194,
      "text": "Just to give you an example of where we would need this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5160.194,
      "end": 5166.281,
      "text": "For instance, when I come to my dashboard and I click on generate ideas, you see that I have a couple of ideas that have been generated for me.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5166.281,
      "end": 5169.533,
      "text": "So for instance, let's go for the builder AI automation map.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5169.533,
      "end": 5176.92,
      "text": "Now when I want to promote this article or when I want to promote this idea into slides, I do have this option where I take research with publicity.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5176.92,
      "end": 5183.768,
      "text": "If you take research with publicity, then the agent will query publicity as a research tool to gather this information on this new idea.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5183.768,
      "end": 5191.481,
      "text": "If you do not take this article, then the agent will just do a standard web search to get ideas for this content or probably what the agent is also already trained on.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5191.481,
      "end": 5202.896,
      "text": "But if you want really research based content, then you can toggle this research perplexity and then the agents will basically do a researchbased content for the article or for the idea that you want to create.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5202.896,
      "end": 5204.95,
      "text": "So that's going to be the first key that we're going to get.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5204.96,
      "end": 5208.229,
      "text": "Now to get this, you can come to Now to get this, you can come to console.plexity.ai.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5208.239,
      "end": 5211.073,
      "text": "I'm also going to provide a link to this in the description section.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5211.073,
      "end": 5213.865,
      "text": "Then when you're here, just create an account or login if you already have one.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5213.865,
      "end": 5216.481,
      "text": "And then when you are logged in into the console, you do not have to do much here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5216.481,
      "end": 5219.274,
      "text": "You can just come to the left section here and click on API keys.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5219.274,
      "end": 5223.843,
      "text": "And then under API keys, just come to the top right section here, click on generate API key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5223.843,
      "end": 5225.83,
      "text": "And you can put in web key you want to go with.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5225.84,
      "end": 5230.593,
      "text": "For this tutorial, I'm going to call this comp mechanic tutorial test and then just click on create a key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5230.593,
      "end": 5233.451,
      "text": "And after that, you see that an API key would be generated for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5233.451,
      "end": 5237.628,
      "text": "So just copy this API key, save it in the safe space, and we're going to use this API key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5237.628,
      "end": 5240.271,
      "text": "The next stage we're going to get an API key from imageB.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5240.271,
      "end": 5242.427,
      "text": "But let me explain to you why we need this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5242.427,
      "end": 5249.345,
      "text": "So what we want to do with our setup is that we have our cadence and we want to push images from here to Instagram for an example.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5249.345,
      "end": 5249.75,
      "text": "Right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 5249.76,
      "end": 5255.486,
      "text": "The issue is that if we want to push our slides directly from cadence to we need to get Instagram API key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5255.486,
      "end": 5258.837,
      "text": "If you want to do this for Tik Tok, you need to build your own Tik Tok flow.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5258.837,
      "end": 5263.873,
      "text": "If you want to do this for Facebook, you have to create your own keys, your own flow and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5263.873,
      "end": 5265.539,
      "text": "And this is very very complex, right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 5265.539,
      "end": 5270.731,
      "text": "We're going to spend more time building those connections than basically focusing on the dashboard that we want to create.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5270.731,
      "end": 5275.338,
      "text": "So what we're going to do is that there are some platforms like buffer or metrical.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5275.338,
      "end": 5281.72,
      "text": "And what these platforms do is they have access to all the social media platforms and they have worked on all those backends for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5281.72,
      "end": 5290.79,
      "text": "So all we would have to do is to push our slides through a platform like metricle or buffer and they would push the slides to the social media platforms that we want to go to.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5290.8,
      "end": 5296.81,
      "text": "There is one c however that at least from my testing buffer doesn't allow us to push our images directly to that platform.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5296.81,
      "end": 5306.315,
      "text": "So what we're going to need is an intermediate storage where the images that we generate will be pushed to and then from there the images would go to buffer and for that we're going to need a platform called image BB.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5306.315,
      "end": 5307.366,
      "text": "Now this BB is free.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5307.366,
      "end": 5317.829,
      "text": "So what is going to happen is that whenever you push an image or whenever you push a story or a carousel from our cadence this would be first be pushed to BB and then from image they would go to Instagram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5317.829,
      "end": 5321.358,
      "text": "Now, it looks complicated from the setup that I'm explaining to you, but we're going to wire this in.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5321.358,
      "end": 5328.286,
      "text": "And when you click on post, like for instance, when I come to my dashboard here and I click on post and I choose, for instance, I want to post to Instagram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5328.286,
      "end": 5329.413,
      "text": "This is going to happen.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5329.413,
      "end": 5331.45,
      "text": "All this transfer is going to happen automatically.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5331.45,
      "end": 5334.34,
      "text": "So, you do not have to go here, push from here to here, push from here to here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5334.34,
      "end": 5336.454,
      "text": "We're going to wire in all those connections.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5336.454,
      "end": 5338.79,
      "text": "And to do that, we're going to come to image.b.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5338.8,
      "end": 5339.611,
      "text": "It's completely free.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5339.611,
      "end": 5341.153,
      "text": "So, you can just create an free account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5341.153,
      "end": 5344.897,
      "text": "And then once you create the account, come to the left section here and click on API.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5344.897,
      "end": 5346.959,
      "text": "And this brings you to the API page.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5346.959,
      "end": 5349.423,
      "text": "When you are here, just click on add API key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5349.423,
      "end": 5354.849,
      "text": "Create an API key, store the API key, and then we can proceed to the next API key that we will need.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5354.849,
      "end": 5361.11,
      "text": "Now, the next API key that we will need is the platform that is going to push our slides to the social media platform that we want to go to.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5361.12,
      "end": 5363.281,
      "text": "Now, here there are several platforms that are out there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5363.281,
      "end": 5365.913,
      "text": "As an example, we have Buffer who can do this for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5365.913,
      "end": 5368.411,
      "text": "And we also have Metro who can also do this for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5368.411,
      "end": 5369.466,
      "text": "Both of them work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5369.466,
      "end": 5374.117,
      "text": "I know that a lot of people use metrical because they have a very very powerful dashboard that they use.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5374.117,
      "end": 5386.278,
      "text": "But from my testing, I realized that for you to be able to push our slides from Cadence OS to Instagram or Tik Tok, if you want to use metrical, then we have to go for a higher payment plan.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5386.278,
      "end": 5392.772,
      "text": "It's only the advanced option where you're going to pay 43 in my case a month that would come with the metrical API.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5392.772,
      "end": 5402.912,
      "text": "So this was quite expensive for me because in my case if you really need metric code to work with kers then you would have to go with advance where you pay dollars a month a month to be able to get access to their API.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5402.912,
      "end": 5406.841,
      "text": "Remember an AP is an interface that would allow us to be able to communicate with the platform.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5406.841,
      "end": 5410.126,
      "text": "And in my case I had just two social media accounts that I was using to test.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5410.126,
      "end": 5413.751,
      "text": "So I didn't want to pay €43 a month just for two social media platforms.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5413.751,
      "end": 5423.521,
      "text": "But advantage with metricle is that you can go for instance with their starter plan where you would pay $16 a month and then you can add so many social media platforms without having to increase your pricing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5423.521,
      "end": 5432.936,
      "text": "So for instance if you have four social media platforms Tik Tok, Facebook, LinkedIn etc. you would still be paying $16 a month which I find pretty cool and I'm going to show you when I would go with metric.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5432.936,
      "end": 5437.193,
      "text": "We have another platform that is called buffer and that is what I used in what we are building with hidden.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5437.193,
      "end": 5442.665,
      "text": "Advantage with buffer is that they would allow us to be able to use their API assets even with a standard plan.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5442.665,
      "end": 5446.266,
      "text": "And I think in my case I went with the five plan which is essential right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 5446.266,
      "end": 5454.445,
      "text": "So even with this you have access to three API keys and you would be able to use this but with metrical you can only get access to the API key if you have the dollar plan.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5454.445,
      "end": 5459.187,
      "text": "But the caveat with Buffer is that every social media platform that you add you pay an extra $5.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5459.187,
      "end": 5462.669,
      "text": "So if you have Tik Tok, Facebook, Instagram it becomes $15.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5462.669,
      "end": 5466.608,
      "text": "If you add LinkedIn it becomes $20 and so it can get a bit expensive.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5466.608,
      "end": 5476.955,
      "text": "So in that case, if you don't really care about pushing directly from cadence to the social media platform, I also did add an option on the dashboard where you can basically download all the slides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5476.955,
      "end": 5478.312,
      "text": "Let me do an example here for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5478.312,
      "end": 5481.747,
      "text": "When I click on slides, you can see that the slides are downloaded here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5481.747,
      "end": 5485.415,
      "text": "When I click on this, you see that I have all the slides downloaded here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5485.415,
      "end": 5488.363,
      "text": "Let me go to thumbnails and you can see that I have all the images.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5488.363,
      "end": 5499.27,
      "text": "And what I also added for you is that you can click on caption where you're going to see the caption that is going to be required for you to post. and then you can post this yourself and in that case then probably metrical would be a best option because",
      "source": "youtube_auto_original"
    },
    {
      "start": 5499.28,
      "end": 5509.99,
      "text": "they do have for instance for the $16 plan you would be able to add more social media you can see here up to 10 brands which makes it very cool but if you really want to leverage the push from cadence directly to your social",
      "source": "youtube_auto_original"
    },
    {
      "start": 5510.0,
      "end": 5518.87,
      "text": "media platform then buffer might be a cheaper option I'm just trying to explain how you can decide on which are the platforms that you want to go for so for this example we're going to be going with Buffer because like I said I had",
      "source": "youtube_auto_original"
    },
    {
      "start": 5518.88,
      "end": 5527.729,
      "text": "only two social media accounts and I didn't want to pay €43 here for my testing so you can just create an account with whatever platform that you want to go for and then just loging into your account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5527.729,
      "end": 5538.066,
      "text": "Once you're logged in into your buffer dashboard, just come to the bottom section here where you have my organization and click on API and then here click on new key and then you can create an API key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5538.066,
      "end": 5545.525,
      "text": "Now with these three API keys from perplexity, imageb and buffer, we would be able to wire this into cadence and continue with the build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5545.525,
      "end": 5549.253,
      "text": "Now with these API keys that we have gathered, we have to store these API keys to our server.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5549.253,
      "end": 5551.43,
      "text": "And to do that, we're going to come back to PowerShell.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5551.44,
      "end": 5555.856,
      "text": "I'm going to log in back into the terminal. come back into the and I'm going to paste in this command.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5555.856,
      "end": 5567.669,
      "text": "Now this command is going to ask us for all the API keys and these are going to be secretly stored into the you can in principle just give kite directly into the API keys but this is not a recommended approach because if gets",
      "source": "youtube_auto_original"
    },
    {
      "start": 5567.679,
      "end": 5576.654,
      "text": "compromised then someone has access to your API keys and that is why whenever I'm adding API keys or secrets I prefer to do it from the rather than directly giving it to kite or telegram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5576.654,
      "end": 5580.201,
      "text": "So just press enter and then it's going to ask you for your buffer access token.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5580.201,
      "end": 5582.286,
      "text": "So here I'm going to paste in my buffer key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5582.286,
      "end": 5583.009,
      "text": "Paste this in.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5583.009,
      "end": 5584.452,
      "text": "And after that just press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5584.452,
      "end": 5587.63,
      "text": "And then it's going to ask you if your image BB API key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5587.63,
      "end": 5589.09,
      "text": "I'm going to copy this as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5589.09,
      "end": 5590.173,
      "text": "I'm going to paste this in.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5590.173,
      "end": 5590.792,
      "text": "Press enter.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5590.792,
      "end": 5593.547,
      "text": "And then the last one you're going to be asked for your perplexity.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5593.547,
      "end": 5593.777,
      "text": "Oops.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5593.777,
      "end": 5595.294,
      "text": "I realized that I made a mistake.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5595.294,
      "end": 5598.041,
      "text": "So the first one that I put in wasn't for buffer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5598.041,
      "end": 5599.156,
      "text": "It was for perplexity.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5599.156,
      "end": 5601.443,
      "text": "So I'm going to cancel this and I'm going to run this again.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5601.443,
      "end": 5602.699,
      "text": "I hope it doesn't get messed up.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5602.699,
      "end": 5604.921,
      "text": "I'm going to tell Kite in the process that I made a mistake.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5604.921,
      "end": 5606.631,
      "text": "I'm going to recall the same command that I used.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5606.631,
      "end": 5609.358,
      "text": "I'm going to press enter and then I'm going to copy the right buffer key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5609.358,
      "end": 5611.01,
      "text": "Then I'm going to copy the image PV.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5611.01,
      "end": 5613.023,
      "text": "Then I'm going to copy the Plexity API key.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5613.023,
      "end": 5614.278,
      "text": "I'm going to paste this in.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5614.278,
      "end": 5618.307,
      "text": "And then you can see that all the characters are saved and we get a notification that all done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5618.307,
      "end": 5623.43,
      "text": "So what I'm going to do now is I'm going to come to Kite and I'm going to tell Kite that hey, we've stored these three API keys.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5623.44,
      "end": 5626.377,
      "text": "He should do a smoke test to make sure that all the keys are working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5626.377,
      "end": 5628.149,
      "text": "So I'm going to copy this and I'm going to give to Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5628.149,
      "end": 5636.219,
      "text": "But because I made a mistake and did it twice, I'm going to send him a I'm going to write I did make a mistake and added it twice so you can ignore this entry.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5636.219,
      "end": 5638.124,
      "text": "Then I'm going to tell him to do a smoke test.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5638.124,
      "end": 5642.642,
      "text": "I hope that the first mistake that I did, he would be able to just rectify it and see that all the keys are working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5642.642,
      "end": 5652.337,
      "text": "Hey, if you're finding value in this content that I'm creating, hit the subscribe button, subscribe to my channel, and hit the like button for YouTube algorithm to keep pushing this video to other people that will be out there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5652.337,
      "end": 5655.153,
      "text": "It doesn't cost you anything, but it really does support my channel's growth.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5655.153,
      "end": 5664.464,
      "text": "A lot of work goes into crafting all these tutorials, creating that, creating the prompt, and that is why I'm not even able to upload a video every week because I test everything about 20 times before I push it out there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5664.464,
      "end": 5669.631,
      "text": "And that is why I have to upload videos on a bi-weekly schedule because a lot of work goes into crafting all these things.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5669.631,
      "end": 5670.705,
      "text": "And kite is done as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5670.705,
      "end": 5671.74,
      "text": "So he did a smoke test.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5671.74,
      "end": 5674.991,
      "text": "He verified that buffer works, imageb works, and perplexity works.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5674.991,
      "end": 5675.43,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5675.44,
      "end": 5677.285,
      "text": "In the next stage, we're going to put in prompt 20.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5677.285,
      "end": 5685.269,
      "text": "Prompt 20 is basically going to give us a trigger where we can publish an idea, create an idea, render a content, render a carousel and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5685.269,
      "end": 5688.38,
      "text": "So just copy this prompt here and we're going to give this as well to Kite.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5688.38,
      "end": 5688.822,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5688.822,
      "end": 5690.37,
      "text": "And Kite is done with that as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5690.37,
      "end": 5693.272,
      "text": "Now the next three prompts are basically going to be the design prompts.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5693.272,
      "end": 5697.454,
      "text": "This is going to wire the ideas tab, the promotes tab, and also the studio tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5697.454,
      "end": 5699.906,
      "text": "And after that, we're going to basically test the whole thing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5699.906,
      "end": 5702.458,
      "text": "So now we have this idea tab that has nothing there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5702.458,
      "end": 5704.407,
      "text": "We have the studio tab that has nothing there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5704.407,
      "end": 5706.47,
      "text": "We have the publish tab that also has nothing there.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5706.48,
      "end": 5707.552,
      "text": "And also the templates tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5707.552,
      "end": 5710.803,
      "text": "So what we're going to do is we're going to give Kite these prompts to wire those up.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5710.803,
      "end": 5714.452,
      "text": "And after that, we can test some functions so that you guys can see what we are building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5714.452,
      "end": 5718.46,
      "text": "So I'm going to give all these prompts to Kite sequentially and then we can go to see the test.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5718.46,
      "end": 5718.868,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5718.868,
      "end": 5721.157,
      "text": "So Kite is done with processing all those prompts.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5721.157,
      "end": 5723.232,
      "text": "Now, I know we've been building for some time now.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5723.232,
      "end": 5726.849,
      "text": "Now, let's see a real demo of the end to end to make sure that everything is working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5726.849,
      "end": 5731.834,
      "text": "So, I'm going to come back to the dashboard and I'm going to reload the dashboard and then let's go to the ideas tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5731.834,
      "end": 5737.35,
      "text": "Now, I see that Kite did a smoke test where he tested one agent tonight before you trusted.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5737.36,
      "end": 5740.16,
      "text": "So, he just did a smoke test to make sure that the ideas are working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5740.16,
      "end": 5746.733,
      "text": "Now, let's click on generate ideas to see if the end to end flow with Atlas doing the research, giving us some ideas is going to work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5746.733,
      "end": 5749.317,
      "text": "So, I see a notification that he's doing the research.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5749.317,
      "end": 5750.927,
      "text": "Let's wait till the results come out.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5750.927,
      "end": 5751.922,
      "text": "And this worked very well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5751.922,
      "end": 5755.11,
      "text": "So you can see that we have four ideas that was generated by Atlas.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5755.12,
      "end": 5757.998,
      "text": "Browser agents should verify, not just click.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5757.998,
      "end": 5760.659,
      "text": "Your agent needs a sandbox before it needs more tokens.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5760.659,
      "end": 5763.189,
      "text": "Now let's say that we want to promote one of these ideas.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5763.199,
      "end": 5765.593,
      "text": "So let's go with stop giving agents your whole app.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5765.593,
      "end": 5766.87,
      "text": "And let's click on promote.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5766.88,
      "end": 5770.151,
      "text": "And then here, let's say we want to generate 10 carousel slides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5770.151,
      "end": 5772.167,
      "text": "And I'm going to say research perlexity.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5772.167,
      "end": 5779.007,
      "text": "And then here perplexity is enabled because we want to research perplexity is enabled just to make sure that we test that the API key is working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5779.007,
      "end": 5781.283,
      "text": "And I also added this option here steroid mode.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5781.283,
      "end": 5785.806,
      "text": "Now this is going to create more of like a power sort of words for the carousel slides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5785.806,
      "end": 5787.47,
      "text": "So let's just enable those two as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5787.47,
      "end": 5789.384,
      "text": "And then let's go to write 10 slides.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5789.384,
      "end": 5790.611,
      "text": "And then this is working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5790.611,
      "end": 5791.784,
      "text": "So Vera is triggered.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5791.784,
      "end": 5794.384,
      "text": "Vera is the agent that does the writing of the content.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5794.384,
      "end": 5798.284,
      "text": "So he's basically reading the idea and doing the research to make sure that everything is working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5798.284,
      "end": 5802.419,
      "text": "Doing the research to make sure that she got us all the information that we need to write that content.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5802.419,
      "end": 5802.892,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5802.892,
      "end": 5804.013,
      "text": "And Vera created the content.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5804.013,
      "end": 5806.999,
      "text": "So you can see here that we have all the 10 slides generated.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5806.999,
      "end": 5815.059,
      "text": "We have the cover text which says your agent is not dump your packet is bloated and then it basically writes all the content that would be on every slide that we have.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5815.059,
      "end": 5818.064,
      "text": "Now let's say we want to approve this and we want to promote this into a template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5818.064,
      "end": 5821.245,
      "text": "So let's click on approve and then let's pick a template in the next stage.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5821.245,
      "end": 5823.896,
      "text": "Now here we're going to be generating an Instagram carousel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5823.896,
      "end": 5825.81,
      "text": "So we need a 4 is to5 aspect ratio.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5825.81,
      "end": 5829.213,
      "text": "Let's say just for this example I'm going to go with this purple one that we have here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5829.213,
      "end": 5832.04,
      "text": "I'm going to select that and I'm going to click fit copy to this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5832.04,
      "end": 5844.129,
      "text": "Now what is going to happen is that Vera is going to check if the content the text that she generated fits the number of characters that are in that template because if the words are way more than what the template can fit then the whole design gets ugly.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5844.129,
      "end": 5854.709,
      "text": "So what Vera is going to do is Vera is going to read all the hardcoded text that are in the template and try to adapt and fit the content that she generated to that particular template and Vera basically readapted the content",
      "source": "youtube_auto_original"
    },
    {
      "start": 5854.719,
      "end": 5857.048,
      "text": "that she generated to fit the template that we have.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5857.048,
      "end": 5862.723,
      "text": "So because the template that we chose has less words in the cover, she just rewrote the package into agent.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5862.723,
      "end": 5866.987,
      "text": "Okay, package fat and then basically wrote all the content that would be on the slide.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5866.987,
      "end": 5873.188,
      "text": "Now I'm going to click on render now to push this into the studio tab so that we would see how this would look on the template that we selected.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5873.188,
      "end": 5875.116,
      "text": "Now you see a notification open in studio.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5875.116,
      "end": 5879.99,
      "text": "Now we can click open in studio here and this would open the slide that we just generated in studio.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5880.0,
      "end": 5891.99,
      "text": "Now let's click on this and you can see that just as Barard wrote agent okay packet fat packet fat bad agent run starts with too much context whole ripple noise guesses and then when you click on this you can see all the text",
      "source": "youtube_auto_original"
    },
    {
      "start": 5892.0,
      "end": 5902.95,
      "text": "that was generated so assuming maybe we don't want to go with this text here for the cover we want to just fine-tune you can click on fine-tune the slide here and this would basically load the slide here and when we click on this here just",
      "source": "youtube_auto_original"
    },
    {
      "start": 5902.96,
      "end": 5914.629,
      "text": "for an example I can write agents not the problem packet fat and then you can also move the slides up and down however you want to have them right this is all possible in the fine tune tab so I'm going to close this I'm going to discard",
      "source": "youtube_auto_original"
    },
    {
      "start": 5914.639,
      "end": 5926.149,
      "text": "the changes and then let's say we want to push this to Instagram and this is the part that makes me nervous and for that I created a dummy Instagram account called content vibe so that when we push directly from our this would come",
      "source": "youtube_auto_original"
    },
    {
      "start": 5926.159,
      "end": 5935.99,
      "text": "hopefully it would go through buffer and then this would come to this Instagram account open the package again let me click on and then here by the way you can come here and you can always change the template whenever you want to pick a",
      "source": "youtube_auto_original"
    },
    {
      "start": 5936.0,
      "end": 5941.759,
      "text": "different template you can pick whatever template that you want and then cadence would basically rewrite the content to fit that template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5941.759,
      "end": 5942.731,
      "text": "Now, let me come here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5942.731,
      "end": 5943.988,
      "text": "Let me click on post now.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5943.988,
      "end": 5947.503,
      "text": "And then here, because I've configured only Instagram, it's only going to show Instagram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5947.503,
      "end": 5949.061,
      "text": "I'm going to click on Instagram only.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5949.061,
      "end": 5951.43,
      "text": "And it's going to warn me and I'm going to get notification.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5951.44,
      "end": 5952.87,
      "text": "Hey, are you sure you want to post this?",
      "source": "youtube_auto_original"
    },
    {
      "start": 5952.88,
      "end": 5954.715,
      "text": "I'm going to say yes, post now.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5954.715,
      "end": 5956.629,
      "text": "And then this is going to be pushed to buffer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5956.639,
      "end": 5962.248,
      "text": "And hopefully, if the end to end stream works, we should see the post coming directly to Instagram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5962.248,
      "end": 5964.844,
      "text": "And we get notification that this has been pushed to buffer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5964.844,
      "end": 5965.891,
      "text": "Let's click on okay.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5965.891,
      "end": 5968.618,
      "text": "And this gets put from the studio tab into the publish tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5968.618,
      "end": 5970.038,
      "text": "Once this is pushed to buffer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5970.038,
      "end": 5972.134,
      "text": "Now let's go to Instagram and see if we'll see this post.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5972.134,
      "end": 5975.964,
      "text": "I'm going to come to my Instagram and hey you see this it posted directly to Instagram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5975.964,
      "end": 5982.302,
      "text": "So you can see this exact post that we had and generated in our cadence which is the first post that I've tested with this account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5982.302,
      "end": 5986.97,
      "text": "And then you can see that all the text came just as we rendered them on the cadence website.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5986.97,
      "end": 5992.521,
      "text": "And then here as well we have the text that was generated also by the AI for the description section.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5992.521,
      "end": 5993.811,
      "text": "So this is working very well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5993.811,
      "end": 5998.772,
      "text": "Now when I come back to the studio tab and I go to the published I should see oh so this is not working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 5998.772,
      "end": 6002.552,
      "text": "So it renders that we have one all but I do not see the slide that was generated.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6002.552,
      "end": 6006.26,
      "text": "So I'm telling kite hey the publish tab is not displaying any published content.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6006.26,
      "end": 6011.377,
      "text": "I can see a count of one which indicates that the item exists but the page itself is completely empty.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6011.377,
      "end": 6016.021,
      "text": "So that kite should fix this for us and hopefully after that we should see the content popping up here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6016.021,
      "end": 6017.462,
      "text": "Now two more things that we're going to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6017.462,
      "end": 6020.595,
      "text": "I'm going to be show you how that tab would work like on the configuration tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6020.595,
      "end": 6031.68,
      "text": "You would have the opportunity to be able to always edit your brand name, edit your handle, write a bit about what content you are creating so that the agents would always read this to find ideas and to generate your content for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6031.68,
      "end": 6035.167,
      "text": "And then you can also select the number of generation defaults that you want to have.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6035.167,
      "end": 6038.554,
      "text": "And for that, we're going to give Cadence this prompt here to wire the configuration tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6038.554,
      "end": 6041.93,
      "text": "But I'm going to wait till he's done with the back that we have on the publish tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6041.93,
      "end": 6045.146,
      "text": "And after that, we can go into the configuration tab and wire this in as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6045.146,
      "end": 6055.83,
      "text": "And then also whilst we are here we also do have the calendar tab where whenever you schedule a post maybe you don't want to publish immediately you want to schedule this as a particular date when you come into your calendar you would also see the number",
      "source": "youtube_auto_original"
    },
    {
      "start": 6055.84,
      "end": 6057.036,
      "text": "of posts that you have scheduled.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6057.036,
      "end": 6062.466,
      "text": "So here for instance you can see that the post that we posted today 24th of July this is already showing up in the calendar tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6062.466,
      "end": 6064.087,
      "text": "All right so kite is done with that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6064.087,
      "end": 6065.189,
      "text": "Let's reload the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6065.199,
      "end": 6066.629,
      "text": "Then let's come to the publish tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6066.639,
      "end": 6066.948,
      "text": "Perfect.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6066.948,
      "end": 6069.839,
      "text": "And now you see that the post that was published is already here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6069.839,
      "end": 6079.51,
      "text": "Now the next two things that we're going to work on like I said is a configuration tab where you can basically alter the configurations here and the agent would pick the new updates that you have and for that I'm going to send kite to this",
      "source": "youtube_auto_original"
    },
    {
      "start": 6079.52,
      "end": 6081.35,
      "text": "prompt to wire in the configuration tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6081.36,
      "end": 6081.735,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6081.735,
      "end": 6084.689,
      "text": "So that means that when we come to the configuration put up, let me reload this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6084.689,
      "end": 6091.072,
      "text": "You can basically change your brand name, the handle, the number of slides that you want to default with, if you want to have perlexity by default.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6091.072,
      "end": 6098.47,
      "text": "For instance, when I toggle this off and I save the configuration and I'm generating an idea, it wouldn't use publicity toggle on as a default.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6098.48,
      "end": 6101.476,
      "text": "And after that, we're basically done with the main aspect of the build.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6101.476,
      "end": 6106.857,
      "text": "I do have some other prompts that I'm giving to you as optional things that you can add to your setup to make it even more powerful.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6106.857,
      "end": 6111.195,
      "text": "Now what we're going to build now is going to be the telegram remote control.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6111.195,
      "end": 6118.852,
      "text": "So if you remember we do have this studio tab that we created which ideally we want to also use to be able to generate ideas without us having to come to the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6118.852,
      "end": 6125.477,
      "text": "Now the idea here is that whenever you want to create an idea you can just come to the studio tab here in telegram generate an idea promoted and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6125.477,
      "end": 6129.2,
      "text": "So for that we're going to give kite as prompt here to set up the telegram remote control.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6129.2,
      "end": 6134.22,
      "text": "All right so kite says he's done he built and verified the telegram remote so far as he could.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6134.22,
      "end": 6136.111,
      "text": "He also said that he did a smoke test.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6136.111,
      "end": 6142.172,
      "text": "So let's come to the studio tab and then we can see that he did a test where we can see the things that he triggered on the studio tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6142.172,
      "end": 6144.426,
      "text": "Now he did mention something that he couldn't run.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6144.426,
      "end": 6145.969,
      "text": "Let me scroll down to the bottom.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6145.969,
      "end": 6147.447,
      "text": "He said that he's he has a blocker.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6147.447,
      "end": 6150.408,
      "text": "So he wasn't able to restart the hermits gateway himself.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6150.408,
      "end": 6155.744,
      "text": "So he's telling us from a separate shell on the machine we should run this and then we should just tell him that it's restarted.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6155.744,
      "end": 6156.672,
      "text": "So let me copy this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6156.672,
      "end": 6157.78,
      "text": "Let me come to PowerShell.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6157.78,
      "end": 6158.957,
      "text": "Let me clear the screen here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6158.957,
      "end": 6159.99,
      "text": "Then let me paste in this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6160.0,
      "end": 6161.642,
      "text": "Let me connect to the server again.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6161.642,
      "end": 6163.59,
      "text": "Then let me run the command he gave to us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6163.6,
      "end": 6164.148,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6164.148,
      "end": 6165.607,
      "text": "So this gateway has restarted.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6165.607,
      "end": 6168.184,
      "text": "So, I'm going to wait a bit for the gateway to completely boot.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6168.184,
      "end": 6170.387,
      "text": "And after that, I'm going to send a message to Kite restarted.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6170.387,
      "end": 6172.994,
      "text": "So, I'm going to now send Kite a message restarted.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6172.994,
      "end": 6176.033,
      "text": "And then hopefully he should be able to continue with what he was doing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6176.033,
      "end": 6176.431,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6176.431,
      "end": 6177.747,
      "text": "And he says that he's done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6177.747,
      "end": 6179.795,
      "text": "So, basically, everything is wired in.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6179.795,
      "end": 6185.43,
      "text": "Now, let's go to the studio tab and let's write something like let's forward slash let's run idea.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6185.44,
      "end": 6187.156,
      "text": "Now, let me check what the slash command was.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6187.156,
      "end": 6189.748,
      "text": "I don't remember if it was ideas or if it was idea.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6189.748,
      "end": 6190.616,
      "text": "So, it's ideas.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6190.616,
      "end": 6192.509,
      "text": "So, let's send forward slash ideas.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6192.509,
      "end": 6197.61,
      "text": "And then hopefully this should trigger the ideas tab on the studio right in this work in this workown.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6197.61,
      "end": 6200.576,
      "text": "So we have fresh ideas stop asking one agent to do the whole job.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6200.576,
      "end": 6202.98,
      "text": "So when I come to the studio tab I also see the same thing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6202.98,
      "end": 6205.751,
      "text": "So basically this is mirroring whatever that we have on our dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6205.751,
      "end": 6212.18,
      "text": "Now the reason why we are doing this is that I want you to be able to build ideas and stuff like that without you having to always come to the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6212.18,
      "end": 6217.544,
      "text": "Now let's say we want to promote this idea/promote and then let's put in the number of that idea 11.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6217.544,
      "end": 6218.838,
      "text": "Oops, I made a mistake.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6218.838,
      "end": 6220.249,
      "text": "I intended to type in 11.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6220.249,
      "end": 6221.878,
      "text": "And this was exactly correct.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6221.878,
      "end": 6223.818,
      "text": "He says that idea one was not found.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6223.818,
      "end": 6225.055,
      "text": "So let me do it again.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6225.055,
      "end": 6227.32,
      "text": "Forward/promotees and then let me send 11.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6227.32,
      "end": 6228.627,
      "text": "That was what I intended to send.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6228.627,
      "end": 6230.707,
      "text": "And then you can see that immediately we triggered this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6230.707,
      "end": 6232.205,
      "text": "This is also live on the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6232.205,
      "end": 6234.222,
      "text": "We can see that Vera is now promoted.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6234.222,
      "end": 6238.759,
      "text": "You can see that the idea was promoted and Vera is basically writing this idea that we have.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6238.759,
      "end": 6243.134,
      "text": "And we can see exactly the same thing here is actually done with the promotion of the idea.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6243.134,
      "end": 6244.708,
      "text": "So it worked on the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6244.708,
      "end": 6246.614,
      "text": "We can see the ideas have been generated.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6246.614,
      "end": 6250.663,
      "text": "But on Telegram we did get this promotes field list attributes no get.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6250.663,
      "end": 6253.203,
      "text": "So I'm going to tell Kite to fix this as well for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6253.203,
      "end": 6254.733,
      "text": "So I'm giving Kite this prompt.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6254.733,
      "end": 6257.273,
      "text": "I tested the idea telegram command enabled perfectly.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6257.273,
      "end": 6264.467,
      "text": "However, when I promote an idea using the command promote idea number, the idea is promoted correctly on the dashboard, but Telegram sends us this message.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6264.467,
      "end": 6266.446,
      "text": "So you see what the problem is and fix it for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6266.446,
      "end": 6266.865,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6266.865,
      "end": 6267.83,
      "text": "So Kite says he's done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6267.84,
      "end": 6268.498,
      "text": "Let's try this again.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6268.498,
      "end": 6270.754,
      "text": "I'm going to come back to this app and I'm going to trigger ideas.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6270.754,
      "end": 6277.186,
      "text": "Now what you can also do to make it a bit easier when you are promoting an idea, you can also directly add the template that you want to use, right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 6277.186,
      "end": 6287.27,
      "text": "And then what I would suggest to you is that just use it to basically brainstorm ideas and then promote it to come into the studio tab and then once you're in the studio tab then you do all the stuff to do with the templates which",
      "source": "youtube_auto_original"
    },
    {
      "start": 6287.28,
      "end": 6296.149,
      "text": "templates you want to use the edits that you want to do and stuff like that but it would be better to use the telegram just for the idea generation and stuff like that or maybe whenever you want to have an idea you can just come here and",
      "source": "youtube_auto_original"
    },
    {
      "start": 6296.159,
      "end": 6299.75,
      "text": "tell which agent say hey give me some ideas on automation and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6299.76,
      "end": 6303.128,
      "text": "So let's say here for instance that we want to promote just an example.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6303.128,
      "end": 6306.07,
      "text": "Let me go to promote and let me put in oops 18.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6306.08,
      "end": 6309.801,
      "text": "Sorry there's a typo here promote 18 and then let me put in the templates.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6309.801,
      "end": 6312.394,
      "text": "Let me go to the templates tab just to get an example.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6312.394,
      "end": 6315.194,
      "text": "Let's say I want to go with the statement template.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6315.194,
      "end": 6319.662,
      "text": "Let me just type in statements then enter and then hopefully this will be produced then for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6319.662,
      "end": 6321.667,
      "text": "So weirdly it says template not found.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6321.667,
      "end": 6322.982,
      "text": "Let me see why this is the case.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6322.982,
      "end": 6325.831,
      "text": "Let me type in templates to see if I can get a list of templates.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6325.831,
      "end": 6329.072,
      "text": "So it appears that the names of the templates are different than what I see here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6329.072,
      "end": 6330.641,
      "text": "So let's look for an example.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6330.641,
      "end": 6334.191,
      "text": "Let me say I want to go with a template called isometric.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6334.191,
      "end": 6334.644,
      "text": "Right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 6334.644,
      "end": 6336.865,
      "text": "Let me come back and promote this again.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6336.865,
      "end": 6339.148,
      "text": "And then let me go to isometric.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6339.148,
      "end": 6350.107,
      "text": "Now what you can also tell kites to do for you later would be to basically make sure that the names that you see for the template stylist with the names that is on the dashboard so that it becomes a bit easier for you to work with it.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6350.107,
      "end": 6361.109,
      "text": "I think the reason why there are different names is that for instance tip deck has two words and then for you to use it you have to use tip hyphen deck but it's just a prompt we can tell kite to just do this and he would be able to correct",
      "source": "youtube_auto_original"
    },
    {
      "start": 6361.119,
      "end": 6364.21,
      "text": "this for you as well and then basically you can see that the slides are generated.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6364.21,
      "end": 6369.722,
      "text": "So when I come to this now you can see that the template that we picked is here and then we can see all the slides that are generated.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6369.722,
      "end": 6379.03,
      "text": "Now, what I think I can also do for you is I can just give you the prompts to correct this inconsistency where we have the temp name been different than the templates that we can use in Telegram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6379.04,
      "end": 6382.427,
      "text": "And then I'm also going to give you this prompt that we can just give to Kite to fix this for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6382.427,
      "end": 6388.837,
      "text": "So, we're just going to tell Kite, hey, the template names shown on the dashboard do not match the names accepted by promote command.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6388.837,
      "end": 6392.753,
      "text": "For instance, on the dashboard when I type statement, it tells me template not found.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6392.753,
      "end": 6394.231,
      "text": "So, he should make sure that he fixes this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6394.231,
      "end": 6402.264,
      "text": "Now I'm going to provide all these prompts to you so that you guys can also if you have the same issue you can just copy paste the prompts and your agent should be able to fix this for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6402.264,
      "end": 6408.964,
      "text": "Now whilst kite is building and correcting the issue with the templates name not matching telegram there is one more thing that we want to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6408.964,
      "end": 6412.534,
      "text": "I just want to make good use of the time whilst we are waiting for kite to be done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6412.534,
      "end": 6425.43,
      "text": "So currently if you remember whenever we want to access a dashboard we do this through what is called SSH tunneling right where we put in this command here SSH minus N minus L and all the name and stuff like that we press enter and then",
      "source": "youtube_auto_original"
    },
    {
      "start": 6425.44,
      "end": 6437.715,
      "text": "we put in the password of our user account and then only with that the SSH handling is activated that we are able to access the dashboard but what you can do which is even a better way to access the dashboard is to use tail skill.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6437.715,
      "end": 6444.773,
      "text": "Now what tails skill does is that tilk skill gives you with which you can access the dashboard without you having to go through SSA tunneling and stuff like that.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6444.773,
      "end": 6455.03,
      "text": "The idea is that you going to download the tail skill application connect your account and right there you get a unique with that URL you would be able to connect to the dashboard very easily without you having to put in your",
      "source": "youtube_auto_original"
    },
    {
      "start": 6455.04,
      "end": 6455.896,
      "text": "password every time.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6455.896,
      "end": 6465.189,
      "text": "The best part about tail skill in the setup is that on every PC for instance in my case I have a desktop that I'm working with and I have a MacBook I have my mobile phone and a whole lot of devices that I work with.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6465.199,
      "end": 6475.947,
      "text": "Now on any of these devices that I have installed tail skill on and connected my account I can also access the dashboard without me having to go through all the terminal every time especially on your mobile phone.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6475.947,
      "end": 6481.43,
      "text": "Wherever you are you can work with the dashboard on your mobile phone so long as you have the tail skill app installed and connect your account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6481.44,
      "end": 6484.664,
      "text": "Now to do this we're going to download the application that is called tail skill.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6484.664,
      "end": 6486.07,
      "text": "Now this is completely for free.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6486.08,
      "end": 6490.29,
      "text": "I have seven servers currently running on tail skill and I do not pay anything for this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6490.29,
      "end": 6494.007,
      "text": "Now when you are here just come to this section here and click on get started.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6494.007,
      "end": 6500.927,
      "text": "Now when you click on get started you can basically sign up create an account everything is free you you would not have to pay for anything.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6500.927,
      "end": 6505.153,
      "text": "Now once the installation is complete you can then come here and download sales skills.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6505.153,
      "end": 6511.108,
      "text": "So on their homepage.com just click on the download button here and then this is going to download the tail skill application here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6511.108,
      "end": 6513.171,
      "text": "Select whatever operating system that you're working with.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6513.171,
      "end": 6514.584,
      "text": "In my case I'm working with Windows.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6514.584,
      "end": 6518.272,
      "text": "So I'm going to click on the Windows and download the Windows application for TK skill.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6518.272,
      "end": 6522.977,
      "text": "If you're using the interface for Mac OS is even way better than the interface for Windows.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6522.977,
      "end": 6524.408,
      "text": "So I'm going to open the installer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6524.408,
      "end": 6527.261,
      "text": "I'm going to accept the terms and conditions and then just click on install.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6527.261,
      "end": 6529.471,
      "text": "And the tail scale application is going to be completed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6529.471,
      "end": 6535.093,
      "text": "Looks like the task that I gave to Kite to basically make sure that the template matches with the was a pretty heavy tax.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6535.093,
      "end": 6537.585,
      "text": "He's been working for close to 15 minutes now.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6537.585,
      "end": 6538.663,
      "text": "And he's still not done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6538.663,
      "end": 6543.054,
      "text": "Now once the tail installation is completed on my end, I can basically click on close here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6543.054,
      "end": 6547.189,
      "text": "And then when I come down here in Windows, you're going to see a small symbol here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6547.199,
      "end": 6551.43,
      "text": "Yeah, this one here for tail skill with some I think about eight or seven dots.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6551.44,
      "end": 6551.685,
      "text": "Right?",
      "source": "youtube_auto_original"
    },
    {
      "start": 6551.685,
      "end": 6555.299,
      "text": "When you right click on this then you would have to sign in into your tailskll account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6555.299,
      "end": 6559.703,
      "text": "Now once you are signing into your tailskll account you are basically done with the installation on tailskll.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6559.703,
      "end": 6565.669,
      "text": "Now when you loging into your tail skill account you would see all the devices that are currently connected to your tail skill account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6565.679,
      "end": 6571.648,
      "text": "And with all these devices you're going to get a unique URL that you would be able to use to access the server that we are building.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6571.648,
      "end": 6573.632,
      "text": "So now the tail skill application is installed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6573.632,
      "end": 6577.03,
      "text": "We've created a tail skill account or if you already have an account this would be perfect.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6577.04,
      "end": 6588.95,
      "text": "What we would have to then do is to tell kites to install tailskll for us and bind the dashboard or the cadence dashboard that we have built to our tail skill server and with that we would be able to access the dashboard directly",
      "source": "youtube_auto_original"
    },
    {
      "start": 6588.96,
      "end": 6594.094,
      "text": "from the URL directly on the browser without us having to go through the part where the sit tunneling.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6594.094,
      "end": 6596.595,
      "text": "So let me wait for kite to finish the task that he's doing.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6596.595,
      "end": 6597.738,
      "text": "I think he's almost done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6597.738,
      "end": 6607.75,
      "text": "So currently you can see that he's browsing to make sure that all the changes that he did are working and then once he's done we can basically give Kite the command to do the tail skill wiring for us and then we would be done with this",
      "source": "youtube_auto_original"
    },
    {
      "start": 6607.76,
      "end": 6608.182,
      "text": "tutorial.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6608.182,
      "end": 6613.097,
      "text": "And hey I'm working on an auto installer that is going to install all this for you in a matter of minutes.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6613.097,
      "end": 6614.258,
      "text": "So just sign up to my membership.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6614.258,
      "end": 6621.815,
      "text": "You're going to get a unique key which would you'll be able to use the installer and I will also create a tutorial for you on how to use the installer as well when this is ready.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6621.815,
      "end": 6624.628,
      "text": "And now finally kite is done with that big job.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6624.628,
      "end": 6631.065,
      "text": "The names of the templates that we see on the dashboard here would tally with the names that we see on Telegram.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6631.065,
      "end": 6633.924,
      "text": "Going back to the tail skill points, Kite is done with the work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6633.924,
      "end": 6637.654,
      "text": "So, we can basically give Kite the prompt to work on the tail skill connection for us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6637.654,
      "end": 6639.714,
      "text": "And for that, I'm going to give Kite this prompt here.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6639.714,
      "end": 6646.775,
      "text": "I'm telling Kite, hey, set up tail skill access to the dashboard so I can securely access it from my own devices without the SSA tunnel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6646.775,
      "end": 6649.924,
      "text": "And I'm just giving him the guide on how I want this to be.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6649.924,
      "end": 6656.086,
      "text": "And when he's done, he's going to give us a link that we're going to use click to bind this particular server to our tail skill account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6656.086,
      "end": 6659.513,
      "text": "So let make sure I'm on kite stop and let me send this prompt to kite to do this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6659.513,
      "end": 6662.709,
      "text": "And then once we are done with this, then we are basically at the end of the tutorial.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6662.719,
      "end": 6663.734,
      "text": "I'm already exhausted.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6663.734,
      "end": 6665.843,
      "text": "I've been recording for more than 10 hours.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6665.843,
      "end": 6667.303,
      "text": "So I'm getting tired myself.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6667.303,
      "end": 6667.848,
      "text": "All right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6667.848,
      "end": 6668.669,
      "text": "So Kite is done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6668.669,
      "end": 6674.297,
      "text": "He's given us this login link that we're going to use to authenticate our account to this particular server that we have built.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6674.297,
      "end": 6677.803,
      "text": "So I'm going to open a new tab and just put in the URL that Kite gave to us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6677.803,
      "end": 6681.684,
      "text": "And after that, all you're going to have to do is to connect and sign in into your tail skill account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6681.684,
      "end": 6688.346,
      "text": "Now, this is going to bring you to a page here where tailskll is going to ask you, hey, I want to connect the device cadence dashboard to your computer.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6688.346,
      "end": 6690.265,
      "text": "So, in my case, computer mechanic.com tailnet.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6690.265,
      "end": 6693.422,
      "text": "I'm going to click on connect and then the login is accessible.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6693.422,
      "end": 6696.593,
      "text": "So, our device has now been bound to our tail skill account.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6696.593,
      "end": 6702.435,
      "text": "So, I'm going to come here and I'm going to tell kite done because he says that when I'm done with authentication, I should just reply we're done.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6702.435,
      "end": 6702.758,
      "text": "Right.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6702.758,
      "end": 6704.457,
      "text": "So, kite is done with that as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6704.457,
      "end": 6711.794,
      "text": "He also said that he did a public IP testing and all failed to connect which means that the dashboard can only be accessed through the tail skill IP.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6711.794,
      "end": 6713.626,
      "text": "Now let me be sure that this is working.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6713.626,
      "end": 6714.743,
      "text": "Let me reload the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6714.743,
      "end": 6717.375,
      "text": "Here we have the SSA tunneling working which is expected.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6717.375,
      "end": 6727.189,
      "text": "I'm going to come to PowerShell and I'm going to kill the SSH connection and then I'm going to come back to the dashboard and I'm going to try to access the dashboard through the SSA tunnel and you see that I get the sites cannot be",
      "source": "youtube_auto_original"
    },
    {
      "start": 6727.199,
      "end": 6727.517,
      "text": "reached.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6727.517,
      "end": 6732.075,
      "text": "Now whenever I want to connect to the dashboard I can just use this URL that Kite gave to us.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6732.075,
      "end": 6733.811,
      "text": "So let me copy the dashboard URL.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6733.811,
      "end": 6735.189,
      "text": "Let me paste in this URL.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6735.199,
      "end": 6735.78,
      "text": "And then hooray.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6735.78,
      "end": 6740.675,
      "text": "You see that we can access the dashboard without us having to go through the complication with the SSA tunnel.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6740.675,
      "end": 6745.752,
      "text": "Now tails skill works by setting sort of a local viva or on the PC on which it's installed.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6745.752,
      "end": 6755.093,
      "text": "So if you have any other VPN services running, you would have to stop this VPN before tail skill can work because if you have two parallel services running, then tails scale would not be able to work.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6755.093,
      "end": 6760.227,
      "text": "So make sure that you always stop any other running so that tail scale would be able to deploy the server for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6760.227,
      "end": 6762.47,
      "text": "So this brings us to the end of the tutorial.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6762.48,
      "end": 6764.326,
      "text": "Let me walk you through shortly what we have built.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6764.326,
      "end": 6771.099,
      "text": "We have the dashboard tab where we can see and all the things that the agents are doing an activity log all pulled from the agents database.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6771.099,
      "end": 6779.787,
      "text": "Now when you come to the ideas tab, we can always create any new idea by picking your idea and the agents at last is going to pick up that idea and build it into a content for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6779.787,
      "end": 6785.679,
      "text": "And then also whenever you don't have any idea, you can just come and click on the generate idea and an idea will be generated for you.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6785.679,
      "end": 6790.551,
      "text": "Whenever we want to promote an idea, we can just click on promote and this will be promoted for us into the studio tab.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6790.551,
      "end": 6794.683,
      "text": "And whenever we want to push any of the post to Instagram, Tik Tok, whatever we want to do.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6794.683,
      "end": 6799.128,
      "text": "When we click on post now, this will directly be pushed to the social media platform that we want to use.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6799.128,
      "end": 6804.786,
      "text": "And then when this is done, this will bring the post to the publish tab so that you can always refer to it whenever you want to do something with it.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6804.786,
      "end": 6812.625,
      "text": "We also have a templates tab that is packed with a lot of templates currently in the setup that you can always pick from and develop any carousel slide that you want to develop.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6812.625,
      "end": 6817.208,
      "text": "And then we have the dedicated agents tab where we see all the agents that we have their heat map.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6817.208,
      "end": 6823.043,
      "text": "You have your calendar where you can see the post that you have scheduled, post that you have already published and also upcoming post.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6823.043,
      "end": 6830.867,
      "text": "A configuration tab where you can configure your brand name, the things that you want the agents to work on when they are generating the and a docs tab where you can basically understand the dashboard.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6830.867,
      "end": 6836.034,
      "text": "Now I do have way more prompts that I'm going to provide to you that you can also use that I would highly recommend that you use.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6836.034,
      "end": 6841.189,
      "text": "For instance, for the agent login activity, the agents are going to log in the database whenever they perform a task.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6841.199,
      "end": 6844.786,
      "text": "But if you run this for a whole year, then your database is going to get so cluttered.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6844.786,
      "end": 6851.783,
      "text": "So you can set up sort of a weekly cleanup where the agents are going to look for activities that are older than 7 days and basically clean all of them.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6851.783,
      "end": 6856.221,
      "text": "And I also included some additional problems that you can use to basically amplify the setup that you have.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6856.221,
      "end": 6862.381,
      "text": "I know it's a lengthy tutorial, but I wanted to go through everything that we are building, the thought process that I have when I'm building something like this.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6862.381,
      "end": 6867.307,
      "text": "And also you see me troubleshoot all the errors that we have so that when you have a similar situation, you can do the same thing as well.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6867.307,
      "end": 6869.525,
      "text": "If you found the video helpful, please hit the like button.",
      "source": "youtube_auto_original"
    },
    {
      "start": 6869.525,
      "end": 6873.119,
      "text": "Subscribe to my channel to see more like this.",
      "source": "youtube_auto_original"
    }
  ],
  "transcript_selection": {
    "schema": "videonote.transcript_selection.v1",
    "status": "SELECTED",
    "requested_language": "en",
    "duration": 6873.803188,
    "reference_path": "/Users/sagawa/AI_WORK/video_notes/url/20260805_170836__I_Built_an_AI_Content_Studio_with_5_Hermes_Agents_Step-by-Step_Guide/reference_subtitle.vtt",
    "reference_kind": "automatic_original",
    "reference_language": "en-orig",
    "selected_source": "youtube_auto_original",
    "decision_reason": "trusted_full_source_replaced_severe_whisper",
    "whisper_rejected": true,
    "source_profile": {
      "segment_count": 1663,
      "first_start": 0.16,
      "final_end": 6873.119,
      "duration_coverage": 0.9999,
      "maximum_gap_seconds": 0.16,
      "inverted_count": 0,
      "language": {
        "requested": "en",
        "matched": true,
        "latin": 117219,
        "han": 0,
        "kana": 0,
        "hangul": 0
      },
      "hallucination_region_count": 0,
      "hallucination_regions": [],
      "usable_full": true,
      "usable_partial": true
    },
    "whisper_profile": {
      "segment_count": 2527,
      "first_start": 0.0,
      "final_end": 6871.534,
      "duration_coverage": 0.99967,
      "maximum_gap_seconds": 1.84,
      "inverted_count": 0,
      "language": {
        "requested": "en",
        "matched": true,
        "latin": 86798,
        "han": 0,
        "kana": 0,
        "hangul": 0
      },
      "hallucination_region_count": 5,
      "hallucination_regions": [
        {
          "index": 96,
          "start": 295.1,
          "end": 325.1,
          "chunk": 0,
          "reasons": [
            "extreme_compression_ratio",
            "very_low_token_diversity",
            "dominant_repeated_bigram",
            "extreme_text_burst",
            "extreme_character_density"
          ],
          "visible_chars": 810,
          "token_count": 222,
          "unique_token_ratio": 0.036,
          "top_token": "the",
          "top_token_share": 0.3288,
          "top_bigram": "the center",
          "top_bigram_share": 0.3258,
          "compression_ratio": 20.62,
          "characters_per_second": 27.0,
          "text_preview": "So, the hook will be in the center of the center of the center of the center of the center of the center of the center of the center of the center of the center of the center of the center of the center of the center of the center of the ce"
        },
        {
          "index": 120,
          "start": 386.72,
          "end": 390.1,
          "chunk": 0,
          "reasons": [
            "very_low_token_diversity",
            "dominant_repeated_bigram"
          ],
          "visible_chars": 102,
          "token_count": 32,
          "unique_token_ratio": 0.2188,
          "top_token": "word",
          "top_token_share": 0.3125,
          "top_bigram": "word of",
          "top_bigram_share": 0.2903,
          "compression_ratio": 3.6051,
          "characters_per_second": 30.1775,
          "text_preview": "So, this means that word of the word of the word of the word of the word of the word of the word of the word of the word of the word."
        },
        {
          "index": 403,
          "start": 1193.055,
          "end": 1223.055,
          "chunk": 2,
          "reasons": [
            "extreme_compression_ratio",
            "very_low_token_diversity",
            "dominant_repeated_bigram",
            "extreme_text_burst",
            "extreme_character_density"
          ],
          "visible_chars": 671,
          "token_count": 223,
          "unique_token_ratio": 0.0224,
          "top_token": "use",
          "top_token_share": 0.3318,
          "top_bigram": "use this",
          "top_bigram_share": 0.3333,
          "compression_ratio": 24.8056,
          "characters_per_second": 22.3667,
          "text_preview": "and just use this to use this to use this to use this to use this to use this to use this to use this to use this to use this to use this to use this to use this to use this to use this to use this to use this to use this to use this to use"
        },
        {
          "index": 986,
          "start": 2740.399,
          "end": 2770.399,
          "chunk": 5,
          "reasons": [
            "extreme_compression_ratio",
            "very_low_token_diversity",
            "extreme_text_burst",
            "extreme_character_density"
          ],
          "visible_chars": 624,
          "token_count": 223,
          "unique_token_ratio": 0.0269,
          "top_token": "i",
          "top_token_share": 0.2018,
          "top_bigram": "i want",
          "top_bigram_share": 0.2027,
          "compression_ratio": 22.2632,
          "characters_per_second": 20.8,
          "text_preview": "Now I want to say that I want to say that I want to say that I want to say that I want to say that I want to say that I want to say that I want to say that I want to say that I want to say that I want to say that I want to say that I want t"
        },
        {
          "index": 1029,
          "start": 2881.505,
          "end": 2911.505,
          "chunk": 6,
          "reasons": [
            "extreme_compression_ratio",
            "very_low_token_diversity",
            "dominant_repeated_bigram",
            "extreme_text_burst",
            "extreme_character_density"
          ],
          "visible_chars": 670,
          "token_count": 223,
          "unique_token_ratio": 0.0404,
          "top_token": "the",
          "top_token_share": 0.3274,
          "top_bigram": "the name",
          "top_bigram_share": 0.3243,
          "compression_ratio": 16.8302,
          "characters_per_second": 22.3333,
          "text_preview": "The agent will be able to do the name of the name of the name of the name of the name of the name of the name of the name of the name of the name of the name of the name of the name of the name of the name of the name of the name of the nam"
        }
      ],
      "usable_full": false,
      "usable_partial": false
    },
    "comparison": {
      "window_seconds": 30.0,
      "compared_window_count": 230,
      "median_score": 0.539,
      "divergent_window_count": 27,
      "divergent_ratio": 0.1174,
      "divergent_windows": [
        {
          "start": 270.0,
          "end": 300.0,
          "score": 0.3719,
          "sequence_similarity": 0.2688,
          "token_f1": 0.5634,
          "divergent": true
        },
        {
          "start": 300.0,
          "end": 330.0,
          "score": 0.1646,
          "sequence_similarity": 0.1185,
          "token_f1": 0.25,
          "divergent": true
        },
        {
          "start": 690.0,
          "end": 720.0,
          "score": 0.388,
          "sequence_similarity": 0.3341,
          "token_f1": 0.4882,
          "divergent": true
        },
        {
          "start": 750.0,
          "end": 780.0,
          "score": 0.4445,
          "sequence_similarity": 0.4147,
          "token_f1": 0.5,
          "divergent": true
        },
        {
          "start": 870.0,
          "end": 900.0,
          "score": 0.4283,
          "sequence_similarity": 0.4103,
          "token_f1": 0.4615,
          "divergent": true
        },
        {
          "start": 1110.0,
          "end": 1140.0,
          "score": 0.4477,
          "sequence_similarity": 0.4022,
          "token_f1": 0.5321,
          "divergent": true
        },
        {
          "start": 1170.0,
          "end": 1200.0,
          "score": 0.2391,
          "sequence_similarity": 0.1087,
          "token_f1": 0.4815,
          "divergent": true
        },
        {
          "start": 1200.0,
          "end": 1230.0,
          "score": 0.1976,
          "sequence_similarity": 0.1113,
          "token_f1": 0.3579,
          "divergent": true
        },
        {
          "start": 1830.0,
          "end": 1860.0,
          "score": 0.4433,
          "sequence_similarity": 0.4106,
          "token_f1": 0.5039,
          "divergent": true
        },
        {
          "start": 2430.0,
          "end": 2460.0,
          "score": 0.4198,
          "sequence_similarity": 0.4,
          "token_f1": 0.4567,
          "divergent": true
        },
        {
          "start": 2730.0,
          "end": 2760.0,
          "score": 0.357,
          "sequence_similarity": 0.2593,
          "token_f1": 0.5385,
          "divergent": true
        },
        {
          "start": 2760.0,
          "end": 2790.0,
          "score": 0.2244,
          "sequence_similarity": 0.1947,
          "token_f1": 0.2796,
          "divergent": true
        },
        {
          "start": 2790.0,
          "end": 2820.0,
          "score": 0.4255,
          "sequence_similarity": 0.3972,
          "token_f1": 0.4783,
          "divergent": true
        },
        {
          "start": 2880.0,
          "end": 2910.0,
          "score": 0.1906,
          "sequence_similarity": 0.1572,
          "token_f1": 0.2526,
          "divergent": true
        },
        {
          "start": 3300.0,
          "end": 3330.0,
          "score": 0.4182,
          "sequence_similarity": 0.3687,
          "token_f1": 0.5103,
          "divergent": true
        },
        {
          "start": 3570.0,
          "end": 3600.0,
          "score": 0.3749,
          "sequence_similarity": 0.3732,
          "token_f1": 0.378,
          "divergent": true
        },
        {
          "start": 3780.0,
          "end": 3810.0,
          "score": 0.358,
          "sequence_similarity": 0.3333,
          "token_f1": 0.4037,
          "divergent": true
        },
        {
          "start": 3810.0,
          "end": 3840.0,
          "score": 0.3218,
          "sequence_similarity": 0.2943,
          "token_f1": 0.3729,
          "divergent": true
        },
        {
          "start": 4110.0,
          "end": 4140.0,
          "score": 0.3968,
          "sequence_similarity": 0.3429,
          "token_f1": 0.4968,
          "divergent": true
        },
        {
          "start": 4320.0,
          "end": 4350.0,
          "score": 0.431,
          "sequence_similarity": 0.4446,
          "token_f1": 0.4056,
          "divergent": true
        },
        {
          "start": 4410.0,
          "end": 4440.0,
          "score": 0.4047,
          "sequence_similarity": 0.3973,
          "token_f1": 0.4186,
          "divergent": true
        },
        {
          "start": 5580.0,
          "end": 5610.0,
          "score": 0.4373,
          "sequence_similarity": 0.3526,
          "token_f1": 0.5946,
          "divergent": true
        },
        {
          "start": 5910.0,
          "end": 5940.0,
          "score": 0.424,
          "sequence_similarity": 0.3308,
          "token_f1": 0.5972,
          "divergent": true
        },
        {
          "start": 6030.0,
          "end": 6060.0,
          "score": 0.3561,
          "sequence_similarity": 0.3325,
          "token_f1": 0.4,
          "divergent": true
        },
        {
          "start": 6120.0,
          "end": 6150.0,
          "score": 0.3985,
          "sequence_similarity": 0.4012,
          "token_f1": 0.3934,
          "divergent": true
        },
        {
          "start": 6270.0,
          "end": 6300.0,
          "score": 0.4308,
          "sequence_similarity": 0.3744,
          "token_f1": 0.5354,
          "divergent": true
        },
        {
          "start": 6420.0,
          "end": 6450.0,
          "score": 0.4306,
          "sequence_similarity": 0.4,
          "token_f1": 0.4874,
          "divergent": true
        }
      ]
    }
  }
}