HomeVideos

Lauren Tan @poteto is an engineer at Cursor. Previously, she worked on the React Compiler at Meta...

Now Playing

Lauren Tan @poteto is an engineer at Cursor. Previously, she worked on the React Compiler at Meta...

Transcript

1716 segments

0:00

Everyone, I'm Lauren, Lauren Tan. I

0:03

guess not many people know my last name.

0:05

Uh I am potato on Twitter.

0:08

Uh

0:09

potato with spelled with an E.

0:11

Um and I have been at Cursor for about 5

0:16

months.

0:17

Uh previously I was at Meta where I

0:19

worked on the React team, uh

0:22

specifically working on the React

0:23

compiler, uh which was a whole lot of

0:25

fun. Uh I'm still on the on the core

0:28

team and and uh contributing to open

0:30

source here and there. Uh

0:32

so that that's really nice that they

0:34

still let me do that. Uh and before Meta

0:36

I was at Netflix, uh where I was uh both

0:40

a tech lead and uh I transitioned to be

0:44

be an engineering manager

0:45

um

0:46

for about 2 years.

0:49

So I've had a I've had a lot of

0:51

experience going between engineering

0:54

management and being an individual

0:55

contributor. Uh

0:57

and I think something I've noticed

0:59

actually, which is quite interesting, is

1:01

that there are so many parallels with

1:03

you know, management skills and how to

1:05

like manage agents.

1:07

Uh and that's actually a a big part

1:09

about what I wanted to chat with you and

1:11

everybody else about today.

1:13

Um but yeah, that's that's me. Uh I do

1:16

have some like very light slides, but uh

1:20

it's not going to be um just rambling.

1:22

So let me just share my screen.

1:25

And hope that I don't leak anything.

1:28

Uh

1:33

Oh no, I need to allow permissions.

1:36

>> No worries. All good, take your time.

1:38

>> There's always tech tech tech trouble.

1:40

Uh give me 1 second to rejoin.

1:42

>> Yeah, go for it.

1:46

I see many of you already know Lauren

1:48

from the looks of the chat here. Um so

1:51

yeah, it's exciting to to get a chance

1:53

to chat with her uh and and go through

1:55

some of her her recent work. As you guys

1:57

heard, you know, a lot of recent

1:58

experience from from Netflix to to Meta

2:02

and then now over at Cursor.

2:04

Uh we're going to chat a little bit

2:05

about Grok Bot as well. So, uh that'll

2:08

be exciting. I don't know if you guys

2:09

saw that was a recent release. I think

2:10

literally maybe yesterday or the day

2:12

before

2:13

uh from the Cursor team, which is kind

2:14

of like um let's call it like agents for

2:17

everyone. You can go check it out if you

2:18

want and learn a little bit more about

2:20

the product. But um but yeah, we'll

2:22

we'll explore that a little bit today as

2:23

well.

2:26

All righty, welcome back.

2:40

And Lauren, you're just on mute there if

2:42

uh you want to hop off and mute and

2:43

we'll start chatting.

2:44

>> Yeah, sorry.

2:45

>> No worries.

2:47

>> It's 2026 and I still don't know how to

2:48

use Zoom.

2:49

>> [laughter]

2:50

>> That's all good.

2:51

>> Uh okay, so I assume you can see my

2:53

screen.

2:54

>> Yes, yeah.

2:56

>> So yeah, today

2:57

yeah, I think I think the big theme for

2:59

me as I've been using agents to write

3:01

code, and I'm sure a lot of you have had

3:03

the same experience as well, is

3:06

how do you trust it? You know,

3:07

especially if you are an engineer that's

3:09

been

3:10

writing code for a very long time, you

3:12

have

3:13

a lot of opinions and lessons that

3:16

you've learned about doing good

3:17

engineering.

3:19

And when you see agents just, you know,

3:21

winging it and, you know, guessing,

3:23

hallucinating, uh you know, confidently

3:26

stating that they found the smoking gun

3:29

uh for the hundredth time, uh but it's

3:31

actually not the real problem, you lose

3:33

a lot of trust. And when you lose when

3:36

you don't have much trust in your

3:37

agents,

3:39

I feel like you you really can't get the

3:40

most out of them.

3:42

And for me, the parallel is like with

3:44

management.

3:45

Uh so, if I'm an a manager, an

3:47

engineering manager of a team,

3:49

and I have a bunch of, you know, I have

3:51

a team of engineers

3:53

uh on my team and I don't trust them,

3:56

then the mode of operation I'm going to

3:58

be in is going to be like

4:00

micromanagement, right? I'll have to

4:02

spend a lot of time looking over my

4:04

reports' shoulders and checking that

4:07

they're doing their work well, you know,

4:08

that they're not shipping bugs to

4:10

production.

4:13

And so, I drew this chart because

4:15

uh it's not it's not a very scientific

4:17

chart, but

4:18

like this is how I imagine

4:21

myself and my journey through using

4:23

agents.

4:24

So, you know, like fast forward or back

4:27

forward

4:28

uh

4:29

or fast back

4:31

uh fast backwards like a year or so

4:34

when, you know, nobody was or not many

4:36

people were using agents to code. Uh

4:38

I think you

4:40

uh you get into this mode where you are

4:45

in very heavily in the loop with one or

4:47

several like a handful of agents.

4:50

And you find yourself just constantly

4:53

uh you know, trying to understand what

4:54

your agents are doing

4:56

uh and you're very very in the loop.

4:58

You're watching every single output. You

5:00

are sitting there prompting

5:02

um and you really can't parallelize

5:05

beyond that because you don't again you

5:07

don't have that trust, right? You can't

5:09

go to 100 agents

5:11

uh like spawn 100 agents when you don't

5:13

even trust the output of one agent.

5:17

So, over the past 5 months I feel like

5:19

I've really been able to uh like ascend

5:23

this

5:24

trust curve and now I'm at the point

5:27

where

5:28

uh I actually have This sounds kind of

5:30

scary to say this and it it makes me

5:31

sound like a slot artist, but I I

5:33

promise I'm not.

5:35

But I actually have my agents now um

5:37

auto merging PRs for me.

5:39

Uh which is like a wild thing to say,

5:42

but um like I woke up today and there

5:44

were like 20 PRs landed and I just

5:46

reviewed them on main like they were

5:49

already landed.

5:50

And they were good.

5:51

Uh so how did I get to that point? It's

5:54

basically what I wanted to talk about

5:56

today.

5:58

Uh and again like yeah, feel free to

6:00

jump in if you have questions, Colin. Um

6:03

but uh

6:05

Oh yeah, of course I got to show this

6:07

this chart.

6:08

Uh where uh

6:12

Oh do not trust to read Someone

6:15

requested to control my computer. Uh

6:18

probably won't do that. Uh but yeah, so

6:21

this chart I think

6:22

I I I'm sharing this chart not to kind

6:24

of like flex but to kind of show like

6:27

the journey. Like so you can see like

6:29

the curve like it sort of like inversely

6:31

matches the contributions I've been able

6:34

to land at cursor.

6:36

So I joined 5 months ago. And 5 months

6:38

ago like I you know, my first month I

6:40

was like not very productive cuz I was

6:43

you know, I was learning the code base.

6:45

Didn't know what the heck was going on.

6:47

And as I got more confident in in my

6:50

agents uh I've really been able to kind

6:52

of ramp up my productivity.

6:55

Uh and again like yeah, like last month

6:57

I shipped 1,000 PRs which is ridiculous.

7:01

Uh and then this month we're only on the

7:04

12th, I'm already at like almost 800 PRs

7:07

landed.

7:08

Uh so the velocity is definitely high

7:12

and you you I'm I'm sure a lot of you

7:14

will definitely be questioning like how

7:16

how much of this code is actually good.

7:18

Um and I think yeah, like that's

7:20

definitely fair to question.

7:23

Um but uh yeah, I think

7:26

I think if you

7:27

set up your agents well, you can

7:30

definitely get to a very similar level.

7:34

Um and so I'm going to talk about how we

7:35

do that.

7:38

Uh so for me I think I'm curious like I

7:42

guess calling your experience as well,

7:44

but uh for me

7:46

I think the most important skill that

