Skip to main content

AI Agents at Scale: How Thales Transformed IFE with Databricks and Genie

Summary

  • Thales InFlight Experience unified data from 2,000+ aircraft serving 2 million daily passengers into the Databricks Data and AI platform, then built AI agents using RAG, Genie text-to-SQL, and custom MCP architecture to give business users real-time self-service access to content, health, and passenger data.
  • The production deployment required solving three technical challenges: identity propagation so agents respect per-airline permission boundaries, multi-tenancy across 90 airline customers, and tool management at scale in a regulated environment.
  • Moving from static dashboards requiring data analyst support to autonomous AI agents reduced decision-making bottlenecks and enabled business teams to take action directly without engineering intervention.

AI Agents at Scale: How Thales Transformed IFE with Databricks and Genie

Watch: AI Agents at Scale: How Thales Transformed IFE with Databricks and Genie
Enterprise teams across industries depend on static dashboards and data analysts to answer questions, creating bottlenecks that slow decision-making. Thales IFE demonstrates how Databricks AI agents powered by Genie, RAG, and vector search enable business users to get real-time answers and take action directly, without relying on engineers.
Learn how Thales unified in-flight entertainment data from 2,000+ aircraft into Databricks, built AI agents that interact with APIs and take autonomous actions, and overcame production challenges including identity propagation, multi-tenancy, and tool management at scale. Discover the three pillars of agent architecture (RAG, Genie text-to-SQL, and custom MCP), see the live demo, and understand how to deploy agents responsibly in regulated environments.
🤝

Chapters

FAQs

What data does Thales InFlight Experience manage on Databricks?

Thales IFE ingests data from more than 2,000 aircraft across 90 airline customers, serving over 2 million daily passengers, covering in-flight entertainment content, system health, and passenger behavior. This data is unified on the Databricks Data and AI platform and made accessible through AI agents.

How do the AI agents at Thales IFE work?

The agent architecture uses three components: RAG for retrieving unstructured documents, Genie for text-to-SQL queries against structured data, and custom MCP tools for interacting with APIs and taking autonomous actions. A central supervisor routes queries to the appropriate component based on the type of question being asked.

What production challenges did Thales IFE face deploying AI agents?

The three main challenges were identity propagation—ensuring agents pass user credentials so that per-airline data boundaries are respected—multi-tenancy across 90 airline customers, and tool management at scale. These challenges are specific to regulated, multi-tenant enterprise environments where data isolation is non-negotiable.

Why is eliminating the dashboard bottleneck important for Thales IFE?

Before deploying AI agents, Thales IFE business users depended on data analysts to answer questions and generate insights from dashboards, creating bottlenecks that slowed decision-making. With the agent architecture, business users can get real-time answers and take action directly without waiting for engineering support.

Full transcript

