HomeVideos

[한글자막] Cursor&xAI 개발자 Lauren Tan: 한 달에 PR 2,000개를 프로덕션에 반영한 워크플로우

Now Playing

[한글자막] Cursor&xAI 개발자 Lauren Tan: 한 달에 PR 2,000개를 프로덕션에 반영한 워크플로우

Transcript

828 segments

0:01

Hi, my name is Lauren. You might know me

0:03

as Potato OnX. And I work on Grockbot at

0:07

SpaceX AI. So, last month I did

0:11

something pretty crazy.

0:13

I shipped 2,000 pull requests to

0:16

production.

0:19

A lot of how I'm able to do this is

0:21

through trust. Um, and I think a lot

0:24

about trust in terms of how I can trust

0:27

my agents to produce high quality work

0:31

even when I'm not there. And my argument

0:34

and thesis for this talk today is that

0:36

if you set up your environment for your

0:41

agents really really well, you can end

0:43

up with something that looks more like a

0:45

personal or even team software factory

0:49

where you're producing very high quality

0:52

code at much greater rates than before.

0:56

Uh but I'm not a fan of the term

0:59

software factory. I like the analogy of

1:02

a Michelin kitchen better where you know

1:05

um as technologists we're not really

1:08

producing we're not mass producing a

1:10

product on an assembly line but the work

1:13

that we do looks very creative. It's

1:15

very um you know it's the act of

1:17

building a product and it's art in some

1:20

sense. So, you know, even though with

1:24

agents, we're not cooking the indivi

1:27

individual components that go into the

1:29

product anymore,

1:31

um, we're still responsible for the

1:34

final outcome and thinking about our

1:37

kitchen setup, right? Because depending

1:40

on how you set up your line cooks, your

1:42

sue chefs, you know, the kind of

1:44

equipment they have, the kind of

1:46

training they have, you know,

1:48

dishwashers and the ratio, I guess, of

1:51

line cooks to dishwashers. Um, all of

1:54

these ingredients go into making the

1:57

final product. Um, and I think this

2:00

analogy is really apt. So,

2:05

uh, I wanted to talk a little bit about

2:07

a story before we begin where six months

2:11

ago when I first joined Cursor before we

2:14

were a part of SpaceX AI, I obviously

2:17

had, you know, no agent skills to to

2:20

use, right? I just joined the company.

2:22

It was um a fresh code base and a fresh

2:25

product that I was working on.

2:28

So at the time um cursor was building

2:32

the replacement for the cursor IDE which

2:36

is the new agents window and uh before I

2:39

joined the cursor agent window had quite

2:42

a lot of performance issues. Um and my

2:45

manager at the time asked if I was able

2:48

to help them. Um and since I had spent

2:51

some time on the React team before I

2:53

joined Cursor uh it seemed like a good

2:56

fit. Uh but when I first started I

3:00

quickly realized how manual this process

3:02

was. Uh obviously I have done

3:05

performance work before. Um but at the

3:08

rate at which pull requests were being

3:10

landed it was just it felt almost an

3:13

insurmountable wall of pull requests

3:16

that just kept coming in and I had no

3:18

idea whether or not the performance of

3:21

the app would be regressing. Right? So a

3:25

lot of my early time on the cursor team

3:28

was spent looking at uh Chrome dev tools

3:32

and the performance and doing

3:33

performance traces and taking heap

3:36

snapshots.

3:37

Uh and it was extremely extremely

3:40

manual. It was it it was so manual it it

3:44

got to the point where um I just got

3:47

really frustrated and started to think

3:48

about you know wait we have agents what

3:51

am I doing? And so I started thinking

3:54

about verification skills where you know

3:57

what if my agent could actually run the

4:00

application itself and take the traces

4:02

for me, understand the traces and find

4:04

the hot spots and basically hill climb

4:07

you know to uh better uh performance in

4:11

our application automatically.

4:14

And throughout the last six months uh of

4:17

being at Cursor and SpaceX AI, you can

4:20

really see that my product PD has

4:22

skyrocketed.

4:24

And you know, I never set out to ship

4:27

2,000 pull requests a month. That was

4:30

