HomeVideos

Grok Bot for Engineers

Now Playing

Grok Bot for Engineers

Transcript

1027 segments

0:00

Good afternoon and welcome to Grabot

0:02

Galaxy and thank you so much for joining

0:06

today's workshop on Grabbot for

0:08

engineers. My name is Lingshi and I'm a

0:11

uh software engineer at SpaceX AAI. Uh

0:14

to give you a little background about

0:16

me, I joined cursor which is now SpaceX

0:18

AAI right now uh not for nine months and

0:20

already shipped two products. I

0:22

previously built cursor 3 Asian window

0:25

and now building Grubbot. And

0:27

interestingly, in the past two months,

0:30

I've been only using Grubbot for my

0:32

engineering tasks. And with Grubbot, I

0:35

was able to build the first version of

0:37

the Grubbot mobile by myself in three

0:40

weeks. And I can also learn much faster

0:43

now thanks to Grogbot because uh I can

0:46

get to work on a lot of different

0:48

aspects of the Grockbot and also apply

0:51

uh different approaches that I think

0:53

that we we we didn't try uh following

0:56

the first principles and the more I

0:59

build with Grockbot uh the more I want

1:01

to share this superpower with you all

1:04

and this is what today's uh workshop is

1:06

all about.

1:08

So our whole engineering journey started

1:12

at around uh from the early 2024. At the

1:16

time or before that we only have like

1:19

autocomplete

1:20

uh which is like syntax based and after

1:23

that we starts to have tab completion

1:25

which is already a big leap forward. Uh

1:29

and since then we starts to have the ask

1:32

and edit. Um that is the first time we

1:35

have we can feel the power of the agent

1:37

where it can help us glimpse through the

1:39

codebase much faster much easier and

1:42

also start doing some repetitive tasks

1:44

but at the time they cannot do like a a

1:47

big bunch of tasks and uh we just keep

1:50

iterating and then the agentic coding

1:53

comes. The cursor two and cursor three

1:55

are all about agentic coding. And it is

1:59

able to manipulate your computers,

2:01

manipulate your mouse, your keyboard to

2:04

test things end to end. And not only

2:07

that, it can now think uh on a longer

2:10

horizon to to know what needs to be done

2:13

for the next step. And it can also plan

2:16

things uh it can work on things like you

2:18

know we have the slashgo slashloop that

2:21

has been pretty useful on getting agents

2:24

finish a task end to end so I don't have

2:26

to nudge it but at the time we still

2:29

need to nudge it we still need to write

2:31

the prompt we still need to start the

2:34

agent from some some sort of interface

2:36

so the next step comes [clears throat]

2:38

the automations uh which is running on

2:41

the cursor cloud agents that is a era

2:45

because uh the agent could then be

2:47

started based on some triggers like you

2:49

receive a slack message, you get

2:51

something uh and that unlocks a lot of

2:54

possibilities because it can not not

2:58

only like you can not only relying on

3:01

you starting the agent, the agent can

3:03

start on its own that you are not with

3:06

your computer. The agent can also run

3:08

24/7 uh even even when you are asleep.

3:11

It can also start based on the Slack

3:13

messages it triggered.

3:15

And another thing uh that it unlocks is

3:18

it no longer limited by how much your

3:21

local computer can run. The whole idea

3:23

of cursor cloud agents is that it can

3:25

run whatever is possible on your

3:27

computer on cloud. That means we can

3:30

just give you 10 machines or even more

3:32

to run things in parallel. Your agents

3:34

will no longer fight for the same port.

3:38

And you know at the at the time the

3:39

cursor cloud agents has un unlocked

3:42

everyone. Uh everyone at cursor team has

3:45

almost been 10xed or even more. But we

3:48

have also been thinking through what

3:50

should be the next step like agent

3:53

coding is already very good. We have

3:55

seen promising result that a small team

3:57

can ship a big product. Uh what's more

4:00

what can make our life easier. So the

4:03

idea is we can possibly make Grockbot uh

4:07

like we can possibly make some AI agent

4:11

to help us write the prompt to help us

4:14

orchestrate

4:15

uh because right for before that uh I

4:18

was able to manage 15 cursor cloud

4:20

agents and it was already a lot. I have

4:23

been context switching between different

4:25

cloud agents.

4:27

Uh, but like I I really wish there was

4:29

another agents that can help me kick off

4:32

the followup, help me cue the messages,

4:35

help me nudge or interrupt the cloud

4:37

agents when I think it shouldn't do uh

4:40

it shouldn't continue or it needs to be

4:41

steered into a different direction. And

4:43

I we do believe that the models nowadays

4:46

have the capability to get the signals

4:48

we need. Um so then we just put them

4:50

together and now it becomes the team of

4:54

autonomous AI agents uh that that that

4:57

like can act as your colleague and you

5:00

can directly tag them, you can directly

5:02

work with them and they can grow with

5:04

you and that is Grogbot.

5:08

Um so let me introduce you to the

5:11

Grockbot. Um this is a team of fully

5:14

autonomous AI agents designed for all

5:16

types of works including engineering.

5:20

First of all it runs 247 and it is fully

5:24

