Dry Run
Presented by: Craig Dennis, Rita Kozlov, Sunil Pai
Originally aired on March 5 @ 12:00 PM - 1:00 PM EST
Welcome to Dry Run. A live open mic for featured devs where we dive into what they are thinking about and what they're cooking.
Today's guests:
- Sunil Pai, Principal Systems Engineer, Emerging Tech & Incubation
- Rita Kozlov, VP, Product Management
Hosted by: Craig Dennis, Developer Educator
Follow Cloudflare Developers on socials at:
- X - @CloudflareDev
- Bluesky - @Cloudflare-Dev.Bsky.Social
Learn how to Build with Cloudflare at: developers.cloudflare.com
English
AI
Cloudflare Workers
Coding
Developer
Transcript (Beta)
Welcome everybody. Welcome to Dry Run Episode 2. We should be coming to you all over the place.
We should be seeing you on X. We should be seeing you on YouTube. I tried to get it on LinkedIn.
If it didn't work on LinkedIn, I apologize to that community.
We are going to be here. I'm so excited for today's guests that we have. I'm welcoming back Sunil Pai who is Principal Solutions Engineer.
You might know him as Lord of the Squirrels.
Got that right that time, right? And I have Rita Kozlov who is VP of Developers and AI.
And do you have a title that you wish that you had, Rita?
I can't wish for a better one. I don't know what that would be.
Yeah, that's true. That's true. It's pretty rad. That's a pretty rad title. Queen of Developers.
Queen. Let's do it. Let's do it. Queen. We've got a lord and a queen in our presence today on Dry Run.
And Dry Run is a show where it's an open mic for developers.
We want to let you share what you're noodling about in a free and open space.
And we also want to show what you're cooking. What are you building?
So here we go. Let's get started on this. Actually, why don't we take one second and retweet the stuff.
Make sure that it's going out there. I'm going to take just a quick break and take a look and make sure that things are streaming the way that we want them to.
And while I do that, while I go out there, before I go out, I want to share that we are going to be chatting today on the Discord channel.
So we're chatting at discord.Cloudflare .com.
And we're going to be talking today about agents.
If you don't know what that is, you're in for a treat. Let me just make sure really quick.
I always get a little bit nervous about this as we go streaming.
I just want to make sure that we're out there live. Otherwise, we're talking to nobody.
We should be talking to people. So I see us there. We are on X. I'm going to verify that we're on YouTube.
And then we are good to go. We are here. Here we are.
Great. Awesome. Okay. So everybody, head over to discord.Cloudflare .com and jump into the agents channel.
If you haven't used Discord before, totally fine.
We get it. First time I started using it was here. It is incredible in the Cloudflare space.
Y'all hang out there. Rita and Sunil, you hang out in that Discord all the time.
Any sort of question you have, anything you're kind of wondering about, like, can it do this?
That is an excellent place to go. And we're there, not just right now.
So please, chat, join us there. The best time to ask a question is when you have one.
We'll be watching that chat as we go. All right.
I feel like, you know, guys, when you start one of those series, first of all, what series are y'all watching right now?
Somebody's watching something. I think we're both watching the same thing.
I'm watching Severance. Severance, yes. Tonight.
It's already. And then White Lotus. I mean, this is an incredible time to be alive.
I feel like it's been so long since I've had a show on that I'm excited about.
So having two shows on that I look forward to every week, I'm like, it's such a treat.
And that week is long enough, where that beginning, that beginning, you need that intro where it's like, hey, last week on this episode, we did this.
Do you think we could try to do one of those sort of like live?
So last week on this episode, Sunil was here and Sunil launched.
We launched the agents SDK. We are officially a framework company.
We should just get rid of the network and only do published JavaScript.
That's what we do. And for those, for those people who have not yet seen an agent or even heard of an agent, or they've seen a lot of agent talk and they're like, wait a second.
Well, if I know what an agent is, can we do a quick recap?
Because we did that. We did that last time.
We did really. And you did an excellent job of that. What's the, what's the, what's the episode recap version of what an agent is?
Everyone's clicking skip, skip recap right now.
We'll keep it short. Agents are tiny containers that run your code forever and ever, if you want it that way.
And they're powered by little God computers called LLMs that let them decide what to keep doing next.
And you can give it a whole bunch of inputs via HTTP, email, maybe audio, video.
But it just keeps chugging along and automating based on like vibes.
Like it's like, okay, I'm going to do this next and that next.
And Cloudflare's agents SDK lets you run that in, lets you spin up millions and millions of these little things that run across the planet for you.
And it's stupidly cheap, which is weird. Dude, like how are we a $60 billion cap company and our pricing is so cheap?
I don't get it. But apparently someone does.
I've done the math. It checks out. That's what we saw.
Yeah. Yeah. So let's, let's first the inputs to it. Why is that important?
Why, why are the inputs important? Why do we need so many inputs in there to, to talk to the agent?
Well, in a perfect world, there would be no inputs and nothing would happen.
These are the group of people who appreciate this most are functional programmers.
Nothing really happens in a pure function, but the real world is messy.
There are inputs. The way I like talking about it is that every business or every meaningful program operates on inputs that come from the outside and then spits out outputs.
That's the function of software. Businesses run on automations where you get in customer orders, vibes, feedback, and integration with third-party systems.
And it keeps running a loop forever and converting all of that into money on the other side.
Well, sometimes money, usually money, hopefully money.
Agents aim to take that and automate it almost purely on software without, with very little human intervention.
And that's why it's like a big deal that we can, we are now reaching the next age of software where you don't really need humans for doing the things that LLMs are good at, which is converting unstructured data to structured data and converting between formats of data and then spitting unstructured data and reports back out.
It's like kind of cool. The way that I like to think about it is there's that XKCD comic of automating something, right?
And how long you think it will, how much time you think you will save by automating something and then how long you actually end up spending on the automation.
And if you've ever written a script to help automate something that you're doing, you know that it takes so much time because computers are kind of stupid in that way of every single edge case that you didn't specify turns out exists and it errors out.
And you're like, oh, I didn't think about that. So now I have to rerun it.
But now we have smart computers. And so now we can allow them to, you go figure it out.
It's basically, it is a script that can go and solve its own problems.
And if it counters a problem, it can come up a new plan for how to solve that problem.
And occasionally it will come back to us and be like, hey, boss, I'm stuck.
Can you help unstick me? But that's my mental model for it. I like that.
I like the hey, boss. That's a great hey, boss. And how do we I think one of the things that's important to get our minds around for people who have might have just in the past used like a chat GPT interface and they haven't done the programming on the backside of it.
They haven't actually used an API. We give them a thing called tools.
So the LLM gets these extra power ups, these multipliers of now, oh, I can actually go create a Jira ticket.
And not only that, you say, hey, LLM, when you need to open up a case or you need to report something, I want you to call this function and that function goes and calls it.
So when it's acting by itself, it could really be doing a lot of stuff.
And that I think that that's super powerful.
And I think one of those like I would be terrified if I didn't know about that.
I think about that sometimes. I would be so scared if I was like, these people are wild.
I talked to chat GPT. It can't send an email. It always like to bring that up.
And for those of you who are just tuning into that notification, I want to remind you that we are in the chat at discord.Cloudflare.com.
There's Rita's waving.
Rita's waving right there at the bottom. That little hand there.
So discord.Cloudflare.com. Head over to the agent's channel and we'll be hanging out there.
I'll be bringing anything that you have to say up on the chat.
Awesome. So why are we doing this? I think like that's a good we launched this agent's framework, but why?
That's what my kids always ask. That's the question. But why?
Why did we do this? Mostly vibes, man.
I guess like we were kind of no. People are talking about vibe coding.
We're out here vibe launching. Let's just put it out there. No, I think we realized the opportunity a few months ago.
And ever since then, I think when you have like novel technology, like things like durable objects that people haven't really encountered on mass before, it's very hard to just put it out there and expect people to like figure out what they're useful for.
In fact, I think that's been one of the challenges we have had with durable objects, which is, okay, it looks very cool, but what do you do with it?
And there are a number of great use cases for it, building multiplayer systems, building session oriented systems.
But it turns out AI agents are an incredible fit simply because of what I mentioned, which is like you get a little container that spins up with zero startup time closest to you and can run effectively forever that you can keep talking to and connect to with a web socket and build UIs on and all that.
And it struck us that until we actually showed people how to do it, like even like at a very low level, we wouldn't be able to get this conversation started.
Because the agents launch is not, you could consider, and it actually is 0.01 of our plans for AI agents.
It's very much a, okay, fine, we're starting from the lowest level and then slowly we are going to start like building layers on top of it.
We don't, I don't think Cloudflare is particularly interested in owning the framework space.
We would like everyone to deploy their AI agents on it, no matter what framework, what library you're using.
And I think this is like our first step, like to be like, hey, like this is our very unique novel way that the Cloudflare way of doing things of how we think about AI agents.
Thanks. Thanks. Yeah. And I do think that that, yeah, to your point, it's like, hey, I got this really cool thing.
You should see it.
You need to see this because people are going to start building this and it's hard, right?
It's hard. I think the stateful bit of it is really hard. I was at a hackathon this week and I was watching some people build there and just like watching and thinking about the stateful place.
And I was like, oh man, I need to try this, try this.
Yeah. I mean, agents are fundamentally stateful. That's kind of the way that I like to break it up is you have the AI piece, the LLM, that's kind of the brains of the operation, but then it kind of needs its executive arm that goes and does stuff for it.
And with each step, it then needs to keep track of, did I complete that step?
Did I not complete that step? And then come back with and maintain everything that's been done.
And so I think you can't really decouple state from the ability to build agents.
And that's where, yeah, funnily enough, how long has it have durable objects been out now?
Like four years? Four years, four and a half years.
It was August 2020. So you'll remember us because that's when we first DMed.
The way I describe it is I was four drinks down and I was like, excuse me, Rita Kozloff on Twitter, could you please give me access to this weird tech you just announced?
And I was like, I know a guy. But we, you know, people rightly give us a lot of trouble about the name durable objects.
And let me tell you something.
Naming is hard. Two of the hardest computer science. It's definitely one of them.
And two of the other names that we're exploring at the time were actually agents and actors.
Because it follows the actor model of, yeah, again, like being able to write compute in an object oriented way.
And then your classes just kind of get to persist.
And so it does feel like such a natural piece that when actual agents came along and people started talking about them, we were like, you know, that meme that's like, is this an agent?
Not to discredit the framework a little bit.
It is mostly a wrapper. To use another meme, if you take the hood off of the Scooby Doo one, it is actually a durable object under it.
We just kind of renamed it a little bit.
But it turns out that naming does help people think about things a little bit differently.
No, a few months ago, I tweeted this thing as a joke, where I was like, hey, cloud management is asking me to make an AI agent framework.
And my answer is export durable object as an agent. A few months later, that's exactly what we ship.
And I'm like, okay, I guess that's what we're doing.
Now, I will say our goal with the framework is to are I know some of the questions that we've received is, okay, well, durable objects are Cloudflare specific thing.
What about vendor lock in? And so we do want it to eventually support actually your ability to deploy it anywhere.
And obviously, the nice thing with durable objects is you get scaling and all of that management out of the box.
And so I think it's going to be the best place for it.
But that's certainly not our intent.
We actually want to provide a programming model for building agents that's just actually universally helpful.
Awesome. Awesome. Yeah. And there's a lot of wrappers, right?
I think there's a lot of patterns in this space that are emerging, right?
Like there's a lot of and we can help, right? Because if everybody's going to be like, I'm going to follow this pattern, I'm going to go through this.
It's like, we might as well do it, right?
That's kind of the vibe that I'm getting right now.
Yeah, over the last week, we should think about this, right? How are you?
Go hit it. I was saying over the last week, it's been interesting some of the conversations that I've been having.
I don't the one thing is like, they're like, hey, like, I want to start using this.
I want to build these things out. But it feels like it's unlocked another level of thinking about agents itself.
And this is because of the durable object nature of it.
Like you said, like that, because it's stateful and it persists.
It means now that you don't need to persist everything associated with an agent in a separate database and like scale that and worry about 300 milliseconds every time you want to fetch the counter of something if your database is on the other side of the world.
And we just say that we have literally asynchronous data API inside the thing.
And it's not simply about like performance.
It feels like the way that people start thinking about the things that these things can do start becoming like very different.
I wish I could talk about the people who are experimenting with this, but I promise them that I won't say it publicly until they ship into product.
Well, Sunil's certainly not going to say it publicly now.
Yeah, we got a little lock up there, Sunil.
This is not just AI agents for that. Sorry. I was saying that it's not just about AI agents for personal assistance or like running commerce.
People are thinking about this, let's say you're building like a SAS, a boring SAS, CRM for veterinarians.
That's what I read today somewhere online. In the background, you can set up an AI agent per user without them knowing it.
That's constantly working on their data and inputs from outside that can send them emails when they have a potential optimization opportunity on how they're doing scheduling of all their customers, people with pets, et cetera, and potentially finding the best deals for them.
So we've been thinking about AI agents as having a very anthropomorphic nature, like thinking of them as people, but really there are people who want to deploy AI agents as like just background processes, more like guardian angels.
And I'm like, okay, that's extremely cool. And that sounds again, like such a great fit for it.
And you wouldn't be thinking about this if you were thinking about AI agents as workflows or something that you actually write down with code that has like four steps and stuff like that.
I think that's been like, and this is just in like week one, since we announced.
Yeah. Wait, actually in that case, I feel like we might have our first other mammal-based agent.
Like if you've like, you're making dog agents for each, right?
Like it's the agent class is a dog agent and we have Sprinkles and Miffy as separate agents, right?
And then, so the other thing I don't think, I don't even know if we talked about this, you know, one of my favorite things about this library is that that built-in scheduling system that's in the agent thing itself.
So Miffy is a poodle and she needs haircuts all the time because poodles do not look good if they don't have that nice, you know, the poodle look.
But if we got like a little furry chihuahua that doesn't need as much, they have different needs, right?
On like when they're going to go, when you're going to go send the message to them, right?
When you're going to go, hey, it's time to get Miffy's thing.
And that thing just running and checking in on them.
That's super cool. That's a super cool use of an agent. I mean, I don't know what else we're going to do.
I don't know what else we're going to do in their agent lines for that dog, but the sky's the limit.
I mean, the boring technical way that I look at this, right?
Is you don't need one giant database for, and have conditions for every type of pet, every type of every species, every breed, especially with pets, it's just this combinatorial explosion, right?
Instead, every agent has context for that pet and not just in terms of species or breed, but just in terms of vibes like, hey, like Miffy is got a little anxiety is what it is.
So every time they come in, here are special notes for them.
And I don't have to save this one global database. Like it's just, it's an application, an agent that's designed for Miffy.
Apparently Miffy is our patron mascot now for AI agents, but you get what I mean, right?
It's a very personal way of thinking about building systems like this.
I think that's, it didn't strike me in the week before that people would be thinking about the software in this way.
That's cool.
That's really cool. It does open up, like it opens up a new, and then to that, to that point, right?
You do have at the core of that, you have an LLM sitting there and you're like, oh man, Miffy just got mad.
What else has Miffy done? And it's got the history of Miffy's in there too, right?
And it like, we're going a little too deep on Miffy, I think.
I think we're, what is this? I'm into it. We, I love that we have a new mascot for agents.
I'm going to ask her to create us a Miffy art.
Awesome.
So, so I mean, we've been, so it's a week, we've been, we've been a week out.
This thing's been launched. How are we feeling about it? What have you been seeing?
I mean, you, you leaked a little bit there. What else have we been seeing agent wise?
The people who get it, they get it like instantly. It's crazy. Like my DMs were a bit of a trash fire for a while.
They're like, oh shit, like, okay, it's clear now.
And it's like, like, like I mentioned, right? Like it's only because we're telling the story in a slightly better way.
We're like just narrowing in on the use case and saying, hey, this is the, this is the infrastructure for you.
Bring on your AISDK, your lang chain, your whatever it is, but really this is a place where we want you to run these things.
And here are the magical qualities we like give you.
So that a very common tweet is the, oh shit. I put out this, took the starter.
I added a couple of tools that do a couple of things for me and I deployed it in five minutes.
Holy shit. I have a UI for it. This is the future. Okay. What do I do next?
And oh my, that feeling, that, that should get me going guys. Like, yeah, that's, that's the wild, but I'm like, okay, cool.
We're on the right path. I think that's been a common thing for me.
People check it out, deploy it. And they're like, oh shit, like it works.
I haven't had to like read docs. So this thing, I've got a little chat UI.
We got bullied for our terrible, for my terrible design skills.
So, so thankfully a community member rewrote it with ShadCN and it looks a lot better Oh, nice.
Nice. And look at that a weekend and it, but, but that's the thing, right?
Oh, and to, to that point I just shared over on the discord channel it's at github.com slash Cloudflare slash agents and give it a star while you're in there and also join the discord, join that channel.
We are always looking for contributions.
Actually that brings up a good point.
Sunil you had a tweet, you had a tweet earlier this week where you had a little bit of an existential crisis of dealing with AI in pull requests.
And it's an interesting talk, right? It's an interesting feeling to have.
Do you know, do you remember which one I'm talking about?
I know what you're talking about. I still don't know how I feel about it. Let's talk it through.
You got some buddies here. You got buddies here. Talk it with us.
Yeah. Maybe I can throw a take out there. Yeah. I don't, in theory, I don't think that having a LLM generated PR is a problem.
If it's, if it, if it's net positive, right.
And if you vetted it and if it's a real contribution, like who cares if AI wrote most of the code?
I think the one that you received felt bad because, I mean, it's kind of like, it's kind of like Hacktober where you start getting all these pull requests that are just random comments here and there.
People are, you know, trying to basically fill out their GitHub grid or get points for contributions that that's where it becomes noisy and a burden on the maintainer and not useful.
So I think maybe the thing that I'm talking myself into or arriving at is we, it requires a bit of a human in the loop workflow right now.
Like I'm very excited and optimistic about the future where I mean, the really cool thing about cloud code actually is that it has a command for you to look at reviews that are assigned to you.
Right. And I totally can see how in the future, if I'm opening up a new open source repository, maybe I can pick off one of the issues and be like, let's tackle this.
And AI helps me get there. But I think ultimately it's on me to then review those changes, make sure that they work, make sure that they're a positive addition before opening up the PR.
And eventually I think we'll be able to get agents to do all of those parts as well.
But right now I think it's a bit of from, you know, just politeness and what's the word that I'm looking for?
Code of conduct.
It's don't waste people's time I think is the TLDR. Etiquette. I think it was also about like confronting, listen, being a programmer means before you know it, you go from being the youngest person in the room to being the oldest person in the room.
And the way of doing things has like changed overnight. Right. So I got access to GitHub Copilot about three, four years ago, a big portion of Wrangler was written with GitHub Copilot.
It was just me going tap, tap, tap, tap, tap. At the time that I was writing it.
And I thought that was that. And then this new wave of tools started happening.
And I kept ignoring it until one of our interns, Dhravya, I was on a call with him.
And I think he called me a boomer. And he gave me a 10 minute intro to how to use cursor.
I was like, this is good. Now I'm doing cursor stuff.
And now I'm at a place where people are sending fully LLM generated PRs.
And again, it was very much like a crisis. Because the thing I was talking about was Matt Silverlock sent me an LLM generated PR that day, and I loved it.
And a stranger sent it, I was like, ew.
And I think, I suppose, like you said, right, like the work that I have to do here is probably file a bunch of issues for, hey, we're looking for help in this space.
And then someone will submit the PR or an agent will do it.
But in my head already, I'm like, cursor, can you just look at my code base and tell me what are the things we have to do and just give me a list of stuff I can copy paste into a GitHub issue?
It's existential, like just struggling.
What is my role in all of these things now? It is a funny, uncanny valley a little bit of there's it's like stop and go traffic.
It's like there's little bits that we feel like, okay, AI has figured this out.
And then it's like, okay, back to me.
And then you're like, okay, I'm ready for you to take this next step on my behalf.
And I feel like we're just learning how to coexist with it. Right?
I think there's a lot of interesting things that are coming out of that.
Like repositories having a Cloud.md file that actually, ideally, the next person that opens up this repo in their own cursor has their cursor and their version of Cloud has all of the context of actually what was previously only happening in Sunil's head.
And so that feels very magical to me. And yeah, I think it's like, okay, so let's imagine we automate the issue creation.
What is our role in this?
What is the agent's role in this? And I am kind of curious, like if we, you know, let everything run wild, like if we fast, if we fast forward two years, and we're to create this agent's repo, and it was just like, I don't know, agents go nuts at this, what it would naturally evolve into, like, I don't know if you know, the, the meme or the reference that the eventual evolutionary state of everything is a crab.
Yeah, exactly. No. Wait, wait, wait, wait, I need to unpack that.
What's that? Oh, so any, lots of species on the floor of the seabed, over millions of years, they end up crab shaped.
Okay, so what, there's a word for it.
Crabitationization. Emergent evolution. Sure. Okay. Thank you. Hi, Jason.
Convergent. Convergent evolution. Yeah. God popped into our heads. Yeah, just literally like, excuse me, knock, knock, it's called convergent evolution.
So are all code bases just going to be the same?
Yeah, does the software have an end state?
And is that end state, you're now zero or email or? Wow, that's fascinating. I do you think it had to do with the content of it?
Because like, Matt's, Matt's contribution to it was really rad.
I love the prompt that he did there, right?
Like, he, it gave you comments on every method. And the prompt is pretty beautiful.
It was like, hey, here's a, here's, here's a bunch of code that's here.
Anything that's not documented, I want you to try to do your best and give it a document.
And it killed it. I think he one shot at it. In fact, I actually remember there was a conversation that happened before he sent it, where he was like, you couldn't hover over methods and see what the method did.
It had a type signature.
And I was like, Oh, sure. Like I'll do a password. I added to it. And Matt immediately was like, Nope, we got, we have LLMs that do this for us.
And like 30 seconds later, he's like, yep, it's done.
And I think there was that sequence of events that led me to being like, oh, shit, this is fucking dope.
Like, it just, we just spoke about it.
And it's magically here. Whereas just arbitrarily seeing an email.
Yeah, it was, maybe that's it. Maybe that's it. Like, is it transparency? Like, like, if the if that repo is like, hey, I saw this thing, here's the prompt I wrote to get it to do the thing.
Like, maybe it's transparency at this point. Because I, I'm with you where you're like, wait, how did you get this?
Did you test this?
Like, if this feels a little familiar, you know, like that, that's a little, that's the vibe that I get when you when you get PRs like that.
And it's like, maybe it's transparency.
I'll deal with it. Transparency, but also needs a little bit of human validation of to your point, Craig, I've gone and tested this versus it's AI generated.
And you repository owner are now responsible for figuring out whether this is useful or not.
Yeah, yeah. Love it.
Um, but it's been a week. So, you know, I know that you don't stop. You don't stop.
You don't stop code. What what what are you cooking? What have you been cooking?
So while we've been doing incremental improvements, fixed a bunch of bugs, people just like reach out directly and be like, oh, this is breaking for me.
And it's right now it's in that nice phase of the code base where I'm like, okay, just give me like three minutes.
I'll do a fix, land it, push it. It's I still enjoy that experience.
But I have a new feature. And it's really exciting because it is very, very boring.
And I figured I'd share it with you people today. Let's do it. Okay, do it.
Yeah, sure. Yeah, before I share my screen, I want to tell you what the feature is from the beginning.
And I actually wanted to land this in the last week, but it's taken a little while to get right.
In fact, it's not landing today to land later this week.
Chat is a great interface for talking to agents. But the thing that I really want to do is email agents.
And the reason I like email is because it's effectively free.
No one owns email. It's what powers the businesses of the world, not just the businesses, everyone uses email, everyone has an email address.
And it should be as easy to reach out to you and talk via email like it should be with a chat interface or something else or your favorite app, etc.
And I wanted to take this boring thing and figure out how to do it right.
So not only am I figuring out how to wire up your things to the email, I figured no one has a great local development experience for developing email chains just yet.
Okay, so that note, I'm going to share my screen.
Are we going to get into why email here, Sunil?
Or should we talk about that before you pop it up? Why are you in the boring side of things?
I think email is how people talk to each other, which is why agents should talk to each other with emails as well.
The awesome thing about email is that it is async.
And so if we get to a state where right now, agents being chat-powered are relying on you constantly sitting in that chat box with it, right?
And so inherently, kind of the thing that you assume that it's going to do for you is going to take just a moment.
I mean, to take this back into the context that we get all of these patterns from, if you message me on chat, you're kind of expecting me to respond right away versus email is like, take your time, respond whenever, SLA of probably around a day.
And so I think as we move towards kind of these ambient agents with Miffy and these things that are happening, these processes that are happening in the background that come back to us when they're like, that come back to us when they're like, hey boss, need your attention again, it's me.
Email is such a great pattern.
And if you're on a rant before about this amazing state that we're going to live in, where each of our pets is going to have its own agent dedicated to it.
So we've made Miffy who, if I recall correctly, is a poodle. There was a poodle and a chihuahua.
I think Miffy's definitely a poodle. She needs to get haircuts frequently.
But we had an agent assigned to each of them. And over the course of the entire history of their lives, every time they went to the vet, there was something that was specific to them as opposed to this massive database.
But if I'm going back to that and thinking about maybe being reminded that I need to book an appointment for Miffy or that an appointment was even booked for me and I need to take her, email just kind of feels so much more like the natural place for these asynchronous workflows.
Anyway, I've been hounding Sunil about, I think email is really cool.
And so this is my why I'm really excited about it.
By the way, because you said that new desire unlocked, I want to have, I want to email my dog.
I want my dog to email me back only. Yes. It's like go for a walk?
Question mark? Yeah, exactly. Okay. So the demo I have is, I have two panes here.
So this is in our playground where we have our scheduler. You might have seen it, but if you say, Hey, something like jump in five seconds, it actually adds it as a task.
And then in five seconds, one, two, three, four, five, should see a little pop, but it jumps, et cetera.
We have a thing for like sync and we have a new, sorry.
And in that, in that case, Sunil, that you could be calling a tool, like, I want you to run this thing for me that does something, et cetera.
That could very well be an email, but this new section is the email section.
And on the left side, you see a chat window where you can talk to an agent like you normally would.
And the idea is sometimes messages just like the scheduled message could come when you're not really looking at your chat.
And at that time, I'm just going to change one line of code here to say true refresh.
At that point, and this is for the sake of the demo, but you can imagine these messages are coming in when you're not connected.
You want to make sure that the agent emails you. And here on the right side, I have an email inbox, literally one thread that every email that the agent, every message that the agent sends here will also get sent via email to you.
So you can, let's say that you had asked it something, what's the weather like in, oh, well, not, just say, how are you?
How are you, little bot? You'll see that it also sends an email to you and you can customize all of this, the subject title, whatever image, here it's using plain text, but you might want something else.
And it'll send it to you and say, hey, I'm just a computer person. I don't have feelings, but you should be able to reply back saying, don't say that.
You're quite, and you could be sending this, of course, from Gmail or whatever email client that you have, but for the sake of this demo, you can say that back and you'll see that it shows up in the chat again.
And again, another response comes, which shows up back here.
Nice. So it's the simplest thing, but it means, for example, for human in the loop steps, where you've told your agent to go out and find you flight tickets, it comes back and it says, here are option one, two, and three.
You should not only get that message in your email, but you should be able to reply in your email saying option two is great.
Please make sure you choose the vegan meal for me.
And here is my frequent flyer number. You should be able to interact completely with your agent via email and other, like we are going to do audio, video later, et cetera.
But I think email is just so important. So it's a boring feature that we hope expands the horizon of what you could do with Cloudflare agents.
So I hope to land it this week. If no one annoys me, everyone keeps meetings out of my calendar, but no, I've actually been like chugging on this.
It turns out it's quite a beast to get right.
And we want to make sure, so this demo, our first class integration, of course, will be with Cloudflare email workers, but it is designed so that you can bring any of your email providers slash services into it.
If want to use Resend, if you want to write a raw client that just sends stuff to your Gmail, it should all be possible.
But this is going to be a first class feature for Cloudflare agents.
And then the agent must have an email address, I guess, then.
Is that what's happening? That's exactly what's happening.
So you can choose what that email address is. If you're using Cloudflare, Cloudflare email workers is the easiest to set up here where you can go into email workers and say, hey, this is my address.
And then you make sure that your worker is bound to it.
And you can also use it to send emails. But there's no compulsion.
That email address could be somewhere else. You should be able to figure this out.
Like I said, I don't think we want to lock you into the Cloudflare Workers ecosystem, but we can do some things nicely when you're there.
Love it.
I think that is super cool. I remember the first time I had one of those, I'm going to date myself here, but there was an app called RDIO.
It was pre -Spotify.
I would come in from listening in the car to it, and I'd come in and the same song would be playing on my computer.
And that vibe of never stopping. If I need to interact with this thing, and I never stop, and it's wherever I need to be, that's pretty cool.
That's pretty cool. You can imagine uploading stuff. Email does a little bit more too.
Just forward this email, process this expense report. Oh my gosh, I don't ever want to write an expense report again.
Somebody's tackling that.
There is an agent. I know that there's an agent that's going to take care of that for me.
That's a great use case for it. Forward that stuff that you need to get taken care of or action steps on this.
I love it. I think it's cool. We've spoken about this before.
Well, not on the show, of course, that AI agents are addressable.
And what that means is they have a website address. They have an email address.
Bro, they should have a phone number. I want to call up my agent and say, what's up?
I'm in my 40s. Everybody loves Discord, but I get so overwhelmed when I'm there.
I used to learn programming on email lists where very much older people used to abuse me.
And it was not a healthy relationship, but Discord is, everyone's so much nicer and there are 40,000 of them.
I don't get it. But that's also why the Cloudflare agent infrastructure is so interesting, which is, it gives you all of this in a box.
Forget about the email stuff for a while. The fact that you can open up a chat window to a given agent in two separate tabs, two separate devices, two separate computers, and you will see the same thing.
It is synchronized automatically without you having to worry about web socket infrastructure or readers or whatever it is.
Dude, that shit is magical where I'm like, okay, yeah, I can work with this.
I don't need to worry about those things.
This is Cloudflare's problem. Let them handle it for me. I've got a comment from some friends over on YouTube that says, add more examples on DurableObjects, please.
We are absolutely working on that. Absolutely working on that.
My favorite use case for DurableObjects before I got into AI agents, of course, was doing multiplayer stuff.
In fact, I built a whole company around it called PartyKit.
That was extremely fun because we started with, oh, what if a text area could be editable by multiple people at the same time, like Google Docs?
What if a drawing surface could have a bunch of people drawing on it, like TLRAW?
In fact, TLRAW's multiplayer experience is actually powered by Cloudflare's DurableObjects.
It's amazing. I think they were one of the first, do I want to call it non -enterprise?
They were a startup with three people who just went all in on it and they're fans of it.
They're doing other interesting stuff with DurableObjects.
We should add all these examples into the DurableObjects examples.
Yeah. Yeah, for sure. That'd be awesome. I would love, the pun game from those, I've never met those.
I don't know who the creators of that are, but the pun game, TLDR, aw, that is gorgeous.
That is a beautiful pun.
I think if you come up with a pun like that, you're like, I have to do this.
I can't stop now. This is too good. Do you know what came first? Sunil, was it the pun or the app?
Of what? TLDRAW? Yeah. The pun game first. The pun game first. The classic startup experience.
I'm going to find it's called TLDRAW. I wonder what it is.
Awesome. So Rita, when we were talking about coming on this show, you said, oh, I have an idea.
Let's do that. Let's do that thing. Are we ready? Let's do it.
Okay. So I listened to a lot of podcasts. One of the OGs, I feel like, especially if you're a big Internet person, was Reply All, which was kind of actually about all Internet.
One of my favorite segments there, all credit due, was Yes, Yes, No, where they would take a tweet that you have to be terminally online to understand, which my husband always did, and I never did.
Two of the show co-hosts were always on the same page about what it was, and then the me, I don't know what that is.
So I thought it would be fun to do a tech version of that where we're nerds, so I'm going to go ahead and call it 1-1-0.
So if you get it, you are a one, and if you don't get it, you're a zero, and then we get to unpack it until we're all at 1-1-1.
Awesome. Yeah, so I thought we would do that, and my dream is this becomes a recurring segment on the show, so if you're watching and you have tweets that you would like to see unpacked correctly or incorrectly by us, do send them.
That would also be fun, but I had a few prepped.
By the way, I think a lot of my relationships, especially with people outside tech but who follow me on Twitter, is them sending me tweets saying, what does this mean?
I don't know what the word is. It looks like English, but I can't comprehend what's going on in this tweet.
I feel there's so many sub-genres that we have too, right?
I don't know. Rita, do you want to share your screen? I can share my screen, sure.
Okay, so maybe we'll start with something a little bit easier, and then we will increase in difficulty.
So I saw this tweet the other day, and I thought it was kind of funny, and so, yeah, I'm curious.
So I'm a one. Sunil. I'm a one, but I'm cheap, which is why I still haven't used cloud code yet, another thing that I think.
I think I'm a zero, to be honest on this. I think I understand that cloud code came out, but I think I might be a zero on the whole meat of it.
Let's do it. Get us there.
So let me actually, in a traditional way, start by reading it out loud and describing it a little bit.
So the tweet says, cloud code decided to LS in node modules, and then it's the Oh Husband meme, where it's the woman kind of longingly looking in the snow.
So maybe, I don't know. I don't know the Oh Husband meme.
I don't know that one, I think. What's the joke here? Okay, so maybe that can be a good starting point.
So generally, this meme is used as, the meme structure typically goes like, Oh Husband, you spent all of our hard-earned money on, you know, the seven different streaming services that we have, or, you know, on, you know, crypto joke of the day, or whatever it is.
Which is why we are now poor and out in the snow.
Gotcha. Okay. You're now destitute because of your... Okay, I'm close.
I think I'm really close to one with that new explanation here. Okay, so maybe you can help fill us in on what's the part of it that you feel like you're good on?
Okay, so I think that the big joke of this, right, is that node modules is huge.
There's a lot of stuff in node modules. Cloud code came out, and it needs to explore your codebase.
Right? And so, it costs money to do that, right? To understand, to go and understand what that is.
So this woman is saying, you spent all of our money reading node modules when it's not, that's not part of your code, right?
You've brought the packages in, and you don't need it to know about all those node modules, I think.
Am I one? Did I go one? Yeah, you're so close. Also, cloud code does something very unique compared to every other programming tool, which is at the end of the run, it tells you how much money you spent on it.
And it'll tell you this was 50 cents, this was $3, this was 4 cents.
Okay, I get it. Okay, fine. I think I am a one now on this.
Okay, now it unlocks. Okay, I think I'm at one, one, one.
Okay. Can you avoid doing that? Yeah, just tell it not to do that, I guess.
Craig is in the ignorance's bliss camp.
Because the number of tokens you would burn by listing every file underneath node modules.
Yeah, okay, I'm a one. It leads to exactly the situation. Yes. Okay, that's a good, really good tweet.
Rita, we got to play this with four people. That's right.
1.1.1.1, we'd get it. Hey, hey. All right, what we got next?
Okay, I'm keeping an eye on the time, so I think we'll do one more.
Yeah. Okay, I want one more. Okay. All right.
So, I'll actually, we'll do it in the other way. I'll read it out first, and then we can do the little vote of where we're at.
So, the tweet says, tempting as it is to use max steps with a Vercel AI SDK and just let your agent run wild.
I'm starting to think this is probably an anti-pattern for anything complex.
I'm a one on this.
I'm a one. I'm a one on this. I'm like a one, like a half to a one.
Yeah, I'm in the half to one. Okay. I'd like to know why it's an anti-pattern. Okay.
So, to give some context, Vercel AI SDK, which I love calling the jQuery of AI apps right now, really good software.
Shout out Lars, Nico, and the rest of the AI SDK team.
They have a pattern where they're like, okay, instead of building all these massive abstractions, we'll give you like a single parameter called max steps, which can be a number.
And based on the prompt that you give it, it'll keep going at least that many steps until it reaches a goal.
And that's the simplest form of an agent, right?
And it actually is, like that is the mental model of how an agent works.
You give it a goal, and you say, just keep going until you get there.
There are some, there are two specific problems with this. One is, as of today, and for the foreseeable future, LLMs aren't like extremely smart, especially for particularly complex use cases.
And secondly, every time you do a step, it actually increases the size of what you're stuffing into the prompt.
It's going to start putting the results of the previous operation back into the prompt and then execute it, which means it gets stupider, the more steps that you execute with it.
So for a day one prototype, where you want to impress somebody, you'll be like, wow, look at this, like six lines of code.
And it, I don't know, added like 12 numbers together.
That's cool. But if you're like, hey, can we just give this access to a tool like Google search and say, find out what the smartest website on the Internet is.
Conceptually, that makes sense. Yeah, given infinite electricity and money, it should be able to do that and come up with an answer.
But the truth is that it's actually an anti-pattern because it gets stupider, et cetera.
And what you want to do is to take a step back and say, okay, fine, I'm going to step in here and tell the LLM, hey, anytime you're doing this, parallelize out to a bunch of other steps.
If, give it like a health score and if it ever drops below it, then actually like bail.
Potentially you want to spread out work amongst different kinds of models that are good for different kinds of things.
Apply some engineering and do your job, engineer, instead of asking the God computer to do it for you.
That's the basic thing of this, which is like a lot of hype in the AI world is that this tweet that you will at some point be able to write six lines of code and solve any problem.
But the truth is that that's probably not going to happen for a very long time, no matter how smart LLMs get.
So it's a little nuanced, but it's Matt Pocock who tweets well, and he's right.
He's right about this. If that's what you're shipping to production, then you're not going to build anything good.
By the way, Matt Pocock is doing a deep dive into a project called Deep Research by the Gina .ai team, and you should catch his threads on it.
I think he's going to write a post about it at some point where he says he takes this deep research idea that he takes an open source code base that implements it, and he walks through how it's done.
It's fascinating. I recommend it to anyone, no matter whether you're a junior, senior engineer.
It's a very, very good walkthrough of how to build something like that.
It's very good. Super cool. Did you go one? I think I'm now at a one. First of all, underrated tweet.
You should go like it because it only has 15 likes, I'm not realizing.
Now that I understand it, really clever in what it's trying to say, and kind of counterintuitive because I would think like, oh, I'm trying to get it to do something complex.
Yeah, let me give it the maximum number of steps that I possibly can, and yeah, let it run wild and come back to me with better results.
I think that to your points, the thing that people miss is that as you kind of inflate the context window, your LLM does kind of get stupider.
Yeah, and I liked your point there too, Sunil.
Don't forget your engineering practice, right? Everybody in this existential crisis that we're all going through is like, oh, well, I could just do everything.
It's like, no, don't forget that you could still help this thing do better, right?
There's way to architect around this. A pro move is to ask an LLM, hey, how would you break this down into a good software program that I should implement?
That's a smart move. Okay, fine, I'll take that and write that code.
But no, like the simplistic answer is not the right answer. Not for real world stuff.
Yeah. Awesome. Cool. We're at one, one, one. I love it. I love it. What a fun game.
Rita, thank you for bringing that to us. Hey, we have the queen of developers on here.
Do you think we could talk about what else launched last week? We've talked about the agent framework, but while we're here, let's talk about what else happened.
What else happened here? I'm not going to lie. I'm cheating a little bit by going to change log, because as I was saying before, I can't believe it's only been one week.
It was kind of a crazy one. So we launched the agents framework.
We increased the number of instances that you can have with workflows.
So now I think we support up to 4,500, if I'm recalling that correctly. Up from 500, by the way.
So that's roughly a 10x increase. Yeah. And Rita, that's it. I want to like, that's a beta product.
People are using it. I love the way that we do betas.
People use it. People like, yo, I actually need this. And you're like, you do?
All right. We make it go better. So like, first of all, on behalf of, I'll say for on behalf of developers out there, thank you for listening and doing that stuff.
Like, making that stuff move. That's awesome. We are always listening. And all of these improvements come from feedback that we've heard from users.
So a few more.
One that I was really excited about, browser rendering now supports a rest API.
So previously it was just available through worker binding. So you had to use workers with it.
It is so cool. You can literally run a curl and generate an image or a PDF now of any website out there.
So that's live and available. Break that a bit.
What is that? Like, what do you mean? How does that work? So we have our rest API that's now clapper slash browser rendering slash screenshot or PDF.
And there are a few other actions that you can take.
And so you give it as an input the URL to any site and it will basically spin up a browser instance, navigate to that site, and take those actions on your behalf, which I think especially for building agents is really, really powerful because not everything is going to have tools on day one.
Not everything is going to have APIs on day one. And so, you know, like, I don't think that the as much as I would love the DMV to be agent operated first.
I think they're going to be agent operated last. But you can still using browser rendering and some agent magic, I think build one that does this for you.
Awesome.
Awesome. That's so cool. So I'm very hyped about that. Let's see. What else?
Oh, yeah. AI gateway guardrails. I'm really excited about this. So if you're using AI gateway or if you haven't used AI gateway, it's the way that I like to think about it is if you think of all things OG Cloudflare, it's like Cloudflare, but for AI deployment.
So it will accelerate, it will secure, and it will help you observe all of AI stuff.
Like, that's literally what we do. And so, yeah, it has caching, it has rate limiting, but now you can also secure your AI deployments better, especially in terms of protecting them from abuse and use it kind of gives you a nice interface to Llama Guard where you can specify these are all of the things that I don't want someone to be able to use with my AI, and it's literally like a couple toggles.
It's amazing. Yeah. Yeah. Because that stuff is totally sketchy. Like, totally sketchy to push an app out like that, right?
Yeah. Exactly. All right.
Jason's playing fade out music effectively. So I'm just going to run through this.
Yeah. Did you get the Oscar poll? Wrangler 4 RC. I want to thank my mom.
We have a release candidate out for Wrangler. It has a bunch of cool stuff in it, including using for, which is a verb that you can now use for building with JSRPC, which is really cool.
So go check that out. And then I'll sneak in one more, which is the changelog is not even live yet, but if you're using Cloudflare Registrar, you can now register or transfer .ai domains for all of your AI.
Oh my God.
The amount of times I get asked that is, oh my God. Thank you. That's incredible.
Mic drop. Awesome. Awesome. And that is going to wrap our show. Rita, Sunil, thank you so much for being here on Dry Run.
I hope that everybody at home liked that.
We are hanging out in the Discord. Meet us in the Discord, hang out, build.
Sunil, we want people to go to GitHub.com slash Cloudflare slash agents. There is a star button on that.
I want you to click that and I want you to validate Sunil, right?
All right.
All right, everybody. That's the show. Thank you. We'll be there. We will be back sometime soon.
We'll see when these dry runs happen, probably next week. I think we should do this again next week.
That was a lot of fun. All right. Awesome, everybody.
Thank you. Thanks for hanging out. We'll see you real soon.