not a goal of mine at all. But I

4:33

realized that all of the skills, all of

4:35

the tools and and codebased changes I

4:38

were making laded up to this idea of

4:41

trust. you know, I didn't know it at the

4:43

time, but um I had this thought in the

4:46

back of my head head, which was, you

4:49

know, I am the bottleneck and I need to

4:51

be able to take all of the knowledge

4:54

that I have as an engineer and impart

4:57

them into into my team of agents so that

4:59

I didn't need to uh be the blocker for

5:03

everything. And um you can clearly see

5:08

that it's it's paid off.

5:11

So

5:13

I think it really comes down to trust.

5:17

Um but how exactly do you build that

5:20

trust and where do you start if you are

5:23

you know wherever you are in your

5:25

journey of using agents. So uh when I

5:29

started obviously I was in this category

5:31

you know in the one to one to five range

5:35

where um you still feel like you have to

5:38

babysit every chat uh and end

5:41

conversation and you're just constantly

5:45

course correcting you know you're

5:46

intervening you're correcting your agent

5:48

so that it does the right thing. Um, and

5:52

if you're not there, basically nothing

5:54

gets nothing happens and the agents do

5:57

the wrong thing. And I would actually

5:59

argue that this part, this phase of, you

6:02

know, using agents is actually the

6:04

hardest to get out of because it's not

6:06

always very clear how exactly you get

6:09

out of it. And, um, again, it just comes

6:13

down to trust. um you know the reason

6:16

you're unable to go from one one or one

6:20

to five agents to something more like a

6:22

100 um is because you don't have trust

6:25

in your agents work yet. So if you don't

6:27

have trust and you try to spawn a 100

6:29

sub agents or cloud agents, you're going

6:32

to quickly find that you're just going

6:34

to get a ton of slot pull requests and

6:37

you know a bunch of regressions and a

6:38

bunch of bugs shipped and no one's going

6:40

to be very happy with that.

6:44

So that begs the question,

6:47

how do you trust your agents more?

6:51

So for me it came uh it it really

6:55

started when I uh like I said I meant I

6:58

joined the cursor team and I was

7:00

starting to work on performance where I

7:02

realized the need for verification.

7:06

So when I say verification uh there are

7:09

sort of levels to that uh because um you

7:12

know on the I guess the lower end of the

7:15

scale for verification you have things

7:18

like um the verification skills that I

7:20

talk about where you teach your agent

7:23

how to run your application um you know

7:26

and use things like the Chrome DevTools

7:28

protocol or whatever other protocol that

7:31

you have for debugging and teach them

7:33

how to

7:35

um you know debug the application take

7:38

performance traces

7:40

um take heat snapshots and so on. Um and

7:44

then on the opposite end of spectrum of

7:46

the spectrum which is much much harder

7:48

and still very much an open question is

7:51

like more formal verification where you

7:55

know maybe you rely on formal methods or

7:59

you know languages like lean or TLA plus

8:03

uh to do you know verification so that

8:05

you can check that you know your

8:08

business level or business logic uh

8:11

invariance are you

8:13

are always um true um and that um

8:20

uh you can formally verify that your

8:21

application is always in a correct

8:23

state. Uh but I would say that you know

8:27

even if you don't have um the ability to

8:29

run formal methods and very few people

8:32

really do um that with verification

8:35

skills you can get very far. So when I

8:38

joined cursor uh and started to work on

8:40

the cursor agent window, the first skill

8:43

that I built was the skill called

8:45

control glass which is a verification

8:48

skill that teaches the agent how to um

8:52

run the application and take traces like

8:54

I mentioned and it does that through uh

8:57

the chrome dev tool protocol.

9:01

Um something interesting about that

9:03

skill is uh and I kind of iterated my

9:06

way to this. Uh it didn't start out this

9:08

way. Uh but the control uh the control

9:13

or verification skill really has two

9:16

components to it. Um the first part is

9:20

obviously a CLI. So you want your agents

9:24

to be able to reproducibly

9:28

um be able to run the application and

9:30

collect traces and collect evidence that

9:33

you know empirical evidence that you

9:35

know code is working uh that your

9:38

performance bar is being met. Um, and