autonomous. It can run on its own. It is

5:27

not limited to when your computer is

5:28

asleep or not and uh it also does not

5:32

require you to actually have a laptop.

5:35

The second thing is which is the biggest

5:38

uh unblock for the uh for the engineers

5:40

is it can manage coding agents for you.

5:44

Not only uh cursor cloud agents it can

5:47

almost manage any type of coding agents

5:49

for you and the the best thing is it has

5:52

the first party integration with cursor

5:54

cloud agents. So it has the tools to be

5:56

able to read the transcripts to start a

5:59

cursor cloud agents. Uh it can also

6:01

start on a private worker so that if you

6:03

have your Mac machines you want to learn

6:05

they can start into the Mac machine. Um

6:08

anything you can do in the cursor window

6:10

with cloud agents grabbot can do for you

6:12

with tool calls. And so you don't have

6:14

to uh you know let your grabbot control

6:17

some user interface to start the agents

6:20

and read the transcript. It can

6:22

efficiently read all these through their

6:24

tool calls.

6:26

And uh to me this unblocks a lot of uh

6:30

workflows because it can examine what's

6:33

being done by by the cloud agents uh not

6:35

only being done but also what's in

6:37

progress. So for example uh I have some

6:41

instructions to my Grockbot that after

6:43

the workflow is done it can check what's

6:46

being proved in that workflow or in that

6:48

in that cloud agent term and then it it

6:51

can use my instructions to determine

6:53

whether that is treated as completed or

6:56

it's missing some important proofs for

6:58

example like screenshots or the

7:01

performance comparison before versus

7:03

after. If it's missing, my Growbot can

7:06

just directly uh create a follow-up

7:09

reply to the cloud agents with what

7:11

needs to be done. So the cloud agents

7:13

can then continue working even if I am

7:16

not with my computer.

7:18

The second thing is it can connect to

7:22

most of the tools you use. For example,

7:24

like if you are an engineer deploying

7:26

your websites or dashboards to the

7:28

Verscell, it has the Versel MCP. It can

7:31

connect all these deployments. So it's

7:33

it's not like connect a Versail MCP with

7:36

your local code uh coding uh agent tech

7:39

coding tools. It's that it can just run

7:41

247 and it can check the signals when

7:44

the build is failed starts to to work on

7:46

that. It can also directly uh kick off a

7:50

deployment based on some timing. For

7:52

example, like you want to you want to

7:53

get a deployment on 6:00 a.m. tomorrow

7:56

but you are a night idol. You can just

7:58

ask it say okay deploy 6:00 a.m.

8:00

tomorrow. It will know the timing. It

8:03

will uh call all the tools you use at

8:06

the time. So you are no longer needs to

8:09

start a a local agent or some other

8:12

agent at the time you need them.

8:15

Another big thing is it has the memories

8:18

and routines. This is the biggest

8:20

unblock. Uh this is actually a big leap

8:24

forward comparing with what we had

8:25

before with continuous learning. It has

8:28

uh it can persist the memory based on

8:31

what you tell them and over a very very

8:33

long horizon and also the graph bots are

8:38

uh like very uh are named so you can

8:41

have different memories under different

8:42

graph bots so that they are not

8:44

overwhelmed by tons of memories that are

8:47

possibly unrelated to to what they're

8:49

currently working on. And this is very

8:51

important because most of the time when

8:53

you are talking with Scrockbot on

8:54

something that they should be doing

8:56

better uh they can just continue like

8:59

they can just remember it and the next

9:01

time when they start a cloud agents or

9:02

doing something doing some revision

9:04

works against the cloud agents they can

9:06

apply what you previously uh enjoyed and

9:09

then directly uh use that into uh into

9:13

the prompts they they sent to the cloud

9:15

agents. you don't have to repeat what

9:17

you said thanks to this memory system.

9:20

And

9:22

um

9:23

I think it's also important to

9:26

understand why you need a grabbot

9:28

because there are a lot of

9:31

um products out there that are possibly

9:33

able to do the work that you might think

9:35

they're able to do. for example like I

9:38

was a big user of uh the open claw and

9:40

her her agent um and they were not

9:43

really able to do the engineering works

9:45

that good because they lack the first

9:48

party integration with the with the

9:50

grabbot so uh I think the f the first

9:54

idea is you don't need any caffeinated

9:57

laptop anymore I think that's a big

9:59

unblock because I know a lot of you have

10:01

maybe have a tool or some terminal

10:03

commands to to make sure your laptop is

10:05

awake just to get the things done. We

10:07

don't think that's an elegant experience

10:09

for any sort of engineering tasks. We

10:12

want to get rid of it. So, Groa has

10:14

their own computer 24/7. Your laptop can

10:17

stay awake uh can can stay away from

10:20

being awake and can just keep being a

10:23

terminal for sending the commands and

10:25

after you send it, you just close the

10:27

laptop. You don't really have to worry

10:29

about if if anything gonna stop working

10:31

or stop running. The second thing is

10:34

it's beautifully available on all

10:36

platforms. We recently shipped the iPad

10:39

and Android and it's already available

10:41

on iOS, um, Windows, Linux and Mac OS.

10:46

