HomeVideos

SpaceXAI engineer @poteto

Now Playing

SpaceXAI engineer @poteto

Transcript

1521 segments

0:00

Personally, I think that uh the best use

0:03

of you of AI is really as like a like a

0:05

pair like someone you're pair

0:07

programming with and not someone as not

0:09

not a not a tool to just replace the act

0:12

of writing code or worse outsourcing

0:14

your thinking.

0:16

And I think there's a tendency like, you

0:18

know, because AI is so exciting, you

0:20

want to put AI everywhere and be seen as

0:22

someone who's very, you know, um, what

0:25

do you call it? Like, uh, on the ball, I

0:28

guess, with with AI. Uh, that you feel

0:31

this pressure of like, you know, I'm

0:33

just going to I got to increase my

0:34

productivity. I got to ship like 100 PRs

0:37

this week and barely understand what I'm

0:39

doing and, you know, vive code my way to

0:42

a million ARR or whatever.

0:45

Um but I think you know um one of the

0:49

things that I've personally seen is that

0:52

although when I use AI I save some time

0:55

you know writing the code I actually

0:57

find myself spending more time reviewing

0:59

what the AI did and like correcting it.

1:02

So, you know, like I've I've tried the

1:03

the thing that a lot of people say like,

1:05

you know, you uh instead of prompting an

1:08

AI to just build the feature outright,

1:10

you sort of get it to uh build a spec

1:13

for you first, then you review that

1:15

spec, and then you do this whole thing.

1:17

Then it's like it's such a time

1:18

consuming process. Um, and if you don't

1:21

really understand what the AI is doing,

1:23

then uh I think you're doing yourself a

1:26

disservice because it's um like the same

1:30

way that in school you use a calculator

1:34

or uh you know you have an open book

1:36

exam. The the skill of being a developer

1:39

is really in like the knowledge of using

1:41

tools. And I think when you just

1:43

completely outsource that, you know,

1:46

thinking, I think that's like really

1:48

dangerous. But I think I don't know. I

1:51

don't know what other people will say to

1:53

that. [laughter]

1:54

But yeah, that's my personal thoughts

1:56

because I wrote the PR, [laughter]

2:00

but also it's it's like also the same

2:03

feature that I don't like the most.

2:05

[laughter]

2:06

Should I should I save the answer for a

2:08

later question or should

2:09

>> Let's Let's hear it. Well, so user

2:12

effect event is a is like a new API. We

2:16

it's a little bit tough because we don't

2:18

want people to abuse it. And I think if

2:22

you start thinking about like, you know,

2:24

where can I start throwing use effect

2:26

across my codebase, I think the question

2:28

you might want to ask first is, do I

2:31

actually even need an uh effect here?

2:35

um and then you know read the docs on

2:38

you might not need an effect and only in

2:40

the very rarest of circumstances where

2:43

you do need a uh an effect uh the docs

2:46

also do a really good job of describing

2:49

the use cases where you might need a use

2:51

effect. And so like the canonical

2:53

example is where you have for example an

2:55

effect that uh connects to some

2:57

websocket like a chat room and um you

3:02

might want to trigger some sort of event

3:03

whenever the user like connects to a

3:06

chat room like show a notification. And

3:08

so use effect event will sort of uh let

3:11

you uh issue that event from that effect

3:15

without you having to define or declare

3:18

that dependency in the dependency array.

3:20

So, uh, yeah, it's a kind of a

3:24

advanced API, so don't use it too much

3:28

[laughter]

3:29

is is the takeway.

3:31

>> Use effect event is actually one of my

3:33

favorite features of React 19 as well,

3:34

because I can imagine a lot of code

3:36

getting cleaned up. And you're right,

3:37

like use effect gets abused a lot. So,

3:40

I'm worried use effect event would also

3:42

get abused a lot, but I'm hoping that

3:44

people will stop uh doing that ESLint

3:47

exception to avoid the dependencies.

3:50

Yeah, exactly. Definitely use the

3:51

llinter as well because the llinter the

3:53

new version of the llinter will tell you

3:56

um uh will give you the appropriate

3:58

warnings if you're using use effect

4:00

incorrectly. So definitely make sure to

4:02

if you do have to use use effect event,

4:05

use the the llinter.

4:07

>> Yeah. And to to add to that, I think uh

4:10

we we we talk about this in the doc as

4:12

well, but you absolutely uh shouldn't

4:15

feel pressured to go and like remove all

4:18

your manual minimization because the

4:20

compiler can you know uh just uh

4:23

optimize your components anyway even if

4:25

you've already used manual memorization.

4:28

Um so yeah, there's definitely no rush

4:30

to uh you know delete delete all of

4:33

them. And are there plans to deprecate

4:36

use memo and use callback in the fe uh f

4:38

future in favor of react compiler?

4:42

>> Uh no I don't think so. Uh maybe drove

4:46

you want to add more to that.

4:48

>> Yeah. So

4:50

>> uh one thing we've definitely heard a

4:52

lot is the fact that you know the

4:54

compiler is still a Babel plugin and we

4:57

know a lot of the community has moved on

4:59

to like Rust based tooling uh like SWC.

5:04

Uh so this definitely like one of the

5:06

recurring questions we get is like when

5:09

is you know compiler the compiler going

5:12

to work uh like natively in my SWC

5:15

uh build pipeline and for that I think

5:18

that the team we've talked about it a

5:20

lot I think our current plan is to uh so

5:24

there's this project at meta that's

5:26

called static hermes and it's a project

5:29

to use Hermes which is our own

5:31

JavaScript engine uh to pre-ompile

5:35

JavaScript into like native code. And so

5:38

the idea being that we can uh you know

5:42

keep the very flexible development

5:45

process we have in the compiler which is

5:47

written in Typescript compile and get

5:49

the benefits of a natively built uh

5:52

binary. Um but that's still a bit uh

5:56

like maybe I'm not sure like how far out

5:58

that is. Uh but it's something on our

6:00

radar and something we want to explore.

6:03

But if that doesn't pan out, then we'll

6:04

have to to think a lot about the like

6:07

maybe another attempt at porting the

6:10

compiler to Rust and then that can work

6:13

with SWC. Uh but yeah, definitely though

6:16

it's like a a question that comes up a

6:19

lot. Yeah.

6:21

Uh I suspect there'll be a lot of

6:23

interesting answers [clears throat] from

6:24

this from this this chairs here. Um

6:28

hello everyone. I am Lauren Lauren Tan.

6:31

I guess not many people know my last

6:32

name. Uh I am potato on Twitter. Uh

6:37

potato with spelled with an e. Um and I

6:40

have been at cursor for about 5 months.

6:44

Uh previously I was at Meta where I

6:46

worked on the React team. Uh

6:48

specifically working on the React

6:50

compiler uh which was a whole lot of

6:52

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

6:53

team and and uh contributing to open

6:55

source here and there. Uh so that that's

6:58

really nice that they still let me do

6:59

that. Uh and before Meta I was at

7:02

Netflix uh where I was uh both a tech

7:05

lead and uh I transitioned to be be an

7:08

engineering manager um for about two

7:11

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

7:14

experience going between engineering

7:17

management and being an individual

7:18

contributor. Uh and I think something

7:21

I've noticed actually which is quite

7:22

interesting is that there are so many

7:24

parallels with you know management

7:26

skills and how to like manage agents.

7:29

Uh, and that's actually a big part about

7:30

what I wanted to chat with you and

7:32

everybody else about today. And yeah,

7:35

I've gotten to a point where I I don't

7:38

really look I really don't look at the

7:39

code anymore. And um, I say that not

7:42

just, you know, to sell you tokens, but

7:44