7:49

you should have in your toolbox when you

7:52

work with agents is verification.

7:55

Uh and by verification I mean the

7:57

ability for an agent to actually

8:00

run the code

8:01

uh or take CPU traces or heap snapshots

8:06

or

8:07

uh

8:07

you know, open an iOS simulator,

8:10

whatever you know, however your

8:11

application is exposed to your users

8:15

it can do the same thing

8:17

and uh run it for real and actually test

8:20

and verify it'll work.

8:22

Because that's the thing that really

8:24

closes the loop. Uh it doesn't guarantee

8:26

your agent writes good code,

8:29

uh but it allows them to at least write

8:31

correct code. Uh which is a big a really

8:34

big step forward for being able to trust

8:37

your agent.

8:38

Um

8:40

I will I can share one example that we

8:43

have uh within

8:45

cursor.

8:47

Uh

8:48

oops

8:50

Where let me open this.

8:59

Let me just make this bigger.

9:01

Uh let me full screen.

9:03

There you go.

9:04

Uh

9:05

so for the for cursors agent window, uh

9:09

so this is actually an interesting

9:11

story, but uh when I joined

9:14

cursor 5 months ago

9:15

uh they're actually uh

9:18

well, I was supposed to join a different

9:19

team. I was supposed to join like the

9:21

cloud agents team. Uh but then since I

9:23

have a lot of experience working on

9:25

React and agents window is a React

9:28

application uh I was

9:31

uh

9:32

I was asked to basically help out with

9:34

uh uh, the

9:36

agent window work.

9:37

Uh, but,

9:39

um,

9:40

there wasn't really a lot of like skills

9:43

to help me. So, I just found myself

9:45

like, okay, uh, agent window is going to

9:46

launch in like a week. All right, we

9:48

have a really tight deadline.

9:50

And,

9:51

um,

9:52

there was, uh, you know, I was just

9:54

sitting there like, okay, I'm going to

9:55

open up the performance the the Chrome

9:57

DevTools and just like take a trace,

9:59

look at it myself, and try to make sense

10:01

of this flame graph. And keep in mind, I

10:03

was just like in my first week. So, I

10:05

had no idea what I was looking at. No

10:07

idea what, you know, I mean, I had some

10:09

idea, but, you know, the the code base

10:11

was completely fresh to me.

10:13

Uh, and I realized like my agent had no

10:16

idea either, you know, like I would take

10:18

a screenshot of the trial download

10:19

trace, I'll send it to him and it'd be

10:20

like, yeah, it kind of looks like this,

10:23

you know,

10:24

uh, and it would like confidently state

10:25

like it's this thing, and then I try to

10:27

fix that, and it turns out that's not

10:29

the actual thing.

10:31

So, this was very very slow process. And

10:34

if you've ever done any like performance

10:36

work yourself, or, you know, just even

10:38

development with an agent where you

10:39

don't have a verification skill,

10:42

you are the verifier. All right, you

10:44

you're the bottleneck. You you you tell

10:46

your agent to do something, and then it

10:48

goes off and writes some code, then you

10:50

open up your, you know, local dev build,

10:52

and then you start to say, oh, you know,

10:53

that doesn't work. Then you got to copy

10:55

paste screen, uh, you know, screenshots

10:57

or console errors or whatever,

11:00

uh, and then your agent like slowly kind

11:02

of like uh, you know, works with that,

11:05

and then tries to understand it, and,

11:07

um,

11:08

uh, fix the thing. But then you're

11:10

constantly just in the loop and and

11:12

being a bottleneck. So, there's really

11:13

no way to parallelize.

11:15

So, the control glass goes like one of

11:17

the first skills I built, uh, for

11:19

Cursor.

11:20

Uh, and glass, by the way, is the code

11:22

name for agent window that we use

11:24

internally, but it's just

11:27

Cursor, I guess.

11:28

Um, and so Well, skill, uh, is I guess

11:32

that that the code itself is not super

11:34

interesting. Your agent can very easily

11:36

make one for you. Uh where if if you're

11:39

building an Electron app or a web app or

11:41

even iOS uh applications, uh you can

11:45

teach your agent how to use like the

11:47

Chrome DevTools protocol or through

11:51

uh Apple has some utilities as well for

11:54

running the simulator and taking traces

11:56

and controlling programmatic control

11:58

as well.

12:00

Uh so, that's really useful.

12:03

Uh but one thing I want actually want to

12:04

talk about is

12:06

uh the

12:08

this thing.

12:10

Uh

12:11

where is the read me?

12:13

Uh so, this skill comes with this very

12:15

unique feature called or not feature yet

12:18

uh unique file called a feature map.

12:21

And so, the story then is like I built

12:24

this skill and so now the agent was able

12:26

to

12:27

uh actually run the agent window and

12:30

take traces and whatnot.

12:32

Uh

12:33

but it had no idea what

12:35

what the agent's window was. So, um you

12:38

know, like someone say like oh, the the

12:41

left side bar is like laggy or something

12:44

like that or you know, the right side

12:46

the the PR tab is not working. And the

12:49

agent would just be like kind of

12:50

flailing around. It would spend a lot of

12:51

time trying to like look up the code and

12:53

you know, where is this feature? How do

12:55

I actually get to it on the UI? Which

12:57

made it basically completely useless. Uh

13:00

you know, like we would I would run

13:03

this skill locally

13:04

and you know, it would spawn a dev

13:06

build.

13:07

Uh but then it just be churning. Like it

13:10

would just try to click here. It

13:11

wouldn't know how to get to things.

13:14

Um and it was just an awful experience.

13:16

Uh so, who was putting arrows on my

13:19

screen?

13:20

Um

13:21

so,

13:22

uh

13:23

yeah, this this feature map has has

13:25

really useful

13:26

uh because it teaches the agent how to

13:28

get to all of the features that you

13:30

have.

13:31

Um and in P-SAC, the plugin that I I've

13:34

made,

13:35

uh if you

13:36

search for P-SAC cursor on Google,

13:39

you'll find it.

13:40

Uh but there is a creative verification

13:43

skill in that plugin where it actually

13:45

helps you set up something like this for

13:47

yourself.

13:48

Um including the feature map, so it will

13:50

actually explore the code and build up

13:52

this initial feature map that tells your

13:54

agent how to get to all of the different

13:57

features that you have.

13:58

Uh and this is extremely powerful

14:00

because now that you have these user

14:02

reports that come in,

14:04

uh you you can actually map even like a

14:07

vague report or even a screenshot.

14:10

So we have this

14:11

uh internally at Cursor where uh we have

14:14

a Slack channel with, you know, lots of

14:17

people giving us feedback on the agent's

14:19

window and rock bar and whatnot.

14:21

Uh and oftentimes the report is very

14:24

bad. Like very low quality, like someone

14:27

just put

14:28

very often we get like a screenshot like

14:30

and then someone just says question mark

14:31

question mark question mark, like what

14:32

is this?

14:33

And you know, like the without this,

14:35

your agent says, "I have no clue."

14:38

Right? But with a feature map like this,

14:40

it has a lot more context and

14:43

understanding of how to actually

14:45

navigate, how to get to all of the

14:47

different features. Uh so like, you

14:49

know, example like, I guess like the

14:51

sidebar, like what is the sidebar?

14:53

Uh you know, like all the different sub

14:55

features that are present in it. Um like

14:58

from the user point of view, here's

15:00

where to how to get to it, all the

15:02

different keyboard shortcuts.

15:05

Uh even like the

15:06

the what do you call it? The DOM

15:08

elements or yeah, like the attributes

15:11

that you use for selecting things

15:13

through the CDP

15:15

uh are all there. So uh again, you know,

15:18

this is like really really powerful

15:20

uh for for agents. And uh and a piece

15:24

that ships uh that create verification

15:26

skill but also a maintain verification

15:28

skill.

15:29

Uh so you can keep this up to date.

15:32

>> Cool. Yeah, I was just going to ask how

15:34

you created that. So do you mind sharing

15:35

a little bit more about um

15:37

that that process in the context of P

15:38

stack and maybe just what P stack is for

15:40

the folks who aren't familiar?

15:42

>> Yeah, so P stack is pretty interesting