9:41

rather than have your agents create

9:43

scripts every time, um, you know, that

9:46

can differ between agent sessions, uh,

9:49

you can actually in you can actually

9:51

create a CLI that's within the skill

9:54

directory and then your agents will just

9:56

use that every time. And then of course

10:00

you need to actually invest in it and

10:02

make it good so that it can handle all

10:04

sorts of different use cases um and um

10:09

be able to uh you know run the

10:12

application uh correctly.

10:15

Uh another thing that's also really

10:17

important is uh this idea of a feature

10:20

map. So a feature map really is um

10:25

something that I kind of coined I guess

10:28

where uh you know we started using these

10:30

control skills within cursor. Then we

10:33

quickly realized that you know a Slack

10:35

report would come in and a user would

10:37

post a very vague screenshot right like

10:40

a very small slice of the UI and just

10:43

like three question marks and the agents

10:46

using our control skills had just no

10:48

idea like it could run the application

10:49

but it was just guessing at what exactly

10:52

the the user meant and so I had this

10:55

idea to create something called a

10:56

feature map um which is I guess kind of

11:00

inspired by like a site map Um it

11:03

essentially is a uh form of materialized

11:07

memory. You know like how exactly does

11:10

your application work? What features

11:12

does it have? How do does a user reach

11:14

it? Um you know in terms of keyboard

11:17

shortcuts or what DOM elements to click

11:20

on uh you know things like that and what

11:22

all the features do. Um and uh they are

11:28

these this feature map is stored in the

11:30

skill itself. um in the codebase as part

11:33

of the skill directory and we have an

11:36

automation that uh maintains this

11:38

feature map as well.

11:41

But when we combined the CLI and the

11:42

feature map, we quickly realized that um

11:45

this combination was very very powerful

11:47

because now agents could not only you

11:50

know reproducibly control the

11:52

application and pick traces but it could

11:55

also understand uh requests that came in

11:58

from internal users as well as external

12:01

users. And so we very quickly realized

12:05

that the control verification skills

12:08

were so useful that they've become more

12:11

or less uh critical infrastructure for

12:14

our team and we constantly uh maintain

12:17

it. But the ability for an agent to

12:20

verify its own work is extremely

12:22

powerful and uh we have um spent a lot

12:27

of time on this skill and it's very very

12:30

powerful for building that trust.

12:33

Um in addition to verification of course

12:36

uh you want uh because ver cor

12:39

verification is really about

12:41

correctness. Correctness to me is really

12:44

about does the thing does the feature or

12:48

code do the thing that you want it to

12:50

do, right? Like does the you know the

12:52

the checkout button does it actually

12:54

check out the card? Um verification is

12:58

really important for that because you

13:00

get empirical evidence that this feature

13:02

actually works but it doesn't tell you

13:04

much about you know the performance or

13:08

uh the code quality of that feature. Um,

13:11

and that's where you start thinking

13:13

about skills that teach agents to work

13:15

like real software engineers.

13:18

So,

13:20

um, I've built a plugin called PAC. Um,

13:24

I'm not going to talk about the plug-in

13:26

too much today, but um, a lot of the

13:29

inspiration for that plugin, uh, which

13:32

is a collection of skills that I've

13:33

created are inspired by the kind of

13:37

workflows that I personally have used as

13:41

my in my time doing software engineering

13:44

for all sorts of different types of

13:46

tasks. So debugging, you know, uh

13:49

feature development, prototyping,

13:52

there's a whole bunch of different

13:53

playbooks and skills that ship in PSA

13:56

that teach your agents how to write code

13:59

the way that you want them to. And you

14:02

know this is where uh you know the more

14:04

experienced engineers on your team can

14:06

really contribute to set up a team

14:10

repository of skills that um just make

14:14

your agents a lot smarter. Um, and when

14:18

you combine those skills with uh

14:21

verification skills, then you you're

14:24

able to get to a point where your agents

14:25

are able to not just verify that the

14:28

work that they're doing is correct, but

14:30

that it's also high quality. And again,

14:33

because of verification, you can collect

14:37

real performance metrics. you can get

14:39

real numbers and statistics and