because I, you know, it it took a lot of

7:46

work to get to that point. I spent a lot

7:48

of tokens to get the code base to this

7:50

point where I no longer have to look at

7:52

it. Uh but I'm very excited because you

7:55

know of the potential where you know

7:56

it's not just this doesn't just benefit

7:58

me it benefits everyone contributing to

8:00

grabbot and it also empowers you know

8:03

designers and product managers and you

8:06

know uh even GTM people to add features

8:08

to grabbot and I don't have to worry you

8:10

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

8:12

in in the middle of the night and worry

8:14

like oh someone's just merged a

8:15

perf regression like green field

8:16

applications especially are you know

8:18

like the brand new applications are like

8:20

the biggest risk in in my opinion uh and

8:23

also the greatest opportunity because

8:25

you know if you vibe code a project uh a

8:28

prototype um like we did for Grockbot

8:30

you know Grockbot was spun up very very

8:32

very quickly um and if you if you

8:34

haven't heard of of Grockbot it's like

8:36

our a new application we just launched

8:37

yesterday uh it's it's really cool uh

8:40

lets you orchestrate your create like

8:43

individual agents that have their own

8:44

identity and you can kind of orchestrate

8:46

them it's super cool definitely check it

8:47

out u but yeah it's like a very it was a

8:50

very green field application like most

8:52

prototypes are. So it's like vibe coded

8:54

very quickly. Humans were not reading

8:56

the code at all. And uh I had this tweet

9:00

recently uh where I said something about

9:03

organic architecture. Um

9:06

maybe I'll find it. Uh but the idea is

9:10

that uh when you have a completely vibe

9:13

coded application, you essentially have

9:14

no guard rails whatsoever. So uh your

9:17

agents

9:19

when you give them a task they will just

9:21

solve it in whatever method is the most

9:23

convenient and over time you get into

9:25

this uh situation where you have a

9:28

codebase that is spiraling out of

9:30

control because you don't understand it.

9:32

Uh your agents understand it I guess in

9:34

a way but like they've built something

9:36

that is you know optimized for short for

9:39

shortcuts. Uh and uh you know it will

9:42

you will suffer you'll have a lot of of

9:44

issues with that application.

9:46

Uh so I think starting your codebase

9:49

with uh like very strong constraints is

9:53

very much needed uh because like when

9:56

you have a codebase that you can trust

9:58

right when you have guardrails that

9:59

actually help you uh uh help your agents

10:02

write good code you can get into the you

10:05

know like into this part of the curve

10:07

where I I where like I I said you know I

10:09

woke up today and I had like 20 PRs

10:11

merged u by my agents and that's because

10:14

I invested a a a lot of time uh over 600

10:17

PRs I I I calculated yesterday uh when I

10:21

refactored all of Grockbot to this new

10:23

architecture that I've been building um

10:26

right I have a ton of constraints and CI

10:29

like it's actually very annoying to

10:31

write code in in grabbot but like agents

10:33

absorb all of that annoyance

10:36

um but yeah I'm happy to talk about what

10:38

exactly that is um

10:40

>> yeah I think one question um

10:43

>> before we get into the this part here is

10:45

just around that element of like what

10:47

your your your CI looks like or maybe

10:49

some of the constraints and then also

10:50

like the average PR size. I saw a

10:51

question about that earlier just to give

10:53

people you know kind of a a glance. It

10:55

doesn't have to be like mathematically

10:56

average but just you know like what

10:58

generally the size of the a PR is. Um if

11:01

it's only a couple lines of code or you

11:02

know um yeah

11:04

>> um I think it depends. Uh let me

11:09

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

11:11

not going to like

11:12

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

11:13

actual number like an actual average

11:15

this is fine

11:16

>> benchmark

11:16

>> but like we have so okay this is not

11:20

that interesting but uh well fun fact is

11:22

that virtualization in grabbot and in uh

11:26

cursor is actually powered by uh pretext

11:29

uh which is a sort of new library that

11:32

someone's built um that's really

11:34

interesting you should you should check

11:35

it out but that's not really that

11:37

important. Uh I think the average PR

11:39

size I actually don't know. I I don't

11:42

know if I want to click on these. Uh I

11:44

probably can, but I would say like they

11:46

can range anywhere from a few hundred

11:48

lines or 50 lines to like a thousand

11:51

depending on what the thing is doing. Uh

11:53

so like here I'm actually like deleting

11:55

a bunch of files. So I expect that it's

11:56

just like mostly deletion. Uh but yeah,

12:00

it kind of varies. There's no like Yeah,

12:03

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

12:04

Are there all like 50 line PR?

12:05

>> There's no hard. Yeah, there's

12:06

definitely no hard cap, but I I do

12:07

encourage my agents to split up their

12:08

work into multiple PRs. Uh I do that

12:11

mostly because uh I like I like the idea

12:16

of the I guess maybe this is much harder

12:18

to do now as in the world of agents and

12:20

you have like so many commits, but I

12:21

like the idea that you know the git

12:23

history is a very rich source of

12:24

context. Uh, and I like the I like each

12:28

PR to sort of atomically describe what

12:30

that small piece of thing is doing,

12:33

which also makes it easier for me to

12:34

revert changes and like figure out, you

12:36

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

12:38

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

12:40

40,000 line PR where who knows what

12:43

landed in there. Uh, but I don't have a

12:46

hard cap on PR size.

12:49

>> Cool. And then, um, yeah, also quick

12:51

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

12:52

have to go into like the screen share of

12:54

like your CI does, but just generally

12:56

would you describe what the CI kind of

12:58

looks like uh or how strict it is?

13:01

>> Uh yeah. So uh well specifically for

13:04

Grockbot. So Dune is a is a sort of

13:07

cheeky code code name for the

13:09

architecture that we've built for

13:11

Grockbot. Um the CI looks pretty

13:14

annoying because there's checks for

13:16

everything. So like literally I have um

13:20

uh well if you've written any react for

13:22

example you know you know that one of

13:23

the biggest foot guns in react is use

13:25

effect. Uh so in

13:28

uh Dune and in graphbot we've banned use

13:30

effect. So Dune is just you can the the

13:33

mental model of what Dune is uh you can

13:35

kind of think of it as like Nex.js for

13:38

uh electron apps and it's designed for

13:40

agents to write uh and it's like custom

13:42

for you know our agent powered

13:44

applications. Um, so the CI checks are

13:47

very like specific to that like you know

13:49

don't use use effect. It's it's it's

13:51

banned like CI will fail uh and yell at

13:53

you. We have like some of the more

13:56

interesting ones that people might raise

13:57

eyebrows is like I actually ban code

13:59

comments as well. Uh which is very

14:01

interesting. Uh but I've noticed that

14:04

99% of the time agents just write code

14:08

comments that kind of describe some

14:09

historical thing that is actually

14:11

totally irrelevant to the code. um like

14:14

it will often say like you know oh

14:15

Lauren said you should never do this and

14:17

it's now in in a code comment like what

14:19

like why that was I didn't say that as

14:21

like a durable you know global rule I

14:23

just meant like your this PR sucks and

14:25

you should change that part but agents

14:29

don't really understand us that well

14:30

surprisingly uh and or they kind of

14:33

assume too much and they kind of do

14:35

things in like very stupid ways so like

14:37

yeah we just ban everything everything

14:39

you can imagine like the agents are bad

14:41

at we ban Uh so one example that we

14:45

actually suffer a lot in the agents

14:46

window is we have uh you know you if

14:49

you've used agents window you've

14:50

definitely seen performance issues and

14:52

you know we're constantly trying to fix

14:53

them. Uh but it's like a it's a never-

14:57

