HomeVideos

Amp Code: Next Generation AI Coding – Beyang Liu, Amp Code

Now Playing

Amp Code: Next Generation AI Coding – Beyang Liu, Amp Code

Transcript

536 segments

0:13

[music]

0:20

How's everyone doing today?

0:22

>> Yeah, cool. Pretty cool conference, huh?

0:25

Um, so yeah, my name is Vang. I'm here

0:27

to talk about AMP. AMP is an opinionated

0:30

frontier agent. Uh so before I get into

0:32

what that means, uh who are we? Uh we're

0:35

the bunch of weirdos downstairs at the

0:37

booth with the weird pied piper dude on

0:39

the floating golden fish. Uh and I think

0:43

that kind of captures the ethos of what

0:45

we're trying to do uh with AMP. We're

0:47

trying to lean into that sense of awe

0:49

and absurdity that I think we all

0:51

experience right now living in this

0:52

weird world we're living in where agents

0:55

are writing an increasingly large amount

0:57

of of our code. Uh and it's just kind of

1:00

like weird and magical. Like if you

1:01

imagine how you were working like a year

1:03

ago compared to how you're working now,

1:05

it it feels completely different. And so

1:07

we're embracing that sense of change and

1:08

we really want to be the agent research

1:10

lab that's sort of like living one year

1:12

in the future and figuring out how this

1:14

all kind of pans out. Okay. So, what is

1:17

AMP actually? Well, it's a it's a coding

1:20

agent that you can invoke from the

1:21

terminal. So, here's our terminal UI. Uh

1:24

we actually ended up building a complete

1:25

terminal UI framework up from scratch

1:27

because we wanted to take advantage of

1:28

all the capabilities of modern

1:30

terminals. And one of the balances we

1:32

tried to strike in in this UI is we try

1:34

to show the right amount of information

1:35

to the user that conveys what the agent

1:38

is doing without overwhelming you with,

1:40

you know, every single token of

1:41

explanation uh that the model is

1:43

generating. We stream the diffs that

1:45

it's making. uh we show you what CLI

1:47

commands it's using. And if you look in

1:49

the bottom right hand corner there,

1:50

you'll see a little Emacs 30.1 thing.

1:53

This also connects to the editor that

1:55

you're using where it collects

1:56

diagnostics. So, Emacs, Neovim, Jet

1:58

Brains. Uh you can connect the the CLI

2:01

to your editor uh to collect additional

2:04

information that's relevant to the task

2:05

at hand. And so, this particular video

2:07

is just AMP implementing a small feature

2:10

to itself. Uh we asked it actually to

2:12

add a little help button in the bottom

2:14

lefthand corner. Uh and so that's just a

2:16

quick demo to show you that uh the agent

2:18

is pretty good at finding the relevant

2:19

context and iterating towards that. Uh

2:22

we also have an editor experience. Uh so

2:24

we've not found the motivation yet to

2:26

fork VS Code. Maybe we will in the

2:28

future, but right now this installs into

2:32

VS Code or any of its derivatives,

2:34

Cursor, Windsurf, uh anti-gravity. Um

2:37

and the idea here is you really write

2:40

all your code through this agent panel.

2:42

At least I do. Um I I actually spend

2:44

very little time, you know, actually

2:46

manually editing code now. And one of

2:48

the bottlenecks we identified in the

2:49

editor is I don't know about you, but I

2:51

spend most of my time effectively doing

2:52

code review now. Um just in the editor

2:54

trying to read through all the agent

2:56

output. That's the thing that constrains

2:58

me from uh fully paralyzing, you know, 2

3:01

3x uh the number of agents that I can

3:02

run at at a given time. So we built a re

3:05

review reu interface that I'll talk

3:07

about uh in more depth uh in a bit that

3:10

uh kind of helps you streamline that

3:12

process guides you through the process

3:13

of understanding what the agent wrote so

3:15

that you can ensure that you're not

3:16

shipping something that's super sloppy

3:18

or spaghetti. Okay, so I hear all of you

3:21

thinking like, okay, yeah, yeah, it

3:23

looks pretty, but what actually is

3:26

different? You know, why is this better

3:27

than the like 20 other coding agents uh

3:30

here? And I think the best way to convey

3:32

this is I'm not going to try to convince

3:34

you that it's better. I think that is

3:35

ultimately up to you trying different

3:37

things out and seeing what actually

3:39

works. But I am going to try to convince

3:41

you that we're thinking about things in

3:42

a very different, opinionated, and weird

3:45

manner. So I want to take you on the

3:46

journey of us building AMP and all the

3:49

different sort of contrarian or spicy

3:51