14:41

telemetry on uh the like performance of

14:46

the application.

14:49

Um so I think that's a really important

14:52

part to invest in. Um

14:56

another thing I think is really

14:57

important is refactoring and rewriting

14:59

your architecture to be more agent

15:02

friendly. Um, and I almost want to say

15:06

that uh this is one of the most

15:08

important things you can do um as a as a

15:11

software engineering team because um if

15:14

you really truly believe that agents are

15:17

going to be writing all the code in the

15:18

future, then we need to design our code

15:21

bases so that they do the right thing by

15:24

default. And you'll find that there's

15:26

this uh I almost want to say like a a

15:30

scale or continuum between

15:34

uh you know these different pieces of

15:36

building trust in your agents where um

15:39

on you know I have like five of these

15:41

points here where uh

15:45

the code base is really like the best

15:48

form of memory because agents love to

15:51

extend existing patterns that they see.

15:54

Um, and you know, uh, I think this is

15:57

just the nature of how LLMs work where,

16:00

uh, they're more likely to use whatever

16:03

it is in their context window, um, to

16:07

make changes. And of course, the files

16:09

that the agents read and opens are part

16:13

of its context window. Um, and

16:16

therefore, the codebase is a really

16:18

important part of that. uh because you

16:20

know agents aren't going to just

16:21

refactor your code every single in every

16:24

single PR they're going to just look at

16:26

what's already there and just extend the

16:28

next level I think is about statical

16:31

analysis where you have llinters you

16:34

have compiler diagnostics you have uh

16:37

continuous integration

16:40

um and these are

16:42

guidelines and constraints that you can

16:45

enforce in your codebase so that

16:48

whenever you correct your agent, you

16:50

find that you know they just keep making

16:52

the same mistake.

16:54

Um you can add those as lint rules or

16:57

even better you can refactor your

16:59

codebase so that the mistake that the

17:01

agent is making becomes categorically

17:03

impossible.

17:05

Um and then a step above that right

17:07

where uh where and this is where we're

17:09

starting to get more into

17:11

uh less of like a hard constraint and

17:14

enforcement and more into the realm of

17:16

guidance. You have things like rules,

17:19

you have bugbot, you have skills um

17:22

which you know your agents will

17:24

obviously sometimes and mostly use uh

17:27

when they're doing their work, but

17:29

there's also a chance that it might for

17:31

various reasons you know forget to read

17:33

a rule or maybe the user that is

17:37

piloting the agent ignores them. Uh so

17:40

these aren't quite as enforceable but

17:42

also an important part of um

17:47

setting up your environment so that you

17:49

can really trust what your agents are

17:50

doing.

17:52

Uh and then finally you have the style

17:54

guide which is really only enforceable

17:57

by humans in a code review. I guess you

17:59

could put the put these in your rules

18:01

and and bug bot and skills as well. But

18:04

if you don't then you have this big

18:06

glaring hole in your uh review process

18:10

where now humans have to you know look

18:13

at every single line that's being

18:15

changed and remember to comment and with

18:18

the rate of pull requests that are

18:19

coming in it just it just becomes

18:21

impossible. So I definitely wouldn't

18:24

recommend you know relying only on the

18:26

style guide. I think the style guide or

18:29

you know like looking at human reviews

18:31

is a good place to start um in terms of

18:34

what's missing but you should really

18:37

invest the time to think about the other

18:39

four parts uh you know your codebase

18:42

making things categorically impossible

18:44

through better data structures or

18:48

algorithms

18:49

um static analysis and then of course

18:51

you layer that with rules and bug bot

18:54

and skills

18:57

Um on the codebase front um

19:02

and in the Grockbot codebase we

19:04

actually've invested into send setting

19:07

something up that we call Dune which is

19:10

our agentfriendly framework. So um the

19:14

inspiration for Dune really came about

19:17

from a lot of performance issues we're

19:18

seeing we were seeing in uh the cursor

19:21

agent window and so a lot of lessons

19:24

came out of that exploration but um the

19:29

key principle that we landed on is

19:31

really that agents love taking

19:34

shortcuts.

19:36

So what if we designed a framework such

19:39