15:44

because uh

15:46

well, first of all, the name is kind of

15:47

goofy. Like the P the P in P stack is

15:51

like potato potato sack.

15:53

Uh because I um

15:55

So uh the uh there is a pretty

15:59

uh famous person Garry Tan who is the

16:02

CEO of Y Combinator and he's come up

16:04

with this plugin called G stack. Uh

16:07

Garry stack and uh

16:10

funnily enough, we share the last name.

16:12

We have no relation.

16:13

Uh but I thought it'd be funny to kind

16:16

of, you know, poke fun at Garry and make

16:18

P stack my version of of of

16:21

>> [laughter]

16:21

>> of his plugin.

16:22

Uh but kind of just tailor it to my own

16:25

set of prac engineering practices.

16:29

Uh but I honestly actually never set out

16:30

to build P stack. Uh it just started

16:33

with a bunch of skills. All right, like

16:34

I started with that control glass skill.

16:37

And then I started with another skill

16:38

like called howl which I also noticed

16:41

through like observing agents.

16:44

Um so like, you know, in the early days

16:46

of me, you know, trying to climb this

16:48

ladder, I was like super in the loop.

16:50

And I was basically nitpicking my agents

16:52

to an extreme degree. I was uh like I

16:55

would tell it um

16:57

you know, this feature has stopped

16:59

working. Here's a bug report. Like why

17:01

isn't it working?

17:04

And very often the agent would just like

17:06

confidently state like, "Oh, it has to

17:08

be this, right? It has to be this

17:10

thing."

17:11

And I noticed like when I looked at the

17:13

actual tool calls, I noticed it wasn't

17:15

actually reading the code

17:17

that I thought should be affected.

17:20

And that made me just extremely

17:21

suspicious. And at that point I was just

17:23

like, I'm not going to I can't trust any

17:24

this agent anymore because it's just

17:26

it's just completely hallucinating.

17:29

And I think

17:31

I think it's very easy to just, you

17:33

know, like build up that distrust and

17:35

not and kind of feel

17:37

helpless. Like, you know, you don't know

17:39

how to help your agents succeed.

17:41

But like again, I think the the the

17:43

management analogies super helpful

17:45

because like imagine if you were a

17:46

manager of an engineering team and you

17:49

had an engineer in your team who was a

17:51

really good coder, no business context

17:54

whatsoever, you know, they they just you

17:56

just hired them and they they onboarded,

17:58

you know, like uh 5 seconds ago.

18:00

Uh and so how do you actually teach that

18:03

person to be effective?

18:05

So how you do that is through skill. Uh

18:08

skill being just, you know, it's just

18:09

markdown, right? But you know, it it

18:11

codes a lot of information,

18:13

instructions, a lot of

18:15

uh you can really draw out a lot of

18:19

intelligence from an agent by well, some

18:22

people on Twitter call it like, you

18:23

know, pull the agent to a different

18:25

latent space. Which is kind of like a

18:27

fancy way of just saying, like since uh

18:29

you know, LLMs are sort of like they

18:31

predict the next token.

18:33

Uh when you give it some high-quality

18:36

tokens uh to begin with, then, you know,

18:38

it it can kind of pattern match on like

18:40

a higher space that's, you know,

18:42

smarter.

18:44

Um so that's like a very interesting

18:48

model there. But yeah, I built Pstack

18:50

very, very incrementally. Uh so uh

18:53

started with just really observing how

18:55

agents, you know, all the failed

18:57

different failure modes of of that

18:59

agents were having. And every time I saw

19:01

that, I just, okay, I'm just going to

19:02

make that a skill. All right, like stop

19:04

hallucinating, actually go and search up

19:07

look up the code, use a lot of

19:09

subagents, uh and yeah, stop guessing.

19:16

>> Yeah, that makes sense. One one kind of

19:18

follow-up question here, both for myself

19:19

and for a bunch of people in the chat.

19:20

So,

19:21

I guess it's two two parts. So, one is

19:23

like, how do you maintain these skills?

19:25

So, like the product changes over time.

19:27

Obviously, there's a lot of people who

19:27

are shipping against the code base.

19:29

So, how do these skills get maintained?

19:32

And then second to that is like, how do

19:33

you know when your verification is is

19:35

good enough? Like in you know, you can

19:38

trust that the very verification loops

19:40

that you've built are going to

19:41

I guess you trust that the outputs when

19:43

they're done.

19:47

>> Uh, yeah, maybe I'll talk about um,

19:50

I think I have something really down.

19:51

Maybe I'll start with this one first.

19:53

So, like how do I

19:55

maintain these skills?

19:58

So, um,

20:00

if you're not familiar with this

20:01

concept, an eval [clears throat] is

20:02

essentially like a way to

20:05

Uh, well, I think the mental model I

20:07

have is like it's like a unit test for

20:08

an agent.

20:09

Um, and

20:11

you can actually make your own evals.

20:14

You don't need like a special framework

20:15

for them. You can build you can you can

20:18

build one depending on like, you know,

20:20

how scientific and how rigorous you want

20:22

to be.

20:23

Uh, my screen is red.

20:26

>> Yeah, there's a little button. Um,

20:28

sorry.

20:29

>> Are you going to like disabling the

20:30

drawing or something? Like I can't see

20:32

my screen.

20:33

>> Yeah, sorry. If you guys could not draw

20:35

on the screen, that'd be great. But, um,

20:36

there's a little button in the

20:38

>> troll.

20:39

>> Yeah, the the little drop down.

20:41

>> Um,

20:42

how do I clear?

20:44

>> Yeah.

20:45

>> Okay, yeah.

20:46

>> You got it. Perfect.

20:47

>> Um,

20:47

>> Continue.

20:49

>> Yeah, so evals are a way to unit test

20:52

your skills, basically.

20:55

And actually in P stack, we ship

20:57

under potato mode, there's a playbook.

20:59

If you search for it, called eval

21:01

playbook.

21:02

Um, and it's

21:03

uh,

21:05

Uh, it's like not It's actually pretty

21:07

pretty rigorous the way it's done. Uh,

21:10

But essentially what I do is I spawn a

21:13

lot of different sub agents. I have like

21:15

my main coordinator agent

21:18

come up with a rubric for

21:21

what I want the skill to do. Um

21:25

and then it spawns all these sub agents

21:26

and it it creates individual directories

21:29

for them

21:31

which are cleverly named to not let the

21:34

sub agent know that it's being evaluated

21:37

because agents can actually tell and

21:40

when they do they change their behavior.

21:42

Uh but it does a bunch of stuff like

21:44

that to

21:46

um

21:46

essentially yeah like test whether or

21:49

not the skill I'm making or changing is

21:52

actually doing what I think it does. Um

21:55

and one of the really nice things about

21:56

cursor is that we are we have we support

21:59

so many different models. So you can

22:01

actually eval your skill across all

22:03

sorts of different models. Um and you

22:06

know get a sense of how well it performs

22:08

across that different matrix. Um

22:12

especially for the models that you use.

22:15

Uh so I do this a lot. Every time I I

22:17

modify a skill I will run one of these

22:20

like the eval playbook

22:22

and make sure that you know it's

22:24

actually leading to a result I want. Uh

22:27

but I will say like

22:29

maintaining skills is actually pretty

22:31

hard. It requires I think a lot of

22:34

taste and observation. So you kind of

22:37

need to be very good at being a backseat

22:40

driver. You know what I mean? Like if

22:42

you do pair if you've ever done pair

22:44

programming for example

22:46

and you watch a coworker code and you

22:48

just like you could probably do this

22:49

better or you know you could do you know

22:51

do you like why did you not do this?

22:52

Right? You you ask a lot of questions to

22:54

your coworker and it's kind of a similar

22:56

thing here. You like you don't want to

22:57

just be a passive observer agent. You

23:00

want to be very

23:01

in the driver seat in the initial stages

23:03

when you're building up your own set of

23:05

skills.

23:06

Uh you know, obviously you can use

23:07

something like P set, but if you're

23:09

building your own set of skills, it's

23:11

very I think you know, opening up the

23:13

all the tool calls and like reading the

23:15

code and

23:17

reading all the uh

23:18

the agent behavior and their thinking