So you can literally work on anywhere.

10:48

For example, you can lie on the grass on

10:51

the Golden Gate Park while your body is

10:53

working. And the third part is also one

10:56

of the biggest onb block for the grob

10:59

bots comparing with other products is

11:01

that you can control the computer when

11:03

needed. Unlike other products uh when

11:06

they actually need a login or they

11:08

actually need someone to help them click

11:10

through something you cannot do it. You

11:13

can only prompt them and helplessly see

11:16

what's going on on the transcript. It's

11:18

no longer a case for grabbot on any

11:21

platform like iOS, Android or iPad. you

11:24

can directly click click through the

11:25

computer to get things done. Uh whether

11:28

it's like log into some uh services that

11:31

are very hard to navigate or require

11:33

some sort of human verification or when

11:36

it's uh doing some login but you don't

11:39

want to hand your your password away,

11:41

you can use the mobile clients or our

11:44

desktop clients to click through the

11:46

remote computer to get things done. You

11:49

can you cannot really get this with

11:51

other products. And the last part is the

11:53

first party coding agent integration.

11:56

This is also only exist at cursor that

11:59

our cursor cloud agent integration with

12:01

scrubbot is very very smooth that almost

12:04

everything you can do in the user

12:06

interface of the cursor it's possible

12:08

with scrapbots

12:11

and let me share a few interesting

12:14

engineering use cases that I really

12:16

enjoy. It's been empowering me since the

12:18

past two months and I really love what

12:21

uh we have been building around the

12:22

grogbot and also build a grabbot for us.

12:25

The first thing is get the things done

12:27

when I'm away. So let's think about um

12:31

you are you are possibly asleep or you

12:34

are on a fight and your teammate needs

12:36

an an unblock. You are the only engineer

12:40

having the code owner of of some

12:41

service. Previously they have to wait

12:44

until you are get off the flight which

12:46

is kind of sad uh because in the in in

12:51

the uh modern startups the speed is very

12:55

important. So let's think about uh you

12:59

are get pinged and your bot can monitor

13:02

your slack and based on the situation or

13:04

the criterias you set automatically un

13:07

unblock them reviewed for whatever is

13:09

needed and then send an an acknowledge

13:12

back in the stack. That's what's

13:14

happening right now. And it's been

13:17

pretty smooth because uh I don't have to

13:20

be uh always next to my laptop. Even if

13:24

something that's actually review uh

13:26

require my review or require my

13:28

supervision, I can also take a look on

13:30

my phone and then once I feel it's good,

13:33

I can just send this through my Grockbot

13:34

saying, "Okay, this looks good. Approve

13:37

it." And then the Grockbot will just

13:38

send approval and also notify the sender

13:41

about this thing is being approved. they

13:43

can continue

13:44

and also we can possibly think further

13:48

about what if they can monitor just the

13:52

general slack for me not only when I

13:54

sent them something that says okay it's

13:57

approved I can tell the grabbot that

14:00

these are my review criterias I need

14:03

something to be attached with a

14:05

screenshot I need it to be to be

14:07

attached with a test that are not fake

14:09

tests and then whenever someone send me

14:12

or or or tag me on the slack. They can

14:14

read the message, check if it's a review

14:16

case and then they can kick off my skill

14:20

for uh doing a code scan and also doing

14:23

code research uh based on the criterias

14:26

I gave. They can also run it in a cloud

14:27

agent. So they can uh execute a skill

14:30

inside your your repository

14:33

and then they can acknowledge it back.

14:35

So, I don't have to be away uh like a

14:38

side of my computer or even a side of my

14:41

phone at all and only be notched when my

14:44

bot actually needs me. And how about one

14:48

step further? How about monitor X for

14:52

me? There are a lot of bug reports about

14:54

the grab bots on X and those are very

14:56

valuable feedbacks. So we also have set

15:00

up the bots to monitor the Slack thanks

15:02

to the first-party integration with

15:04

Slack MCP. Um so we also we have the

15:07

bots to automatically kick off a task to

15:10

start digging into whether the the the

15:13

reproduce is still valid on main and

15:15

then if it's still valid go fix it and

15:17

send me the PR.

15:20

And the same thing applies to other

15:22

surfaces where we need security reviews

15:24

or we need to go find the right person

15:26

for them to review. Everything now is is

15:29

bots contacting with spots and uh we the

15:34

human only connects with human when it's

15:36

absolutely needed so we can focus on the

15:38

deeper work. So that you might be

15:40

interesting in where is the human stands

15:43

in if bots can do everything for us.

15:45

That's a very good question because uh

15:48

humans still have a lot of things to

15:50

focus on. I still drive the product

15:52

direction. There are still a lot of

15:54

design details I need to dive into.

15:56

There's there are also like a lot of

15:58

difficult things that bot couldn't

16:00

finish like performance issues like how

16:03

we should architect our next uh next

16:06

version of the app. So we can avoid most

16:08

of the issues we have and also have a

16:11

good architecture in the front uh in the

16:13

front so we won't get sloppy code along

16:16

uh along the horizon.

16:19

I also need to give them a better

16:21

instruction on how to say no. I think

16:23