ending struggle because there's so many

14:58

pull requests that get merged. Any one

15:01

of them could just regress performance

15:02

or stability or reliability. Uh you know

15:05

the agents window doesn't have this

15:06

architecture yet. I plan to do bring

15:08

this learning back there and kind of

15:10

refactor everything there. uh but uh it

15:14

just regresses super often uh because uh

15:17

there's just one example is like we have

15:19

very poor um isolation between

15:22

processes. So like on you know on on

15:24

electron you have a renderer thread that

15:25

renders your UI but you also have like a

15:27

main thread that you can run other code

15:29

that you know doesn't need to block the

15:31

renderer.

15:32

Um, but we do a poor job of separating

15:35

those things. And so oftentimes you just

15:37

accidentally have code that gets pulled

15:39

into running on the renderer thread. And

15:41

then all of a sudden you're competing

15:42

with the the renderer that you know that

15:45

has a very if you want like 60 fps you

15:47

have to every frame that gets drawn has

15:50

to be done in 16 milliseconds. So very

15:52

very small you know deadline per frame.

15:54

Uh if you want you know a very smooth

15:56

product. Uh and when you start building

15:58

bringing in accidentally bringing in you

16:00

know things that are like very

16:02

computationally heavy or they have a lot

16:03

of IO uh then you just get into like a

16:06

lot of jank and your your FPS really

16:09

drops. You start uh you know losing

16:11

frames. You get long tasks that take

16:13

more than 16 millconds and you just get

16:15

this really choppy experience.

16:17

So all of those patterns that we've

16:19

learned basically building Electron apps

16:21

we've encoded into this framework and it

16:23

becomes like a hard failure. So I

16:25

literally in in Grockbot we literally

16:27

have a directory called electron main

16:29

electron renderer and we have uh import

16:33

uh CI I guess where we actually check

16:36

the dependency graph to make sure you're

16:38

not accidentally importing code from one

16:40

directory to another. Uh so that's

16:42

enforced by CI um as well as bug bots uh

16:46

which is our which cursors um like code

16:49

review tool that runs on CI uh you know

16:52

in our agent MD it's everywhere like so

16:54

I I I um I have this thing here where I

16:58

I talk about like um you know like there

17:00

are multiple layers I think for building

17:03

a good codebase. Uh obviously the

17:05

codebase is one where uh if you have an

17:07

architecture like this where it's

17:09

extremely strict uh you know the the the

17:12

way to build features is very

17:13

conventional that's like the strongest

17:15

strongest level of enforcement because

17:17

agents just love to copy existing

17:19

patterns. So uh one example of this in

17:22

Rockbot is like we have this these

17:24

concepts called like a feature and we

17:26

have entry points and transcript cards

17:28

like oh you know the cards that you see

17:29

in the chat these are all like like

17:32

nouns I guess in in the framework and so

17:35

there's a very conventional way of

17:36

creating them and so like a feature is

17:39

all in in a single directory as an

17:41

example and so all of the code that

17:43

contributes to that feature lives in one

17:45

directory so it's all coll-located in

17:47

one place makes it super easy you know

17:48

agents don't have to like uh grap around

17:50

and try to figure out like where all the

17:52

things are. It just looks at the feature

17:54

and like oh okay I'm working on the

17:56

onboarding feature in Grockbot. Uh I'm

17:59

just going to work in this directory and

18:01

for 80% of the work it's mostly just

18:03

very encapsulated there. [clears throat]

18:05

But uh like it's like very it's like

18:08

designed again for you know like the

18:09

dumbest agent like you don't have to

18:11

think right the the the one of the key

18:14

principles I have for this framework is

18:16

like the shortest the shortest path is

18:18

the best path.

18:20

So uh because that plays exactly to how

18:23

agents love to write is that they like

18:24

to take shortcuts really. You know they

18:26

they'll find the quickest way to solve

18:29

the problem. So why not make that the

18:31

best way to solve the problem? Uh so I I

18:34

probably won't get into all the specific

18:36

details. Um and uh the this framework is

18:40

really more of a collection of ideas and

18:41

principles rather than something that

18:43

will open source. Uh you can you can you

18:45

know screenshot this I guess if you want

18:46

and uh tell your agent to uh do some

18:50

build build something like this for you

18:52

too. Um yeah but it's really all about

18:55

the layers uh you know like the the

18:57

codebase is one part with features uh

18:59

and directories and you know import or

19:02

blocking import dependencies uh that

19:04

shouldn't be imported uh but and and it

19:07

all enforces that and static analysis.

19:09

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

19:11

lot of lints for bad patterns that we

19:14

observe. Uh compiler diagnostics. Uh

19:17

there's also rules and bugbot which are

19:20

um I think like three, four, five are

19:22

more soft, right? These two actually

19:25

make make CI red, right? So that you

19:28

know there's a hard constraint where the

19:30

agent can't just write code

19:33

for rules and skills and bugbot. Your

19:36

agents can still forget, right? you can

19:38

still or it may not always consistently

19:41

apply them. So, I like to layer them,

19:45

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

19:47

as the only source of enforcement

19:50

because it's very very soft, right? And

19:51

if you if you only have rules and bug

19:53

bot and skills and a style guide for

19:54

your code, you will it's only a matter

19:57

of time before your codebase looks like

19:59

complete trash. I'm sorry to say that,

20:01

but uh I definitely recommend yeah, like

20:03

you know, investing in, you know, things

20:05

that can be hard and forced, right?

20:07

Okay. And this is why you know maybe the

20:10

choice of text stack that you use is

20:11

also very important. Um like I think for

20:14

example rust is sort of making you know

20:16

it's like getting super popular again.

20:19

Uh because the compiler is so strict

20:21

right the compiler enforces so many

20:23

different things. You know there's a

20:24

borrow checker that you have to appease

20:26

and if as long as you make sure your

20:28

agents don't write unsafe code blocks uh

20:30

you can more or less feel somewhat

20:32

confident that if the code compiles it

20:34

probably works and it's good. Uh but you

20:37

see it gives you that level of trust and

20:39

confidence that you as a human engineer

20:42

no longer need to go and check it

20:44

yourself. You know you rely on code and

20:48

static analysis to actually make that uh

20:51

a lot smoother. Um, and I I guess the

20:55

worst part the worst place to be in is

20:57

if you are stuck in code review land

21:00

where you actually enforce all of the

21:01

constraints, the invariance in your

21:03

codebase by literally the human person

21:07

saying, you know, reading the code and

21:08

like, okay, you should not do this,

21:09

right? Every time you have to do that,

21:11

you should consider that as a code

21:13

smell, like a anti-attern. And you

21:15

should say, okay, instead of me

21:16

commenting on the PR, how do I turn this

21:19

into a hard rule? Right? How do I turn

21:21

this into a lint rule? How do I turn

21:23

this into a CI failure or how do I even

21:26

categorically eliminate this problem uh

21:28

entirely? Uh

21:30

>> okay, cool. Uh one question that had a

21:32

couple of uh came up a couple times was

21:34

just around like token usage.

21:36

>> So the the question is like is is what

21:38

you're describing a realistic thing for

21:40

people who are on you know uh a normal

21:44

set of token usage. They don't have you

21:45

know basically unlimited tokens uh to

21:47

work with.

21:49

>> I think that's a really good point. I

21:50

mean like obviously you know I work at a

21:52

AI lab where we have unlimited tokens.

21:55

So uh I definitely cannot

21:58

say that you know this is something

22:00

everyone should do in the exact same way

22:02

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

22:04

get to this point without you know

22:05

breaking the bank.

22:07

But you know if you're like an

22:08

engineering leader or you know you're

22:10