that the shortcut you know the easy path

19:41

is the right path for agents and also

19:45

one that would be a codebase that is you

19:48

know maybe pretty annoying for humans to

19:51

work in uh because it's so locked down

19:53

in terms of what you can do and what you

19:55

can't do. But uh it actually creates the

19:58

perfect environment for agents

20:00

especially ones that have very minimal

20:02

context because you know not every

20:04

contributor to your codebase is going to

20:06

be an engineer anymore. You can have

20:08

designers, you can have product product

20:10

managers, you can have CEOs you know

20:13

going into the codebase and and shipping

20:15

features. So we want to really think a

20:18

lot about how we invest and set up our

20:21

code bases so that you know even agents

20:24

that are piloted by busy people with not

20:27

a lot of context can do a good job by

20:29

default.

20:31

And like I mentioned before um your code

20:35

base is really a form of memory for

20:38

agents because they love to extend the

20:40

existing patterns that they see. And the

20:44

reverse is actually also true, right?

20:46

You can invest the time to set up your

20:47

codebase um in a way that things are,

20:51

you know, bad patterns are categorically

20:53

impossible or you have like lit rules

20:56

that prevent them. But the reverse is

20:58

also true in the sense that um if you

21:01

have existing anti-atterns, you'll

21:04

actually find that these will spread

21:07

kind of like a virus. um where you have

21:10

like one small workaround or a comment

21:14

that explains a workaround

21:16

and you'll quickly find that agents just

21:18

love to copy that and then in a matter

21:21

of a few days or a few weeks you'll find

21:23

that the workound has spread everywhere

21:26

and it's now becomes it has become like

21:29

a de facto pattern for all agents and

21:32

that's a really really bad place to be

21:34

to be in and that goes back to what I

21:36

was saying about why it's really

21:38

important And you know whenever you're

21:39

correcting your your agents that you

21:42

invest the time into thinking about

21:44

codebased changes and static analysis to

21:47

and and of course the layering them with

21:51

rules good rules and bugbot and skills

21:54

uh because of of that reason.

21:58

Um, and another analogy that I like in

22:02

addition to the Michelin kitchen is this

22:03

idea that, you know, your code base is

22:06

kind of like a garden where you have uh

22:10

workarounds uh, you know, that seem

22:12

seemingly that seem kind of innocent at

22:15

first, but then because of the nature of

22:17

agency, you just copy that pattern over

22:19

and over again and you quickly end up

22:21

with a very, you know, vibecoded

22:24

codebase that is, you know, a pain in

22:28

the butt. to maintain and has a lot of

22:31

performance issues. So in my opinion,

22:34

the perfect agent codebase is one that's

22:36

so locked down that you know it's again

22:39

it's like really annoying for humans to

22:41

to write code in but it's so

22:44

conventional it's so standardized that

22:48

uh you know even innocent looking

22:50

patterns are just forbidden. Um, and the

22:53

best example of this I have is actually

22:56

something that seems very very innocent

22:58

when you look at it, but when you think

23:00

about it, it's actually really bad. And

23:03

that pattern is uh agents leaving

23:06

comments in the code. Now, you know,

23:09

when I first saw agents starting to do

23:11

this, I initially wasn't well, I I did

23:15

think that a lot of them were slob, but

23:17

I also thought that, you know, it

23:19

actually doesn't it's it's not a bad

23:20

thing, right? I guess if agents are

23:22

leaving comments in the code because as

23:25

humans we left comments in the code

23:27

whenever we saw you know edge cases or

23:30

we needed to actually make a workaround

23:33

or you know leave a note to ourselves or

23:36

a colleague on a particularly tricky

23:38

part of the codebase.

23:41

But what I quickly realized when we saw

23:44

this happening in the cursor codebase

23:47

was that agents were just using the

23:49

comments uh around the code as

23:52

justification for why it wasn't going to

23:55

solve the actual problem and instead

23:58

paper over it with a band-aid or a

24:01

short-term solution.

24:04

So in Dune, which is again the framework

24:07

that powers Grothbot, we made the choice

24:10

to um we made the choice to actually ban

24:15

comments for that reason where so that

24:18

