From the event: Mindstone Athens October AI MeetupVibe Signage
View event

Vibe Signage

First of all, I would love to know who here is from a technical background. Okay. Not so many, but quite a lot. I thought it would be worse.

Introducing Vibe Signage

So, today I would like to present a little project of mine. I actually traveled from Volos just for one day, just to present you. So, hello everyone. My name is Evreviadis Liapis. and for the past four months I've been working to Yodeck and I'm a software engineer intern and today I'm gonna present you Vibe Signage.

Yodeck and the Raspberry Pi Platform

For those who don't know, Yodeck is a digital signage company. What does it means? It means that we put content on screens, on digital screens, for every user you can imagine. The thing is that we do that by a player called the Raspberry Pi.

Who knows what what a Raspberry Pi is. For those who doesn't know, it's a mini computer that can do everything that a normal computer can, but it has performance limitations, and we need to take care of them. And this is where things get interesting from a technical perspective.

Why Give AI Access to Real Tools?

So let me start with a little story, why I started this project. The first month that I was at Yodek, my friends from university, because I'm still studying, asked me, what are you doing in Yodec? And I explained to them, I'm creating custom maps for our players.

And they told me, okay, cool, but why would they need you? Why don't they put AI to do the job? And I got a bit defensive and I explained to them, no, this is not the case.

You cannot, AI doesn't have access to everything that that I have, doesn't have access to the player, doesn't have access to the portal, the main Yodeck app, cannot check the Yodeck application that I created. And it made sense. And they agreed. And they told me, OK, that's fine.

But I kept thinking about it. And a week after, and a lot of conversations with my manager, we figured out that the problem was accessibility. The AI didn't have accessibility to things that I have, so they didn't have hands and knowledge that we do. So we said, let's give it to it.

Understanding MCPs

Who does know, who knows what is an MCP? Perfect. I love that many people doesn't because it's going to make sense for my example. I will explain an MCP with a little example. example.

Also, who have created their own MCP? Like custom MCPs. Perfect.

So, an MCP is basically like trying to teach a robot how to make coffee. There are two ways you can give the robot every ingredient and say, just make my coffee. The robot will make your zero coffee.

LLMs are way too smart. But the problem is it's not going to make your coffee. It's going to make a generic coffee and we will say, okay, it is a coffee, but for productivity it's not a solution.

On the other hand, we can give a robot its own coffee machine. This time the robot can just press a button and say, an espresso with no hallucinations, please, is, and the coffee is in the cup. So this is an MCP, basically.

It's buttons that the LLMs can press, and the result is the same every single time. And we use this tool so we can implement our own code, so the result is every time the same. And this is a fundamental thing.

Building the AI Toolchain

So back to our project. We need to give hands and tools to our LLMs.

Connecting the Portal and Players

The first thing that we needed to do was to create the connection with the main portal, the main Yodeck app. So we used the made -up Yodeck MCP which is perfect I have to say. It allows us to use to manipulate our screens and push content to it and see the status of our Raspberry Pis, our players.

Next we needed need to create our own MCP, which is there to show us the status of a Raspberry Pi and the logs.

How we use it is we connect with SSH, which is a connective protocol, and we extract the files that we need. This way, our LLM knows exactly what's going on inside the Raspberry Pi.

And of course, we use some scripts for the steps that we want every time to be the same.

From Failed Apps to Repeatable Workflows

So, are we done? I think we are ready to make an app. So, we thought so. We thought so that we are ready to make an app. And we tried.

We tried, we explained everything to the LLM, and the screen was black. Why was it black? The thing is that the LLM is too smart, but didn't know our world. Didn't know how to make a Yodek application. application.

But we tried to make an application. A Yodek application that is run on a small screen on a small computer.

We failed, but every time we failed, we fixed it by our hands, of course with LLMs, and we wrote down what was wrong. Each time, we wrote down what was wrong and this became a skill. This skill became a fundamental lesson for the LLM for for a mistake that is not going to happen again.

Turning Lessons into Skills

But building an app is a process. It's not random. So this is where workflows comes in. Workflows are a set of instructions, basically, to use agents in a row.

The Vibe Signage Agent Workflow

And our system, our Vibe signage, works like this. We have an orchestrator, the first agent that the developer talks to and explains everything and makes the plan and starts the actual workflow.

The workflow starts with the builder who builds the code then we have the reviewer and the verifier from the code then we have the publisher who publish the app to the portal and then to the Raspberry Pi to our player and then we have the verifier that everything that we've built it's It's working perfectly on the Raspberry Pi.

And then it goes back to orchestrator that judges if things that we created were successful. And if it needs to run again the workflow. Many times you need to run it again.

A Live Example: Creating a Countdown App

So let me show you what we can build with it. Hopefully it's going to go right. So let's show you.

Work in Progress, Not a Replacement for QA

First of all, I need to clarify, this is work in progress. You cannot create 100 % production -ready apps with it. You need to have in mind that real apps that end up to the users need QA and experience enhance.

But let's say an example that we have a customer that they need a Christmas countdown for their gift shop. so I start my cloud code and I put this prompt which is actually a real prompt that I used which I just say please make me a Christmas countdown

make it with nice style and ask me whatever you want because I don't know what I want so the orchestrator asked me some stuff and start the workflow the The workflows run for eight minutes, it's quite a lot I have to say, and then it publishes to the Raspberry Pi.

Then the verifier founds a problem, and the orchestrator run again the workflow. Every prompt is different. Of course, you're not going to have every single time the same workflows, the same time and everything.

But most of times it's going to be one workflow. Today I had one session with three. but let me show you what we created. So this is a small app that we created.

I think for many of you that you've used vibe coded before it's not gonna be that much you're gonna say okay it's nice it's pretty but keep in mind that this is the tested app inside a really small computer for a Raspberry Pi for a screen

whichever dimensions you want and this is the the nice thing about it all the animations that you see here, it is working in the Raspberry Pi, in our players. And we can do it with eight minutes only.

Things like this usually take developers days, maybe three, four, five. I mean, these animations to do by hand is extremely difficult. I know

I have written code in my life, like two years in the university, then LLM scheme. So what

What Vibe Signage Enables

What does it mean for us? This is work in progress, as I said. But this means that we can do really nice demos that you can do before the actual meeting that you have with your team.

Or you can bug fix things in your applications and test it in the real player in no time. And we can update or refactor apps just by describing what we want. want. That's actually vibe coding. But for digital sign -ins, that's why we name it vibe sign -ins. I like this name, honestly.

The Key Lesson: Tools, Knowledge, and Workflows

So, this way of thinking, you can apply it in every other area. It might sound simple, but it's very important fundamentals to connect Connect your tools. If there is no connector, create your own connectors because they make your AI deterministic and this is the most important thing in this presentation.

Start creating something with it and find where it stops. Write it down, create your skills, your own skills, and then make a workflow that makes sense.

So what is the moral of the story? If you add tools and the right knowledge, and the right tools, by the way, with a workflow that makes sense, you will get an agent that delivers.

Giving Agents the Right Wings

So to answer my friends, AI can do my job, not exactly, but I can help it do it. In other ways, agents can do hard specific work if you give them what they need. So give your agents the right wings and they will fly.

Thanks a lot.

Finished reading?