takes that we've made uh decision-wise

3:54

in the architecture of of the agent

3:55

along the way. Okay, so let's start at

3:58

the beginning. Um hello agent. What is

4:00

an agent at its core? Well, all an agent

4:02

is as I'm sure most of you know uh is

4:05

it's a for loop uh with tool calls and a

4:09

model uh in the middle. And the reason I

4:11

want to present this slide is because

4:13

think of it this way really tells you

4:15

what sort of levers you have to pull as

4:18

a builder of agent. Uh there there's

4:19

certain things that you can change. You

4:21

can change the choice of model. You can

4:22

change the tool descriptions and you can

4:24

change uh how the model iterates with

4:26

those tools and those are effectively

4:28

your levers. Seems like a few amount of

4:30

levers but you know just like

4:31

programming languages all those are

4:33

syntactic sugar around if statements and

4:34

for loops. You know you can get a

4:36

surprisingly wide variance of behaviors

4:38

and complexity out of that.

4:40

And so one of the key lovers in building

4:42

any agent is the set of tools. And these

4:45

days you cannot talk about tools without

4:46

talking about MCP. So one of the early

4:49

decisions we had to make in building AMP

4:51

is how much do we invest in the MCP

4:53

integrations? And MCP is this amazing

4:54

new protocol that's gotten everyone and

4:56

their mom thinking about how to provide

4:57

context to agents. Um should we lean

5:00

into that or should we start building

5:02

our own custom tool set? And our very

5:04

opinionated take, I think this is maybe,

5:06

you know, less controversial now than it

5:08

was, you know, back in in April, was

5:10

that we should really actually focus

5:12

most of our attention on the core uh set

5:15

of tools within AMP. And that's really

5:17

for two reasons. One is because the more

5:20

you work with agents, the more you find

5:22

uh out that what you're trying to do is

5:24

identify these feedback loops and help

5:26

the agent close them. And in order to do

5:28

that, you need a refined tool set that

5:30

is really geared toward helping the

5:32

agent find those loops. And you cannot

5:34

do that with MCP servers. The creator of

5:35

the MCP server doesn't know what your

5:37

agent is trying to do. And so they're

5:38

not going to tune the tool descriptions

5:40

to what you're trying to accomplish. And

5:42

then the second piece of this is context

5:44

confusion. So the more tools that you

5:45

add into the context window, uh the more

5:47

things that the agent has to choose

5:48

from. And if the tools aren't relevant

5:50

to the task at hand, it ends up getting

5:52

confused. So we've leaned hard into this

5:54

uh custom tool set. And you'll see a

5:56

little bit more about that in just a

5:58

little bit. But before that, I wanted to

6:00

call out another issue with uh tool

6:02

users, which is it's not just tool

6:04

descriptions that eat up context. It's

6:05

the tool calls themselves that also eat

6:07

up context. And so, everyone who's built

6:10

an agent has run into a context

6:11

exhaustion problem where, you know, if

6:13

you use any sort of coding agent, if

6:15

it's good, it's going to go out and try

6:16

to find a bunch of relevant context by

6:18

grepping and reading files first. And by

6:20

the time it gets to editing, there's

6:21

only a small amount of context window

6:22

left. And so, maybe it has to stop

6:23

prematurely. And so the naive way to fix

6:26

this is just to prompt it to, you know,

6:28

do less reads so you can do more

6:29

iterations on the edit side. But then

6:31

this leads to another failure mode which

6:33

I call the doom loop mode which is it

6:35

doesn't gather enough context in the

6:36

beginning and so it ends up not figuring

6:38

out what it needs to do and just retries

6:40

the same thing over and over again. And

6:42

so the way to solve this is really with

6:44

uh sub aents. So sub agents are the

6:46

analog to subutine calls in regular

6:48

programming languages. This is how you

6:49

can factor out the context window used

6:50

for a subtask into a separate context

6:53

window which is the sub agents context

6:54

window. Uh it can do all the things it

6:56

needs and then at the end of the day it

6:58

only returns the relevant results to the

6:59

main uh agent window. So sub agents are

7:01

effectively a way to conserve and extend

7:03

the context window of your main agent.

7:05

Uh so sub aents sub agents are great. I

7:08

think everyone uh building agents has

7:10

probably heard of or or use sub agents

7:11

uh so far. But I think we have a unique

7:13

take on sub agents, which is we're not

7:15

really doing generic sub uh sub aents

7:17

where you kind of tweak the system

7:18

prompt and tweak the tool set a little

7:20

bit. We've really leaned into our sub

7:23

aents. Uh and so we have uh three to

7:26

four really core sub aents that really