you have a startup that you lead um I

22:13

think to me it's a question of ROI. Um

22:15

and it's like uh yes you spend a lot of

22:19

money on tokens in the upfront stage you

22:22

know like refactoring a code base is

22:23

going to take a lot of tokens uh adding

22:25

all these things uh is going to take a

22:27

bunch of tokens but if we're heading to

22:29

a world where agents are writing all the

22:31

code and you know you want to be very

22:35

lean right you don't want to have to

22:36

hire you don't want to be you don't want

22:37

to become like meta right like I mean

22:39

like in terms of you don't want to

22:40

become a 10,000 person engineering org

22:43

because I I mean that's a cool problem

22:45

to have, but also you have so much

22:47

overhead. There's like planning, you

22:49

know, like you it's it's a personally I

22:52

I wouldn't uh it it's not super fun, but

22:55

um I think you want to stay very nimble,

22:58

right? And you want to you want to be

22:59

like agents are all about allowing you

23:01

to do things that you couldn't do

23:03

before. That's really to me like the

23:04

value of agents, you know? It's not just

23:07

storing tokens on every single little

23:08

thing. But um to me like the thing I

23:11

couldn't do before is like enforce this

23:13

level of constraints in a codebase by

23:16

myself, right? Like I'm just a single

23:18

person, you know? Uh it would have taken

23:20

me years to build this framework uh and

23:23

do all the refactoring and test

23:26

everything myself and verify, you know,

23:28

like run imagine if there it was just

23:30

me, right? in in pre- agent era just

23:33

like running you know by it would take

23:34

me so long right and my salary is pretty

23:37

high right like so you know the the

23:40

question I think an engineering leader

23:41

might have is just then you know like

23:44

what is there's a trade-off of do you

23:46

hire someone to do this or do you spend

23:48

the tokens to set up a codebase so that

23:50

even the the most naive right the

23:53

dumbest agents can do a good job and

23:56

when you actually get to this point like

23:58

even agents that are not you know fable

24:00

both size do an excellent job of writing

24:02

code and this pays a lot of dividends as

24:05

well for me personally where I've

24:07

empowered not just myself but again like

24:10

PMS designers engineers who are not

24:13

familiar with art to just contribute in

24:15

a way that is sustainable

24:18

so yeah I think to kind of round it up

24:21

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

24:24

a if you do your own analysis I feel

24:26

like it's pretty positive it it'll be

24:28

pretty positive that the ROI you get

24:30

from investing in stuff like this uh

24:33

just empowers not just yourself but your

24:35

whole team to be so much more productive

24:37

right like imagine if you have an army

24:39

of engineers like me who are shipping so

24:41

much improvements and and bug fixes uh

24:45

you know every day

24:46

>> one last question before we wrap up this

24:48

one is for the people in product on the

24:50

on the call so let's say we do have an

24:52

army of engineers who are shipping like

24:54

Lauren I'm just curious like how is the

24:56

product team or other functions of your

24:57

company keeping up given at like if

25:00

you're shipping so quickly has have are

25:02

they using AI more to do their jobs like

25:04

as much as you can speak to that I

25:05

obviously you don't have like you're not

25:06

in that role but just curious about how

25:07

that works. Um I think this is where

25:10

grabbot has been actually exceedingly

25:12

powerful. Uh where so before grabbot

25:15

like you know uh obviously cursor only

25:18

had cursor like we only had agents

25:19

window we had a CLI we had an IDE and

25:22

these are really like power user tools

25:25

right like de they're designed for

25:26

developers so it's very very

25:28

developerentric you can do knowledge

25:30

work in them but it like the UI is not

25:32

really optimized for that. So we

25:35

actually didn't really have uh well I

25:37

think like a lot of people like you know

25:38

GTM product like they might have used

25:40

cursor uh to do their work but it

25:43

definitely wasn't like a delightful

25:44

experience for them. Um I think now with

25:47

grabbot

25:49

uh it's become grabbot is basically like

25:52

the kusher moment for people who are not

25:54

in tech in my opinion like it's like

25:56

it's like a very very accessible way to

25:58

use agents in a very comfortable very

26:01

familiar interface. It looks like

26:02

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

26:05

know, you can give your Asian a fun

26:07

name. Uh, you can have you can kind of

26:09

do orchestration with in a very like

26:11

natural way where you can sort of, you

26:13

know, each agent is like a person and

26:14

now you got a team of agents like

26:15

working on you have one one agent per

26:17

account that you manage as an example.

26:19

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

26:20

you can have an agent that summarizes

26:22

all the work that Lauren did last night

26:24

and then now you know what I did, right?

26:26

So, I think our PMs are leveraging that

26:28

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

26:30

Uh so you know like oftentimes they will

26:32

just say oh here's a bug I fixed it can

26:34

you look at it and then I'll go review

26:35

it and actually it's just perfect. I'm

26:37

like okay stamp. Uh so uh that I think

26:40

that shows that you know the the Dune

26:41

architecture is holding up right the all

26:44

the the really strict constraints allow

26:47

people who are not experts in

26:48

engineering to contribute at a high

26:50

level. Uh so I feel like I'm already

26:52

seeing that pay off a lot where uh you

26:54

know designers and PMs are just able to

26:57

to to ship features directly. Um and

27:00

that just makes the Grockbot team super

27:03

fast, right? Where we can ship so

27:06

quickly. Um and we have a lot planned.

27:09

So I'm very excited uh to you know uh to

27:12

to ship more ship more

27:15

>> agents to write code and I'm sure a lot

27:16

of you have had the same experience as

27:18

well is how do you trust it? You know,

27:21

especially if you are an engineer that's

27:22

been writing code for a very long time,

27:25

you have a lot of opinions and lessons

27:28

that you've learned about doing good

27:30

engineering. And when you see agents

27:32

just, you know, winging it and, you

27:34

know, guessing, hallucinating, uh, you

27:36

know, confidently stating that they

27:38

found the smoking gun uh, for the hundth

27:41

time, uh, but it's actually not the real

27:43

problem. You lose a lot of trust. And

27:45

when you lose when you don't have much

27:46

trust in your agents, I feel like you

27:49

you really can't get the most out of

27:51

them. And for me, the parallel is like

27:53

with management. Uh so if I'm an

27:56

manager, an engineering manager of a

27:57

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

28:00

have a team of engineers uh on my team

28:03

and I don't trust them, then the mode of

28:05

operation I'm going to be in is going to

28:07

be like micromanagement, right? I'll

28:08

have to spend a lot of time looking over

28:11

my reports shoulders and checking that

28:13

they're doing their work well. You know,

28:15

like they're not shipping bugs to

28:16

production.

28:19

And so I drew this chart because uh it's

28:22

not it's not a very scientific chart,

28:23

but like this is how I imagine myself

28:26

and my journey through using agents. So

28:30

you know like fast forward or back

28:32

forward uh or fast back uh fast

28:36

backwards like a year or so when you

28:38

know nobody was or not many people were

28:40

using agents to code. Uh I think you uh

28:44

you know get into this mode where you

28:46

are

28:47

in very heavily in the loop with one or

28:50

several like a handful of agents and you

28:53

find yourself just constantly fig uh you

28:55

know trying to understand what your

28:56

agents are doing uh and you're very very

28:58

in loop. You're watching every single

29:00

output. You are sitting there prompting

29:03

um and you really can't parallelize

29:05

beyond that because you don't again you

29:08

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

29:09

go to a 100 agents uh like spawn 100

29:12

agents when you don't even trust the

29:13

output of one agent.

29:16

So over the past 5 months, I feel like

29:18

I've really been able to uh like ascend

29:21

this trust curve and now I'm at the