23:20

blocks is uh a really great way to see

23:23

where they they fail, right? Like what

23:26

what

23:27

you know, where are they being done? And

23:29

then you can go and build the skill for

23:30

that.

23:31

And then with verification, how you

23:33

trust it is it's I think it's also a

23:35

very similar iteration loop uh where you

23:38

know, like I actually did the same

23:40

process for verifying the verification

23:42

skill where I actually get um

23:47

So, one thing that's interesting about

23:48

evals is that you can sort of hill climb

23:50

them, meaning that uh

23:53

your eval can produce a score, right? Uh

23:55

a score that you can get your

23:57

coordinator to produce, uh but also uh

24:00

you can have a judge agent of a

24:02

different model to uh kind of

24:05

cross-reference and make sure that the

24:08

first model is not being biased, right?

24:10

The model that's judging all of the sub

24:12

agents that are running the thing.

24:14

Uh but you can also like hill climb. So,

24:16

meaning that you can you can use like

24:18

{slash} loop in cursor

24:20

and you can say, "Okay, keep looping on

24:22

this eval, right? Until everything is 10

24:25

out of 10." As an example. Uh and I did

24:28

the same the basically the same approach

24:30

with the control skill. And so, I kind

24:31

of it was very it was very hands-off

24:33

actually.

24:34

Uh so, you know, I uh I kind of built I

24:37

built that skill that way, like the CLI

24:40

in that skill. Um and over time

24:43

it's gotten really good. Uh but yeah, it

24:45

was definitely not super smooth

24:48

at the beginning. It required a lot of

24:50

iteration. And I think there's an

24:53

analogy here for me, which is um

24:56

Well, I make this analogy later in a

24:57

different slide on my drawing here,

25:00

uh, but I think of it like

25:03

uh, you know, as a as a

25:05

engineer now, you're sort of more like

25:08

you

25:09

like maybe a manager or the analogy I

25:11

like is like you're like a a chef in a

25:14

restaurant. Uh, you you're the head

25:16

chef. Uh, you're not cooking all the

25:18

food yourself anymore. You have a team

25:20

of cooks, right? You have a line cooks,

25:22

you have a sous chef, you have you know,

25:23

all these different stations.

25:26

Um, and it's your job to really design

25:28

the environment. You know, you you

25:30

you're in charge of setting up the

25:31

kitchen. You're in charge of, you know,

25:34

like giving tasks to different people.

25:37

So,

25:39

um, yeah, it's a very interesting way of

25:42

working.

25:43

Uh, but yeah, that's that's how I

25:45

basically built uh, these verification

25:47

skills.

25:48

>> Yeah, just just one follow up there and

25:50

like to go try to go one layer deeper.

25:52

So, are you, let's say we wanted to

25:54

build um,

25:56

uh, an an eval or a skill for for

25:58

something

25:59

and we wanted to kind of get better on

26:01

its own, which is is what what I think

26:03

you're suggesting. Uh, are you doing

26:04

that in like a work tree, a kind of

26:07

isolated with like the sub agents and

26:09

and then the reviewer agents and and all

26:11

that? Is it happening like in some type

26:12

of cloud hosted environment? Like what's

26:15

the the more the practical steps? If I

26:16

wanted to go do this, uh, and like set

26:18

up a verification system for something,

26:20

what would I what would I do or where

26:21

would I start?

26:24

Uh, I think that uh, the best place to

26:27

start is local because you can observe.

26:31

You can definitely observe what your

26:32

agents are doing. So,

26:33

uh, if you're building a verification

26:35

skill for yourself,

26:37

uh, I would definitely start local and

26:39

just have your agent bring up the

26:40

application, whether it's like a CLI or

26:44

uh, desktop app or whatever.

26:45

And so, you can actually observe, right?

26:47

You can see how the agent is interacting

26:49

with the

26:51

the application. You can see it, you

26:53

know, how it calls like the different

26:56

APIs that that allow it to interact with

26:58

the

26:59

uh the application.

27:02

Um but uh for me personally, uh I have

27:06

basically been kind of all in mostly all

27:08

in on cloud agents because they're

27:10

extremely powerful.

27:12

Uh and the really powerful thing about

27:14

Cursor is the the cloud agents actually.

27:17

Where if you spend a little bit of time

27:18

setting up your environment,

27:21

these control skills, these verification

27:23

skills pay a huge amount of dividend

27:26

because it's not just something that

27:28

makes you as a single engineer better,

27:31

it actually levels up your whole team.

27:33

Uh and even your whole company because

27:36

uh you can actually start thinking about

27:38

cloud agents being that thing about

27:39

automations that automatically do things

27:42

like

27:44

uh I'll buy I get I I cannot talk about

27:46

this a bit later, but I'll just kind of

27:49

get into it. Uh where where, you know,

27:51

for example, like I talk a lot about

27:53

this agent we have called Benny, right?

27:55

Who

27:56

who uh you know, takes all of the bug

27:59

reports that we get and it automatically

28:02

goes off in the cloud, opens up a cloud

28:04

uh it's, you know, it's desktop. It runs

28:07

Cursor in its own computer

28:09

and it uses the same control skills to

28:12

interact with the application and try to

28:14

reproduce the bug

28:15

uh or the user report. All right, and

28:17

this is so so powerful because at once I

28:20

can immediately I I get so much

28:22

information from this automatically.

28:24

Like here in this example, you can see

28:25

that uh the Benny actually reproduced

28:28

the bug,

28:29

uh but it's already fixed on main.

28:33

So, it actually confirms that we fixed

28:35

this problem already. And all I need to

28:37

do is just release another build of of

28:39

Cursor.

28:40

Uh so, that's like huge information

28:42

there that I didn't have to go off and

28:44

sit with an agent, you know, and spend

28:46

an hour trying to figure out, like, is

28:47

this fixed? Is this not fixed?

28:49

So, you you you gain back so much time,

28:52

uh but, you know, everybody on my team

28:54

benefits from this. Everybody in the

28:55

company benefits from this.

28:57

Uh so,

28:59

definitely think that, uh you know,

29:01

keeping these uh using cloud agents is

29:04

super powerful.

29:05

Uh but, yeah, it's like a journey. You

29:07

have to trust it first, right? Before

29:09

you you get to this point. And that's it

29:12

goes back to what I was saying here,

29:13

where, you know, it's very hard it's

29:15

it's almost impossible, and I would

29:17

definitely encourage you not to try to

29:19

jump from,

29:20

you know, like, if you're still in this

29:22

zone, you don't want to jump to, like,

29:25

I'm going to spawn a hundred a thousand

29:27

or a thousand of cloud agents right now,

29:29

because you're just going to waste a lot

29:31

of tokens,

29:32

um and it's going to be extremely

29:33

expensive.

29:35

>> Yeah, so just to kind of recap so far,

29:37

basically the if we wanted to go on the

29:39

journey that you've kind of gone on, it

29:40

would be just start with verification,

29:43

uh building some some skills and some

29:45

some ways of determining that the agents

29:47

are producing

29:48

at least like correct code, whether like

29:50

you said, whether it's good code or not

29:51

is maybe a separate question, but like

29:52

it's it's technically solving the

29:54

problem by looking at, you know, stack

29:56

traces, looking at, you know, the the

29:58

actual behavior in the app, and so on.

30:00

Um and then once we trust it locally,

30:02

then we can start to think about scaling

30:03

into the cloud and running more agents

30:06

that are picking up signals, I guess, on

30:08

their own, right? So, whether that's

30:09

like a bug report that comes in or

30:10

something, they can go and pick it up

30:11

and solve the problem and and give us

30:14

back a PR. And then maybe the last step

30:16

is like auto-merging the PRs, which uh

30:18

is where you're at.

30:20

>> Yeah, yeah.

30:21

>> Uh and then reviewing them on main, but

30:23

um

30:24

is that is that about right?

30:26

>> Yeah, exactly. I think yeah, that's why

30:27

I drew this this uh this this curve,

30:29

right? Because that this this basically

30:31

describes my journey of, you know, when

30:33

I started

30:35

barely could use a couple agents, and I

30:36

was just observing every single thing.

30:39

I think there's really no shortcut for

30:40