[00:08] Hello everyone. So, uh we'll start with a question for you. How many of you came to San Francisco taking a plane? Most of you. And how many of you watch a movie or maybe the World Cup
[00:24] using the IFE system? Okay, so at least half of half of you. So, today we're going to talk about uh inflight entertainment, so that's what we built. We're going to dig a little bit in how how it works. Um
[00:40] what's the architecture? How the data is um ingested into Databricks and what we have built on top of it uh using the new features that Databricks have provided on AI.
[00:56] Hi everyone. Uh I'm Simon. I'm a principal data scientist for Thales InFlight Experience. I've been in that position for 4 years uh where I've been uh leading the implementation of our data platform uh of course using Databricks. Uh this is my third time as at the
[01:12] Databricks AI Summit and this is my first time as a speaker. I am really excited to be here. Uh this event is growing and growing. There's more and more people. Uh really I can't say how much happy I'm I am to be in front of you all today.
[01:27] And I'm Yann Nicola. Uh I've been uh working in Florida for entertainment for 9 years now. Uh I've been focused on cloud architecture. We built several solutions. And more recently, we built a dedicated team on data and AI. So, I'm chief data and AI officer uh leading
[01:43] that team. Also very happy to be here. So, let let's talk a little bit about uh our company. So, we are Thales InFlight Experience. So, we are part of Thales Group uh group that focus on very different businesses. For us, what we do is really entertain passengers on board
[02:01] and work hand in hand with the airlines to uh improve the experience for everybody. Uh so, we serve today uh more than 2,000 planes. We're working with 90 airlines that trust us. We have around 2 million plus passengers
[02:17] that will be flying every day with our systems. So, it's very likely that most of you have used at one point our system. Uh we are we are one of the biggest players in the market. We have 800 employees in multiple campuses around the world
[02:35] uh including California, Florida for US. Then we have France uh India, Singapore, etc. So, we're based in 30 sites. And what we build is this. So, you're familiar with that. Uh
[02:51] over the years, the inflight entertainment has evolved a lot. Maybe some of you remember when you had a single screen in the middle of the aisle where you had maybe a DVD or VHS uh playing the same thing for everybody. We had sometimes uh the map, right? Showing
[03:09] the position of the plane uh uh around the world. This has evolved a lot. And uh what we have in front is our latest generation, uh which is called Flight Edge. So, in this case, we have improved a lot uh the generation of
[03:24] screens as well. The quality has increased. The the the quality of the different uh image uh with the OLED technology and more recent technology that we use. Uh and also in the server side, we have now um
[03:41] a server that we call the onboard data center. It's a server that is based on the data center technology. That's why we call it like this. So, you have multiple blades that are uh hosted in this server that the aircraft is going to be
[03:56] carrying. And this allow us to to use mainstream technologies. So, you have technologies such as Kubernetes that most of you may know. Um and this allows to host services that we build, but also services that the
[04:11] airline can build. And also the airline and us, we bring an ecosystem of different third parties that may want to host the applications. So, for example, uh for gaming or maybe uh specific uh music streaming platforms, etc. Of
[04:29] course, we're adding also AI capabilities at the edge. So, that's something we're working on. Uh at the end, the goal is again improve the experience for the passenger, uh improve the loyalty of the passengers for the airline because the airline can use this platform to at the end
[04:46] advertise their branding, and increase also the opportunity for the airline for additional revenue. So, in terms of architecture, all of you know the tip of the iceberg, which is here on the right-hand side, either the
[05:01] personal device, sometimes you connect to Wi-Fi and you have like movies and things, right? So, that's an option. Um sometimes and more and more airlines have seatbacks. So, you are able to use also directly on the on the seat a screen. And our goal is really to have a
[05:16] seamless experience regardless of which device you are using. Uh we we leverage as much as we can web technologies. Um these web technologies allow us to host in a very standard way applications
[05:32] in our onboard data center. And there you have also an extension of this platform that lives on the plane, you have an extension on the ground. So, for us, the ground is what is not in the plane, which is in the cloud. I don't know if you follow, but yeah. So,
[05:48] basically uh we extend the capabilities on the ground. Um and this is where also we have data that is um offloaded, right? So, we have a lot of data collected in the plane. We know what are the passengers using. We know
[06:04] what's the health of the system. We send all this back to the cloud. And this is where Databricks enters into the picture. Over the years we have used Databricks first to ingest the data and using the medallion
[06:21] architecture to refine that data. Um and over the time we added additional capabilities like Unity Catalog, the SQL warehouse, now agents, etc. At the end the goal is to serve the end applications. This could be dashboards
[06:37] for the airlines, could be dashboards for our own internal teams, could be agents and we're going to dig more into that, or could be customer applications. So, we have this platform for a while. We're being improving it. However, we
[06:52] still had feedback from our airlines or from internal teams that that was not enough. And Simon, maybe you can tell us what we can do about that. Yeah, of course. Thank you, Ian. So, as you mentioned, we built our data platform, we use Databricks, and you
[07:09] know, we're still getting some feedback from customers and internal users about certain things. Um we built a lot of dashboards, right? So, um they are very nice, users love them, but they are very static and they require a lot of effort to maintain, right? So,
[07:25] each time you want to do an update, you have to request the development team has to go through a sprint, and you know, the business users are getting impatient, right? Uh then, you know, the data team. I can testify I've been a data scientist for a while now and you You when you can't get the answers
[07:41] from your dashboard, then you go ask the data team, "Hey, can you pull this number for me? Or can you grab those numbers on these fleets?" And you know, as the data team, you become the bottleneck. And if you are not able to deliver in time, which happens, then that just contributes to the frustration of your business users.
[07:57] And finally, we have the data, we have the lakehouse, we have the governance, but the access is still bottleneck. Like usually data scientists and data analysts, they are the only one who know really like where the data is. They are the only one who can update the dashboards. So, even if we start to have
[08:12] more and more business users using Databricks, uh the adoption is still limited, right? And they are not able always to perform all the actions that they want to do. So, this is, you know, the kind of thing that, you know, we we keep kept hearing. Uh
[08:28] people don't care like how they get the answers. If it's a dashboard, an app, or something else. They just want the answers to the question that they're looking for. So, that's why we turn to agents. Right? So, the first reason is you can actually ask your question directly, right? You can just ask the
[08:44] agent natural language, no more dashboard update, or pinging the data team. Users can just go ask the question and get the answers that they're looking for. Uh the second thing, and I think this is the most critical piece for us, is agents can not only look at data, but
[08:59] they can interact, right? Uh Yan was saying we are building systems on the ground, and we have a lot of APIs, we have a lot of internal tools, and we want agents to be able to interact with our system. This is where the value gets created, because they don't only look at things, then they can actually take action. And this
[09:16] is where it's very valuable, and this is how you don't have to build another UI, another, you know, complex process in your in your front end. You can actually let the agent do all the work. And finally, agents for us are quite easy to deploy. They are pretty
[09:31] light, and we leverage Databricks app to serve those agents, and we can deploy them very, very quickly. Whenever we want to do a front end update on our systems, you have to go through the whole CICD. The process is super heavy. Uh when you do agent, you can just deploy it in, you know, in days using
[09:47] Databricks app, and then it's available directly to our users. Usually, it it integrates pretty well with all the ecosystem. Uh you know, Databricks app, you can connect to tables, you can connect to other other things that we'll talk about it later. So, now you might be asking, "Okay, what
[10:03] are we trying to solve here?" So, let's deep dive into the use cases that we are trying to solve. The first one is content management. So, it's very important for us and for our customers to actually understand what is happening with the content that is deployed on the aircraft. You know, like
[10:19] what are the top movies, the top 10 movies, what are what is the most low-rated content, right? Uh so, a lot of data questions around content. And once you are able to know what is going on with your content, you can actually take action. For example, you could have an agent remove content or update the
[10:35] content automatically on the aircraft. You can also, you know, do stuff like, "Okay, it's Christmas time. Can you tell me what are the top 10 Christmas movies and get them deployed on my aircraft?" Like, so you know, manage seasonals. The second use case that's very important is the system health. Uh
[10:52] we need to make sure that, you know, the systems that we deploy on the aircraft are working properly. You know, as passengers, you don't want to be the guy sitting in front of a black screen. Uh so, you know, an agent can be very powerful for us to actually look at all the data that we're getting and help us
[11:08] troubleshoot and find root causes of, you know, issues that we might be facing. Uh what's very interesting with agent is you can actually ground your answers with documentation. So, agent can look at your system documentation, look at data, and then they can also act. Let's say, you know, propose a fix
[11:24] on the software or deploy the software to the aircraft automatically. And finally, and this is the most, you know, important thing for us and for you is the passenger experience. So, those two previous things actually contribute to this one. Agents are able to, you know, dig into all the data that you
[11:40] have, look at all the passenger analytics, look at passenger satisfaction. We can actually use agent to deep dive on certain flights, look at engagement channels for certain, you know, passengers and stuff like that. And once you have all that plugged in, you can
[11:55] actually leverage the agent to provide recommendations for you and improve overall the customer experience. Uh the big question now is like, how do you build those, right? And I think Ken, you can answer those questions.
[12:14] So, I thought I could answer those questions, but things have changed a lot in this morning and yesterday. So, there are a lot of new features available and we're going to dig into that. Uh however, there are already some very key components that are ready to go in Databricks.
[12:30] So, one of them is the pillar number one that we call the the rag. So, in other systems, you may have to build yourself some very manual complicated pipelines to build rag. In the case of Databricks, you can just leverage what
[12:45] is already in Databricks classified in the Unity Catalog and you can automatically uh synchronize that with the vector search in this indexes and then you can use that directly
[13:01] with your agent or your application. So, that's one of the key points. Also, what is interesting is you can also connect external sources of data through a standard like MCP. A second pillar is the the Genie text to
[13:17] SQL. So, before you had to have very knowledgeable teams, knowledgeable technically, knowledgeable on the data to be able to go and write SQL queries and to obtain the data that you need for for the business.
[13:33] Uh with text to SQL, in Genie, you're able to use natural language to just write what's the outcome you're expecting and you will have Genie uh generating the SQL that is required to obtain that data.
[13:49] So, uh instead of having to build um static dashboards like Assimilate was saying, in this case, you can write down what's the output you're expecting and in a dynamic way, you can obtain that information without relying on a data science team.
[14:06] And in this case, uh we found Genie very powerful uh because, again, the users, they don't need to know the details, the internal details of the platform. They just need to know that some data is there available for them and then they can
[14:21] just write down what they need and transparently, they will get uh that information. Genie is available in different ways. You have SDKs, APIs, and also MCP. So, you can integrate that with other systems and we have done that with some customer applications that under the
[14:37] hood are calling um Databricks. So, a third pillar is custom MCP um I would say uh agents that we need to expose but that
[14:52] are not directly built uh natively in in Databricks. So, it's not a managed service from Databricks. It's something we need to build. And for that, we we experiment different options uh but the Databricks apps is a good way to get started uh because you can host
[15:09] that MCP endpoint as a Databricks uh app and this can be done with different frameworks. So, in this case, we're mentioning fast MCP, could be other ones. Uh and in this case, you have this MCP endpoint that acts as a stateless
[15:25] endpoint that can be invoked uh by other applications or other components inside uh Databricks. So, once you have developed that, you can expose that app in Databricks. And we saw examples of the app uh we'll
[15:41] see later with Simon. It was mentioned this this morning in the keynote as well. So, you you'll see how it looks like. Uh but once you have that MCP, you can integrate uh in different places. So, once we have these three pillars, now the question is how you put all that together to be used
[15:58] by an agent. So, maybe Simon, you talk you can talk about that. Yeah, sure. I can show you like the global picture, right? So, this is what it looks like at the end, right? So, you have you have those three pillars, you plug all that in into your agent, and what's very important to understand is like those different pillars actually serve
[16:15] different purposes, right? So, you have all all your documentation, your knowledge, your context is managed through RAG, right? So, we use Databricks, we use vector search MCP, easy plugging into your agent. Then, all your data, your tables, uh we have a lot of logs coming from different system. Everything now gets
[16:32] available through Genie, right? Uh your agent now is able to query your data and combine that with your documentation. And then, as Jan was mentioning, we we deploy and we build custom MCP for also the action layer, right? Cuz it's
[16:47] good to have your documentation, your data, but then what you want is your agent to be able to interact and take actions. And this is why we built custom MCPs on top of our APIs, and that provides the system layer, I mean, the action layer for our agent, so that he's
[17:02] able to actually take action. So, this is the overall architecture of what our agent look like. I'm just going to give you a little picture of what it looks like. So, that might seem familiar cuz that was presented actually this morning during the keynote, but this is the application
[17:18] that we've built. So, this is all running in the Databricks app. Uh as you can see, this is the kind of front end that we have. It allows you to, you know, deep dive into all the metrics that we have, look at certain flights, a lot of different metrics. As you can see, the UI is pretty complex, but we've
[17:33] added this agent on top of it, and now you can just ask the agent to, you know, provide all the analysis that you want. And as you can see, the agent actually answers and give you all the responses that you want. So, this is very important for us because as you can see, having all those front end that we
[17:49] built, uh you know, it's a lot of work behind. And adding those agents able to just give you the answer without having you to go and through all go through all this UI is actually very valuable.
[18:06] This is just the captures. Uh if you want to, you know, just see a bit more details. But, uh I think I'm I'm going to jump to the next important question you might be asking yourself. It's like, "Okay, this is great. We know why you're building agents. Now, we know how you're doing
[18:22] it, but it's not that easy, right? Whenever you start doing you do POC, you use we use Agent Bricks. Uh it's super easy. In couple days, you can get an agent agent up and running. But, when you want to deploy that to production and get that
[18:37] to actually, you know, operate and provide that to a customer, you actually face a couple challenges. And I'm going to share those challenging with you. Little disclaimer, because of all the releases that Databricks is providing, there might be a couple things that needs to be updated, but uh things are moving so fast. I'll mention
[18:53] that later, but uh yeah. The first one that we have actually is the identity. So, as Ian was mentioning, you know, we are building MCP on top of our APIs. And right now, we have all Databricks Lakehouse. We have, you know, identity management in our Databricks
[19:08] Lakehouse. That's different from, you know, our production system that we provide to customers. So, the problem we have is like whenever you're starting to expose those APIs, you have to propagate the user identity from the UI through the agent to the
[19:24] back end and then, I mean, to the API, right? So, we don't want the agent to become a way for you to have access to things that you are not supposed to to see, right? For example, in our application, we have a lot of different roles. Certain users, they can do certain actions. Some some you know,
[19:40] they are not able to do certain things. So, we need to make sure that the user identity then gets to the API so that we're able to make sure that if someone ask an action to the agent, he is allowed to do it or not. The second thing is multi-tenancy, right? So, we have a lot of different
[19:56] airlines and, you know, all the data for all the different airlines, they go into the same table, right? All the tables that we have are multi-tenant. Uh but once you start doing agents, you need to be very careful, right? You don't want data from airline B to be accessible to
[20:11] airline A, right? For example. So, it it's it's becoming very challenging, especially when you start to be like, "Okay, let's expose the genie, right? And let's use service principal." Well, you can't do that, right? Cuz service principals, they don't carry the user identity. So, you need to have row-level
[20:26] security on your tables to make sure that you don't get mixed up in the data. And finally, all the tools, right? So, by default, the way we built the the agent, we are using LangChain. Uh it exposes all the tools, right? Regardless of the user's permission. So, back to my first point is like, "Okay,
[20:43] my user is not is not supposed to be able to do this action." But right now, he sees the tool in the MCP, right? So, that causes an issue, right? Cuz this user, he thinks that he's able to, let's say, deploy software, but he's not supposed to be able to do that. So, uh
[20:58] you know, it exposes a little bit our system and for the user, it doesn't provide the best customer experience, right? Cuz he's like, "Okay, I'm supposed to be able to do that. I see it." but then if he asks for it, uh it's probably going to fail because it doesn't have permissions.
[21:13] So, this is all related to like identity, the multi-tenancy, and and all that. The second challenge we have is actually scaling your agent, all right? So, uh again, tools. When you have two two or three tools, it's easy, right? But, how do you manage
[21:30] a growing number of tools, right? If you start having a lot of them, and in our case, we have a lot because we expose our APIs as MCP tools, right? So, you can imagine how much routes and endpoints we're exposing. Then, it can become very hard to manage. Uh your model can, you know, as the
[21:46] latency, token consumption, uh then it can create some confusion also on your model, who's going to uh query the wrong, you know, use the wrong tool, something like that. Uh what would be great would be to have like some kind of dynamic tool, you know, uh
[22:02] not filtering, but basically, you know, whenever you get a user asking for something, the MCP only provides the relevant tools, right? And not all of them. So, that the agent only gets what's what's really needed to perform the task. The second one's memory. So, I guess this one uh we know from this morning
[22:17] that uh the issue has probably been solved, but uh yeah, you want memory for your agent, session memory, and you want long-term memory like user preferences and stuff like that. When you guys use chat GPT or or cloud, they usually know, you know, where you live, and they know what what
[22:33] is your favorite coding language, so that the responses that you are getting are actually customized for you. And this is also something we want to provide to our users, right? So, they don't have to always specify the same things. So, having managed memory for us would be, you know, very great. I guess this was part of the announcement that
[22:49] was made, you know, this morning. Uh the final one is actually the open API and MCP, right? So, for us, there is a lot of value to not only provide agents that can, you know, answer questions, but act, right? Uh and it goes through APIs. We have a lot of
[23:06] internal APIs and we use open API to, you know, build those APIs. And we want to expose them as agent tools. But there is no managed way to kind of convert those open APIs to MCP. I mean, we mentioned we're using fast MCP, so there's there's ways, but if you update
[23:22] your APIs or if you're if there is a change, you need to maintain that and it's very it's very painful. So, having like a managed way for you to kind of expose your APIs to your agent would be actually very viable. Uh I'm going to stop there. This there's
[23:37] a lot of other things that we could mention. Uh I had, you know, quota management for token consumption. I guess this one was also revealed this morning. Uh monetization also for agent if you want to start, you know, providing your agent to customers and, you know, uh start packaging them would be also very interesting. But again,
[23:55] it's easy to get to a demo agent, do a quick POC, but then you need to think about all those things whenever you want to scale to production and get decision deployed. A couple of things I want to mention because we close this session is all the things that Databricks is actually
[24:12] shipping, right? Between the moment we started working on agents and now and I guess, you know, regarding all the announcement that were made this morning, there's a lot of things that were challenges and gaps that we were facing that are clearly are closing very, very fast. Uh the first one I want to mention is
[24:28] the managed MCPs, right? So, when we started, there was no easy way for you to actually integrate Genie or vector search in your in your agents. Now, you can use the managed MCP, it's super easy. You can get that up and running in a couple couple hours. Uh before that, you had to write a lot of code, so it
[24:44] was really painful. I think this has been available for for some time now. Uh the second one is uh some blueprints on the Databricks app. So, whenever when we started building MCP servers, uh we, you know, we took our Python skills and we went to fast MCPs and we
[25:01] built it from scratch. Now, if you go on Databricks apps, you have a lot of blueprints you can actually start from. So, it makes it much easier if you want to start building your own MCP servers, your custom applications and stuff like that without having to go from scratch.
[25:17] The final one, and I think it's it's one that's pretty important, is also like all the identity management. When we started, you know, playing with apps, Databricks apps, it was not that easy to get all the permissions added. You needed access to the agent and the app and the app service principal had to
[25:34] be added to your Unity catalog and so it was pretty tedious, but now it's they made it so much easier that you can actually when you create your app, you're going to configuration and you can plug all that together in a very nice and easy way. So, there's probably a lot of more
[25:50] things that would need to be covered especially, you know, looking at this morning and yesterday's keynotes, the gateways and all the memory stuff, but just to keep in mind that this is closing very fast and there's a lot of things that are coming that are
[26:05] basically solving a lot of issues we're facing. Yann, if you can give us the takeaways from these sessions. Yeah, thanks Simon. Okay, so a few few takeaways. First of all, we hope you have a better understanding how IEF works and maybe
[26:22] next time you take a plane you will see in a different way. You will use it different way. So, takeaways here start with a managed MCP as much as possible instead of building your own sometimes can get a bit clunky. So, rely on vector search Genie MCPs.
[26:39] Plan very early for how you're going to do the identity access management. I mean, this is very painful. It can get super complicated when you want to propagate the identity of the of the end user when you have multi-tenancy. So, you need to have a plan even if we have a
[26:55] simplified version first, but you need to have a plan. Um and the platform was still yesterday 80% there. Uh there are a lot of features being added into Databricks. So, we are really excited to explore those and see how it can help us
[27:11] to bridge this 20% gap that today we had to do a with a bit custom solutions. Um we'll be very happy to come back next year and see where we went. Uh so, thank you very much. And uh if you have any questions, you can reach out to us. Uh
[27:26] here are our LinkedIn uh profiles. And now we are open to any questions uh you may have.

Learn more about the Databricks Data and AI platform.

The information provided herein is for general informational purposes only and may not reflect the most current product capabilities or configurations.