this is a very important aspect in a in

16:25

a product because uh there are a lot of

16:28

bug reports and feedbacks and some of

16:30

them is not suitable with what you need

16:32

in a product. Uh the bot will is very

16:35

kind. they will possibly accept

16:37

everything by default. So you need to

16:39

set the boundary. You need to tell them

16:41

why you need to do this, what kind of

16:43

things you should not be doing and

16:44

here's the reasoning. The bot has the

16:47

memory system. They can remember what

16:49

you told them and then apply to the

16:51

future deter uh decisions. So they don't

16:53

you don't have to repeat say I don't

16:55

want this in the product. This is not

16:57

simple enough. We need to simplify this.

17:00

You don't have to repeat that over the

17:01

time.

17:03

And also I need to make sure my bot is

17:05

not blocked. Uh I think it's also uh

17:08

it's very important because there are a

17:09

lot of authentication steps in between.

17:11

So I uh the the grabbot needs to have a

17:14

very good experience on uh getting

17:17

getting the bot unblocked by a human.

17:21

The next use case is also one of my

17:24

favorite use case which is available on

17:26

the marketplace as well. It's nightly

17:28

code cleanup. Uh we all know that in the

17:32

past year we have been possibly shipping

17:34

some sloppy code. Everyone hates that

17:37

and sometimes it's just hard to enforce

17:41

every single agents to apply uh the same

17:44

rules. So another solution is just to

17:47

clean those slops out over the night.

17:50

That's when the people are not shipping.

17:51

So it's less likely to hit a conflict

17:54

and it's also uh less less risky because

17:58

most of the time they're just slops.

18:00

They can just being condensed into a

18:02

smaller module or remove the the the

18:05

lensy comments that you just hate. Those

18:07

are very low risk could be done over the

18:09

night and uh you can also trust the the

18:12

the cursor cloud agents to merge those

18:14

PRs based on the conditions you set. for

18:16

example, like you have provided a a

18:19

clear end to end uh proof of what's

18:22

going on. Uh if if that's provided, you

18:25

can feel free to merge.

18:27

And um right now my setup is every 3:00

18:31

a.m. my uh my GR uh my bot will set will

18:36

start a research cloud agent to to

18:38

review uh across the whole surface of

18:41

our monorrele and they can identify

18:44

issues like uh code quality uh not being

18:47

good things should be modularized but

18:49

not better but not properly modularized.

18:52

uh the comments that are not properly uh

18:56

condensed into what is necessary and

18:59

also security audits that sometimes we

19:02

just forgot that this is very important

19:04

to prevent someone else to uh stole

19:07

something. Uh we we we have to drop out

19:10

catch all these kind of things over the

19:13

night and when I wake up I just have a

19:15

set of PRs available.

19:18

The next thing is about the internal

19:20

tooling that this was also changing how

19:23

we collaborate within the organization.

19:26

Previously for things like adding people

19:28

to the test fly via email address rather

19:30

than via a link. You might think I can

19:32

build an internal dashboard, put some

19:34

authentication on it, put some database

19:36

against it, deploy to Versell uh behind

19:38

some uh authentication wall and then

19:41

distribute it to uh the the internal

19:44

employees to sign up for the test

19:45

flight. it works even and and with the

19:48

agent decoding it should be already uh

19:51

like not so you can get it done by in an

19:53

hour or two. The thing is why do you

19:55

have to with scrapbot one of the

19:58

flexibilities is the cropot can run

20:00

logics with a much simpler interface for

20:04

example like a slack message. So the

20:07

unblock here is that I have everyone

20:09

just mention my bot inside Slack and

20:12

just put put the email address next to

20:15

it. My bot will have a routine or or

20:18

some uh web hook signals based on a

20:22

slack. So whenever someone tag it will

20:24

starts to to run the routine of adding

20:26

people into the test flight. So the only

20:29

thing I need to do is to make sure my

20:31

bot has access to the test flight in a

20:33

safe way. Um and other than that I I

20:37

only give it one prompt of what needs to

20:39

be done and this internal tooling is

20:41

available to be used.

20:44

The next thing is also uh my other

20:48

favorite use case which is autofix

20:50

everything. You might have a lot of

20:52

deployment pipelines or CIS or end to

20:55

end integration tests. The the biggest

20:58

thing is uh when we actually have a CI

21:01

going red, we we usually ping on call

21:05

rather than another bot to get it fixed.

21:08

That's changed. Uh the on calls are only

21:12

being involved when it's absolutely

21:14

needed. And most of the time when CI is

21:16

read a bot will automatically kicks in

21:19

starts to examining what is being read

21:22

and then starts to uh spin up a cloud

21:25

agent to fix it and then also has our

21:28

instructions of how to determine if you

21:31

should merge it and they can just merge.

21:33

So the turnaround of needing a human to

21:35

take a look and that human needs to

21:37

context switch between tasks are very

21:39

very minimal right now.

21:42

Not only for a CI being main, any

21:44

deployment errors, any CI flakiness or

21:48

uh any any sort of tasks that has a

21:51

signal or has an alert currently in your

21:53

internal pipeline could be hooked up

21:56

into the Grockbot and only ping on call