29:24

point where uh I actually have this

29:27

sounds kind of scary to say this and it

29:29

makes me sound like a sloth artist, but

29:30

I I promise I'm not. But I actually have

29:32

my agents now um automerging PRs for me.

29:36

Uh, which is like a wild thing to say,

29:38

but um like I woke up today and there

29:40

were like 20 PRs landed and I just

29:42

reviewed them on Maine like they were

29:44

already landed and they were good. Uh,

29:47

so how did I get to that point is

29:49

basically what I wanted to talk about

29:51

today.

29:53

Uh, and again like yeah feel free to

29:54

jump in if you have questions Colin. Um

29:57

but uh oh yeah, of course I got to show

30:00

this this chart. [laughter]

30:02

Uh where uh

30:05

no do not trust to someone requested to

30:08

control my computer. Uh probably won't

30:11

do that. Uh but yeah, so this chart I

30:14

think I I'm sharing this chart not to

30:16

kind of like flex but to kind of show

30:18

like the journey like so you can see

30:20

like the curve like it sort of like

30:22

inversely matches the contributions I've

30:24

been able to land at cursor. So I joined

30:27

five months ago and five months ago like

30:29

I you know my first month I was like not

30:31

very productive because I was ob you

30:33

know I was learning the codebase didn't

30:34

know what the heck was going on and as I

30:37

got more confident in in my agents uh

30:40

I've really been able to kind of ramp up

30:42

my productivity uh and again like yeah

30:45

like last month I shipped a thousand PRs

30:48

which is ridiculous. Uh and then this

30:50

month we're only on the 12th I'm already

30:52

at like almost 800 PRs landed. Uh, so

30:56

the velocity is definitely high and you

30:59

you I'm sure a lot of you will

31:01

definitely be questioning like how how

31:02

much of this code is actually good. Um,

31:04

and I think yeah, like that's definitely

31:06

fair to question. Um, but uh, yeah, I

31:10

think I think if you set up your agents

31:14

well, you can definitely get to a very

31:16

similar level. Um, and so I'm going to

31:19

talk about how we do that.

31:22

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

31:25

guess call in your experience as well

31:27

but uh for me I think the most important

31:31

skill that you should have in your

31:33

toolbox when you work with agents is

31:35

verification. Uh and by verification I

31:38

mean the ability for an agent to

31:40

actually run the code uh or take CPU

31:44

traces or heap snapshots or uh you know

31:48

open an iOS simulator whatever you know

31:51

however your application is exposed to

31:53

your users. It can do the same thing and

31:57

uh run it for real and actually test and

32:00

verify it'll work because that's the

32:02

thing that really closes the loop. Uh it

32:04

doesn't guarantee your agent writes good

32:06

code. Uh but it allows them to at least

32:09

write correct code. Uh which is a big a

32:12

really big stop within cursor. Uh oops.

32:18

Where? Let me open this.

32:27

Uh make me full screen. There you go.

32:31

Uh so for the for cursor's agent window

32:35

uh so this is actually an interesting

32:36

story but uh when I joined cursor five

32:39

months ago uh they're actually uh well I

32:43

was supposed to join a different team I

32:44

was supposed to join like the cloud

32:45

agents team uh but then since I have a

32:48

lot of experience working on react and

32:50

agents window is a react application uh

32:53

I was uh I was asked to basically help

32:57

out with uh the agent window

33:00

Uh but um there wasn't really a lot of

33:04

like skills to help me. So I just found

33:06

myself like okay uh agents window is

33:08

going to launch in like a week right we

33:10

have a really tight deadline and um

33:13

there was uh you know I was just sitting

33:15

there like okay I'm going to open up the

33:16

performance the the chrome dev tools and

33:18

just like pick a trace look at it myself

33:20

and try to make sense of this flame

33:22

graph and keep in mind I was just like

33:24

in my first week so I had no idea what I

33:26

was looking at no idea where you know I

33:28

mean I had some idea but you know the

33:30

code base was completely fresh to me uh

33:32

and I realized like my agent had no idea

33:35

either you know, like I would take a

33:36

screenshot of the tree, I'll download

33:37

trace. I would send it to it and it be

33:38

like, yeah, it kind of looks like this,

33:40

you know, uh, and it would like

33:42

confidently state like it's this thing

33:44

and then I try to fix that and turns out

33:46

that's not the actual thing.

33:48

So, this was a very very slow process.

33:50

And if you've ever done any like

33:51

performance work yourself or you just

33:53

even development with an agent where you

33:55

don't have a verification skill, you are

33:58

the verifier, right? You you're the

34:00

bottleneck. you you you tell your agent

34:02

to do something and then it goes off and

34:03

write some code. Then you open up your

34:05

you know local dev build and then you

34:07

start to say oh you know it doesn't work

34:08

then you got to copy paste screen uh you

34:10

know screenshots or console errors or

34:12

whatever uh and then your agent like

34:14

slowly kind of like uh you know works

34:17

with that and then tries to understand

34:19

it and um fix the thing but then you're

34:22

constantly just in the loop and and

34:24

being a bottleneck. So there's really no

34:25

way to parallelize. So the control glass

34:28

skill is like one of the first skills I

34:29

built. uh for cursor uh and glass by the

34:33

way is the code name for agents window

34:34

that we use internally but it's just

34:37

cursor I guess um and so this skill uh

34:41

is I guess that the the code itself is

34:43

not super interesting your agent can

34:45

very easily make one for you uh where if

34:47

if you're building an electron app or a

34:49

web app or even iOS uh applications uh

34:54

you can teach your agent how to use like

34:55

the chrome dev tools protocol or through

34:58

uh Apple has some utilities as well for

35:01

running the simulator and taking traces

35:03

and controlling programmatic control as

35:06

well. Uh so that's really useful. Uh but

35:10

one thing I actually want to talk about

35:11

is uh the

35:14

this thing

35:16

uh where is the read me? Uh so this

35:19

skill comes with this very unique

35:21

feature called or not feature a unique

35:24

file called a feature map. And so the

35:27

story then is like I built this skill

35:29

and so now the agent was able to uh

35:32

actually run the agent window and take

35:34

traces and whatnot. Uh but it had no

35:37

idea what what the agents window was. So

35:41

um you know like someone would say like

35:42

oh the the left sidebar is like laggy or

35:46

something like that or you know the

35:47

right side the the PR tab is not working

35:50

and the agent would just be like kind of

35:51

flailing around. and it would spend a

35:52

lot of time trying to like look up the

35:54

code and you know where is this feature?

35:55

How do I actually get to it on the UI

35:58

which made it basically completely

35:59

useless. Uh you know like we would I

36:01

would run this skill locally and you

36:05

know it would spawn a dev build uh but

36:07

then it just be turnurning like I just

36:09

try to click here. It wouldn't know how

36:11

to get to things um and it was just an

36:14

awful experience. Uh so who was putting

36:17

arrows on my screen? Um, so, uh, yeah,

36:21

this this feature map has been really

36:23

useful, uh, because it teaches the agent

36:25

how to get to all of the features that

36:27

you have. Um, and in PAC, the plugin

36:30

that I I've made, uh, if you search for

36:34

PAC cursor on Google, you you'll find

36:36

it. Uh, but there is a create

36:38

verification skill in that plugin where

36:40

it actually helps you set up something

36:42

like this for yourself. Um, including

36:44

the feature map. So it will actually

36:45

explore the code and build up this

36:47

initial feature map that tells your

36:49

agent how to get to all of the different

36:51

features that you have. Uh and this is

36:53

extremely powerful because now that you

36:55

have these user reports that come in uh

36:58

you you can actually map even like a

37:00

