Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:06):
Welcome to the Mongo DB Podcast Live.
I'm your host today, Jesse Hall,and we have some amazing guests
today that are going to share with us their story of their
product, why they chose Mongo DBand how their product can help
you as a developer. So be sure to also TuneIn and
watch every week from wherever you're watching from.
If you're on LinkedIn, if you'reon YouTube, we stream every
(00:28):
week, every Tuesday, every Thursday, sometimes Wednesdays.
We're very busy. So watch out for any of the
upcoming topics to make sure that you don't miss any anything
interesting. All right, so without further
ado, let's bring on our guests. Today we have Shakar and Jimmy
from Damo AI. How are you guys?
Thank you for coming. Hey, Jess.
(00:50):
Hey, Jesse, it's great to be here.
Thank you. Thank you.
Let's let's, let's just do a quick round of intros.
We'll start with Shakar. Give us a the quick 32nd.
Who are you? Yeah.
I mean, I guess in some sense I'm a mechanical engineer turned
computer scientist. I turned to the dark side.
I actually was never a really a startup person.
I only got into startups in my sophomore year when COVID hit,
(01:12):
rather than doing Zoom University, I actually joined
one. I was actually the first
employee prepared. I did actually, product and
customer success, nothing technical, but that's kind of
what led me on the journey. And when I came back to school
from that, I switched my major from Nike to CSN and met
basically Jimmy a year later andI started incubator and we've
basically been building cool stuff ever since.
(01:35):
Nice, nice. And Jimmy?
Absolutely. So I actually did the the
opposite of Shikhar. I switched from computer science
to mechanical engineering. My background is a mix of full
stack development, 2D3D animation and also a bit of
filmmaking. I initially didn't start with
startups initially either. I started with mostly
filmmaking, just animation projects and all kind of self
(01:56):
started projects and stuff that I would do whenever I was done
with homework or not. And yeah, Shikhar and I have
been building some cool stuff ever since we met.
It's been what, through Shikhar like 3 years now and yeah, we
just love building. We're pretty passionate about
seeing what newest technology isout there.
And then, yeah, that's a. Nice.
(02:16):
That's a bit of. A nice nice, great backgrounds.
So let's see you have this really cool product Damo AI tell
us just a really high level. What is it?
Yeah, I think so. I guess in one word, initially
it started off as this AI database engineer.
You basically hook up your database to the AI agent and you
can talk to it in English and itcan essentially kind of be your
(02:38):
assistant, help you manage, you know, do data modelling, manage
your schema, write your queries for you.
And kind of since then, it's actually evolved more into a
tool that helps you connect yourAI agents to your databases and
back end APIs. Because nowadays everyone is
trying to make AI agents. And the big problem is how can
you have those agents access your database but securely?
(03:01):
Because you don't want that thing to have, you know,
unlimited access, you know, doing who knows what.
So yeah. What's what's what's the harm in
just letting the AI do whatever it wants?
I. Mean, you know, you teach me
that and you trust, you know, Sam, you know, you give it, give
them full access to your whole thing.
Who knows what, But you know, I think most people a little bit
(03:24):
afraid of that. And we see these horror stories
of these, these individuals vibecoding their way through it.
And there's so many security holes, right?
Oh my. God, you were telling me about
there was this customer service bot that promised like people
they would get refunds or something and the company could.
(03:46):
The company got sued. So it's crazy nowadays, like
people have to be very careful. Yeah.
And it actually prompted a wholelike question around the
legality of whether the bots, you know, the bots were acting
on behalf of the company or as an external third party.
And if if so, then who you know,who carries to blame and all
that stuff. So it's a very interesting, it's
(04:07):
the ramifications are very interesting.
But I guess the, what we're trying to do here is to avoid
even getting to, to the course, right?
That's the, I guess that's the situation for, for, for users to
have a safer way to use AI, their ecosystem.
Safety is definitely top of mind, especially in the, you
know, enterprise landscape. We have to make sure everything
(04:27):
is secure. We don't want any any breaches.
I shouldn't even say that word on on live.
So it's a dirty word. OK, so tell us, tell us a little
bit more about demo. Like let's let's start with the
tech stack. Like what, what are you using?
What did? What did you use to to build it?
Yeah. You know, actually the tech is
actually an interesting part of this.
(04:48):
I mean basically what we do is like obviously our website and
all the web app is written in nxjs as content, but we use a
back end express service that webasically deploy onto like some
AWS Fargate instances. But really like the core meat of
it is how is our agent being essentially able to 1 access
(05:11):
your database to essentially dynamically write queries for
you and then three, execute those queries in a very secure
way and send the data back. So actually the interesting part
of the tech is 1 how those queries are getting generated
and two, where those queries aregetting executed.
So in terms of where those queries are getting generated,
(05:33):
we have we use a variety of different open source models out
there right now, mostly Quen model we used to do the dynamic
regeneration. And the interesting part about
the execution is basically we take whatever code the
middleware agent writes and we actually put it in like a Dino
V8 isolate and they actually execute this thing in V8
(05:56):
isolate. So it's actually the same tech
that Super Base and Versailles use.
Other edge functions we're actually using to, you know,
power our middleware, which is, you know, super cool.
The interesting thing when it comes to that, the reason why we
were doing it this way is because the way we look at it is
that we're kind of like seeing aparadigm shift in the sense in
(06:16):
the way that users interact withdatabases and with data in
general, right? The we from just the AI, the
rise of AI applications that we're seeing, it used to be that
historically, you know, if usershad to ask for data, the
developers was in a position to,you know, predefine the queries,
build out the interface, hard code, every possible rule, every
possible path, you know, before the product even shipped, right?
(06:39):
And of course that's unscalable,but that was the way to do it
before. But now we're, we're living
almost through a very magical time now in the sense that we
have the situation where you have agents that are able to
generate those queries dynamically, right, in real time
using natural language. So in a way the interface isn't,
isn't necessarily always the dashboard anymore, it's intent.
(07:00):
And so that changes everything, right?
But it can also break everything.
And so the way we see this is that we want to be sort of like
the middleware, the portion thatmake sure that you are able to,
you know, have natural language be translated to appropriate
queries. And so the way we do the way to
do that is to basically run these queries to validate these
queries safely and sort of isolate, which is very much in
(07:21):
simple terms, it's like a sandbox environment that allows
you to that allows us to processthese queries.
And basically then and proceed or not proceed depending on the
nature of them. So that's kind of the
justification behind the technical choices that we made
for this product. Nice, nice.
(07:41):
So Nextjs, Dino Express, those are good, those good.
And then how about for the database?
What are you using of? Course Mongo you can never go.
Wrong. Can't.
Go wrong. So tell us why did you choose
Mongo MongoDB? Yeah, I think it came down to
(08:03):
two reasons. I think.
One, we had a bad experience at Postgres, like we were building
out a, a kind of a HubSpot for Instagrams type of product, the
Kanban board and it had to integrate with, you know,
Instagram. Obviously we had built up the
whole Kanban board. We realized we messed up our
schema completely. We couldn't ingest this data
(08:24):
from from Facebook, I guess, in the way we architected our
schema and we had to like spend like a whole week we
architecting things and it was abig waste.
And I think that kind of gave usa bad taste in our mouths.
And we're like, OK, well, you know, maybe maybe, you know, no
SQL is a is a is an interesting approach, a different approach.
(08:45):
I think the other reason is alsoin terms of like having an agent
that can interact with the database.
We felt actually it was much easier to start off with the no
SQL database because I mean trying to have this agent that's
having to strictly for now you can have schema in Mongo DB as
well, but having something that has to strictly follow like
(09:08):
foreign key relations and all these things, it gets
complicated. So they make it simpler.
It just made sense to start off with the no SQL database.
I agree. And also in terms of like
beyond, you know, the fact that Mongo DB, I think is very well
poised for, for AI agents and really much of the, the, the
(09:28):
widespread AI applications, right?
The fact that Mongo has, you know, vector search support
Atlas, the Atlas ecosystem has been great for us.
It's been super fast. We've been, we've noticed,
especially when it comes to autoscaling clusters and whatnot.
It seems like it's the the people that we're, you know,
building for and the people thatwe're working with, whether
they're startup founders or slightly more advanced, they
(09:50):
like the ability to ship fast, right?
They don't want, they like the fact that a lot of things are
abstracted away in a way that's optimal and efficient.
And that very much aligns with what we're trying to do very
much. It seems like in terms of the
simplification and enabling users to get to market, to get
to product faster, it just, it just felt like there was no,
(10:11):
again, sugar said, you know, jokingly that we couldn't go
wrong, but I think it actually, we really couldn't go wrong with
that. It just made sense for, for that
plus also the fact that the factthat we're, you know, we're
building a dev tool for, for developers, it aligned with the,
with the dev first mindset that we're seeing in from the, the,
the, the, the plethora of resources that Mongo has out
(10:33):
there. So it was.
It made it. It made it made our job easier,
I must say. That's good.
That's good. You went when it comes to, to
shipping fast, It's it's much easier in, in Mongo DB for sure.
And and that's, that's kind of the, the thing that we're trying
to also show developers is that Mongo DB is a general purpose
database. It it's especially for startups
(10:56):
and for AI applications, it's soeasy to move, to move quickly.
Not saying that you can't do it with other databases.
You can for sure, but should youlike, what's the, what's the
easiest way to do it? And, and it really is mono TV,
so amazing, amazing. Let's let's, I feel like we
should like show something at this point.
(11:17):
Is there anything else that we missed before we should get into
the demo? Yeah, I think, I think that's
basically it. I I would also mention that
actually it's funny because we also, we also use Lang chain.
We actually use Lang chain for our agents.
Actually it's funny because Mongo DBS the checkpoint system
or the Lang chain agent itself, which just makes life easier.
I think that's the other thing is I think you guys do a really
(11:40):
great job of really staying up to date on the technology, which
I don't think you can be the same for like Oracle.
I don't think Oracle is doing things like that so.
Nice. Yeah, We, we, we are trying to
stay, you know, ahead of things.And we have integrations with
many of the AI frameworks such as Lane Chain, many of the
(12:01):
agentic frameworks as well. And so again, like working with
AI and MongoDB, it's just we want it to be as seamless as
possible. For sure.
Yeah. So I know the audience is
probably like they want to see something, they want to see some
action. So let's go ahead and show us.
You mind if I share your screen now?
Yep, absolutely. Okay, All right, so we're
(12:21):
looking at the landing page hereand let's let's like, and for
me, I am more of like a visual learner.
We can talk about this all day and I'm not going to understand
until you actually show me so. So show me a little bit here.
Yeah, yeah, absolutely actually.So I guess we can show you kind
of two things before we dive in here.
One, actually I have a little mirror with the back end
(12:42):
architecture here. I know some of you guys are
thinking, you know, what does this, what does this all
actually mean? I basically at a high level,
what you're really trying to do is they're trying to hook up
basically give demo access to your API endpoints,
Http://endpoints, your structured databases, your
vector databases, and kind of any specific user session
(13:03):
context. And you'll see this, you'll
notice this pattern when we actually dive into the SDK in a
minute here. But basically, you give demo
access to all of these, these things.
And essentially what Damo is doing is anytime now, this is
your agent. So you have your online chain
agent or something like that. And this a, your agent needs to
(13:24):
access something in, you know, in either one of these, right?
You would normally have to set up all this plumbing yourself in
this new world. What happens is basically if a
user asks, hey, I need some certain data, your agent will
tell Damo in natural language, hey, I need this information.
And Dame will actually figure out, OK, where does this
information exist? And it'll literally write
(13:46):
TypeScript. And so it'll write TypeScript
that, you know, it's saying, OK,let me, you know, write some
TypeScript to access this API endpoint.
Let me write some TypeScript to,you know, do a Mongo DB query,
let me write some TypeScript to do a vector search query.
And you can actually combine these in all sorts of different
ways. And basically it'll execute that
query and basically give you, your agent a dump of a bunch of
(14:09):
JSON, this raw data. And so your agent can then take
that raw data, which is the information that you need, and
convert that into whatever response you're trying to give
to your end user. So at the end of the day, you're
still in control of what the enduser sees, like what's the
actual response. But you don't have to take care
of the plumbing to actually get the raw data from your database
(14:31):
or your back end APIs basically.Nice.
I would, I would say that in terms of like, if you want to
maybe zoom in a little bit on the, on the diagram, one thing
I'm noticing, one thing we were noticing also when we were
talking to some of our users is that a lot of them I had a
pre-existing software that was mostly, you know, legacy
software think, you know, potentially ACRM, they could
have like a, you know, billing system, they could have a
(14:53):
ticketing platform. Basically what is 99% of GitHub
today, right? The, the most, the majority of
the reposts today are not AI native or not.
They, some of them have been retrofitted or some of them are
AI native and some some to a certain extent.
But what we're noticing is all the software today doesn't
honestly have AI native capabilities.
And so the way we see this is that, well, it seems like this
(15:14):
really is a database problem andan API problem.
So the way we're looking at this, we're going straight to,
OK, well, if this is where the application really the, the
logic really lives, you know, interms of the database, where the
data, you know, transact goes toand from, right?
And the APIs which performs someactions that to serve the end
user, we're thinking, what if wecan be this middle, this middle
(15:35):
layer, this sort of middleware between these two elements and
the user interface. And so the idea is that, let's
say, for example, you're in a position where you want to take
your repo, you want to take yourcode base and you want to
identify it. So you all of a sudden you say,
well, we have this CRM, let's say you're a Trello, you're a
Salesforce or you're well, Salesforce is, is massive.
So, but you know, eventually youdon't have as many resources,
(15:55):
you know, as many engineers to, to identify your workflow.
What if you could be able to allof a sudden have an intercom
like chatbot in your platform, in your pre-existing platform,
right? And be able to have your users,
your end users use natural language to ask the your, your
to basically talk with your, with your application.
(16:17):
So that's kind of overall what we're trying to, we're what
we're going to show you guys today and we're going to
actually start very, very simple.
We're actually going to start you with something much simpler,
which is a natural language to endpoints generator.
So this is something that we we basically that came from the app
(16:37):
services of Realm at the time, which was discontinued.
And the, the way we see this is we say, what if there's a way
that you could speak your back at your, at your back end or
your endpoints into existence. And that was kind of very much
the idea that started it all really.
And then we expanding into the agentified, but really it came.
From nice, let let me before we before we move on, go back to
the to the visual, please, because this this cleared
(16:59):
everything up for me. Like again I'm a very visual
person so this makes total senseand and I love this and so I see
on here Mongo DB super base. So I want to call out like this
is not mongo like just mongo DB right?
You can. What kind of databases can DML
connect to? Yeah, actually.
So right now it is still just Mongo DB, but so some folks have
(17:23):
started to request things like super base because obviously
everyone's, a lot of people are using super base these days.
So it's just an example, but youknow, we think that you can
apply the same logic to all sorts of structured databases,
also databases like, you know, there's no reason not to, but
Mongo DB is just really great because it offers all the
(17:44):
support right out-of-the-box. A lot less work on our part.
For sure no, I just I just againjust wanted to call out, you
know, maybe other database technologies are coming soon.
Just acknowledging like there are applications out there that
use other databases, so, you know, you wouldn't want to like,
you know, hold yourself to just MongoDB and that's OK that's OK
(18:04):
we acknowledge that there's other databases, but it's great
that this is manga to be first. That's that's that's awesome.
The other thing that I see on here is is MCP.
So I, I, I hear this all the time MCP.
So is demo basically the server side of the MCP and and you
could could then use that in a in any client side such as like
cursor or other things that interact with MCPS.
(18:26):
Is that is that the idea? Exactly right.
That's exactly right. We want to, we're not trying to
replace outright your agent. Now the demo we have for you is
kind of the full fruition of that.
So we actually are providing a full agent in the demo we have
today. But, and yes, when you're using
this in production, the idea is that you have your own agent and
(18:47):
Dan will access an extra plug in.
So you can be using other thingslike Jimmy, what is the name of
the one that does web search forLLMS?
So you could have an an A Lanchin agent where you hook it
up to Tavoli and to demo. So then you can have an agent
(19:09):
that can do both web search and and access all of these back end
APIs and databases. Nice.
Yeah. Perfect, perfect.
Again, love the the the visual there.
That that's, that's great. Let's go ahead and move on to
the next, the next thing that you have to show us.
Absolutely. So actually we're gonna kind of
start as kind of a throwback. So this is actually what the
(19:32):
product looked like originally. And Jesse kind of knows this as
well. You know when we when we spoke
like a couple months back. But this is actually where the
the product originated. It's this AI database
engineering. As you can see, we have quite a
few projects. We've been very busy.
What's the new thing today, Jimmy?
What are we trying to build today?
(19:53):
Let's do you know what. Something like a GR Trello?
Because we're going to do it. We're going to do yellow.
How about that? We'll do a Trello clone.
That'll be pretty fun. OK, so we're going to make a
Trello clone here. And basically what you have to
do is you have to essentially just connect your Mongo DB Atlas
(20:15):
cluster. I already have a cluster I set
up here. I have my API key right here.
Let me try not to reveal it to the whole world, but.
Tricard, you want to just refresh the page so we can see
the steps maybe and zoom in justa little bit.
I think that could help. We can if this still shows.
Oh yeah. Perfectly it's you connect to
your MongoDB database with app, you know your give your Atlas
(20:36):
connection string. Obviously local host is not
going to work. So you're going to have to have
it be publicly accessible on theInternet.
You're going to have to, you're going to talk to it in English
basically asking for, you know, what do you need, you know, in
terms of your, your schema or you know, what type of CRUD
operations do you need. And basically after that the
(20:58):
agent will write your Mongo DB queries for you and it'll
actually deploy them as publiclyaccessible endpoints.
So it's kind of a DevOps tool aswell, pretty interestingly, of
course. So this is it very much started
with the idea like, can we just simply speak our endpoints into
existence? It was like we have a database,
you know, we, we wanted to show like a prototype or something.
(21:22):
We don't need to do like the whole compute with AWS and
whatnot. Is there a way that we can have
that as a please deploy, please create these CRUD endpoints,
create, read, update operations,and that's just kind of like how
demo was born in a way. So let's let's drill down on
that a little bit because you you, you brought out realm and
(21:42):
app services. And so that that was some
functionality that Manga to be Atlas had built into it where it
where it created those those crud endpoints for you.
But that recently did get deprecated.
So that is no longer a feature of manga to be Atlas.
And so this was kind of in line with like, let's let's pick up
from from where Atlas left off. Let's see how we can kind of do
(22:04):
that, but but identify it and and make it easy, right?
So that that's a really cool spin on, you know, us
deprecating a product and you like picking it up and say I can
do that and I can do it better. You know, and the funny part is
we didn't even really think of it in terms of like replacing
Realm or anything, because we kind of stumbled onto this very
separately and is only after we started talking to more folks
(22:27):
realized, oh, you know, this could be a really good
alternative to Realm. Yeah, yeah, I think it's very,
it's very interesting. But yeah, so here we actually
just connected to our cluster and you can see we actually have
access to all of all of our databases here.
You can see all the collections and everything.
And basically the way this worksis we can just select what
(22:49):
cluster we want the agent to talk to, and we can select what
database we want it to talk to. In this case, I'll just select a
random one here. Let's go with the events DB
maybe. Yeah, let's just do that.
And now we can basically just talk to it in English.
You can just be like, hey, create a simple thread app that
(23:11):
that is a Trello loan, have muchmore call it have the let's say
have the tasks have tasks. Let's have tasks of the field.
I'm being very redundant here Name.
(23:33):
Let's go with description. Probably date or.
Page and date, something like that.
Some pretty simple stuff here asI can send that and basically
now all it's going to do is think about, OK, this guy's
asking me to make some crowd, some crowd application.
That means I'm going to need a create endpoint, an update
(23:54):
endpoint, a delete endpoint, andthen they're asking me to have a
couple fields here actually there you can see it created it.
Obviously this doesn't, you know, you're not going to really
deal with it in that fashion. So you're actually going to go
to functions over here. If you click on that, you can
actually see their function codein the actual like regular
TypeScript and the obviously youcan manually edit all this code.
(24:16):
We never want to, you know, remove control from anybody.
That's a terrible idea. I mean, always want to maintain
control. But yeah, you can.
And I want to add here that everything here is already
deployed. So now basically it's it's it's
fully, you know, you don't have any boilerplate, any scaffolding
you get now it's fully running. So tricks your car is going to
(24:38):
show the everything is accessible.
That's the cool part is this thing actually, it's like a
serverless edge functions as well.
So, you know, basically if we copy our route here and we go to
Postman, obviously we're doing it Postman, but you know, this
could be a neat thing. I mean like real commands, you
know, Axios, whatever it is. But we copy our POST, our API
(25:00):
key, sorry, our route URL. Then we go to environment
variables, we give it a second here, we'll actually get our API
key. So all of these routes are right
now protected by an API key. I think I'm going to have to
zoom out here, but generate a new key.
Let me zoom out a little bit more, copy that key, I'll zoom
in, back in. But if I go into Postman here,
(25:22):
can I zoom into Postman? Oh, I can.
Perfect. You can magic, but if.
I yeah, is and so these are the the the functions that you said
they're running on like a Dino like V8 edge function that's.
Correct, right. These are OK nice.
This is a Dino V8 isolate all ofthis.
So if we give the, you know, kind of our body parameters
(25:43):
here, the name, we'll just call it.
I don't know. Just to do.
Fellow task one or something like that.
Very basic, very uncreative. What were the other fields?
Let me take a look at the edge. Point we had a description,
stage, date I believe. So we have description here.
So we'll do a description for task one very, very uncreative
(26:12):
here stage. We'll just call this pending,
let's say. And let's do date.
And we will just do the date as 4/1/25 S today.
And let's make this a POST request and let's send it.
And you just reminded me it's it's April Fools today.
It is April Fools. Yes, it is.
(26:34):
But this is a real stream. This is a real.
Guys this is real product, not fake.
This is not a figma. This is not a demo.
This is real. Yeah, you see actually, so here
it actually inserted that, inserted that task.
And actually, if we go to if we go to the Mongo here and go to
what was it the events DB and goto tasks that task collection,
(26:57):
then you can actually the the the the document populated.
And in fact, actually we can do the get request now and actually
we can retrieve our task as well.
So basically a fully like what that was what was 3 minutes, we
have a fully functioning right application.
The other cool part of this which actually you'll see how
(27:18):
this ties into the SDK in a moment here, But if we select
their cluster and select the events DB again.
This is one of my favorite parts.
We get to really talk to the database.
Literally. Like.
Whole. You know, dynamic queries and
everything. So actually we can, we can like.
(27:38):
In fact, this is actually how weactually, I see how many users
are currently using the product.We actually literally query our
own Mongo DB through the productand we also like.
Also you can generate a lot of synthetic data.
We do that all the time with. There's lots of synthetic data
generation type of tool. So you could have it just
(28:00):
populate like I'm creating this app.
I need some dummy data, yeah. Exactly, Yeah.
You know, initially it was like something like, OK, I have a
recipe. Can you just come up with five
Italian, you know, dishes and itwould just like come up with
actually we can do it, actually see what it's.
Yeah, I just created five example tasks with random names
(28:21):
and descriptions. Descriptions and stages.
That's just something like that.Hopefully, hopefully this thing
will happen to your list today. Oh, OK.
I think, I think I know why it did that.
Execute a direct query. So this is an old version of the
(28:41):
agent, which is why that will create five example tasks with
random names and that within thetask collection you have to be
very specific with OK, we've already moved on to a better
version that is, you know, a lotsmarter and more intelligent.
It's actually kind of crazy. This is actually running on I
(29:04):
think GPT 4 O the new ones that run the nowadays we all we run
on deep sea car one. OK, one thing is deep seating.
The people are like, oh, the Chinese, you know, are they
going to steal their data? Yeah, we actually use a provider
that's in the US, but list all tasks in the task collection.
(29:25):
So if we do that now, we should actually get all the synthetic
data that it just generated. There we go.
So you can actually, it just generated a bunch of a bunch of
synthetic data here. But yeah, this is just this
great little thing just to kind of manage your database.
It's also really great for, we also use it all the time for
cleaning up data. So a lot of times, especially in
(29:49):
test environments, we just end up making a bunch of dummy
documents and it gets super annoying.
So actually we also use this to do like, you know, essentially
clean up those dummy documents. You can actually do some pretty
complicated queries with this interms of like, you know, all the
regex that you would have to write yourself, this thing would
kind of kind of take care of foryou.
(30:11):
So that makes, you know, cleaning up documents a little
bit easier. I could even see this like like
you, you said you had an issue with Postgres where your schema
was changing, etcetera. And in Mongo DB you can do
anything that you want, but at some point you probably want to
like maybe normalize a few things.
So maybe you could say, hey, go through because I've added this
new field. So go through and make this
(30:32):
update to the basically an AI generated migration which you
know migrations is not a thing in Mongo DB but you kind of you
know you could kind of fake it with this.
Yeah, you know, that's such a great point.
I think I know that Mongo DB wayof doing things is you create
version one of a document and version one of a document.
But I know some people even I think myself, I still have the
(30:52):
SQL mindset. So I don't like doing that all
the time. I think I've got, I've grown
much more accustomed to it, especially since I've been using
Mongo DB a lot more for kind of that like what you might call it
asynchronous applications or youuse, you know, Kafka or
something like that for streams.You know, rather than just kind
(31:13):
of doing everything very in a very synchronous way, which case
versioning makes perfect sense. But yeah, this thing can can, I
think this thing can be really great for migrations.
The other cool thing is because of, you know, the way the ICE,
the VA isolates work, one big problem with something like I
think Netplify is those isolateshave very strict time limits.
(31:34):
I think it's even to the millisecond or something.
Last time I checked, they're doing migrations and those types
of things. It's, it's not really feasible.
It's not really feasible. But with us, you know, we have
much more leeway. We can run a isolate for a very
long time, probably very similarto like a Lambda function.
Lambda function limit is what, 15 minutes?
So we can get up to those types of time frames.
(31:56):
So absolutely, migrations could definitely be possible.
Nice. Amazing.
Looking good so far. So you said that this is the the
older version. What has, I mean, you're
probably going to get to this and just tell me that you'll get
to it if you do. But what is the the newer
version look like? Yeah, this is a great question.
So actually what what we've kindof evolved into is kind of
(32:19):
becoming more of a like essentially this AI agent kind
of glue, right? This SDK kind of tool that helps
you kind of identify your application.
So here I actually have this kind of travel application here.
So this is like an open source travel application.
It's built in like next JS and uses Mongo DB for your back end,
(32:42):
which is pretty cool. And it can do some, you know,
pretty cool stuff. I mean, if we create a new board
here, we'll just make it, you know, like a sales pipeline
board or something like that. You know, it can do all the
normal stuff, create a sales pipeline, you know, add a
column, all the, you know, normal stuff.
Let's just edit this to be like,I don't know, new deals or
whatever, something like that. So you know, your normal kind of
(33:07):
Trello application. But a big thing that people
folks want to do these days is they have their Trello, they
have their sales force, they have their CRM, but they want to
identify it, have some sort of AI agent companion.
Right now, I'm sure a lot of youfolks out there, you know,
you're getting pulled by senior management to, you know, stuff
AI into everything these days. So I'm sure you guys are
building a lot of AI agent companions.
(33:28):
But the problem is that's a lot of plumbing to do on your part.
No one likes doing plumbing. I don't like doing plumbing, So
what we basically kind of built is a very nice SDK where it's
very similar to like demo here. This version of demo, you
basically give, you know, your Atlas cluster connection string,
you write out your database schema and that's basically it.
(33:51):
Now you have essentially like a middleware that you can plug
into your, that you can plug into your, your agent and it'll
can essentially identify your application.
You can have users can create new deals, manage all pipelines,
the whole shebang. Yeah, go ahead, Jimmy.
(34:12):
I was going to say in terms of like the way we see this is that
this is one of the application of this technology of you know
and like sort of almost like natural language to database
operations, right? This is like one way manifest.
It very much came from issue. Maybe you want to show the
website where we have the graph,the diagram.
Maybe there's the do we have thediagram up on the I think we do
(34:35):
on the second yeah, yeah, if ever started as I say, okay,
well, what can be done when you when it comes to translating
user intent intent towards to database and you know, whether
it comes to reading information,reading data or also potentially
writing data. And that's kind of like how this
is this how we've been working on something like this with one
of our with a group of our portion of our users.
(34:58):
And so is there much always be being this grand idea of being
the middleware between the link between language and logic, just
in a more, I guess, real world or practical way?
Absolutely. So I'm sure, I'm sure you guys
are itching to see the SDK and how it actually functions and
everything. So we'll, we'll, we'll jump
right in here. Here I actually have.
(35:20):
So this is the actual Trello app.
So this is that actual next JS app and everything.
And you, you, you can kind of see all of this.
What basically the way this works is that's kind of two
parts of this. There is the Daemo CLI and there
is the Daemo SDK. So the Daemo CLI is how you're
going to get your API key and it's how you're going to
actually set up your agent and get an agent ID.
(35:43):
So with those, that's how you'regoing to give to the, that's
what you're going to give to theSDK.
So Daemo knows OK, this is this user making this agent and this
is a this agent is calling you know these APIs or whatever so
we'll actually go what we can dois actually if we go ahead, oh I
mean I do that if we actually goto the CLI here, what we can do
(36:04):
is we can actually do I actuallythink I'm logged in right now
yes. I am so if I do Daemo, who am I
I'm actually already logged in, but you know what I log out just
for the demo's sake, I'll do Daemo log out now.
This will be ACLI tool that you will install like doing
something like NPM install dash G Daemo right, or Daemo supply
or something like that. But you know, we're going to
(36:25):
publish this pretty soon. This is not public yet, but it
will be very nice. Basically what the first thing
you're going to do is you're going to do demo login and when
you do demo login, this is goingto basically open up our, our
login portal. Oh, I think I I actually need to
run the portal service here. That's how new IT is.
It's still local host. It's still fresh, so it's still
(36:46):
in the oven. It's all good.
It's all good. Still it's still in the oven,
but let me let me do demo login again here, but there we go and
actually let me actually do this.
Oh, is it not? Is it not still running here?
Oh, I know why it's because the Trello thing is on is on port
3000. So it there you go.
(37:06):
Oh, and you have the other one. You have the current.
One that's on port 3000. There we go now.
Now it should work. So now at this time that we
actually run demo CLI. See, this is what happens when
you don't have the production yet.
Live, live coding is always fun,but we've we always, we always
figure it out. So if it actually, I'm going to
open this up in Chrome because Chrome for some reason works
(37:29):
better with these logins. I don't know why I love Firefox,
but for some reason it's just not cooperating.
So we're going to login with demo here.
And if I do, I already have my login credentials.
And if I do that and then I go back to, Yep, there we go.
So our login was successful. And now if we actually do demo,
(37:52):
who am I? You can see, OK, I'm logged in
as Shrikar. I have a user ID.
My token expires in like a month.
So you're gonna have to do demo login and again in about a
month. So once you've logged in with
demo login, now you can actuallygenerate your API key.
So you do something like a demo API key create and you're going
to name your API key. In this case, I will just do
(38:13):
something like Trello API key demo, something like that.
There we go. So once you create that, you can
actually copy this API key. So I'm going to copy my API key
here and I'm actually going to paste it in my in my Trello app
here just for safekeeping. So I'll paste it in there, but
(38:35):
let me go back to my CLI. And now I have to create an
Agent 01. Other thing is if for example,
you accidentally clear your terminal, what, where do I get
my API key now? Great question.
But you do a Daimo API key list and this will get you, this is
kind of ugly. If I do it in the bottom, there
you go. Now that's a lot better.
You can actually get all of yourAPI keys that way as well.
(38:58):
So you can do Daimo API key listthat way, but we now we have to
create an agent. Obviously, this this is you can
do it through the CLI. You can also do it through the
web app. So when we publish the web app,
you can also do all this stuff through that as well.
If you don't want to use the CLI.
I just love CLI because I do everything in terminal, as
you've noticed. But we can now do demo agent
(39:22):
create and we can create our agent.
So we'll just do Trello agent demo and we'll do that.
There we go and created the agent successfully.
We'll copy the agent ID and we'll go back to our SDK here
and paste it in here. There we go.
And so now basically what we cando is now this is our Trello
app. So this is the actual Trello
(39:42):
clone in here, this next JS application.
And basically what I have is a little utility file.
So actually you can see in my utils, I have this Trello agent
file in my utils. And this is where you're going
to actually configure the agent and everything.
So we're going to paste in our API key here that we got from
the CLI. We're going to paste in our
(40:03):
agent ID that we got from our CLI and paste that in there.
And now here we can actually start configuring.
So we can configure the agent. We can give it a name, we can
give it a description here. We actually set our Atlas
cluster connection string here you can actually see.
The, you know, database configuration.
(40:23):
So this is actually where you set up your schema, right?
So this is actually the name of the database itself, not the
collection, right? The name of the database itself.
This is the name of the collection.
In fact, if I actually go into, if I go back to Mongo here, you
can actually see the here is the, here it is.
(40:44):
This is our actual database, theTrello database.
So we have a couple of differentcollections here, boards, cards,
columns, users, the whole shebang.
And here you can see in the demoSDK, what we're basically doing
is defining the schema of our whole database.
We're saying these are the various kind of fields in in the
document. This is kind of the types of
(41:06):
those fields. You can even do things like
foreign keys. So one big thing is references,
right? So we can actually do
references, which is super cool.So basically what you're going
to do is set up your entire schema like this.
Obviously we're going to what, you know, in the future, we're
(41:26):
going to have, you know, the demo agent set up, you know, set
up all of this for you, right? You give your documentation,
either your swagger documentation or give you know,
whatever it is and it should generate all of this for you,
which is going to be pretty nice.
Now this is the cool part role based access control.
So how can? How can you?
(41:48):
Prevent an agent from accessing data it's not supposed to.
In fact, one of the big questions is, is identity access
right? If a user is using your agent,
they should only be able to access data that that you know
they have access to, right? That they have permission to
This is the the part where you can kind of set up roles, you
know, admin role, user role thathave different kind of access
(42:11):
levels. You can do access levels in
terms of read, write, delete access on the individual
collections themselves, but you can also do at the schema level
as well. OK, you know, what's the, what,
what filters can I do right? If you have a filter where
you're saying, OK, you know, I have a Trello board, I only want
users to access their own boards.
(42:32):
How can you implement that when you do that through filters?
And so right now this is not obviously this is still very
rudimentary because they, we literally built this SDK out
like over like the last couple weeks.
So, you know, right now it's a very basic filtering system
where you can say, OK, this, youknow, for this field, you can
have either, you know, have the user ID exactly match, or you
(42:56):
can have it be greater than or less than very basic type of
filters. This will evolve into a much
more complex system, probably will take a lot of inspiration
from Mongoose. I know that's kind of, you know,
some people like Mongoose, some people don't like Mongoose.
We'll have to see maybe if y'allhave different opinions.
I know data modelling is something that you know, you
know, there's a lot of debate about.
(43:17):
So if you guys have opinions, feel free to to comment about
it. But basically you can kind of
set up your royal based access control here, here.
This is actually I've, I've uncommented this part out here,
but actually this is going to besomething super cool.
This is actually going to be, ifI actually uncomment this, this
is actually going to be adding Http://endpoints.
(43:39):
So you know, one big thing is mutations, right?
Sometimes you don't want to do mutations directly on the
database. You only want to do mutations
through API endpoints. So this is something that, you
know, we still need to kind of work out the kinks for, but
we're actually adding a way where you can essentially give
access to your Http://endpoints.So essentially you wrap all of
(44:01):
your back end service and now you don't have to write any
extra code and it you can ensurethat you're only doing read,
read operations on the database directly.
But any mutations, you do it only through the back end
service. So you know you're not messing
things up. But this is still a work in
progress. But that's kind of the basic
gist of it. Once you set up your
(44:22):
configuration here, that's it. All you got to do is write, do
Trello agent dot saveconfig and it'll basically take, you know,
all of this schema and all of that that you set up and it'll
actually push it to the demo servers.
Then our demo knows, OK, this isthe functions I have access to.
This is the schema of your database, and it'll be able to
(44:43):
actually dynamically generate your queries at this point, very
simple. All you have to do is kind of
two things. One is you have to kind of give
a user context. So this is actually a very
important part is how can you ensure that the agent knows who
is accessing it. So this is how you do it through
user context. So in the user context, you
would either give the user ID ormaybe you could even give the
(45:06):
JWT token if you want to give that WT token to your API
endpoints. In fact, you can actually pass
any number of variables through the user context.
So this is how you can kind of give context to the agent on
what part, on who is accessing it, what part of the process
it's in. And now what we have is just one
(45:27):
simple little React component. And all we got to do is
essentially just paste this React component in here.
And if we do that, relax. It's one line code.
All you got to do is just add this add this one line of code.
It'll essentially create a an intercom style agent.
So if I do NPM run dev here, port 3000 is already in use.
(45:48):
I think I have to get rid of theportal here.
But if I do NPM run dev, there we go.
So it's running, it's running Trello again.
And if I go back to Firefox hereand I go to the Trello clone and
I refresh the page, give it a second to load up here.
And guys, remember this is the exact same GitHub we started
(46:10):
with the exact same code base, except that we had this, the
agent, the the demo SDK on it. That's all that we did for for
changes. Absolutely.
So my wife got into this Trello clone here.
You can see you see here this, this, this did not exist before.
All right, so this is your intercom style little chat bot.
(46:35):
So you didn't have to write any React.
No, nothing. You just paste in that one line
of React code and you got yourself a little intercom bot.
And in fact, if we actually go to our boards here and we go
into like sales pipeline, we canactually be like, hey, hey,
demo, add 6 new columns that will act as our sales pipeline
(46:58):
in the sales pipeline board. All right, let's do something
like that. Cross our fingers that it's
working here. Actually, if we go to our
search. If it's not, it's April Fool's.
Back in service here and you canactually see what it's doing.
Essentially we're giving the theAsian context onto as to what
(47:19):
the schema is and everything. And essentially it's writing,
it's essentially writing this, it wrote this code and it
executed in a decent Dino Viet isolate, in fact executed.
And if we refresh the page here,give it a second, there you go,
you can see that it's created six whole new columns.
(47:41):
And in fact, we can even do something else.
We can say, OK, I add five unique cards to each column in
the sales pipeline board. Let's do something like that.
And if we actually go back to our back end service, so you can
see it, it's generating the codeagain.
(48:03):
There you go and say generated the code and there you go and
executed that code in the Dino Viet isolate.
And so now if we refresh the page again, there we go.
We got our tons of synthetic cards in here now.
Sugar, I think this is, this is.I can only imagine the kind of
(48:24):
possibilities that this will open up in the future because if
you think about it, the number of solved, the number of
applications today that are still like very much legacy
applications, normal regular software that has no AI in it.
And then you could even have like a junior engineer on your
team to say, OK, well, just you know, plug in demo.
And then all of a sudden your end users who could be
(48:45):
potentially, you know, you couldbe social workers, it could be
anyone really. Just it could be mechanics using
any kind of software are going to be able to do all kinds of
data retrieval and data manipulation without really
knowing it, just by using a chatbot really.
It's like they've intercommunified.
They identified their software in like less than 20 minutes,
right? And this the part that at least
(49:08):
I am super excited about is visualization capability.
So this is something that, you know, I was spent, I spent the
whole of last night trying to integrate this, but you know,
it's a, you know, we'll get there in a couple of weeks,
it'll be there, but it's going to be when this thing can start
doing graphs like you have your CRM, right?
And so now the user is trying todo some business analytics.
(49:30):
Okay, imagine a business analytics person is like, Hey, I
graph out all of my revenue for the past X number of months and
you know, and filter out for, you know, deals in only this
territory. That's a complicated query.
You know, they're not going to, unless they're a SQL expert,
they're not going to write something like that with this.
This can integrate directly intoall of your data sources.
(49:52):
If we start integrating into something like Snowflake, you
can imagine all sorts of the power and capability that you
can give to folks. Just just just throwing that
out, throwing something out there.
Mongo B Atlas does have built incharting capabilities too.
And it it generates some UI, butthere's also some other great UI
(50:13):
libraries out there as well. Like I think I think maybe Shad
CNUI might even have some some graphing capabilities, but are
some graph components. Yeah, I mean, that's it.
And, and that's something that an AI agent can just generate on
the fly. And there's here you go.
Yeah, absolutely. That's pretty cool.
I have a quick question if you go back to your code, So in in
(50:35):
the the file where you were writing your your agent or your
your demo, Yeah, that one. So when did this file get
executed and how? Yeah, that's a great question.
Basically what the IT see here where we say demo chat agent
equals Trello agent. Basically in in this React
component, this file will actually go and execute once.
(51:01):
So there's like a use memo in there and it'll essentially run
this run the script in here onceI got you what not.
Let's not, let's not redoing that a bunch of times.
Oh, no, no, no, no. Yeah, yeah, yeah.
OK. We use use memo in there and you
know, but obviously you don't have to use this demo chat
(51:23):
thing. In fact, in fact, I'll show you
something here. If instead you wanted to do
queries manually, what you can do is do travel agent dot query.
And if you do traveloagent dot query, now you can actually give
your, you know, the whole kind of query, what the actual query
is, You know, find me my top ten, you know, you know, list
(51:46):
all my boards or something like that.
And also you can give the the user context or whatever.
So you can do all of that same type of stuff, but you know,
this is, you know, if you, if you didn't want to use this pre
made React component, this is how you would actually integrate
it into your own agents. Basically, this would become
(52:08):
kind of a true call and we're actually going to build out a
proper MCP server where, you know, you don't necessarily have
to use the the doc query function directly.
Instead, you can just plug in the MCP server and that'll, you
know, give your agent all the context it needs.
Do you want to show the mirror again, maybe so we can show how
it's how in this in this demo, we kind of did all of it.
(52:31):
Basically we did the, the, the whole the end to end in a way.
But the thing the most use, the most common use cases will be
like you just mentioned is wherethey integrate demo as the
underlying engine. And that's when I think it'll be
an interesting for the most use,because I think most developers
will want to retain the control over the chat and the agent
(52:52):
interface. So that's where they having
something that's more customizedwill definitely make more sense
I think. Absolutely, absolutely.
In fact, In fact, one of our first customers, they really
want to just use this as an engine because I think one thing
we've noticed among developers is especially these AI native
products, they want to have a lot of control over what the
(53:14):
agent says directly to the user.They don't really care about the
plumbing. Like they, they really like the
fact that Daemo can do this dynamic query and it can do all
the plumbing for them. And it just gives the rod to
like Jason to their, you know, to their agent, but they want to
still retain control over this portion.
Like what does the actual agent say to?
(53:36):
You know the end user, right? Yeah, the plumbing and the
retrieval that is that is the hard part.
And then like you said, they've got their their other agent in
place already. So that's amazing.
And then like you said, it worksalongside other tools.
So that them sure they have other tools that they're needing
to call as well. So this is just another tool for
their tool belt. That's amazing.
(53:58):
So let's talk about, let's talk about the future.
What is the future of daemon? So you showed us the initial
like where you where you started.
Now you're working on the CLI and the agent, the the SDK.
Yeah. What's next?
Yeah, you know, it's funny, I think, I think the big bet we're
(54:19):
making is actually there will bemore for every human being using
the Internet. There are going to be 1000 AI
agents using the Internet and all of these AI agents, they're
going to all be interacting withweb apps, websites, all sorts of
stuff. But, you know, we're very
bullish on the fact that, you know, we don't think they're
(54:39):
going to interact with them purely by just clicking on the
screen. You know, I know Amazon Nova
came out recently, but you know,while that's good for some
things, the reality is it seems definitely like most of these
agents, they're going to want tointeract directly with the APIs.
Doing all this plumbing is a bigpain.
So what we really see is that kind of the end big vision is,
(55:02):
you know, anytime you have a public facing REST API or
anything like that, you will also have an agentic version of
that API. And so other external will be
coming to your service and rather than interacting directly
with your APIs, it will instead interact with that socket, that
agentic socket. And that's what we want to
(55:23):
become is agentic socket where basically any, you know, any app
can be wrapped with this and external agents can come and
talk to it, right? Nice.
That's that's awesome. So.
I was going to start think another thing they want to make
sure in this sort of like as we get to this vision is also that
(55:45):
we want to give our customers enough observability and
security. Like The thing is, it's almost
like a game of trying to make a system that's, you know,
nondeterministic, as deterministic as possible in
terms of like, you know, offering certain guarantees in
terms of like we can guarantee that your, you know, your data
will be safe. We can guarantee that the
queries will be optimally will, will run in an optimal way.
(56:08):
I think that's also something that we, we see as one of the
blockers when it comes to widespread adoption of AI and
not just in these like, you know, siloed applications or
these, you know, these various discreet applications, but in a
sort of like widespread way. I think that's going to be the
being able to, to solve these members, these enterprise
problems. Really that's going to be, I
think just going to unleash the beast to another level.
(56:29):
And I think this is going to be a we're going to be living in a
world where that's a reality, where there's multiple agents
doing things. We can call them agents, we can
call them just like a genetic system.
We can just call them, you know,task runners.
At the end of the day, it's still like linear lines of codes
and, you know, compute servers. But I, I think that's kind of
the, we want to make sure that in this future like that, that's
a safe future as well for to, sothat just very much removes
(56:55):
under the friction when it comesto I guess the reluctance around
that, I would say, yeah. Nice.
And so where can developers go to try this out?
Yeah. Yeah, so we have the our Astro
cardio on the show, the website.So actually right now the SDK is
is on a wait list. It's about to get, you know,
about to get public. If you, you know, click sign up
(57:17):
here, you can actually sign up for our wait list on this Google
form. Or if you want, you can get a
demo from us by selling signing up to our calendly.
If you if you go onto our website
www.demo.aitheapptheapp.demo.ai is actually where this is
actually where if I actually logout here, this is actually very
(57:38):
live right now and this has beenlive for, you know, a couple
months now. If you want to try making your
own endpoints, connecting Mongo DB and making your endpoints go
to app to update with an AI and you can sign in GitHub or
whatever and you can start usingthat immediately.
But yeah, so be on the lookout. The SDK and CLI are going to be
coming out very soon. It's coming.
(57:59):
Yeah, nice, nice. Looking forward to that.
Amazing. So one last thing before we go,
since since this is we're talking about AI and all this,
all these things, is AI going totake your developer's job?
Of course we need to be asking the right questions, right?
That's the thing, even even thisis true even for the smartest
(58:21):
developer. The product manager has to ask
the right questions to the developer in order to build the
right product, and that will always be the case.
You, you can see just just from this, that's what the reason why
I asked the question. You can just from this product
that you've built, you're we need developers to build these
things. We need developers to build
these AI agents. It's just going to continue to
(58:43):
evolve. Now, is it going to change our
jobs? Yeah, I think AI is definitely
going to change all developers jobs because it's just another
tool. I always use the analogy of
moving from from a hammer to a drill like it's it's it's so
much easier with the drill, right?
You can get a lot more done withthe drill.
It's just another tool. Yeah, absolutely.
(59:05):
And also I think at the end of the day, as much as like
there's, I think the most important thing is also just to
solve a problem. Like I think it's regardless of
the tool. I think, I think we want to be
in AI think eventually it'll be a situation where AI or like LMS
are just one option among othersand they're potentially
facilitators to other to other options.
But it will be just like, you know, just like now we don't
(59:27):
say, oh, this is your app running on Python.
We just say, is your app working?
Is your app solving my problem? It's not like, oh, we our
customers are requesting Python,right?
I think it's going to be a worldin which it's going to be so
normalized that yeah, it's, it's, it's, it's it'll, it'll
again, developers will still be out there.
We'll we'll still be doing live streams, you know, maybe with
the AI companion with the live for the live stream, but.
(59:49):
Yeah, awesome. Yeah, awesome.
All right, so we're right aroundtime.
Any last words before we stop the stream?
Yeah, I think I'm, you know, we're super excited about the
future. We know everyone's going to be
building AI agents and we just want to, you know, help them do
that. I think it's a, it's a very
exciting future indeed. And.
(01:00:11):
Thanks a lot again, thanks a lotto you guys for having us and
for we also went to the New Yorkoffice went to met with the Jeff
and Hartford as well. It's been great.
So we're, yeah, super excited about what we can we can build.
Amazing thank you guys for coming on be sure to check out
demo dot AI. The link is in the video
description. Go check that out and look
(01:00:32):
forward get on the wait list usethe the app that that's out
right now and give get some feedback like these these guys
they're building and they they want your feedback.
They want to improve the productand so go try it out and let us
know what you think and we'll see you guys in the next stream.
Thank you for coming on again. Absolutely.
(01:00:53):
Thanks guys.