21:59

if uh it wasn't resolved after like uh

22:03

10 minutes. Most of the time grapa can

22:05

get it done within 10 minutes.

22:08

And right now, let me introduce you to

22:10

how I organize my bots. So, we are kind

22:14

of in between a world where you only

22:16

need one bot versus you need a fleet of

22:19

the bots. So, I have my chief of staff,

22:21

which is called Link Shishi. Um, I have

22:24

the Craig working on the UI engineering.

22:27

I have Steve working on the DevX and

22:29

Hogan working on Infra. You might ask

22:32

this question of why we need three

22:35

engineer bots rather than one because

22:37

apparently they are sitting on the same

22:39

model and they might be able to do the

22:42

do the task 100% they will be able to do

22:44

any task you gave them even if I gave a

22:47

UI task to Hogan they should be able to

22:49

resolve it the the issue is the context

22:52

and also how they gonna manage their

22:54

fleet every single bot has a different

22:57

slightly different pipeline based on the

22:59

work they do and also

23:01

has their own context limit uh to avoid

23:04

they run over their context limit when

23:07

switching between too many tasks. Uh I

23:10

prefer to put them separately. So

23:12

whatever so whatever is told to the

23:14

hogan will be persisted in the Hogan's

23:16

memory. So all the instructions etc. The

23:19

next time when uh when a new task come

23:21

in, the hogen can just start the new

23:23

task based on the context it already has

23:26

rather than trying to pull the uh

23:29

instructions again and then start a task

23:31

in that new area. This can make your

23:33

fleet runs much faster. And the key

23:36

thing is you don't really have to talk

23:38

with your individual engineers unless

23:41

necessary. You can mostly talk with your

23:43

chief of staff and the chief of staff

23:46

can route the requests to every

23:48

individual engineers. Uh because chief

23:50

of staff has the understanding of who is

23:52

working on what while chief of staff can

23:55

also save uh his uh context from

23:58

remembering all these engineering

24:00

workflows or how things should be

24:02

developed.

24:03

And now let me give you a demo of how I

24:07

going to set these things up. This will

24:09

be a very live demo because uh I'm also

24:13

the first time setting these things. So

24:16

right now I just downloaded link sheets

24:17

engineerbot from the marketplace uh and

24:20

it's onboarded into what kind of

24:22

repository it needs to be done also

24:23

connect to the to the notion. Right now

24:26

I'm going to download um the the nightly

24:30

audit bot uh from the marketplace. So

24:33

you can find it from the grogbot team

24:34

right here. view all there's like a

24:36

nightly nightly audit engineer I will

24:40

edit so now it's very simple it's

24:44

already started um doing all these uh

24:46

onboarding task and the thing is this

24:49

nightly audit engineer does not have the

24:51

context of how my existing engineering

24:54

workflows is being done so what I would

24:57

do is instead of telling it all these

24:59

things that I will possibly already told

25:01

like you know uh follow this pip

25:04

pipeline. Do this first. Do that. Then

25:06

uh I will have my existing engineer bot

25:09

to on board my new engineer.

25:13

Hello. I have a new member in the team

25:17

called Nightly. Um rename them to Steve

25:22

and tell them how the engineering

25:25

workflows are uh enforced.

25:31

So, my engineer bots actually I should

25:34

rename them to to Craig because that's

25:36

my my name for them.

25:40

My Craig will uh send a message to my uh

25:45

nightly audit engineer which will soon

25:47

be Steve and then starts to handshake

25:50

all these things over.

25:52

So you can see my Craig just messaged

25:55

the the Steve with some message of how

25:58

the everything goes. It includes all the

26:01

requirements of uh the how how our

26:04

notion board is made how our uh what is

26:08

the definition of the clean and how to

26:10

ladders through different stage of my

26:12

workflows

26:14

all via plain text and my Steve will

26:16

acknowledge and absorb into their

26:19

memory. You don't have to repeat or copy

26:21

paste every single thing between bots.

26:24

You just let the bot talk with each

26:26

other. You can see they they also just

26:29

you know confirmed between each other.

26:31

So I don't really have to talk with uh

26:34

Steve. I can like my my Craig will just

26:36

tell me everything is confirmed. He's

26:38

all good.

26:41

And right now uh the the Steve is uh

26:45

equipped with the nightly audit skills.

26:47

So, I'm gonna kick this off right now

26:49

just for demo purposes. Usually, it runs

26:51

on 4:00 a.m. Um, but let Steve

26:56

um let Steve know

27:00

uh to start a nightly audit workflow

27:05

right now.

27:07

I

27:08

um just let him stop right now. So in

27:11

the meantime uh we will be you know

27:13

waiting for the the Steve to do some

27:15

research and get back to us with all the

27:18

findings about the about the fly. We

27:21

will take a look over um some some some

27:24

other examples of how I can work with uh

27:28

the Asian in parallel. So right now I

27:31

already had a task to cry and I think

27:34

there's one issue with the pho website

27:37

uh that's being reported. It's very

27:39

urgent. So, okay. Um, I think there's an

27:43

issue with flyair.com

27:47

that user cannot um check their

27:52

previously booked flights.