vague report or even a screenshot. So we

37:03

have this uh internally at cursor where

37:06

uh we have a slack channel with you know

37:08

lots of people giving us feedback on the

37:10

agents window and rockbot and whatnot.

37:13

Uh, and often times the report is very

37:16

bad, like very low quality, like someone

37:18

will just put very often we get like a

37:20

screenshot like and then someone just

37:21

says question mark question mark

37:22

question mark like what is this and you

37:24

know like without this your agents like

37:26

I have no clue right but with a feature

37:29

map like this it has a lot more context

37:32

and understanding of how to actually

37:34

navigate how to get to all the different

37:36

features. Uh so like you know example

37:38

like I guess like the sidebar like what

37:40

is the sidebar uh you know like all the

37:42

different sub features that are present

37:44

in it um like from the user point of

37:47

view here's where how do I get to it all

37:49

the different keyboard shortcuts

37:52

uh even like the the what do you call it

37:54

the DOM elements or yeah like the

37:56

attributes that you use for selecting

37:58

things through the CDP uh are all there.

38:02

So uh again yeah this is like really

38:04

really powerful uh for for agents uh and

38:08

pstack ships uh that create verification

38:11

skill but also a maintain verification

38:13

skill uh so you can keep this up to

38:15

date.

38:16

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

38:17

you created that. So do you mind sharing

38:18

a little bit more about um that that

38:21

process in the context of Pstack and

38:22

maybe just what Pstack is for the folks

38:23

who aren't familiar? Yeah. So, Pstack is

38:26

pretty interesting because uh well,

38:28

first of all, the name is kind of goofy.

38:30

Like the P the P in P stack is like

38:33

potato potato stack because I um so uh

38:38

uh there is a pretty uh famous person

38:41

Gary Tan who is the CEO of Y Combinator

38:44

and he's come up with this plugin called

38:46

GSAC uh Gary Stack and uh funnily enough

38:50

we share the last name. We have no

38:52

relations. Uh, but I thought it'd be

38:54

funny to kind of, you know, poke fun at

38:56

Gary and make Pack my version of of of

38:59

of his plugin. Uh, but kind of tailor it

39:02

to my own set of practices.

39:06

Uh, but I honestly actually never set

39:08

out to build PAC. Uh, it just started

39:10

with a bunch of skills, right? Like I

39:12

started with that control glass skill

39:13

and then I started with another skill

39:15

like called how which I also noticed

39:18

through like observing agents. Um, so

39:21

like you know in the early days of me,

39:23

you know, trying to climb this ladder, I

39:24

was like super in the loop and I was

39:26

basically nitpicking my agents to an

39:28

extreme degree. I was like I would tell

39:30

it um you know this feature has stopped

39:33

working. Here's a bug report. Like why

39:35

isn't it working?

39:38

And very often the agent would just like

39:40

confidently state like, "Oh, it has to

39:42

be this, right? It has to be this

39:43

thing." And I noticed like when I looked

39:45

at the actual tool calls, I noticed it

39:48

wasn't actually reading the code that I

39:50

thought should be affected. And that

39:52

made me just extremely suspicious. And

39:54

at that point, I was like, I'm not going

39:55

to I can't trust any this agent anymore

39:57

cuz it's just it's just completely

39:59

hallucinating. And I think

40:02

I think it's very easy to just, you

40:04

know, like build up that distrust and

40:06

not and kind of feel helpless like, you

40:08

know, you don't know how to help your

40:09

agents succeed. But like again I think

40:12

the the the management analogy is super

40:14

helpful because like imagine if you were

40:16

a manager of an engineering team and you

40:18

had an engineer on your team who was a

40:20

really good coder no business context

40:22

whatsoever. You know they they just you

40:24

just hired them and they they onboarded

40:26

you know like 5 seconds ago. Uh and so

40:29

how do you actually teach that person to

40:31

be effective? So how you do that is

40:33

through a skill. uh skill being just you

40:35

know it's just markdown right by you

40:37

know it encodes a lot of information

40:39

instructions a lot of uh you can really

40:43

draw out a lot of intelligence from an

40:46

agent by well some people on Twitter

40:48

call it like you know pull the agent to

40:50

a different latent space which is kind

40:51

of like a fancy way of just saying like

40:53

since uh you LLMs are sort of like they

40:56

predict the next token uh when you give

40:58

it some high quality tokens uh to begin

41:01

with then you know it it can kind of

41:02

pattern match on like a higher space

41:05

that's you know smarter.

41:07

Um so that's like a very interesting

41:10

model there. But yeah I built PAC very

41:12

very incrementally. Uh so uh started

41:15

with just really observing how agents

41:18

you know all the fail different failure

41:19

modes of of that agents were having and

41:22

every time I saw that I just okay I'm

41:23

just going to make that a skill right

41:24

like stop hallucinating actually go and

41:27

search up look up the code use a lot of

41:29

sub agents uh and yeah stop guessing

41:35

bunch of people in the chat so I guess

41:37

it's two two parts so one is like how do

41:39

you maintain these skills so like the

41:40

product changes over time obviously

41:42

there's a lot of people are shipping

41:42

against the codebase So how do these

41:44

skills get maintained? Uh and then

41:46

second to that is like how do you know

41:48

when your verification is is good

41:49

enough? Uh like and you know you can

41:52

trust that the ver verification loops

41:53

that you've built are going to I guess

41:55

you trust that the outputs uh when

41:56

they're done.

41:59

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

42:02

some really maybe I'll start with this

42:04

one first. So like how do I maintain

42:07

these skills?

42:10

So, um, if you're not familiar with this

42:12

concept, an eval is essentially like a

42:14

way to, uh, well, I think the mental

42:17

model I have is like it's like a unit

42:18

test for an agent. Um, and, uh, you can

42:22

actually make your own evals. You don't

42:23

need like a special framework for them.

42:25

You can build you can you can build one

42:27

depending on like, you know, how

42:29

scientific and how rigorous you want to

42:31

be. Uh, my screen is red.

42:34

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

42:36

sorry. Do

42:37

>> you mind like disabling the drawing or

42:39

something? I I can't see my screen.

42:40

>> Yeah, sorry if you guys could not draw

42:42

on the screen. That'd be great. But um

42:43

there's a little button in the

42:45

>> troll.

42:46

>> Yeah, the little drop down.

42:48

>> How do I clear?

42:50

>> Yeah, you got it. Perfect.

42:55

>> Yeah. So, eval

42:57

test your skills basically. And actually

43:00

in Pstack, we ship uh under potato mode.

43:03

There's a playbook if you search for it

43:05

called Eval playbook. Um, and it's uh uh

43:09

it's like not it's actually pretty

43:11

pretty rigorous the way it's done. Uh,

43:13

but um, essentially what I do is I spawn

43:16

a lot of different sub agents. I have

43:18

like my main coordinator agent uh, come

43:21

up with a rubric for uh, what I want the

43:24

skill to do. Um, and then it spawns all

43:27

these sub aents and it it creates

43:29

individual directories for them uh which

43:32

are cleverly named to not let the sub

43:35

agent know that it's being evaluated

43:37

because uh agents can actually tell and

43:40

when they do they change their behavior.

43:42

Uh but it does a bunch of stuff like

43:43

that to um essentially yeah like test

43:48

whether or not the skill I'm making or

43:50

changing is actually doing what I think

43:52

it does. Um and one of the really nice

43:54

things about cursor is that we are we we

43:56

support so many different models. So you

43:59

can actually eval your skill across all

44:01

sorts of different models. Um and you

44:03

know get a sense of how well it performs

44:05

across that different matrix. Um

44:08

especially for the models that you use.

44:11

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

44:13

