Назад к подкастамClaude
Building the best agentic analytics harness: Powered by Claude, built with Claude Code
Hey, thanks everybody.
Um, great to be here today.
We're Omni is a AI analytics platform and today I'm going to talk a little bit about you know how we build with cloud and you know what we've built with claude and and how cloud powers that.
Uh so start just with how cloud has enabled us.
I'm the CTO.
I run the engineering team at Omni.
Uh we have a team of about 25 engineers.
Uh this is a slide of our uh commits to the main branch of our repository over time.
Uh I think it kind of speaks for itself.
Um one of the things hidden in here kind of a very small piece of that line is my own commits.
I think as CTO of a growing company with hundreds of customers, I sort of assume that at some point I'd have to stop writing code.
Uh and I thank Claude very much for making me uh still able to do some software engineering from time to time.
Uh so that's been a really you know a fantastic sort of unexpected benefit of of this roll out and you know to speak a little bit about how this went earlier in 2025.
We said to the team, I don't know when and I don't know how, but I know our jobs are changing.
So, let's just start experimenting, start using these tools, figure out what works.
And we did a bunch of it with some, you know, sort of fits and starts.
Uh, and when Cloud Code with the Opus model released, that was when some of our senior engineers said, "Wait a minute, no, this is real.
This is actually helping consistently."
And you know, it's kind of been off to the races since then.
Uh, and starting around, you know, I I sort of felt like everybody went away for the holidays and then came back in January and had sort of skilled up and figured it out and was ready to start hitting the ground running with cloud code.
Uh, and you can see the slope of the line from there.
So that velocity is a big part of our culture at Omni.
We have a core value called ship it.
Uh, we also have a a core value around transparency.
Uh so you can actually see uh if you go on our website omni.co there's a topline uh navigation page to our demos.
Every Friday at Omni we have an all hands meeting.
It's the most important meeting of the week.
We do about 10 minutes of announcements, shout outs to each other and then we do 50 minutes or increasingly more than 50 minutes of demos.
Uh, we record all this and our CEO's favorite job is Saturday morning he wakes up, he cuts those demos, posts them on YouTube and shares them with the world to see.
So, if you're curious about what we're up to, uh, you can go to omni.co.
This has been a really cool way to show our customers, our prospects, the community around us sort of how we're thinking and how we're building.
And that speed and velocity has been a huge benefit for us as a company.
So let's talk a little bit about what we have built with claude.
Uh so Omni's AI analytics, you know, we let you talk to your data, right?
So how does that actually work?
Uh so user comes in and asks a question.
In Omni, we're using Claw to actually translate that question into a semantic query.
I'll explain more what that means later.
Uh we have a semantic layer and that is think of that as sort of a translation layer that sits on top of your data warehouse database or maybe multiple of those uh to actually you know provide some additional benefit about how to use the data enforce it sort of give it a map for how to actually translate that data or excuse me that query into SQL that then runs against the the warehouse.
We'll go into more of this later, but that's just a high level view of kind of how the system works.
And this is important because Claude is incredible at answering questions, but you need to tell it more about your business if you want it to answer questions about your business, right?
Can tell you incredibly deep insights about how businesses work generally.
But if you wanted to know about how your business works, you need to tell it not only, you know, how the business works, the terminology you use, and then of course, if you're asking a a data question, you need to tell it how your data looks and how that works.
And so that's where we come in.
That's the problem we're solving.
And it's subtly difficult, right?
Like even last quarter means drastically different things at different companies.
Even in our our own company, you know, in the product and engineering organization, last quarter refers to the calendar year in our sales team, it refers to our fiscal quarter.
So all of that needs to actually get coded in to the context and awareness and even the the sort of data layer and definitions of the data so that it can be used appropriately to ultimately get you the right answer to your question.
So this semantic layer, what's it doing?
So it's like I said it's a translation layer that sits on top of the database.
Uh it's doing a few things.
It's very easy to sort of come up with a toy demonstration of how an LLM or frankly a human can get correct answers on top of you know 10 data sets in a database.
Real company data warehouses and databases are not like that.
They have tens of thousands, hundreds of thousands of data sets, sometimes more.
Uh, and all of them, you know, have there's a hundred revenue tables, right?
There's a hundred opportunity tables.
It's very unclear how to actually stitch those things together and use them in the correct way.
So, this is one of the benefits that our semantic layer provides is it allows you to sort is define how to use these things together and also curate it.
Say, hey, listen, this is the one that matters.
Ignore those other 10.
With that, it it's a way to encode the context.
I think one of the things that we've learned is that context is great, but context localized to what the actual definition that the context refers to makes it all the all the better, right?
And so I think about this, we're at code with claude.
If you use Claude Code, which I assume most of you do, you have your cloud.
MD files, right?
And sort of the more you can do to sort of localize that that context next to the parts of the code that it applies to, the better results you're going to get.
That's what our semantic layer does as well is it helps you provide that context next to the field definition that it applies to rather than in a separate file over somewhere else.
Uh and then finally permissions, right?
It's a permissions layer.
Make sure that people see the data they're supposed to see and don't see the data they're not supposed to see.
And inside of our application, this feedback loop is an important part of how this stays current and accurate because guess what?
In a real organization, this stuff changes constantly.
And so our application provides a feedback loop where you know the next question that gets asked of the data can then be fed back into the definitions into the context for a continuous learning loop.
So this is our agent name is Blobby.
Uh if you look at Blobby you could probably see this is you a mature professional refined data analyst.
Uh and that is what Blobby is today.
But Blobby hasn't always been that refined.
Uh started building Blobby let's say about 18 months ago and we've learned a lot along the way.
Uh you know Blobby's grown up quite a bit in the past 18 months.
So what I want to talk about is a little bit of you know how we develop the different phases and also what we learned uh along the way that kind of helped increase the quality and capabilities of Blobby.
So just to ground this conversation, I just want to show you a really quick demo video of what Blobby does in real life.
So if we can cut to the video quickly,
right?
And so what we're going to see here is like I said, ask questions of your data.
Blobby's sitting there dutifully waiting to answer your question.
Uh, and as we do this, you'll start to see some of the phases that we go through to actually break down the question and then answer it.
So, right, the first thing Blobby's doing is saying, "All right, you're asking about PRs.
Blobby's very smart because Cloud's very smart.
It knows that PRs refer to GitHub pull requests.
let me go find that in your semantic model and figure out what data you're actually referring to.
Uh then it goes and looks up the values of the data set because we said we only wanted it from a particular repository.
So it has to apply a filter.
It needs to know what that filter value is.
And guess what?
When I type out questions to an LLM, I make typos all the time.
So it needs to do a little bit of fuzzy matching to make sure that it's actually finding the right thing.
And then right it goes through it generates a query runs that query against the data warehouse gets the results provides a nice visualization and then does a nice little summary at the end to tell you what you're seeing.
Cool.
So just grounding you a little bit in what the actual experience is like.