27:56

Can we check if it's true?

28:00

So

28:02

my my my bot will be able to navigate a

28:05

website in their computer, click through

28:08

and show me what's going on. This is one

28:10

of the onblock because we know a lot of

28:13

engineers has workflows that are not

28:15

reachable through MCP. So if you need to

28:18

click a button uh based on some

28:20

instructions or at some certain timings,

28:22

you can ask the bot to do it uh by using

28:25

their computers.

28:30

So it's checking um the flow. I can

28:33

obser I can monitor it from the the

28:38

computer.

28:44

Yes. So it's currently navigating

28:46

through the website. Try to understand

28:48

whether this is a legit issue. So it's

28:50

you know navigating through um you can

28:52

see it can generally do anything you

28:55

need on the web. So almost all of your

28:58

workflows could be delegated and

28:59

unblocked

29:08

and I think because this issue is like

29:10

being reported by the user I want it you

29:12

know I want it urgently but the thing is

29:15

when you talk with agent they possibly

29:18

know okay the urgent means I need to get

29:20

it ASAP but what they might do is ended

29:23

up skipping the steps or start guessing

29:26

things to actually get short result

29:27

faster.

29:29

We don't want that. We don't want agent

29:31

to guess things. We want deterministic

29:33

results. So previously uh before grabba

29:38

I may tell them to uh just repeat them

29:40

like I need it urgently. Um for example

29:43

like I need it urgently

29:47

and uh tell them what you need to do and

29:49

what you should not do. Uh but how about

29:53

extract them? I don't want to repeat

29:55

myself every single time. That is the

29:58

whole point of the Grotbot or the

30:00

autonomous coding that you should not

30:03

repeat yourself. And I will let my chief

30:06

of staff on board a new member called

30:09

Jenny.

30:10

Okay. On board a new member called Jenny

30:15

for doing all the uh for head of

30:18

operations.

30:21

and my Jenny will starts to uh play

30:25

around with the playbook. Jenny needs to

30:28

manage a playbook for my engineering

30:31

team

30:33

and needs to own the the playbook and

30:39

avoid other engineers to update.

30:46

So my chief of staff will starts to on

30:48

board Jenny and then my Jenny will

30:50

starts to on a playbook uh in notion uh

30:54

and then uh they can update that

30:56

playbook based on what I uh what I tell

30:59

them on what what needs to be done at

31:01

what time so that every other engineers

31:03

can just apply the same playbook.

31:06

You can see the Jenny is up in the stage

31:09

and my chief of staff is also doing the

31:12

uh agentto agent chat between them so

31:14

that they can just handshake to each

31:18

other.

31:19

Um so I don't have to I don't have to

31:22

actually tell Jenny what needs to be

31:24

done. The only thing I need to talk is

31:26

with my chief of staff.

31:31

Let me actually check in with the Steve

31:32

on how much it's going. Okay. So the

31:35

Steve uh without uh my instructions

31:39

um oh this is my built-in instructions.

31:41

So without any of my chat the Steve is

31:43

already doing the research on what kind

31:45

of things could be improved over the

31:47

works over the codebase and it has

31:49

already started a bunch of the cloud

31:51

agents and it seems like they are

31:52

finished. So my Steve is currently

31:54

working on and and conducting them into

31:56

the thing into the PR that actually

31:58

improves them.

32:00

And then now let me get back to Craig to

32:05

see what is going on.

32:10

Okay, so it says it's confirmed. The

32:12

issue is true. Slash trips is a stub uh

32:16

while the navigation still links there.

32:17

There's no check today for uh a

32:21

previously booked flight. So now it

32:23

needs to uh do this urgently. uh I

32:27

really wanted to do urgently but let's

32:30

slow down a little bit right now to

32:31

think what they needs to do uh when when

32:34

we say urgently

32:37

there's um I think it's a widely

32:40

acknowledged issue that coding agents

32:43

sometimes are running very very long

32:45

horizon and it's not good where you need

32:48

things urgently

32:50

so one of the idea to help unblock this

32:53

situation is to have, you know, have you

32:57

checking their thinking traces, checking

32:59

their tool codes to make sure they're on

33:01

the right track and nudge them or steer

33:03

them at the right time when they are

33:05

possibly going off track. But that

33:08

requires you to be next to the desktop

33:10

and sometimes you have other tasks to

33:12

do. You're not next to your desktop and

33:14

you don't want to look into the details,

33:16

syncing traces, etc. every single

33:18

seconds. So what I usually do is I have

33:22

a P 0 escalation workflow with my bots

33:26

that um let me define this. So uh treat

33:30

as P 0

33:32

and the P 0 definition is uh they would

33:35

need to monitor the Grobbox needs to

33:37

monitor the cloud agents every five

33:40

minutes to check the progress to check

33:42

where uh the cloud agent is currently

33:45

running on and you know sometimes the

33:48

cloud agents are running tests that are

33:50

very long. they do like a sleep 300 to

33:53

just get around uh the the tests that

33:56

are running async in in another shell

33:59

and sometimes the tests are fast like

34:01

within the within a minute then you got

34:03

four minutes lost. So uh when the

34:07