going from here to there because this is

30:43

really about your personal level of

30:45

trust in agents. Right?

30:47

Obviously, you know, as a as engineer

30:49

you don't want to just slop code into

30:51

production.

30:52

So, how do you actually build up that

30:53

trust? Takes

30:55

um a lot of

30:57

uh I guess taste and judgment. Um but

31:00

uh you know, like I think plugins like

31:02

Pstack definitely kind of help you

31:05

get up to speed much quicker.

31:07

Uh and so I guess it's It's like if you

31:10

trust me and you trust Pstack, then in

31:13

by extension you can maybe trust your

31:15

agents. But if you don't trust me and I

31:17

I definitely would not encourage people

31:19

to blindly trust me.

31:22

Uh

31:23

uh you know, if you build up your own

31:24

set of skills that you can obviously,

31:26

you know, take a look at Pstack and kind

31:28

of fork it, make it your own, improve

31:31

the skills. Definitely encourage that.

31:33

Um but for me it's really all about it

31:36

just keeps coming back to trust. You

31:38

know, every one of us here in this chat

31:40

have a different standard for

31:41

engineering. Uh and there are different

31:43

things that are important for us in our

31:45

code base. And uh when you are able to

31:49

encode all of that into skills and you

31:51

can verify that your agents actually

31:53

doing them,

31:54

that allows you to really kind of ascend

31:56

this curve. And

31:59

uh you know, start automating things.

32:02

Uh there's another piece I wanted to

32:03

talk about. Um if there's

32:06

>> Yeah, go for it. I'll I'll think of more

32:07

questions as I go, but yeah.

32:08

>> Yeah, I think there's a third to this

32:10

which I haven't talked about yet, which

32:12

is

32:13

kind of an interesting one, which is

32:14

like refactoring and rewriting. Like one

32:17

of the uh I guess most controversial one

32:20

of the most controversial topics in the

32:22

industry, I think, is like should you

32:25

rewrite your app or not?

32:27

Um because I think engineers are very

32:30

prone to this where especially when you

32:32

join a company, you come in and you see

32:34

like the code base and you're like,

32:35

"Man, this is

32:37

Like who wrote this code? You know, it's

32:39

it's terrible. I want to rewrite the

32:40

whole thing. There is a very common

32:43

inclination and I think a lot of, you

32:45

know, before agents, um and I guess

32:48

arguably even now, people will

32:49

definitely discourage you from re-

32:51

rewriting stuff.

32:53

But I'm actually here to make a case for

32:54

why you might want to consider it.

32:57

Um because

33:00

I think it really depends. Uh you know,

33:03

brownfield applications I think are

33:05

actually in a pretty good spot,

33:07

especially if they're set up well

33:09

already.

33:10

Uh and like recently I've been talking

33:12

to some people, but uh you know, I I I

33:14

was just observing. I I just noticed

33:17

this

33:18

parallel, which is that a lot of big

33:21

tech company problems are now

33:23

everybody's problems.

33:25

Um and the big tech company problem, you

33:26

know, like when I was working at Meta,

33:28

like we had this giant mono repo. We had

33:31

like, I don't know, tens of thousands of

33:33

engineers just, you know, like banging

33:35

on their keyboards and and shipping

33:37

code.

33:38

And

33:40

a lot of really great engineers at Meta,

33:42

uh but uh I'll say like, you know,

33:45

you'll be surprised that the code

33:46

quality is actually not that good.

33:48

>> [laughter]

33:48

>> Um and so

33:50

I often joke that like, you know, before

33:51

AI slop, we had human slop.

33:54

Um and so uh you know, I think a lot of

33:56

big tech infra, like uh like what Meta

33:59

has or Google, you know, you know,

34:01

really big tech companies,

34:03

are actually designed for that, where

34:05

you you're sort of like, you're catering

34:07

to the the you know, like

34:09

uh this sounds so bad to say, but like

34:11

the the least capable engineer on your

34:13

team, right? You build you build

34:15

frameworks, you build conventions, you

34:17

build guardrails, you know, you restrict

34:20

credentials so that, you know, your

34:21

intern doesn't wipe your production

34:23

database.

34:24

Um

34:26

there's uh you know, if you have that

34:28

level of infra already, I think your

34:31

agents can actually already do a very

34:32

solid job. Right? Because they have the

34:35

the guardrails are already in place for

34:38

agents to not cause havoc or not cause

34:41

too much havoc in your codebase. Um and

34:45

you can always add more, you know,

34:46

guardrails.

34:48

Uh but I think like greenfield

34:49

applications especially are you know,

34:50

like the brand new applications are like

34:53

the biggest risk in my opinion. Uh and

34:56

also the greatest opportunity.

34:58

Because, you know, if you vibe code a

35:00

project uh a prototype

35:03

um like we did for Grokbot, you know,

35:04

Grokbot was spun up very very very

35:06

quickly. Um and if you if you haven't

35:09

heard of of Grokbot, it's like our a new

35:11

application we just launched yesterday.

35:13

Uh it's it's really cool.

35:15

Uh lets you orchestrate your create like

35:18

individual agents that have their own

35:20

identity and you can kind of orchestrate

35:22

them. It's super cool. Definitely check

35:23

it out.

35:25

Um but yeah, that was it's like a very

35:26

it was a very greenfield application

35:28

like most prototypes are.

35:30

So, it was like vibe coded very quickly.

35:32

Humans were not reading the code at all.

35:35

And

35:36

uh I had this tweet recently

35:39

uh where I said something about organic

35:42

architecture.

35:43

Um

35:45

Let me I'll find it.

35:46

Uh but the idea is that

35:50

uh when you have a completely vibe coded

35:52

application, you essentially have no

35:54

guardrails whatsoever. So,

35:56

uh your agents

35:59

when you give them a task, they will

36:01

just solve it in whatever method is the

36:03

most convenient.

36:05

And over time, you get into this

36:07

uh

36:08

situation where you have a codebase that

36:10

is spiraling out of control because you

36:12

don't understand it. Uh your agents

36:15

understand it, I guess, in a way, but

36:17

like they've built something that is,

36:19

you know, optimized for short for

36:21

shortcuts.

36:22

Uh and uh you know, it will you will

36:25

suffer you have a lot of of issues with

36:27

that application.

36:30

Uh so, I think starting your code base

36:33

with uh like very strong strains is

36:37

very much needed.

36:39

Uh because like when you have a code

36:41

base that you can trust, right? When you

36:43

have guardrails that actually help you

36:45

uh

36:47

uh help your agents write good code, you

36:49

can get into the you know like into this

36:51

part of the curve where I I where I like

36:54

I I said, you know, I woke up today and

36:56

I had like 20 PRs merged uh by my

36:59

agents. And that's because I invested a

37:02

lot lot a lot of time

37:03

uh over 600 PRs I I I calculated

37:06

yesterday uh

37:09

when I refactored all of GrokBot to this

37:11

new architecture that I've been

37:12

building.

37:13

Um

37:15

and yeah, I've I've gotten to a point

37:17

where I

37:19

I don't really look I really don't look

37:20

at the code anymore. And um I say that

37:23

not just, you know, to sell you tokens,

37:25

but

37:26

because I you know, it it it took a lot

37:29

of work to get to that point. I spent a

37:30

lot of tokens to get the code base to

37:33

this point where I no longer have to

37:34

look at it.

37:36

Uh but I'm very excited because

37:38

you know, of the potential where, you

37:40

know, it's not just it this doesn't just

37:42

benefit me. It benefits everyone

37:44

contributing to GrokBot.

37:46

And it also empowers, you know,

37:48

designers and product managers and, you

37:50

know,

37:51

even GTM people to add features to

37:54

GrokBot. And I don't have to worry, you

37:56

know, I don't have to to wake up at

37:58

night in in the middle of the night and

37:59

worry like, "Oh, Someone's just

38:01

merged a perf regression." Right? I have

38:03

a ton of

38:04

constraints and CIs like it's actually

38:07

very annoying to write code in in

38:09

GrokBot, but like agents absorb all of

38:11

that annoyance.

38:13

Um but yeah, I'm happy to talk about

38:15

what exactly that is. Um

38:18

>> Yeah, I think one question