7:28

extend the functionality and capability

7:30

uh of AMP itself. The first one is

7:32

something that we call the finder. This

7:34

is effectively our codebase uh search

7:36

sub aent. It's gone through an evolution

7:39

of models and we've ended up at the

7:40

point now where we're using a relatively

7:42

small and quick model to drive a limited

7:44

tool set that we found really is optimal

7:46

for quickly discovering uh relevant

7:49

context within the codebase.

7:51

Another sub aent that we've implemented

7:52

is the thing that we call the oracle. So

7:54

this is how AMP does reasoning. So in

7:57

contrast to most agents which uh you

7:59

know implement reasoning in the model

8:01

selection part of the experience, we

8:04

found the best way to implement

8:05

reasoning models is really through a sub

8:07

agent. What that allows you to do is

8:09

preserve the relative like snappiness uh

8:12

in the main agent as well as its ability

8:14

to to use a variety of different tools

8:16

and then only when you need to debug a

8:18

tricky problem or plan something very

8:20

nuance, it drops into this Oracle sub

8:22

agent and figures things out. And this

8:25

is something that's like kind of

8:26

magical. It's like anytime the main

8:28

agent has trouble uh figuring out

8:29

something and I'm like I don't want to

8:30

spend like one to two hours going down

8:32

this rabbit hole, I just like tag the

8:34

oracles like invoke the oracle, think

8:35

really hard, I go like alt tab, check my

8:38

email for a bit and sometimes it takes a

8:39

few minutes because it's thinking really

8:40

deeply, but I think like four or out of

8:43

five times it just magically finds uh uh

8:46

the underlying issue. We also have a

8:48

librarian sub agent which is meant to

8:50

fetch context beyond the codebase. So

8:52

from libraries and frameworks that you

8:53

depend on. And then there's a new

8:54

experimental sub aent that we call the

8:56

Kraken. Uh its job is it doesn't edit

8:58

code files uh one by one. Uh it really

9:01

is all about writing code mods to do

9:03

these kind of like large scale

9:04

refactors. So we're leaning hard into

9:06

the sub agents and uh that's really in

9:09

contrast to a lot of the existing coding

9:11

agents. I think almost every other

9:13

coding agent implements a model selector

9:15

as one of the core uh UX components and

9:18

we just don't think that this is the

9:19

architecture of the future. I get that,

9:21

you know, developers like choice or at

9:22

least the the possibility of choice. But

9:25

the problem with choice is that there's

9:26

also a paradox of choice. The more

9:28

choices that you have, the more uh kind

9:30

of like cognitive burden it is to choose

9:31

from these different models. And that

9:34

means at the architectural level, if you

9:36

have n different models and one agent

9:38

harness that you can only lightly

9:39

customize each model, it means you're

9:41

never really optimizing for what any one

9:44

given model uh can do. And so AMP's

9:46

architecture is much more

9:48

agent-oriented. We have two top level

9:50

agents, a smart agent and a rush agent.

9:52

And the smart agent is the one that has

9:54

access to all those fancy sub aents and

9:56

can do a lot of things. It's it's a

9:57

little bit slower, but you can hand it

9:59

more complex instructions. And then the

10:01

rush agent is for uh those kind of like

10:04

in the loop tasks where you want to be

10:06

tight in the loop and you're making

10:07

quick targeted uh edits to to the code.

10:11

And why do we have two top agents? It's

10:14

really we're trying to kind of like pick

10:16

points along the frontier of

10:17

intelligence and speed that are

10:20

meaningful to the user experience. So in

10:22

in talking to our users, we found that

10:24

there's kind of two modalities for

10:25

invoking agents. Now one is you kind of

10:28

like spin off a task and have it run and

10:30

then review the code when it's finished

10:31

asynchronously. Uh or you want to be in

10:34

the loop, you know, quickly having the

10:35

agent make edits while you quickly

10:37

review them one by one. Kind of like

10:38

babysitting the agent uh in the inner

10:41

loop.

10:43

And we're very intentional about the

10:44

model choice here. We've only switched

10:45

the smart model once and that was

10:46

actually two days ago uh when Gemini 3

10:49

uh was released. And I think you know

10:51

the the reaction Gemini 3 has been

10:52

really interesting to watch. I think

10:53

you'll see widely different behavior

10:55

from Gemini 3 in different uh agent

10:58

settings. So for those of you who've

10:59

tried it out in other settings, I highly

11:01

encourage you to uh try AMP. We did a

11:03

lot of testing in the week before the

11:05

release to optimize the smart agent to

11:08

take full advantage of of its

11:09

capabilities. And uh we're absolutely