grabbot can check into the cloud agents

34:09

they can check if they're doing a tool

34:11

call that's very unnecessary time

34:12

consuming and they they can or uh

34:15

interrupt it immediately and start a new

34:18

prompt based on what's happening. uh and

34:21

like it it does not need me involved at

34:23

all. I don't write any prompt at all as

34:25

well. The only thing I write is this uh

34:28

it's the definition of the P 0

34:31

that um

34:33

you need to set up a routine that checks

34:38

cloud agent

34:40

um every five minutes.

34:44

check if they are off the track

34:49

such as

34:50

uh running a sleep running a long sleep

34:54

like sleeps 300 or going off our goal

35:01

being too conservative. We sometimes

35:05

just need things moving a little faster.

35:08

And this is a very rough prompt I give

35:10

it. uh it can definitely grow along uh

35:14

with your uh interaction with the grub

35:16

bot. For example, like you you see it

35:18

possibly work better in some situation.

35:20

You can then just tell it to do to do

35:21

that. You don't have to write it into a

35:24

skill anymore. You don't have to write a

35:26

long prompt every single time. You just

35:28

tell them once in a normal message as

35:31

how you would tell your teammate uh for

35:33

doing something urgently.

35:36

going off our goal being too

35:38

conservative

35:41

and um and nudge in interrupt and nudge

35:47

them at the time you found them going

35:51

off

35:53

because I need this urgently urgent

35:56

urgent urgent.

35:59

So

36:01

uh I also tell them to fix fix the

36:04

issue. I can just click reply so that it

36:06

has the context of what I'm quoting on

36:08

fix this issue urgently

36:12

uh treat as a P 0 uh and and then it

36:14

knows what is a P 0 now but only Craig

36:17

knows what this P 0 is rather than copy

36:20

paste into every single one of my uh

36:23

engineer bots because that won't scale

36:24

if you have 10 or 15 or 20 bots

36:28

I will have it hand it with the Jenny so

36:30

let me check if Jenny is on right now

36:32

Jenny owns edit Jenny owns edits. So,

36:35

you know, Jenny will nudge me whenever

36:37

they need the decision and um I think

36:39

that's a very good question for me and

36:41

they just manage message the bot. I

36:43

think everything is set up and now uh I

36:48

will let the Craig to talk with Jenny

36:52

about this PO workflow

36:55

and bake it into the playbook.

37:04

So my Craig can then talk with the Jenny

37:06

to put this into the playbook and then

37:09

Jenny can go announce to other engineers

37:11

automatically.

37:15

And I also let Jenny to announce to

37:19

every engineer. Bot

37:24

the good thing of this is you are just

37:26

thinking what needs to be done once. So

37:29

you finish the workflow, you you get the

37:31

handshake on. So all your bots

37:34

understand what uh what needs to be done

37:35

at what time. The next time something

37:38

happens, right? Next time you need to

37:39

add a new workflow like you actually

37:41

need to do this, you need to do some

37:42

step before you actually trigger a

37:44

deployment, they can just populate the

37:46

playbook and all engineers would know

37:48

that without you telling them

37:50

individually.

37:52

This is very similar to how a human

37:55

organization is shaped while it's at the

37:57

agent scale that Asian has a context

38:00

limit. Sometimes human does. So the

38:03

treatments for human teams sometimes

38:05

apply to the bot. Uh some does not apply

38:09

but you can always experiment what

38:11

whatever workflows you have uh and see

38:14

if it works.

38:17

Okay. So they told the Jenny, you can

38:19

see most of the conversations are

38:21

directly between the bots just like I'm

38:23

managing them as an engineering manager

38:25

or uh I'm mentoring my uh talented

38:29

intern. So they they know they kind of

38:31

know uh what kind of things needs to be

38:34

handshake between them. They just don't

38:36

have the knowledge of what's going on at

38:38

organization, what kind of workflows

38:40

they should follow and what is good

38:42

versus what is bad.

38:44

Okay. So Jenny announced out to the

38:47

other engineer bots. You can see Jenny

38:49

talked with uh all of the bots and then

38:52

also talk with the Mr. Craig about the

38:54

playbook being updated. Uh the PO urgent

38:57

is now a standing operations. Um

39:01

yeah, you can see and some other ideas

39:04

are I want uh my PRs to come with some

39:07

proof so it's easier for me to review.

39:09

That's also how I work nowadays that I

39:12

don't really check my cloud agents. I

39:13

check I check the results and check the

39:15

proof but it will be very disappointed

39:18

if the proof is just not included.

39:21

Um so I have to nudge them back say oh

39:23

this misses the proof that is very bad.

39:25

I should just do it once so that all the

39:28

things onward are just include the proof

39:30

automatically. So I would tell with my

39:32

Craig which is kind of like my my my

39:35

head of engineering right now that um

39:38

another requirement for the playbook

39:42

is to make sure every single

39:46

PR comes with proofs like screenshots

39:50

for UI changes and Perf metrics for

39:54

performance improvements.

40:02

And I would they should not understand

40:05

what to talk with the Jenny and let's

40:07

see how it goes with the Steve. So Steve

40:10

already gets something back. You can see

40:12