agents would not just copy that pattern

24:21

and uh you know propagate it everywhere

24:25

in the codebase.

24:28

So uh my pitch here is that every team

24:32

really needs something that you know

24:34

role that I'm calling a gardener. Um in

24:38

the same way that uh you know with a

24:40

real garden you need someone who is

24:42

thinking a lot about the uh you know

24:46

things that can kind of creep in and

24:48

grow in ways that you don't want. like

24:51

you know you have weeds, you have uh you

24:54

know just other types of organic growth.

24:58

I don't really know gardening that well.

25:00

Um but you have things that you know

25:02

unwanted pests and and stuff like that

25:04

that kind of creep in in pure codebased

25:07

and so you want to nip them in the bud

25:09

as soon as possible before they start

25:11

propagating everywhere.

25:14

Um a lot of the principles behind Dune

25:17

are really centered around these three

25:19

things.

25:20

First of all, we want to delete tech

25:22

depth that we already have for, you

25:24

know, for reasons I just mentioned. We

25:27

want to keep uh or enforce a single pave

25:31

path for most blessed patterns.

25:35

uh you know there should be one

25:36

conventional way to do some things uh so

25:39

that agents don't really need to guess

25:40

and there should be enough guidance in

25:43

the codebase in CI

25:46

in lint rules uh so that the agents are

25:49

guided to do to to follow that path

25:53

and finally whenever you see tech or bad

25:57

patterns your instinct should be I need

25:59

to write a lint rule against it you

26:02

don't always have to clean it up

26:03

immediately uh because if you write a

26:05

lint rule, you can at least stop the

26:07

bleeding uh and which you know doesn't

26:10

solve the problem entirely but it at

26:11

least prevents it from growing. Um, so I

26:14

definitely recommend, you know, really

26:16

thinking a lot about how you can guard

26:19

against anti-atterns so that they don't

26:22

uh spread like a virus. And then also

26:25

spend time to actually, you know, get

26:27

your agents to clean them up so that

26:30

your codebase is just constantly kept in

26:33

a state where you would be happy if an

26:36

agent were to copy it. That's the kind

26:38

of mindset that I would recommend

26:40

having.

26:42

Uh and then I won't actually go through

26:44

all the details of Dune itself. Uh but

26:46

I'll just kind of gloss through some

26:47

interesting parts. Um so again as a

26:50

reminder Dune is the architecture the

26:52

client framework that we built to power

26:54

grabbot.

26:56

We've invested a lot into you know all

26:58

the things I was saying where we have

27:01

conventions. We have a lot of

27:02

conventions about where code should live

27:05

and um where and how uh code should be

27:09

imported between them. So in Dune

27:12

applications you know there's different

27:14

concepts where like for example features

27:17

are all coll-located in a single folder

27:19

um you have an entry point um that's you

27:22

know in the react part of the code that

27:25

determines or you can kind of think of

27:26

it like a route uh you have transcript

27:29

cards that show up in the graphbot

27:31

application you have a host that runs on

27:34

the you know the graphbot virtual

27:36

machine and then of course you have your

27:38

client uh which uh powers as far as the

27:42

uh overall gene application. And we have

27:45

a lot of um strict boundaries between

27:49

these things where um just an as an

27:53

example, things that run on the main

27:56

process uh or the main thread in

27:58

Electron aren't allowed to be run on the

28:00

renderer thread. And we keep that

28:02

separation very intentionally because uh

28:05

of lessons we learned from cursors agent

28:08

window where we would sometimes see code

28:12

accidentally uh get imported into the

28:15

renderer thread and you know slow code

28:18

and uh since uh on the renderer thread

28:21

you want your UI to be very smooth and

28:25

uh performant uh you need to make sure

28:27

that you don't have any long tasks or

28:30

you know things that take longer than 16

28:32

milliseconds for if you want like 60

28:35

frames per second or 8 milliseconds if

28:38

you want 120 frames per second. And so

28:41

your renderer has to be constantly in a

28:44

state where uh it is uh it can really

28:47

kind of chunk up the work um and not do

28:50

them all at once.

28:53

Um and so we have code within Dune that

28:56

enforces this these boundaries through