38:20

um

38:20

>> Yeah.

38:21

>> before we get into the this part here is

38:23

just around that element of like what

38:25

your your your CI looks like or maybe

38:27

some of the constraints and then also

38:29

like the average PR size. I saw a

38:30

question about that earlier. Just to

38:32

give people a you know, kind of a a

38:34

glance. It doesn't have to be like

38:35

mathematically average, but just a you

38:37

know, like what generally the size of

38:39

the PR is

38:41

um if it's only a couple lines of code

38:42

or you know, um yeah.

38:45

>> Uh

38:45

um

38:47

I think it depends. Uh let me

38:51

I'm trying to do this in a way where I'm

38:53

not going to like

38:53

>> Yeah, yeah, you don't have to share the

38:55

actual number. If you like the actual

38:56

number just

38:57

>> this is is fine.

38:58

>> benchmark

38:59

>> But like we have So okay.

39:01

This is not

39:02

that interesting, but uh well, fun fact

39:05

is that virtualization in Grokbot and in

39:09

uh Cursor is actually powered by uh

39:12

Pretext,

39:13

uh which is a sort of new library that

39:16

someone's built. Um that's really

39:19

interesting. You should You should check

39:20

it out.

39:21

But that's not really that important.

39:23

Uh I think the average PR size I

39:25

actually don't know I I don't know if I

39:27

want to click on these.

39:29

Uh I probably can, but I would say like

39:32

they can range anywhere from a few

39:34

hundred lines or 50 lines to like a

39:36

thousand depending on what the thing is

39:39

doing.

39:40

Uh so like here I'm actually like

39:41

deleting a bunch of files, so I expect

39:43

that it's just this like mostly

39:45

deletion.

39:46

Uh but yeah, it it kind of varies.

39:49

>> There's no like

39:50

>> There's no like hard cap or hard limit.

39:52

They're all like 50 line PRs.

39:54

>> there's definitely no hard cap, but I I

39:55

do encourage my agents to split up their

39:57

work into multiple PRs.

39:59

Uh I do that mostly because uh

40:03

I like I like the idea of but I guess

40:06

maybe this is much harder to do now as

40:08

in the world of agents and you have like

40:10

so many commits.

40:12

But I like the idea that you know, the

40:13

Git history is a very rich source of

40:15

context. Uh and I like the I like each

40:19

PR to sort of atomically describe what

40:22

that

40:23

small piece of thing is doing,

40:25

which also makes it easier for me to

40:26

revert changes and like figure out, you

40:28

know, oh, I shipped a bug and it's this

40:30

it's here, right? It's not in this

40:32

40,000 line PR where you who knows what

40:35

landed in there.

40:38

Uh but I I don't have a hard cap on PR

40:41

size.

40:42

>> Cool. And then um yeah, also quick

40:45

question on like CI. So again, you don't

40:46

have to go into like uh the screen share

40:48

of like your your CI does, but just

40:50

generally, would you describe what the

40:52

CI kind of looks like uh or how strict

40:54

it is?

40:56

>> Uh yeah, so

40:58

uh well, specifically for Grokbot, so

41:01

Dune is the is the sort of cheeky code

41:04

code name for the architecture that

41:06

we've built for

41:07

Grokbot. Um the CI looks pretty annoying

41:12

because there's checks for everything.

41:14

So, like literally, I have um

41:18

uh well, if you've written any React for

41:19

example, you know, you know that one of

41:21

the biggest foot guns in React is use

41:23

effect. Uh so, in

41:26

uh Dune and in Grokbot, we've banned use

41:29

effect. So, Dune is just you can the the

41:32

mental model of what Dune is,

41:34

uh you can kind of think of it as like

41:35

Next.js for

41:37

uh Electron apps and it's designed for

41:40

agents to write uh and it's like custom

41:42

for, you know, our agent for the

41:45

applications.

41:46

Um so, the CI checks are very like

41:48

specific to that, like, you know, don't

41:50

use use effect. It's it's it's banned,

41:52

like, CI will fail

41:54

uh and yell at you. We have like some of

41:57

the more interesting ones that people

41:58

might raise eyebrows is like I actually

42:00

banned code comments as well,

42:03

uh which is very interesting. Um but I

42:06

noticed that 99% of the time agents just

42:10

write code comments that kind of

42:12

describe some historical thing that is

42:14

actually totally irrelevant to the code.

42:17

Um,

42:18

like it will often say like, you know,

42:19

"Oh, Lauren said you should never do

42:21

this." and it's now in the in the code

42:22

comment. I'm like, "What? Like, why what

42:24

that that was I didn't say that as like

42:26

a durable, you know, global rule. I just

42:28

meant like your this PR sucks and you

42:31

should change that part."

42:33

Uh, agents

42:35

don't really understand us that well,

42:36

surprisingly.

42:38

Uh, and or they kind of assume too much

42:40

and they kind of do things in like very

42:42

stupid ways.

42:43

So, like yeah, we just ban everything

42:46

everything you can imagine like the

42:47

agents are bad at, we ban.

42:50

Uh, so one example that we actually

42:53

suffer a lot in the agents window is

42:56

we have, uh, you know, you know, if

42:58

you've used agents window, you've

42:59

definitely seen performance issues and,

43:01

you know, we're constantly trying to fix

43:02

them.

43:03

Uh, but it's like a

43:05

it's a never-ending struggle because

43:07

there's so many pull requests that get

43:09

merged.

43:10

Every any one of them could just regress

43:12

performance or stability or reliability.

43:15

Uh, you know, the agents window doesn't

43:16

have this architecture yet. I plan to do

43:18

bring this learning back there and kind

43:21

of refactor everything there.

43:23

Uh, but

43:25

uh, it just regresses super often

43:27

uh, because uh, there's there's just one

43:30

example is like we have very poor

43:33

um, isolation between processes. So,

43:35

like on you know, on Electron, you have

43:37

a renderer thread that renders your UI.

43:40

But you also have like a main thread

43:41

that you can run other code that, you

43:43

know, doesn't need to block the

43:44

renderer.

43:46

Um, but we do a poor job of separating

43:48

those things. And so, often times you

43:51

just accidentally have code that gets

43:53

pulled into running on the renderer

43:55

thread. All right, and then all of a

43:56

sudden you're competing with the the

43:58

renderer that you know, that has a very

44:01

If you want like 60 FPS, you have to

44:03

every frame that gets drawn has to be

44:05

done in 16 milliseconds. It's a very,

44:08

very small, you know, deadline per

44:09

frame.

44:10

Uh if you want, you know, a very smooth

44:13

product. Uh and when you start building

44:15

bringing in accidentally bringing in,

44:17

you know, things that are like very

44:19

computationally heavy or they have a lot

44:21

of IO, uh

44:23

then you just get into like a lot of

44:24

jank. Uh your your FPS really drops. You

44:27

start uh you know, losing frames. You

44:30

get long tasks that

44:32

take more than 16 milliseconds and you

44:33

just get this really choppy experience.

44:36

So, all of those patterns that we've

44:38

learned basically building Electron

44:40

apps, we've encoded into this framework

44:42

and it becomes like a hard failure. So,

44:45

I literally in in Grokbot, we literally

44:47

have a directory called Electron main,

44:49

Electron renderer, and we have uh

44:52

import

44:54

uh CI, I guess, where we actually check

44:57

the dependency graph to make sure you're

44:59

not accidentally importing code from one

45:02

directory to another.

45:03

Uh so, that's enforced by CI,

45:07

um as well as Bugbot, uh which is our

45:10

which cursors

45:11

um like code review tool that runs on

45:14

CI.

45:15

Uh you know, in our agents MD, it's

45:17

everywhere. Like so, I I I I um

45:20

I have this thing here where I talk

45:22

about like

45:24

um you know, like there are multiple

45:25

layers, I think, for building a good

45:28

code base.

45:29

Uh obviously, the code base is one where

45:31

uh if you have an architecture like

45:33

this, where it's extremely strict, uh

45:36

you know, the the the way to build

45:38

features is very conventional. That's

45:40

like the strongest strongest level of

45:42

enforcement because agents just love to

45:45

copy existing patterns.

45:47

So,

45:48

