Inspiration

I kept thinking about what a restaurant manager actually has to deal with every day.

There are so many things happening at the same time — demand changes, inventory runs low, staff need to be scheduled, customers start to churn, reviews need attention, the kitchen gets busy, and sometimes pricing needs to change.

The problem isn't that restaurants don't have data. They have plenty of it. The problem is turning all of that information into the right decision at the right time.

So I wanted to build something where a manager could simply talk to their restaurant, in normal language, and get help with what needs attention.

What it does

MaSoVa is a restaurant Manager Copilot with seven specialist AI agents behind it.

The manager can ask something as simple as, "What's happening with customer churn?" or "Do we need to reorder anything?" The Copilot understands what they are asking and brings in the right specialist agent.

The agents can work on things like demand forecasting, inventory, customer churn, reviews, staff scheduling, kitchen operations, and pricing.

But I didn't want the AI to just make decisions and change things behind the scenes.

The agents use the restaurant's data and tools to work out what is happening, then create a recommendation or proposal. The manager can see what was found and decide whether to approve it.

For example, the pricing agent can recommend a price change, but it cannot directly change the menu. A purchase order can be prepared, but the manager still has to approve it.

How I built it

I built the system using Google ADK, Gemini, FastAPI and Google Cloud.

The seven agents share a common runtime that handles their tools, permissions, proposals, approvals, fallbacks and audit logs. This lets the agents have different responsibilities without giving every agent access to everything.

For important operational calculations, I use deterministic tools instead of asking the model to guess. The system also keeps track of the tools used, the proposals created and what happened after the manager made a decision.

The application is deployed on Google Cloud Run and the Manager Console is the main interface for the restaurant manager.

Challenges

The hardest part wasn't getting an AI model to answer questions.

It was figuring out how to make an AI system useful around real business decisions without giving it too much freedom.

I had to think about what each agent should be allowed to access, what should happen when the model fails, how to prevent duplicate actions, how to keep the data scoped to the right store, and how the manager can understand what the system actually did.

I also wanted the system to work when the manager doesn't know the "right" words to ask. They should be able to talk to it naturally, just like they would talk to another person.

What I learned

I learned that building an agentic system is much more than connecting an LLM to a few tools.

The interesting part is everything around the model — giving agents the right capabilities, grounding their answers in actual data, putting boundaries around what they can do, and keeping a person involved when a decision actually matters.

The goal with MaSoVa is pretty simple: instead of making a restaurant manager jump between different systems and figure everything out themselves, give them one place to ask what's going on, understand what the system found, and decide what to do next.

Built With

  • fast-api
  • gemini
  • generative-ai
  • google-adk
  • google-cloud
  • human-in-the-loop
  • multi-agent-systems
  • restaurant-management
Share this project:

Updates

Submission history