28:59

the import uh and dependency graph. Uh

29:02

but yeah, that's just an example of a

29:04

pattern that we saw lead to really bad

29:07

performance that we um categorically

29:10

eliminated through uh the architecture

29:14

of the of Dune.

29:17

Um and then all of these other pieces

29:20

aren't that interesting. Uh but again

29:24

the the core theme here you know it's

29:27

not about Dune but the idea that um an

29:32

agent friendly framework of your own is

29:35

actually very very powerful and you can

29:37

encode all of the learnings that you and

29:40

your you know your best engineers on

29:42

your team have tribal knowledge of. Um

29:45

and um I think the lesson here is that

29:48

how do you take that away from you know

29:51

what used to be in the style guide

29:53

process of reviewing code and you know

29:57

engineers reviewing other engineers work

30:00

and leaving comments

30:02

um to extract almost like extracting

30:05

that knowledge and encoding that into

30:07

the framework into the codebase itself

30:10

so that the codebase access the memory

30:13

right it's the the thing I keep coming

30:16

back to this idea that you know the

30:17

codebase is just the thing that it's the

30:20

the materialized snapshot of the state

30:23

in which you want your agents to extend

30:26

and you want that code base to be so

30:28

pristine so great that the next agent

30:31

that comes along is just very likely to

30:33

continue that pattern and keep it really

30:35

really good.

30:38

Um, and if you spend enough time on this

30:40

process, uh, like I mentioned, you can

30:43

really set up, uh, a Michelin kitchen or

30:46

a software factory where,

30:50

um, because you spent so much time on,

30:54

you know, all of these pieces that allow

30:55

you to trust your agents, whether it's

30:58

in the codebase, whether it's lint

31:00

rules, um, whether it is,

31:04

uh, you know, diagnostics or rules or

31:06

bug bot or skills. These layers come

31:11

together um and provide you a lot of

31:13

trust because now you know just imagine

31:16

for a moment you're working in Rockbot

31:18

codebase. Um

31:21

it's super locked down. You know it's

31:22

like almost impossible to write bad

31:25

code. So you know you can even an agent

31:27

with very little context. uh you know

31:30

even a agent with not a lot of reasoning

31:33

can come in and and actually write code

31:35

that's good and going back to my example

31:39

about the Michelin factory I think

31:40

there's a lot here right where you know

31:43

we're setting up our agents our bots

31:45

with skills and tools you know we're

31:49

training them uh we're setting up our

31:51

kitchen in a way that makes sense right

31:53

for the agents and bots to do the right

31:57

thing by default uh uh you know whenever

32:00

we see for example in in a kitchen

32:01

example if we notice that uh one of our

32:05

cooks or dishwashers is constantly

32:07

tripping over something of course we

32:09

need to fix that right we need to

32:10

problem solve and ensure that you know

32:13

others don't trip as well because you

32:14

know in a kitchen it's a very dangerous

32:16

place and you don't want to hurt

32:17

yourself it's the same

32:20

mindset I think that we should have with

32:22

our code bases how do we set it up so

32:26

that even agents uh without a lot of uh

32:30

knowledge can and do a good job. Um, and

32:34

I think with uh, you know, Grockbot,

32:38

Grockbot and cursor play an interesting

32:39

role together where Grockbot is really

32:43

great at um, providing what I call the

32:46

outer loop because you can connect

32:48

Grockbot to lots of different uh, you

32:51

know, different connectors like Slack to

32:54

Data Dog, Sentry,

32:56

uh, Planet Scale, whatever services that

32:58

you use and you can aggregate all of

33:01

that information together and use that

33:02

to

33:03

really good decisions for itself. Uh

33:07

some people call this like a company

33:09

brain. Uh I don't really think I

33:11

personally don't think you need anything

33:13

that sophisticated here because agents

33:16

are really good at using tools. And so

33:18

if you connect these tools to Grockbot

33:21

um and you start having your Grock bots

33:25

auto kick off things like cloud agents,

33:28

you can actually find that it's really

33:29

not uh you don't really have to invest

33:34

in a lot of infrastructure to build a

33:36

software factory. Um in fact, I'm gonna,