uh one example of this in Grokbot is

45:50

like we have this these concepts called

45:52

like a feature and we have entry points

45:54

and transcript cards. Like all of you

45:56

know, the cards that you see in the

45:57

chat.

45:58

These are all like

46:00

like nouns, I guess, in in the

46:02

framework. And so, there's a very

46:04

conventional way of creating them. And

46:08

so, like a feature is all in in a single

46:09

directory, as an example. And so, all of

46:12

the code that contributes to that

46:13

feature lives in one directory. So, it's

46:16

all co-located in one place. Makes it

46:18

super easy, you know, agents don't have

46:19

to like uh grep around and try to figure

46:22

out like where all the things are.

46:24

It just looks at the feature and like,

46:25

"Oh, okay, I'm working on the onboarding

46:28

feature in Grokbot. Uh I'm just going to

46:31

work in this directory." And for 80% of

46:33

the work, it's mostly just very

46:35

encapsulated there.

46:37

But uh like it's like

46:40

very It's like designed again for, you

46:42

know, like the dumbest agent. Like, you

46:44

don't have to think. All right, the the

46:46

the One of the key principles I have for

46:49

this framework is like the shortest the

46:51

shortest path is the best path.

46:54

So, uh because that plays exactly to how

46:57

agents love to write code. Like, they

46:59

like to take shortcuts, really. You

47:01

know, they'll they'll find the quickest

47:02

way to solve the problem. So, why not

47:06

make that the best way to solve the

47:08

problem?

47:09

Uh so, I I I I probably won't get into

47:11

all the specific details. Um and uh the

47:15

the

47:16

this framework is really more of a

47:17

collection of ideas and principles,

47:19

rather than something that we'll open

47:20

source.

47:21

Uh you can you can, you know, screenshot

47:23

this, I guess, if you want and uh tell

47:25

your agent to

47:27

uh do some build build something like

47:29

this for you to

47:31

um Yeah, but it's really all about the

47:33

layers. Uh you know, like the the code

47:36

base is one part with features uh and

47:38

directories and you know, import

47:41

uh blocking import dependencies uh that

47:44

shouldn't be imported. Uh but and and it

47:47

all enforces that and static analysis.

47:49

So, like uh there's CI checks. We have a

47:52

lot of lints for bad patterns that we

47:55

observe. Uh compiler diagnostics. Uh,

47:59

there's also rules and bug bot which are

48:01

um, I think like three, four, five are

48:04

more soft, right? These two actually

48:07

make

48:08

make CI red, right? So, that you know,

48:11

there's a hard constraint where the

48:13

agent can just write crappy code.

48:17

For rules and skills and bug bot,

48:20

your agents can still forget, right? You

48:22

can still

48:23

or it may not always consistently apply

48:26

them. So, I like to layer them, but I

48:30

don't I don't like to rely on them as

48:32

the only source

48:34

of enforcement because it's very, very

48:35

soft, right? And if you if you only have

48:37

rules and bug bot and skills and a style

48:40

guide for your code,

48:41

you will it's only a matter of time

48:43

before your code base looks like

48:45

complete trash. Uh, I'm sorry to say

48:47

that, but uh, I definitely recommend you

48:50

all like, you know, investing

48:51

in, you know, things that can be hard

48:53

enforced. Right? And this is why,

48:56

you know, maybe uh, the choice of tech

48:58

stack that you use is also very

48:59

important.

49:01

Um,

49:02

like I think for example, Rust is sort

49:04

of making, you know, it's like getting

49:06

super popular again, uh, because the

49:09

compiler is so strict, right? The

49:11

compiler enforces so many different

49:13

things, you know, there's a borrow

49:14

checker that you have to appease.

49:16

And if as long as you make sure your

49:18

agents don't write unsafe code blocks,

49:20

uh, you can more or less feel somewhat

49:23

confident that if the code compiles, it

49:25

probably works and it's good.

49:27

Uh, but you know, you see, it gives you

49:28

that level of trust and confidence that

49:32

you as a human engineer no longer need

49:35

to go and check it yourself. You you

49:37

know, you you rely on

49:39

code and static analysis to actually

49:43

make that uh, a lot smoother.

49:46

Um, and I I guess the worst part the

49:49

worst place to be in is if you are stuck

49:52

in code review land where you actually

49:54

enforce all of the constraints, the

49:56

invariants in your code base

49:58

by literally the human person saying,

50:02

you know, reading the code and be like,

50:03

"Okay, you should not do this."

50:04

Right?

50:06

Every time you have to do that, you

50:07

should consider that as a code smell,

50:08

like a uh anti-pattern. And you should

50:11

say, "Okay, instead of me commenting on

50:13

the PR,

50:14

how do I turn this into a hard rule?

50:17

Right? How do I turn this into a lint

50:18

rule? How do I turn this into a CI

50:21

failure? Or how do I even categorically

50:23

eliminate this problem

50:25

uh entirely?

50:27

Uh

50:28

I I can talk about another migration

50:30

I've done, but I'll probably pause here.

50:32

>> Sure.

50:33

Yeah, I feel like that's that's where I

50:34

am, to be honest, is is what you're

50:36

describing right now, which is that like

50:38

I don't have all of these rules. Uh so,

50:40

I have some things to go do after this

50:41

session

50:42

in terms of being able to scale my

50:43

agents. I'm I'm definitely on like the

50:46

uh you know, maybe a couple of parallel

50:48

ones locally stage, so like two to three

50:50

locally. And I'm sure most people here

50:52

are on the same, so uh

50:54

yeah, I know we only have a couple

50:55

minutes left. Uh Lauren, was there

50:56

anything else that you wanted to to

50:57

highlight? I obviously there's lots of

50:59

questions, so I can grab more, but I

51:01

want to give you a few minutes uh if

51:02

there's anything else you want to talk

51:03

about.

51:03

>> I think I've been yapping for quite a

51:05

lot, so I'm Maybe let's just do

51:06

questions.

51:08

>> Okay, cool. Uh one question I had uh a

51:10

couple of uh came up a couple of times

51:12

was just around like token usage.

51:14

So, the the question is like is is what

51:17

you're describing a realistic thing for

51:19

people who are on, you know, uh

51:22

a a normal set of token usage, they

51:24

don't have, you know, basically

51:25

unlimited tokens uh to work with.

51:29

>> Well, I think that's a really good

51:30

point. I mean, like obviously, you know,

51:31

I work at a AI lab where we have

51:34

unlimited tokens, so uh

51:36

I definitely cannot

51:39

say that, you know, this is something

51:40

everyone

51:42

should do in the exact same way that I

51:43

did it. I think it's possible to get to

51:45

this point without, you know, breaking

51:47

the bank.

51:49

But, you know, if you're like an

51:50

engineering leader or, you know, you're

51:52

you're you have a startup that you lead,

51:54

um I think that may be a question of

51:56

ROI.

51:58

Um and it's like

52:00

uh

52:00

yes, you spend a lot of money on tokens

52:04

in the upfront stage. You know, you like

52:06

refactoring your code base is going to

52:07

take a lot of tokens. Uh adding all

52:09

these things uh is going to take a bunch

52:11

of tokens.

52:13

But, if we're heading to a world where

52:15

agents are writing all the code,

52:17

and you know, you want to be very lean,

52:20

right? You don't want to have to hire

52:22

You don't want to be You don't want to

52:23

become like meta, right? Like I mean

52:25

like in terms of You don't want to

52:26

become a 10,000-person engineering org

52:29

because

52:30

I mean, that's a cool problem to have,

52:32

but also you know, you you have so much

52:34

overhead. There's like planning, you

52:36

know, like you it it's it's uh

52:39

personally I I wouldn't uh

52:41

it it's not super fun. But, um

52:44

I think you want to stay very nimble,

52:45

right? And you want to you want to be

52:47

like agents are all about allowing you

52:49

to do things that you couldn't do

52:51

before. That's really to me like the

52:53

value of agents. You know, it's not just

52:56

throwing tokens on every single little

52:58

thing.

52:59

But, um to me like the thing I couldn't

53:01

do before is like

53:02

enforce this level of constraints in a

53:05

code base by myself.

53:07

Right? Like I'm just a single person,