modify a skill, I will run one of these

44:15

uh like the eval playbook uh and make

44:18

sure that you know it's actually leading

44:20

to a result I want. Uh but I will say

44:23

like maintaining skills is actually

44:26

pretty hard. Uh it requires I think a

44:28

lot of taste and observation. So you

44:31

kind of need to be very good at being a

44:33

backseat driver. You know what I mean?

44:35

Like if you do pair if you ever done

44:37

pair programming for example uh and you

44:39

watch a co-orker code and you just like

44:41

you you could probably do this better.

44:42

You know you could do you know like why

44:44

did you not do this, right? You you ask

44:45

a lot of questions to your coworker. And

44:47

it's kind of a similar thing here. You

44:48

like you don't want to just be a passive

44:50

observer of your agent. you want to be

44:52

very in the driver seat in the initial

44:54

stages when you're building up your own

44:55

set of skills. uh you know obviously you

44:58

can use something like PAC but if you're

44:59

building your own set of skills it's

45:01

very I think you know opening up the all

45:03

the tool calls and like reading the code

45:05

and reading all the uh the agent

45:08

behavior and their thinking blocks is a

45:11

really great way to see where they they

45:13

fail right like what what you know where

45:16

are they being done and then you can go

45:17

and build a skill for that and then with

45:20

verification how you trust it is it's I

45:22

think it's also a very similar iteration

45:24

loop uh where you know like I I actually

45:26

did the same process for verifying the

45:29

verification skill where I actually get

45:32

um so one thing that's interesting about

45:34

eval is that you can sort of hill climb

45:36

them meaning that uh your eval can

45:39

produce a score right uh a score that

45:42

you can get your coordinator to produce

45:44

uh but also comp uh you can have a judge

45:46

agent of a different model to uh kind of

45:50

cross reference and make sure that the

45:52

first model is not being biased right

45:54

the model that's judging all of the sub

45:55

aents that are running the thing. Uh but

45:57

you can also like hill climb. So meaning

45:59

that you can you can use like /loop in

46:02

cursor and you can say okay keep looping

46:04

on this eval right until everything is

46:07

10 out of 10 as an example. Uh and I did

46:10

the same the basically the same approach

46:11

with the control skill. And so I kind of

46:13

it was very it was very hands-off

46:14

actually. Uh so you know I uh I kind of

46:17

built I built that skill that way like

46:19

the CLI and that skill. Um and over time

46:23

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

46:25

was definitely not super smooth at the

46:28

beginning. It required a lot of

46:29

iteration and I think there's an analogy

46:32

here for me which is um well I make this

46:35

analogy later in a different slide on my

46:38

drawing here. Uh but I think of it like

46:41

uh you know as a as a engineer now

46:44

you're sort of more like uh like maybe a

46:47

manager or the analogy I like is like

46:49

you're like a a chef in a restaurant. Uh

46:52

you you're the head chef. uh you're not

46:54

cooking all the food yourself anymore.

46:56

You have a team of cooks, right? You

46:57

have a line cooks, you have a sue chef,

46:59

you have, you know, all these different

47:00

stations. Um and it's your job to really

47:03

design the environment. You know, you

47:05

you're in charge of setting up the

47:06

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

47:08

like giving tasks to different people.

47:11

So,

47:13

um yeah, it's a very interesting way of

47:16

working. Uh but yeah, that's that's how

47:18

I've basically built uh these

47:20

verification skills. Yeah, just just one

47:22

thought there on like to go try to go

47:24

one layer deeper. So, are you let's say

47:26

we wanted to build um an eval or a skill

47:30

for for something and we wanted to kind

47:32

of get better on its own which is is

47:34

what I think you're suggesting. Are you

47:36

doing that in like a work tree kind of

47:38

isolated with like the sub agents and

47:39

and then the reviewer agent and and all

47:41

that? Is it happening like in some type

47:43

of cloud hosted environment? Like what's

47:45

the the more the practical steps if I

47:46

wanted to go do this uh and like set up

47:48

a verification system for something?

47:50

what would I would I do or where would I

47:51

start?

47:53

>> Um I think that uh the best place to

47:56

start is local because you can observe

47:59

you can definitely observe what your

48:00

agents are doing. So, uh, if you're

48:02

building a verification skill for

48:04

yourself, uh, I would definitely start

48:05

local and just have your agent bring up

48:07

the application, whether it's like a CLI

48:10

or a desktop app or whatever. And so,

48:13

you can actually observe, right? You can

48:14

see how the agent is interacting with

48:16

the the application. You can see it, you

48:19

know, how it calls like the different

48:21

APIs that that allow it to interact with

48:24

the uh the application.

48:27

Um but uh for me personally uh I have

48:30

basically been kind of all in mostly all

48:33

in on cloud agents because they're

48:34

extremely powerful. Uh and the really

48:37

powerful thing about cursor is the the

48:39

cloud agents actually where if you spend

48:41

a little bit of time setting up your

48:42

environment. These control skills, these

48:45

verification skills pay a huge amount of

48:47

dividends because it's not just

48:49

something that makes you as a single

48:51

engineer better. It actually levels up

48:54

your whole team uh and even your whole

48:56

company because uh you can actually

48:58

start thinking about cloud agents. You

48:59

can start thinking about automations

49:01

that automatically do things like uh I I

49:05

get I kind of talk about this a bit

49:06

later but I'll just kind of get into it.

49:09

Uh where where you know for example like

49:11

I talk a lot about this agent we have

49:13

called Benny, right? who who uh you know

49:16

takes all of the bug reports that we get

49:19

and it automatically goes off in the

49:21

cloud opens up a cloud uh it's you know

49:23

its desktop it runs cursor in its own

49:26

computer and it uses the same control

49:28

skills to interact with the application

49:30

and try to reproduce the bug uh or the

49:33

user report right and this is so so

49:35

powerful because at once I can

49:37

immediately I I get so much information

49:39

from this automatically like here in

49:41

this example you can see that uh the

49:42

Benny actually reproduced a bug

49:45

Uh but it's already fixed on main. So it

49:48

actually confirms that we fixed this

49:50

problem already and all I need to do is

49:52

just release another build of of cursor.

49:54

Uh so that's like huge information there

49:56

that I didn't have to go off and sit

49:58

with an agent, you know, and spend an

50:00

hour trying to figure like is this

50:01

fixed, is this not fixed. So you you you

50:03

gain back so much time. Uh but you know,

50:05

everybody on my team benefits from this.

50:07

Everybody in the company benefits from

50:09

this. Uh so definitely think that uh you

50:13

know keeping these uh using cloud agents

50:15

is super powerful. Uh but yeah, it's

50:17

like a journey. You have to trust it

50:19

first, right, before you you get to this

50:22

point. And that's it goes back to what I

50:23

was saying here where, you know, it's

50:25

very hard. It's almost impossible. And I

50:27

would definitely encourage you not to

50:28

try to jump from, you know, like if

50:31

you're still in this zone, you don't

50:33

want to jump to like I'm going to spawn

50:35

hundred of thousand or thousands of

50:37

cloud agents right now because you're

50:39

just going to waste a lot of tokens um

50:41

and it's going to be extremely

50:42

expensive.

50:43

>> Yeah. So just to kind of recap so far

50:45

basically the if we wanted to go on the

50:47

journey that you've kind of gone on it

50:48

would be to start with verification

50:51

building some some skills and some some

50:53

ways of determining that the agents are

50:54

producing at least like correct code

50:56

whether like you said whether it's good

50:57

code or not is maybe a separate question

50:58

but like it's it's technically solving

51:00

the problem by looking at you know stack

51:02

traces looking at you know the actual

51:04