11:11

loving it. We're still working through

11:12

some kinks obviously because it's a a

11:14

new model, but we feel confident that it

11:17

it's again moved the frontier of what's

11:18

possible.

11:21

Okay, so we talked a lot about like

11:22

agent construction, the behavior. I want

11:24

to talk a little bit about the UI layer

11:25

of agents as well. So, you know, editor

11:28

versus terminal, we're doing both. Um,

11:30

and I think that's because both of them

11:32

tackle kind of like different modalities

11:33

of working. Uh, but we do have opinated

11:36

takes uh in each interface. So, in the

11:38

editor, I think of my editor now more as

11:40

a reader uh uh more than anything else

11:43

because uh I don't know like if you're

11:45

using agents heavily, I don't think

11:47

you're really editing all that much uh

11:49

in your editor anymore. You're mainly

11:51

driving edits through the agent panel,

11:53

which is what you see on the right hand

11:54

side or the right hand side here. And

11:57

then what I do in in my editor is I pop

12:00

over to the side panel, which is

12:02

optimized for reviewing different diffs.

12:04

So we actually built a custom diff

12:05

viewer for the way that people are

12:07

consuming agentic output. You can select

12:09

any arbitrary commit range quickly view

12:12

through the file level diffs. All the

12:14

diffs are editable and you have full

12:16

code navigation. So go to definition

12:18

find references and there's a feature at

12:20

the bottom that gives you a tour of the

12:22

change. So it actually guides you

12:23

through which files you should read

12:24

first because I find half the battle

12:26

when reviewing a large change is

12:27

figuring out where to start. So the guey

12:31

aspect of the editor allows us to build

12:33

a very rich uh experience uh for for

12:35

this type of thing. And then meanwhile

12:37

in the terminal um we really want to

12:39

take advantage full advantage of the the

12:42

features and rendering capabilities of

12:43

modern terminals. So uh we actually have

12:45

one of the core contributors to Ghosty

12:47

uh the open source uh terminal uh that

12:50

built a uh a TUI framework from scratch

12:52

to power the AMPU. So one of the nice

12:54

things that we can do is just to point

12:56

out a little detail the the green color

12:59

of the diff rendering on the left hand

13:01

side terminal that's actually we can

13:03

have the terminal mix in the color green

13:05

with whatever background color it's

13:06

using. So that allows for a much nicer

13:09

display. At the same time we know that

13:11

people use all sorts of terminals uh

13:13

including like terminals in Jet Brains

13:15

or VS Code and other editors. And so

13:17

we've added the ability to gracefully

13:19

degrade. So even if you're using AMP in

13:21

like the default Mac OS terminal, it

13:24

falls back to the capabilities that uh

13:26

are uh available in in that setting.

13:30

Another aspect about how we're thinking

13:32

about coding agents is really from the

13:33

how do we get people to learn this new

13:35

craft? Like we think that uh human

13:37

developers are going to be around for a

13:38

long long time, but we essentially have

13:40

to relearn the craft of how to code uh

13:43

together. And so one of the first

13:44

features that we built in AMP was the

13:46

ability to share threads with your

13:48

teammates. So, if you're using AMP on

13:49

your team, you can go and see like how

13:52

much code people are changing with AMP

13:53

over a given period of time. And you can

13:55

poke into specific threads to see how

13:57

they're doing things. And people love

13:58

this feature because essentially like

14:00

link threads to AMP and say like, "Hey,

14:02

here's a cool prompting technique that I

14:03

discovered. Try it like this." Or, "Hey,

14:05

here it got stuck here. Can you help me,

14:07

you know, uh think through how better to

14:09

to connect the agent with the feedback

14:11

loop to get further?"

14:14

uh another aspect of of uh enabling more

14:17

people to experience uh coding agents

14:19

and learn how they work is by making it

14:21

more accessible from an economic

14:23

perspective. So um you know remember the

14:26

smart and uh rush uh agents at the top

14:29

level. You know smart models remain

14:30

relatively expensive today but rush

14:33

models are getting cheaper and cheaper

14:34

but not yet free. And so we're thinking

14:36

about you know more and more like one of

14:38

the the biggest barriers to using agents

14:41

fully is actually cost right now. Like

14:43

if you go to like college campuses uh

14:45

and talk to students, the actual number

14:46

of people who have used a coding agent

14:48

is actually much smaller than I would

14:50

have thought given you know young

14:51

people's uh propensity to adopt new

14:53

technology. A lot of this cost. So

14:55

someone had the crazy idea on our team

14:57

like hey you know what we could do we

14:59

could ship ads in your terminal. And at

15:02