53:09

you know,

53:10

uh it would have taken me years to build

53:13

this framework uh and do it all the

53:15

refactoring and

53:18

test everything myself and verify, you

53:20

know, like run Imagine if there was just

53:22

me right now in in pre-agent era, just

53:25

like running, you know, by my It would

53:27

take me so long, right? And my salary is

53:30

pretty high, right? Like So, you know,

53:33

the the question I think an engineering

53:34

leader might have is just then,

53:36

you know, like what is there's a

53:38

tradeoff of do you hire someone to do

53:41

this,

53:42

or do you spend the tokens to set up a

53:44

code base so that even

53:46

the the most naive, right, the dumbest

53:49

agents can do a good job.

53:51

And when you actually get to this point,

53:53

like even agents that are not, you know,

53:55

Fable size do an excellent job of

53:58

writing code.

53:59

And this pays a lot of dividends as well

54:01

for me and personally where I've

54:03

empowered not just myself, but

54:06

again, like PMs, designers, engineers

54:09

who are not familiar with Grok but to

54:11

just contribute in a way that

54:14

is sustainable.

54:16

So, I think yeah, it's definitely like a

54:18

trade-off for sure. You know, like

54:19

nothing's like free for sure.

54:22

Uh and tokens are pretty expensive.

54:24

Uh but oh, actually,

54:26

I don't I I I don't know how many of you

54:28

have seen this, but we actually

54:29

announced Grok 4.6 today. So, very

54:32

exciting. Finally out. Um so, yeah, Grok

54:35

4.6 would be like a great It's very very

54:37

smart. Uh it's really good on on the

54:40

benchmarks. Uh and it's the same the

54:43

tokens Uh well, uh I hopefully I'm not

54:45

saying this thing correctly, but uh I

54:47

believe the cost per token is the same

54:50

as 4.5.

54:51

So, you're actually getting more

54:53

intelligence for the same cost.

54:56

Uh I think this is an area that Cursor

54:58

tries to Cursor and SpaceX AI

55:01

try to really optimize for like that

55:04

Pareto frontier of, you know, cost

55:06

versus intelligence. Uh you know, we

55:08

don't necessarily want to build the

55:10

biggest model ever because that is

55:12

extremely expensive to run.

55:14

It's really about like how do you find

55:16

that sweet spot, right? You don't You

55:17

don't need a giant model, but it's just

55:19

super smart, right? And it's not very

55:21

expensive for inference.

55:24

Uh but um yeah, I think to kind of round

55:27

it up, um

55:29

I think it's like a it's it's there's a

55:31

If you do your own analysis, I feel like

55:33

it's pretty positive.

55:35

It It'll be pretty positive that the ROI

55:38

you get from investing in stuff like

55:40

this uh just empowers not just yourself,

55:43

but your whole team to be so much more

55:45

productive. Right? Like imagine if you

55:47

have an army of engineers like me who

55:50

are shipping so much improvements and

55:52

and bug fixes uh you know, every day.

55:56

Right? Like

55:57

that is pretty exciting.

55:59

>> Cool.

56:00

One last question before we wrap up.

56:02

This one is for the people in product on

56:04

the on the call. So, let's say we do

56:06

have an army of engineers who are

56:08

shipping like Lauren. I'm just curious

56:10

like how is the product team or other

56:12

functions of your company keeping up

56:13

given that like if you're shipping so

56:16

quickly, have have are they using AI

56:18

more to do their jobs? Like as much as

56:20

you can speak to that. I obviously you

56:21

don't have like you're not in that role,

56:23

but just curious about how that works.

56:25

>> Um I think this is where Grokbot has

56:28

been actually exceedingly powerful. Uh

56:30

where

56:32

so before Grokbot like you know,

56:34

obviously Cursor only had Cursor. Like

56:36

we only had agent window. We had a CLI.

56:38

We had an IDE.

56:40

And these are really like

56:42

power user tools, right? Like the

56:44

they're designed for developers. So,

56:46

it's very very developer-centric. You

56:48

can do knowledge work in them, but it

56:50

like the UI is not really optimized for

56:52

that.

56:53

So, we actually didn't really have uh

56:56

well, I think like a lot of people like

56:58

you know, GTM, product, like they might

57:00

have used Cursor uh to do their work,

57:03

but it definitely wasn't like a the like

57:05

full experience with them.

57:07

Um I think now with Grokbot

57:10

uh it's become Grokbot is basically like

57:13

the Cursor moment for people who are not

57:16

in tech in my opinion. Like it's like

57:18

it's like a very very accessible way to

57:21

use agents in a very comfortable, very

57:23

familiar interface. It looks like

57:25

iMessage. Um and it's very fun too, you

57:29

know, you can give your agent to be

57:30

name. Uh you can have you can kind of do

57:33

orchestration with in a very like

57:35

natural way where you can sort of

57:37

you know, each agent is like a person

57:39

and now you're on a team of agents like

57:40

working on you have one one agent per

57:42

account that you manage as an example.

57:44

Or if you're a PM, you have you know,

57:46

you can have an agent that summarizes

57:47

all the work that Lauren did last night

57:49

and then now you know what I did, right?

57:52

So, I think our PMs are leveraging that

57:54

a lot. And they're shipping code, too.

57:57

Uh, so you know, I often times they will

57:59

just say, "Oh, here's a bug. I fix it.

58:01

Can you look at it?" And then I'll go

58:02

review it and actually it's just

58:04

perfect. I'm like, "Okay, stamp." Uh, so

58:07

uh, I think that shows that you know,

58:08

the the Dune architecture is holding up,

58:11

right? The all the the really strict

58:13

constraints allow

58:15

people who are not experts in

58:17

engineering to contribute at a high

58:19

level.

58:20

Uh, so I'm I feel like I'm already

58:21

seeing that pay off a lot where uh, you

58:24

know, designers and PMs are just able to

58:27

to to ship features directly.

58:30

Um, and that just makes

58:32

the Grock bot team super fast, right?

58:35

Where we can ship so quickly.

58:37

Um,

58:39

and we have a lot planned, so I'm very

58:41

excited uh, to you know, uh,

58:44

to to ship more uh, ship more stuff.

58:46

>> Yeah, that's awesome. Uh, we are at

58:48

time, so I I guess Lauren, if if folks

58:51

want to support you, maybe go try Grock

58:53

bot, try out uh, 46 and uh, you know,

58:57

just get to get provide some feedback.

58:58

But yeah, this was awesome. Really

58:59

appreciate you taking the time. Uh,

59:01

thanks everyone for all the messages in

59:02

the chat. Uh, lots of good questions. I

59:04

know we didn't get through everything,

59:05

but uh, as I kind of said at the top,

59:06

way more questions than than we could

59:07

get through. But uh, yeah, really really

59:10

thanks thanks for for joining. Thanks

59:11

everyone for joining and uh, hopefully

59:13

you you enjoyed the session.

59:15

>> Yep.

59:16

>> All right.

59:16

>> Yeah, I see see you thanks for having me

59:18

and uh, if you have any more questions,

59:19

yeah, just DM me on Twitter. Uh, I'll

59:21

I'll open them up, I guess. I'll let the

59:23

I'll let the floodgates

59:24

>> to get you're going to get a lot of DMs.

59:25

>> Yeah, I'll open the floodgates. So,

59:27

yeah, DM me. Maybe I'll do like a

59:29

Twitter Space at some point as well for

59:31

more questions, but

59:33

really appreciate everyone for showing

59:34

up, uh you know, taking an hour out of

59:36

your day.

59:37

>> Yeah. All right. Thanks, all. I'll see

59:38

you in the next one.

59:39

>> Okay, thanks, everyone. Bye.

Interactive Summary

Lauren Tan shares her journey of using AI agents for software development at Cursor, emphasizing the critical importance of building trust through verification. She discusses the transition from being 'in the loop' with agents to implementing advanced patterns like automated PRs and strict architectural guardrails. Lauren introduces 'Pstack' as a tool to improve agent reliability and explains how her 'Dune' architecture enables team-wide efficiency by enforcing constraints that prevent common bugs, allowing even non-engineers to contribute safely.

Suggested questions

4 ready-made prompts