behavior in the app and so on. Um and

51:06

then once we trust it locally then we

51:08

can start to think about scaling into

51:09

the cloud and running more agents that

51:11

are picking up signals I guess on their

51:13

own right. So whether it's like a bug

51:14

report that comes in or something, they

51:15

can go and pick it up and solve the

51:17

problem and give us back a PR. And then

51:19

maybe the last step is like automerging

51:21

the PRs, which uh is where you're at,

51:23

maybe not where you want to go.

51:24

>> Um and then and reviewing the one main,

51:26

but um is that is that about right?

51:28

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

51:30

I drew this this uh this curve, right?

51:32

Because that this this basically

51:33

describes my journey of, you know, when

51:35

I started barely could use a couple

51:38

agents and I was just observing every

51:39

single thing. I think there's really no

51:41

shortcut for going from here to there

51:43

because this is really about your

51:45

personal level of trust in agents,

51:47

right? Um obviously, you know, as a as

51:49

engineer, you don't want to just slop

51:50

code into production. So, how do you

51:52

actually build up that trust? Takes um a

51:55

lot of uh I guess taste and judgment. Um

51:58

but, uh you know, like I think plugins

52:01

like Pstack definitely kind of help you

52:04

uh get up to speed much quicker. Uh and

52:06

so I guess it's like if you trust me and

52:09

you trust PAC then in by extension you

52:12

can maybe trust your agents but if you

52:13

don't trust me and I I definitely would

52:15

not encourage people to blindly trust me

52:18

uh uh you know if you build up your own

52:21

set of skills that you can obviously you

52:23

know take a look at PAC and kind of fork

52:25

it make it your own improve the skills

52:27

definitely encourage that uh but for me

52:29

yeah it's really all about it just keeps

52:31

coming back to trust you know every one

52:33

of us here in this chat have a different

52:35

standard for engineering. Uh and there

52:37

are different things that are important

52:39

for us in our codebase. And uh when you

52:43

are able to encode all of that into

52:44

skills and you can verify that your

52:46

agent is actually doing them that allows

52:48

you to really kind of ascend this curve

52:50

and um uh you know start automating

52:53

things.

52:55

>> Yeah. I think there's a third part to

52:56

this which I haven't talked about yet

52:57

which is kind of an interesting one

53:00

which is like refactoring and rewriting.

53:02

like one of the uh I guess most

53:04

controversial one of the most

53:06

controversial topics in the industry I

53:08

think is like should you rewrite your

53:10

app or not? Um because I think engineers

53:13

are very prone to this where especially

53:15

when you join a company you come in and

53:17

you see like the code base and you're

53:18

like man this is like who wrote

53:20

this code you know it's terrible I want

53:22

to rewrite the whole thing is a very

53:24

common inclination and I think a lot of

53:27

you know before agents um and I guess

53:29

arguably even now people will definitely

53:32

discourage you from re rewriting stuff

53:34

but I'm actually here to make a case for

53:36

why you might want to consider it

53:38

um because

53:41

I think it really depends. Uh you know

53:43

uh brownfield applications I think are

53:45

actually in a pretty good spot

53:47

especially if they're set up well

53:48

already. Uh and like recently I've been

53:51

talking to some people but uh you know I

53:53

I was just observing I I just noticed

53:55

this parallel which is that a lot of big

53:59

tech company problems are now

54:01

everybody's problems. Um, and the big

54:03

tech company problem, you know, like

54:04

when I was working at Meta, like we had

54:06

this giant monor repo, we had like, I

54:08

don't know, tens of thousands of

54:10

engineers just, you know, like banging

54:12

on their keyboards and and shipping code

54:14

and

54:16

a lot of really great engineers at Meta.

54:18

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

54:20

you'll be surprised that the code

54:22

quality is actually not that good. Um,

54:24

and so I often joke that like, you know,

54:26

before AI sloth, we had human sloth. Um

54:29

and so uh you know I think a lot of big

54:31

tech infra like uh like what Meta has or

54:34

Google you know you know really big tech

54:36

companies are actually designed for that

54:38

where you're sort of like you're

54:39

catering to the the you know like uh

54:42

this sounds so bad to say but like the

54:44

the least capable engineer on your team

54:46

right you build you build frameworks you

54:48

build conventions you build guard rails

54:50

you know you restrict credentials so

54:52

that you know your intern doesn't wipe

54:54

your production database um

54:57

there's uh you If you have that level of

55:00

infra already, I think your agents can

55:02

actually already do a very solid job,

55:04

right? Because they have the the guard

55:06

rails are already in place for agents to

55:09

not cause havoc or not cause too much

55:11

havoc uh in your codebase. Um and you

55:14

can always add more, you know, guard

55:16

rails. Uh but I think I think yeah, it's

55:17

definitely like a trade-off for sure.

55:19

You know, like nothing is like free for

55:21

sure. Uh and tokens are pretty

55:23

expensive. Uh but oh actually uh I I I

55:26

don't know how many of you have seen

55:27

this but we actually announced Grock 4.6

55:29

today so very exciting finally out. Um

55:32

so yeah G 4.6 would be like a great it

55:35

was very very smart uh it's really good

55:37

on the on the benchmarks uh and it's the

55:40

same the tokens uh well uh I hopefully

55:42

I'm not saying this incorrectly but uh I

55:44

believe the cost per token is the same

55:47

as 4.5 so you're actually getting more

55:49

intelligence for the same cost. Uh I

55:53

think this is an area that cursor tries

55:55

to cursor and SpaceX AI try to really

55:58

optimize for like that heredto frontier

56:00

of you know cost versus intelligence. Uh

56:03

you know we don't necessarily want to

56:04

build the biggest model ever because

56:06

that is extremely expensive to run. It's

56:08

really about like how do you find that

56:10

sweet spot right? You don't you don't

56:11

need a giant model but it's just super

56:13

smart right and it's not very expensive

56:15

for inference.

56:17

Uh but uh

56:18

>> yeah that's awesome. We are at time. So,

56:21

uh I guess Lauren, if if folks want to

56:23

support you, maybe go try out Grockbot,

56:24

try out 46 and uh you know, get provide

56:28

some feedback. But yeah, this was

56:29

awesome. Really appreciate you taking

56:30

the time. Uh thanks everyone for all the

56:32

messages in the chat. Lots of good

56:33

questions. I know we didn't get through

56:34

everything, but as I kind of said at the

56:36

top, way more questions than than we

56:37

could get through, but uh yeah, really

56:39

really thanks thanks for for joining.

56:40

Thanks everyone for joining and

56:42

hopefully you enjoyed the session.

56:44

>> Yep. All right.

56:45

>> Yeah, I see. Thanks for having me in. Uh

56:47

if you have any more questions yet, just

56:48

DM me on Twitter. I'll I'll open them

56:50

up. I guess I'll let the let the

56:51

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

56:54

>> I'll open up. So yeah, DM me. Maybe I'll

56:56

do like a Twitter space at some point.

56:57

That's all for more questions. But

57:00

really appreciate everyone for showing

57:01

up. Uh you know, taking an hour out of

57:02

your day.

57:03

>> Yeah. All right. Thanks. I'll see you

57:04

the next one.

Interactive Summary

The video features a discussion with Lauren Tan regarding the effective use of AI agents in software development. Key topics include avoiding the outsourcing of critical thinking to AI, the importance of establishing guardrails, strict CI constraints, and verification processes to build trust in agent outputs. Lauren emphasizes that by designing a codebase with strong constraints, even naive agents can contribute effectively, and she shares her journey from being heavily involved in agent loops to achieving high-velocity, automated PR merges.

Suggested questions

4 ready-made prompts