some cleanup and the PR is ready. I can

40:14

drag click click over and start the

40:17

review.

40:19

And uh another one is also still

40:21

running. The the best thing of the

40:22

grabbot is even if you are chatting with

40:24

them, they can still do their existing

40:26

things pretty well. Just like a human

40:28

who can uh multitask a little though

40:31

sometimes if you if if you notch them

40:33

too hard, they will starts to lose their

40:36

context because they're too much there

40:38

too many tasks to handle. So that's

40:41

where uh my original engineer bot comes

40:45

in which is you can get from the

40:46

marketplace that it comes with um a a

40:50

fleet uh notion database that defines

40:52

every single task plus the stage they're

40:56

on. So even if one bot is managing like

41:00

20 cloud agents, they don't have to

41:03

populate their their limited context

41:05

with everything about all these 20 cloud

41:07

agents. they can just always check back

41:10

to this DB whenever they find like

41:12

whenever they need to take the ne next

41:14

task. So they don't really have to

41:16

remember what is currently going on,

41:18

what kind of client agents are are are

41:20

being working on and what is done and

41:21

and needs their eyes to for for the next

41:24

steps.

41:25

You can see this is a trust polish which

41:28

is watching 33 which is going through

41:30

the watching process of possible

41:32

security comments and bug bots. Uh this

41:35

is also a big unblock in the engineering

41:38

pipeline where the bach bots can uh can

41:42

can can help you identify issues made by

41:44

your agent and security uh bot security

41:47

common feature can also monitor

41:49

potential security issues uh with

41:51

respect to leaks or or like you know uh

41:54

session management etc. Um so that's

41:58

very helpful.

42:00

So um usually in in my workflow I would

42:04

just go into this PR and review it and

42:07

then um get a get it merged. Let me let

42:11

me actually check this PR. So uh this is

42:15

that cloud agent that I pre that I

42:18

previously kicked off before the stage

42:20

and the it got some screenshots of what

42:23

is being done. Plus you can see my

42:25

agents are now writing all the prompts

42:28

for my cloud agents. I no longer have to

42:30

write all these prompts though I could

42:32

which is what I previously used

42:33

sometimes did uh I don't have to the

42:36

agents would do this for me so most of

42:38

my task can stay on what kind of things

42:39

needs to be done what kind of things

42:41

needs to be killed and you can see this

42:44

task just gets back all these

42:46

screenshots I can just feel confident to

42:48

to merge and then what I will get

42:51

okay so

42:54

go back to uh the presentation I think

42:58

we have you So I have been sharing a lot

43:00

of my workflows today and I want to wrap

43:02

up on what we can learn from today. So

43:05

you can take away with some ideas on how

43:07

to start this whole workflow and how you

43:09

can leverage it. The first thing I think

43:12

is a very uh very mind-blowing is treat

43:15

them like interns. So when you feel

43:18

struggling about uh like communicating

43:21

with Shbas, you don't know what kind of

43:22

things to say or they just doing bad,

43:25

don't treat them like an agents or try

43:27

to evoke skills etc. With Scrubbots, you

43:30

can uh chat with them in a messaging

43:33

base, which is how you would chat with a

43:35

talented intern who does not know about

43:37

what to do, but once you tell them, they

43:40

can be extra capable of.

43:43

Another thing is uh we can possibly

43:46

think one level further rather than just

43:49

fix this thing. This is also um could

43:52

could be known as reduce repetition that

43:55

sometimes I repeat a prompt to my agents

43:59

uh too often that it's a waste of my

44:02

time if I have to type in or copy paste

44:04

the same thing and send it to the agent

44:06

10 times. you can sync it one level

44:08

further about what what actually what

44:11

actually needs to be done and then

44:13

extract it into some layer either via a

44:16

playbook or via some other bots to nudge

44:19

uh another bot for you at the right

44:21

time.

44:23

The last thing I think is also very

44:25

important for using engineering with

44:27

cursor cloud agents is to have a

44:29

complete feedback loop. No matter what

44:31

type of engineering tasks you have, it

44:34

needs to have a feedback loop in order

44:36

for agent to understand the signal of

44:37

success versus failure. That's also very

44:40

helpful for Grogbot to determine whether

44:42

that they should nudge further or

44:44

whether they should stop um and like you

44:47

know let it merge. Uh for example like

44:49

you can let your agent to control the

44:51

website via computer use and uh that I

44:54

think that's the easiest feedback loop

44:56

for hardware for hardware engineering.

44:57

There are also feedback loops on the

44:59

signals of like whether something is

45:02

actually good or not.

45:05

And thank you. Uh that's it for my

45:08

workshop. Thank you.

Interactive Summary

This workshop introduces Grabbot, a team of fully autonomous AI agents designed to assist engineers with tasks by integrating with Cursor Cloud Agents. The presentation covers how Grabbot operates 24/7, manages coding agents, persists memory through custom routines, and allows for efficient, scalable engineering workflows. The speaker demonstrates how to organize a fleet of specialized bots, establish feedback loops, and use natural language to guide AI agents as if they were interns, significantly reducing manual effort and repetition in software development.

Suggested questions

3 ready-made prompts