first it was like nah that'll never

15:05

work. But the more and more we thought

15:06

about it and the more and more like

15:07

inference costs started declining we're

15:09

like yeah maybe. So, we actually shipped

15:11

uh a mini ad network that delivers ads

15:13

for other developer tools uh in in AMP

15:16

in the terminal and in the editor. Uh

15:18

they're very subtle. So, I don't know if

15:20

you can spot the ad in this screenshot,

15:22

but we try to make them non-intrusive.

15:23

But this effectively allows us to

15:25

sponsor inference uh in in the Rush uh

15:29

agent so that uh more people are able to

15:31

experience this on you know their side

15:32

projects and such.

15:35

Okay. So, AMP is AMP. Uh we are like I

15:39

said a we think of ourselves as like an

15:41

agentic research lab. So we're not about

15:44

uh hype. We don't do any sort of like

15:46

paid developer influencer marketing. But

15:49

I like to call out some cool people that

15:50

I think are using AMP. Um because it it

15:53

shows for the type of people that we're

15:55

really selecting for. I I don't think

15:56

AMP is for everyone uh at this point.

15:58

We're really trying to target the the

16:00

like small percentage of people who want

16:01

to live a little bit in the future. Um,

16:03

and so we have folks like Mitchell

16:04

Hashimoto, the uh the founder and and

16:07

excepting

16:09

Ghosty now. Uh, that's his uh kind of

16:11

passion project and he's using AMP to

16:13

drive a lot of the changes that he makes

16:15

uh to that terminal. And then we also

16:17

have folks like Hamill Hussein who's I

16:19

think probably like the leading

16:20

authority on AI evals. Um, and at least

16:23

as of a couple weeks ago uh he was

16:25

saying that AMP was his favorite coding

16:27

agent. And so, uh, neither of them are

16:30

on the team or, you know, have invested

16:32

us in any way, but we're just thrilled

16:34

that, you know, they seem to like like

16:36

what we're building.

16:39

And then if other folks are interested

16:41

in in kind of like coming along with us

16:43

in in in this journey and trying to push

16:46

the frontier of what agents can do, uh,

16:49

we've also started a community of

16:50

builders. Um, and using AMP is not a

16:53

requirement to join this community. It's

16:55

run by uh Ryan Carson whose former

16:58

startup uh Treehouse taught over a

16:59

million people to code and now this is

17:01

his passion project. It's essentially

17:03

like if you're building with agents and

17:05

you're you're experimenting with how to

17:06

push them further and further. There's

17:08

Ryan right there. Um it it's all about

17:11

kind of like tapping into that sense of

17:13

awe and wonder with a peer group uh that

17:18

is also uh leaning into that uh sense of

17:20

of strangeness and and experimentation.

17:23

So um what does this involve? It

17:26

involves uh like regular interviews with

17:30

people. We like to feature people who

17:31

are building interesting things or using

17:32

agents in interesting ways. Uh and we

17:35

also do inerson events. We had a very

17:37

nice dinner last night where we got a

17:38

bunch of people together and had very

17:40

interesting conversations spanning from

17:42

you know actually building with coding

17:43

agents to you know more philosophical

17:45

discussions about uh the nature of AI

17:47

and things like that. So um that's it

17:51

for me. Uh hopefully this has in

17:53

intrigued you. Again, I I don't expect

17:55

all of you to be convinced that we are

17:57

building the best Frontier coding agent,

17:58

but at the very least, I hope I've kind

18:01

of demonstrated how we're leaning into

18:02

the weird and thinking about things uh

18:04

differently. So, if that's interesting

18:06

to you, come say hi at our booth. Just

18:08

look for the weird pipe piper man riding

18:10

the golden fish. Thank you.

18:13

[music]

18:29

>> [music]

18:29

>> Heat.

Interactive Summary

AMP is presented as an "opinionated frontier agent" for coding that embraces the "awe and absurdity" of AI-driven development. It features a custom terminal UI and an editor extension for VS Code, emphasizing code review over manual editing. AMP's core architecture distinguishes itself by focusing on a tailored toolset over generic MCP integrations and utilizes specialized sub-agents like the "Finder" for codebase search, "Oracle" for complex reasoning, "Librarian" for external context, and "Kraken" for large refactors. Instead of a model selector, it offers two top-level agents: a "Smart Agent" for complex, asynchronous tasks and a "Rush Agent" for quick, in-the-loop edits. To address economic accessibility, AMP implements a subtle ad network to sponsor Rush agent inference, making it more affordable for users. The project also fosters a community for builders pushing the frontier of agent capabilities.

Suggested questions

7 ready-made prompts