33:39

you know, cross cross out this this term

33:42

because I don't like this term. Um uh I

33:46

think you can set up this personal

33:48

Michelin Kitchen for yourself through

33:50

Grobot things like Grockbot routines

33:53

which let you subscribe to you know

33:55

Slack threads to sentry alerts that let

33:58

you kick off things automatically.

34:02

And when you combine all of these things

34:03

that I've been mentioning, you know,

34:04

your codebase, your rules, your skills,

34:08

uh they all compound and Grockbot uh

34:13

will be able to, you know, automatically

34:15

respond to events that come from the

34:18

outer loop and then kick off cloud

34:20

agents. Um, and you can also set up

34:23

cursor automations and use our SDK uh to

34:27

set up um bot additional bots as well

34:30

that reuse a lot of these pieces of

34:34

agent infra that you've set up um and

34:37

allow them to do much more complicated

34:39

tasks.

34:41

So if you if you if you've done all this

34:44

then I think you can get to a point

34:46

where uh you know uh I have some

34:48

screenshots here of some of our

34:50

automations and our agents in uh that

34:54

that work on cursor where we are

34:57

automatically

34:59

reproducing bug reports. We're

35:01

automatically opening pull requests. we

35:04

are um essentially adding a lot of value

35:08

to the entire team uh because all of

35:11

these things compound.

35:15

So if we kind of zoom out again um and

35:19

go back to this graph,

35:24

I think that to kind of close off the

35:26

talk, um if you spend a lot of time

35:29

thinking about all of the pieces that

35:31

you need uh to be able to ascend the

35:34

trust graph, uh you start getting to a

35:37

place where you can uh really trust your

35:40

agents more and parallelize your work

35:43

and also empower your entire team to

35:46

build on top of these uh pieces of

35:49

infrastructure for your agents um and

35:52

empower everyone, you know, every

35:54

engineer on your team, every builder to

35:57

be extremely productive and be able to

35:59

write high quality code. So, the last

36:02

thing I want to leave you with is

36:04

actually this piece.

36:06

Uh sorry, not that piece, but this

36:08

piece. Um I think if there's only one

36:10

thing you take away from my talk, it

36:12

should be this this slide here. uh which

36:15

is you know these are the activities

36:17

that will help you build up towards a

36:20

high trust environment. You know,

36:23

whenever you find yourself correcting

36:25

and intervening your agent, um you

36:28

really want to think about it from these

36:30

five pieces and where is the most

36:33

effective step in this um sequence uh in

36:39

order to uh get make your agent you know

36:42

much more trustworthy. Um and of course

36:46

I definitely recommend thinking about

36:48

thinking about it in this order where

36:50

you know you uh either invest the time

36:53

to make that pattern uh categorically

36:56

impossible through your codebase and

36:58

architecture and data structures or you

37:01

start looking at things like static

37:03

analysis and then you layer that on with

37:05

rules and bugbot and skills.

37:09

If you do all of that and you also spend

37:12

some time, you know, thinking about uh

37:14

your code quality uh in in terms of of

37:17

skills, you get to a place where you

37:20

trust the you trust the environment so

37:24

much that your agents can just be free,

37:28

right? And uh personally, I have spent a

37:31

lot of time for this for Grockbots's

37:33

codebase for example and uh this is

37:36

really the secret, right? Well, it's not

37:38

really a secret. It's it's a lot of hard

37:40

work. But um I hope you found this talk

37:43

useful and uh please reach out to me on

37:47

X. Uh my my handle is potato with an E.

37:50

Um and uh I hope that you'll have a lot

37:55

of fun and success pulling your own

37:58

Michelin Kitchen. Thanks for watching.

Interactive Summary

Lauren from SpaceX AI discusses how to build high-trust environments for AI agents by treating the development process like a 'Michelin kitchen' rather than a software factory. She outlines how building verification skills, enforcing architecture constraints, and using a codebase that acts as a form of memory allow agents to produce high-quality work at scale. She emphasizes moving from manual intervention and babysitting agents to a system where errors are made categorically impossible through better data structures, lint rules, and agent-friendly frameworks.

Suggested questions

4 ready-made prompts