Episode 024 · November 10, 2026 · 01:29:39

Delegation, Agent Router, and AI Traffic

Dan Gerlanc
Dan Gerlanc
Podcast Host
Erica Hughberg
Erica Hughberg
Maintainer of Agent Router and Manager at Tetrate

Erica Hughberg joins Dan to compare managing coding agents with leading engineers and to explore how agents can help people build and learn. They also trace the networking and hardware challenges behind inference traffic and Agent Router.

0:00 −01:29:39

Erica Hughberg is a software engineering leader, speaker, and community advocate at Tetrate. She maintains Agent Router, formerly Envoy AI Gateway, working on its documentation, website, and community.

Dan and Erica discuss why working with coding agents reminds her of becoming an engineering manager in 2017. Delegation meant letting go of implementation details while remaining responsible for the result and for communicating the intended outcome. Agents present a different problem from human colleagues: they cannot readily seek out the people who remember undocumented decisions, and Erica finds that they struggle to understand the wider systems around a codebase.

Both describe spending more time planning and checking agent work. Erica is particularly wary of mistakes in authentication and authorization, where she asks agents to ground decisions in official RFCs. Dan adds that data analysis requires care to establish whether the code is actually answering the intended question and collecting the right data.

Erica also sees agents opening doors for people with domain knowledge. She helped a researcher describe an analysis in plain language and generate R code, checking its output against results the researcher already knew from SPSS. Her seven-year-old niece built a game with Lovable and surprised Erica by watching the agent work, an example that gave her hope that curiosity can still lead people beneath the surface.

The conversation turns to whether developers need to build and deploy their own agents. Erica uses a scheduled Claude task to help triage Agent Router issues and suspects that integrations with data and tools may matter more than everyone building a separate agent loop. She and Dan consider subscription costs, enterprise constraints, hosting, and the difficulty of choosing among fast-moving open source projects.

Erica explains Agent Router through her distinction between box engineers, who build application logic, and arrow engineers, who connect systems. The project began by making Envoy Proxy usable for inference traffic, with cost tracking, provider failover, and a common interface among its early goals. She describes why AI requests change the demands on proxies: large bodies must sometimes be inspected, encrypted, and buffered, while long-running requests and variable payload sizes complicate resource planning.

They close with the evolution from NGINX and the C10K problem to Envoy’s role in dynamic microservices, then examine MCP traffic. Erica describes how Agent Router combined upstream session information into an encrypted identifier for an MCP facade and says newer protocol changes make the traffic easier to handle. Her larger point is that even as agents make software easier to produce, the networking and hardware underneath still impose real constraints.

You can't control everything, but you are responsible for everything.

— Erica Hughberg

Humans are good at connecting dots outside of the context they're working in.

— Erica Hughberg

If you don't know if it's gonna work, test it and see if it works out.

— Erica Hughberg

Coding agents have lowered the barrier for subject matter experts to automate work.

— Erica Hughberg

You have to be pretty careful in making sure that the result is actually answering the question that you have and not a very similar question.

— Dan Gerlanc

Even our arrows are boxes if you look close enough.

— Erica Hughberg

Even though we're writing all this software at the end of the day, we're constrained by hardware.

— Erica Hughberg
Agent Router
Open source project for routing AI and agent traffic.
Envoy Proxy
Network proxy underlying Agent Router's traffic handling.
OAuth
Authorization framework Erica cites when discussing agent security mistakes.
SPSS
Statistical software used by Erica's researcher friend.
R
Statistical programming language used to reproduce the researcher's analysis.
Lovable
AI app builder Erica's niece used to make a game.
Cloud Run
Google's managed platform discussed in the context of agent hosting.
Kubernetes
Workload orchestration platform discussed in hosting and proxy configuration.
NGINX
Web server and proxy discussed alongside Envoy's evolution.
C10K problem
Challenge of handling ten thousand concurrent network connections.
NVIDIA BlueField DPUs
Data processing hardware discussed for offloading proxy encryption work.
eBPF
Kernel technology discussed in relation to networking and parsing.
MCP
Protocol for connecting agents to tools and data sources.
Transcript

Agentic systems depend on complex services communicating with each other, but the infrastructure that connects them can be easy to overlook.

Our guest today joins me to discuss how Agent Router helps manage AI traffic, including the consequences of handling the large payloads and long-running requests typical of AI workloads. Welcome to Agents and Engineers. I’m your host, Dan Gerlanc. Today’s guest is Erica Hughberg.

Erica is a software engineering leader, speaker, and community advocate at Tetrate. She’s also a maintainer of Agent Router, formerly known as Envoy AI Gateway. In this episode, we discuss what Agent Router does and how AI workloads challenge gateways and proxies, why coding agents can struggle with undocumented decisions and the context of an existing system.

And how coding agents can help people apply their expertise in unfamiliar programming languages. Enjoy the show.

Erica, thanks for joining us today.
Well, thank you for having me, which is quite exciting. Just chat to people. I got my coffee. So, you know, I think I’m set up.
Right, you’re ready. You’re caffeinated.
Yes, for my sins. No, or for your
Ha ha ha.
sins, maybe. You’re gonna have to put up with me.

Right, yes. I I pr I pr I pre caffeinated, so

now now I’m ready.

So what are we talking about? I have so many opinions, unfortunately, I have too many on this topic. the topic of
Ha ha ha.
agents and engineering, right?

Yes,

all that yes, as as the as the podcast is named.

Yeah.
Well, we can start. Of course, software engineering has changed drastically
Yeah.
in the last year.
Yeah, but I have this weird thought, okay, that I don’t think has changed terribly much in one weird way for certain people. It’s changed a lot for a lot of people, but for a small group of people, it’s actually not changed that much because I would like to claim that I started doing, maybe not AI assisted, but I used to joke that I’ve started vibe coding in 2017, right? Which by all means.
Ex yes, expla explain.

So

that’s when I became the manager of a team of software engineers. And that was the moment I had to do a couple of things. First, I had to let go of the details of the implementation. I had to start trusting my team that they were building it, right? That they knew and understood what they were doing. Ideally better than I understood, right? It was this weird feeling. And then I also went through the feeling of if stuff goes wrong,

It’s my fault, okay? Even though I wasn’t able to oversee everything that was happening, I was still responsible if anything went wrong. Like as a manager, you can’t like turn around and be like, well, Anna did it or Bob did it. That’s not what you do as a good manager. You take responsibility for if things go wrong.

So only if you want to be a bad manager.
Yeah, there are some bad managers out in the
huh.

world, of course. But those were like key things for me to like go through. The other part was if someone built something, there wasn’t what I… Like I believe I set out a vision, where we were going, what we were building, where we working towards. And then I realised that if what came, what was presented to me throughout the software development process wasn’t what…

solving

the problem that I thought we were solving, that I very thought I’d clearly laid out, I had to also take responsibility on that they didn’t misunderstand I was bad at communicating their desired outcomes, right? So also had to go through the learning of realizing I’m the problem, not you, right? Because I don’t like to believe if I asked you to build something, right? And you come back and you present me

ideally something before it’s completely done, right? But it’s like going in the wrong direction. I don’t say like, Dan, you’re an idiot, right? That’s not what I say. I say, oh, I’m so sorry I might have missed to share some context with you or some of the goals of the project. I am sorry that we may need to rework this now. So you take that responsibility as a manager, right? So when I think about these skills I had to learn.

becoming an engineering manager, I feel like so much of that skillset transferred into how to work with agents to help develop code, right? It’s never the agent’s fault, it’s always your fault. So, and if the agent does something bad, it’s again your fault, right? Okay, you can be frustrated because you have harnesses and other stuff in the middle, but in the same way, all humans are not the same. Like,

The way I would work with Ed would not be the same way I would work with Colin, right? As a manager, I’ll have to interact with them differently. You can argue they had different harnesses that guided their behavior, if you will, but they were humans, know.

That’s that’s you have to work differently with with Claude than with uh open AI, with Codex.

Codex, yeah.

Different personalities, they approach them different. And then even if you choose different models in the same harness, again, you will have to tweak how you interact with them as well, which I don’t know. I feel that engineering managers that have been close to engineering had an easier time shifting into using agents.

for software development than people who have never had to delegate or take responsibility for another person’s work.

Yeah, one of the early is episodes of the podcast, actually with Demetrios Brinkman, uh
Yeah. fun. Yeah.
and Angie Jones, the
Yeah.
title of the episode is Are We All Managers Now?

Yeah,

well, I think so. And all the hard things of being a manager that comes with it, all of that stress of knowing that you can’t control everything, but you are responsible for everything.

How is it different in working with a team of agents than working with a team of people?

Ah, okay.

There is something that I’m missing desperately from working with agents versus working with humans. Okay. Dear Ed

and Colin. Yeah, that’s one thing, but there’s something. So

Joked good jokes. Sense of humor.

I’m going to use these were real humans, real wonderful humans, Ed and Colin, who used to work for me many years ago. So if I would have a big project, right? I could trust that if, for example, Ed needed to

brainstorm something, he could go and brainstorm that with Colin, right? He could pull Colin out or whatever Colin was working on to have a conversation with him, right? And we had this wonderful set up in an office where the whole team sort of sat together. I liked setting people up so we had like a table in the middle and then all the desks were people who had like their backs to this table. But if we wanted to collaborate, we can sort of very quickly turn around and have people come together at the table.

And we had a whiteboard that I begged to have and maybe you weren’t supposed to like hold onto the whiteboard. They were like communal office stuff, but I really

Yeah.
loved the whiteboard. So I had it in our team’s little corner of the office because I don’t know, I need something where we can write stuff on. But anyways, we had a little whiteboard. Yeah, hoarding whiteboards. Yeah.

Yeah, I th I think we did that in my my first job as well. We I think we commandeered the hoarded the whiteboard, yeah. There w there was

there was like two or something. Yeah. Yeah.

Yeah, it’s mine. I put my name on it.

Right. You’re too late. It’s been claimed. Right. So that is something that humans are good at. They are good at connecting dots outside of the context they’re working in. And that’s software development agents do not do that. Right. They don’t go like, Hey, this other girl or guy was like working on this like a few years ago.

I need to go speak to them to find out more because one thing that humans are notoriously bad at was documenting their decisions. Even though you had all of these processes put in place like architecture review, like, and all of those things, there was always decisions that were made that were not memorialized. And there were issues that people ran into that didn’t need to be repeatedly solved.

And if they were solved once and not twice, they were often not written down. And now when we have personally, find it harder to have agents operating in an existing code base versus writing a new code base, right? So operating in an existing code base, they don’t know all the decisions that went into the architecture. So I’ve had experiences with like,

Maybe we can improve it this, this or that way. Well, maybe, however, because I like asking us an aid, a coding agent, like what improvements can you identify in this code base? I don’t know if it’s like a sick form of torture

to

huh.
have like, can you tell me what’s wrong? Like, let’s do a code read, but for me, yeah, for me, or maybe for both, right? But like
For for you or for for yourself or for the agents.

this process of like, what is wrong?

But sometimes they come up with good things, but it’s also the time where it’s like, no, there’s actually a reason for this way to be. And the other gap, when talking like what is different is that I find, maybe people would challenge me on this to certain degree, but I find that agents are not as good as understanding complete systems as they are to understanding code. Because systems go beyond the code we have.

networking and be, if you’re a human and you’re working on a piece of code, you can know in which environment is going to be deployed. And you can have an understanding of the network, like where you can connect to, where you can’t connect to and et cetera. You can have an, you have an understanding of the other parts it interacts with. And if you talk about scalability as a human, you may just have, no.

like how things are set up to scale and the type of, when I worked on system, I would know that there are some servers that you can’t overwhelm. Like you have to almost like throttle yourself because you have worked in the system long enough and you know that that server, you don’t control it. It’s like big enterprise, think big enterprise. You do not control this server. And from other team is another department, completely different boundary of responsibility. But you know, cannot, because

You’re also working in old enterprises. So there’s not like gateways with rate limiting and throttling at a gateway level. You are literally connecting straight to it, right? These are like the old, I think there’s differences

Yeah.
when we think about perfect systems and like systems that have evolved over the last 25 years.
Yeah, like in my first job there was the two maybe there were three SQL servers, right? One one of them was a production one and
Yeah. Ah.
during the middle of the day don’t run anything too any jobs that are too
Mm.
big on it because you’ll take down the transactional system,
haha
so you gotta be careful there. And then there’s the
Yeah.
secondary one that’s a wimpier box than the first one.

Yeah. I know what you mean. Like in my first job we had like databases set up and we had like the read. We have several read replicas and we had a write. The hard part was obviously the write one had the most up to date data. So a lot of people did want to read from the write one because the read ones needed replications. They wouldn’t have the data there yet. And have I been responsible for overwhelming the read database in my life? Yes, I have. Right.

Not the read, sorry, the write. The write I’m overwhelmed.

That’s right, it’s part of part of a

rite of passage, no no pun intended.

Yes. So, you know, those things happen and they feel that software development agents, unless you somehow, I have tried to provide system context, but I feel that that can cause a reasonable amount of confusion. So I don’t know what your experience is, but that’s like my experience. uh

reaching out to people they don’t do. And secondly, there are challenges with the systems understanding, like large system.

Yeah, my experience has been you have to be very careful in the constraints and information that you give to all of your prompts or agent instructions
Yeah.
because sometimes then you end up fighting with the agents if you give
Mm.
them too much constraint or things to do, versus
Yeah.

sometimes it’s better just to

initially reduce those constraints unless you know this is a invariant that never ever can be breached and then handle

Yeah.
it on the review side or second like
Yeah.
a second pass there has been my experience with this.
I got like a great piece of advice like months and months ago. It’s probably quite a long time ago now, but it feels like it’s recent because it’s
Mm-hmm.

so stuck in my memory. Because I think it was such a great advice, which was plan more. it’s like spend more time on planning than you used to do. And this is interesting to me by the way, because when software was took longer to produce, one might argue we should have spent more time on planning how we were going to build things.

Right? Because it was more expensive to actually write the code. But finally, I find myself spending more time planning than ever before, because it was something in the human software development process that allowed for co-planning as you went along versus with agents. I feel that creating the plan and whether that is you co-create the plan with agents, humans, whatever it is, and then you go into production.

Like when I say production, by the way, I do not mean production as the environment into the production phase of producing the software, the building phase, if you will, right? The building phase can be shorter now. And I think to me, that’s interesting that despite the building or production of software is cheaper in terms of time, I have spent more time planning.

It sounds a bit counterintuitive because I know. What do you find in your life?

Yeah, I think that aligns and s sometimes I’ve I’ll do the planning a bit more iterative iteratively in terms of have and I don’t think this is unique to me. A lot of people
Yeah.
will say, Okay, ask me about ask have the agents help plan, like ask questions,
Yeah.
find holes in what’s happening.
Yeah.

And previously it just

unless you’re making decisions that are irreversible, a lot

Yeah.
of times it’s you don’t know what you don’t know or you’re gonna find out till you start doing it. So I think that’s why
We are. Exactly.
we had things like Agile and it Yeah.

Yeah, and like fail fast, do the hardest thing

first and see if you can make it happen. By the way, it took me years to understand what fail fast actually meant. And then I understood it was supposed to do the hard thing first, like the thing you don’t know how to do, right? Because all the things that’s like, you know, business as usual, you’ve done it a hundred times, right? You know that’s gonna

Yeah.

work out all right. Like try the uncertain thing first and…

I guess that still applies. Whoever is writing the code, whether that’s an agent or a human, I think that’s a reasonable step. If you don’t know if it’s gonna work, test it and see if it works out. But my other pet peeve when it comes to, I don’t know what you’re gonna call it, agent assisted engineering, feel like vibe coding has this bad, bad vibe to it now. Vibe coding sounds like you don’t.

have any like pride in craft, right? Whereas agentic sounds

Agentic engineering.
like you have pride in the craft of software, right? It’s a socio, like a social thing more than, because I suspect that a lot of what people call vibe coding was still just agent assisted engineering, but whatever. So.

I think

they’re kind of the s I I think they’re the the same thing now. I mean

Yeah.
initially I th when the agents were less good, of course, you needed to give
Yeah.
them very explicit instructions or nothing would happen. Yeah.
Yeah. Well, you got really weird stuff.
Oh I mean it weren’t you were barely even had agents. It was more like prompt. It was like uh just prompts, right? Yeah.

Yeah, we were er prompt engineering.

And like, oh, that time, okay, now it’s like, things have moved so fast, haven’t they? Because I just thought about that time when I actually got the agent to give me code snippets. You know, back in the day

Yeah.

before agents, and sometimes you go and stack overflow and you find a code snippet and you literally copy paste it. Like there’s a function or a method or whatever, depending on your language of choice.

And

you literally take it and you just tweak it a bit to work for you. There was that time of the coding agents where it was more like a dynamic stack overflow, right? Where it would give you these code snippets where you could literally just copy paste. And that was like the early how to use AI to help you with coding, where it wasn’t in your software development lifecycle, it was sort of on the side.

more dynamic Stack Overflow and maybe a lot of the answers came from Stack Overflow, right?

Yeah. Like a year I

mean like a year and three months ago or a year

Yeah.
and a bit over a year ago, that was kind of the only way I’d used AI was I might ask it for, hey, here’s a a method or something like that, but I wasn’t. Yeah. Yeah.
And where it’s a problem I’m having, like, how do I do this thing? Yeah.
I did not trust it to go loose on my computer. Like
we had the open claw era, which I feel like now
Yes.
it’s just like computer use with Claude or Codex. They’re
Yes.
like doing the thing now. But.

Which I think is better

because I feel still feel like most people were like, What so what does open claw actually do?

break all the rules is a good start. But
huh.

so my pet peeve with coding agents. Okay, this could be because it’s something coding agents I feel continuously gets wrong. And that is authentication and authorization. When it comes to if you write a system and you need like proper, secure.

like you’re a proper, if you wanna say, I’ve used OAuth OIDC like patterns, I feel that they unfortunately get it wrong a lot. And I have to make sure that the dear coding agent is not, is only grounding decisions in official RFCs, right? Because…

there is so much bad code that these systems have been trained on and so many bad advice that internet is full of more incorrect advice and authentication and authorization, then it’s full of correct advice. And this could be that I see this more prominently because this is an area that I spent many years working in and I see it. So that makes me scared, right? You know, when you sort of know an area very well yourself.

and you see all of these horrible mistakes and you know that they’re simply there because most of humans would make the same mistakes, right? And have done for a long time. And that worries me a lot. that’s my, like, I get stressed out about that. Do you have like an area where you’re like, okay, I know this really well. So you spot the mistakes more prominently.

Probably

data things that are more data or data science related.

Yeah.
I mean some of it my experience has been that you need you well, the questions you usually want to answer in
Yeah.
data science are very specific. And so
Okay.

usually vibing them is not gonna

I mean you can iterate on it, but you I think you have

Yeah.
to be pretty careful in making sure that the result is actually giv
Hmm.
answering the question that you have and not a very similar question.

So when we talk about data

science now, do we mean like analyzing the data, like writing the code that analyzes the data, like you’ve already have collected the raw data and now you’re trying to gain insights from it.

Yeah, or y it could even be collecting the raw data. Make it like are you
yeah.
pulling in all of the necessary data if you’re hitting some like let’s say you’re using GitHub, right? And you want
Yeah.
to figure out how many PRs were merged in some period of time. How
Mmm. Yeah.

like how are you sure

sure that is getting properly pulling all that data? How do you how do you know that it’s right? Things like that. Yeah.

Yeah. Yeah. How is the right data to answer the question? Like, because

I have a friend, she is a researcher and lecturer at a university. She’s so cool. She’s got a PhD, you know, cool people. I don’t know. Do you have a PhD? I don’t. I’m… Okay. Yeah. Okay.

I d I do not. I ha have an underg I

have an undergraduate degree in literature.

wow.

Exciting. Like, so my friend though, she is, she’s got PhD, not in computing or anything like that, in like media communications. Okay. But people who do like, she does like geography and media communication. I don’t fully understand it all, but the point was that she one day, she was like, Erica, I need to learn how to code because they’re journals apparently now. she knows statistics and data.

quite well, but she has software. She has a piece of software where she can do click and she can have her data, she can load in her data. Like she might have collected data from like

Mm-hmm.
surveys and whatever not, right? Loads of things. Yes, that’s the software.
Yeah, stuff like SPSS, things like that.
That’s the word that she’s like living her life in. But now apparently a lot of the public, like these public, place where you publish your
Mm-hmm.

papers.

What are they called? Like journals, right? You

Yeah.
have to submit them to journals to get them published, because apparently that’s very important if you do that kind of work, you want to get published. So anyway, she told me that now they need… Oh,
Publish or perish, that’s what they say.
I never heard the expression. That sounds awful, doesn’t it? Puts the pressure on you. So, but now she…
So that’s why that’s why a h a lot of people leave academia. Academia.

Yeah. So now she told me that she can’t just say…

provide her like, analyze data from like that she’d done in this SP whatever it’s called,

S P S S, yeah.
SPSS software. Now they have to produce code so that other people can run the same. They have to be able to see the code. So now they have to do R. Okay,
Yes.

at least that’s a big option for them. And she said, Erica, I bought a book. She said, I bought a book on R. And I was like, why did you buy a book on R? She’s like, I need to learn.

I was like, okay. But I said to her, you know statistics really well. You know like this and that, so you understand. So I said, forget about the code for a moment. So I was like, I was trying to teach her to like thinking pseudo code, right? If you can just

Mm-hmm.
like write down what you want to happen in what order, like in normal language, like can we start there? Like instead of starting at learning the code, let’s start at defining what’s happening.
Yeah.

And then I said to her, now if you can write that.

Now we can ask a coding agent to actually write this in R, right? Because

Yeah. Yep.

as long as you can like write out exactly what needs to happen, because she understands all of these crazy stuff that I don’t understand, she was trying to explain to me. And then I took her thing and I created R code for her and that made all of these diagrams and all of these outcomes. Like, and she was like, it’s right. Cause she’s like, she was like really skeptical.

Like with like, cause she was using data that she knew, right? And she knew the expected results. Cause she can use the SPSS thing, right? was it called SP? Is it called SP? Sorry. Now I’m stuck on this. Now we’re making a

S P S S Yes.
commercial for this software, but unfortunately we’re telling everyone that apparently. Yeah,
It’s very expens it’s very expensive SPS, so

yeah, I heard so. So anyway, so now I think I convinced her that she doesn’t have to read the whole book on R.

She just has to learn enough of R to do what she needs to do.

Yeah, I think that makes sense to me.

And she can use a coding

agent to help teach her. I said to like, you can literally ask the coding agent questions about R, right? You can learn from an interactive thing. I think, but that’s like, the only reason I could ask her to do this is because she understands statistics and data analysis, right? I think it’d be very different because she knows the questions she’s asking. She knows what…

calculations

or whatever she needs to do. But do you say, okay, actually, I think that’s an interesting thing. I think that coding agents have lowered the barrier for subject matter experts to automate work.

Yeah, definitely I think definitely that is one of the major benefits of coding agents is that you can have people who aren’t software engineers go and build software or at least
Yeah.
the first few passes of that software and then
Yeah.
then maybe you need a software engineer depending on what you want to do with it. But initially
Yeah.
You’d start with someone who understands the problem and can then just be, hey, build me this thing that works to my understanding.

Yeah, this will solve my problem. Yeah.

Something that works like this will solve my problem, right? Like with my friend and her, like, if I can write pseudo, like instructions for this and I can get R code, that will solve my problem. Right. And then like, okay. The other fun part is like, so I had my niece this summer. So she’s seven years old. I had her use lovable to build a game. Okay.

but she’s really slow at typing. So we had to use the talking thing, right? Cause seven-year-olds, honestly, they, I don’t know, but she’s, she types with one finger and then her spelling is like questionable. So.

There

right, there you go.

So speaking is definitely better. But what surprised me with the seven year old, I thought that she was just gonna be impatient and she just wanted to be done. She made a beautiful game, which actually finally has a lot of like traits of Pac-Man, but she doesn’t know what Pac-Man is. She has a game where the fairy princess is hunting the monsters. Or the monsters is hunting her and she can kill them. So she was like, make me a game.

where the fairy princess is being chased by the monsters and she can kill them with the sword. So basically you run around trying to hide from the monsters and then you can get a sword and you can kill them but then the sword has a timer on it. But the point is she’s sitting there. Exactly, thought,

So kind of like Pac-Man. Rediscovered Pac-Man.

yeah. But I think that’s the beauty of games, right? You have this.

And also I think that is why her idea of the game was very buildable because it wasn’t a novel mechanic, but she had her own little like story of it, if you will. There’s the fairy princess with the sword, right? So, but what I thought when she was doing this, I thought she was just gonna sit there and go like, wait, you will be impatient for the thing to be done, right? And then she was like,

No, I want to see. So what she would sit and do was to sit and watch what the agent should like, you know, can click through to the details and you can see what the agent is doing, all the steps. And she was watching it work. Like all the coding was writing. So it gave me hope that these kids who are now like seven, right? That even though they grow up with coding agents, they are…

If

you’re curious, you are still gonna know what’s happening underneath. You’re not gonna be blind to it.

Yeah, I I think so. I mean, it’s not someone who’s a kid, but one of my friends works at Google and I mean he’s built
Yeah.
software using agents and he’s not a software engineer.
Yeah.
And as going through going through that, I mean he’s learned more about libraries and containerization and all these
yeah.

different things that

It would be like, well, why is my app taking longer to to start up the first time?

yeah.
Like when I push new code, things
you
like that. It’s like, well, your the new container’s it’s doing a new deployment,
Mmm.
things like that, right? It

My

niece was very frustrated how long it took to push the new version, even though it took like only like one to two minutes to like be

Yeah.
live of her game. That was her like, she would like live in preview mode. But I said like,
Hmm. Right.
if you want anyone else to see your game, you’re gonna have to publish it. Like she’s like, no, I’m gonna play it here. But I’m like, yes, but
Yeah.

you’re not gonna play it in preview mode for forever. Like that is like the preview server of your thing. You have to like publish it. And she’s like, it’s so long.

it’s literally like 60 to 120 seconds,

Yeah.

but it was very frustrating. But yeah, like it’s great though when people wanna know, like why is it like this? What’s happening? Because then agents are such a wonderful opportunity to learn. know? Like I feel like I’ve learned so much, but going back to like my 2017 experience, I was worried.

because from 2017 to 2022, I was just an engineering manager. And I was getting to a point, like through those years, I stopped writing code that shipped to production, right? I would review code, I would design systems with my team. I would, you know, discuss things, but I got really worried that I was going to become a really bad engineer, right?

I thought, so then I started a new job and in that job suddenly I had to actually write code. It was not the job description by the way. However, this came in as a pre-agent.

Was this pre pre a or pre agents?

Yeah, so I feel like with 2022 that like you, I think when do we see the first like, but they’re not coding

agents even when they come. Yeah.

Like November. Yeah,

I mean like November I mean I remember th around Thanksgiving of twenty twenty

Yeah.
two when ChatGPT maybe three five came out as kind of that was where it went from being a toy. Yeah. Right. No,
Yeah. But it was… Yeah. But people almost used it to like, let’s chat with it.
I don’t think I mean
is was also different. Yeah.

Maybe some people were using it, but I don’t yeah, I

don’t I don’t remember using it for software for anything software related for a time.

Yeah. Yeah.

And I was too, okay, I’m just going to be honest when like ChatGPT came out, like I was like, it’s going to like chat with me and they’re to harvest my data to like start profiling me to give me ads. That was like my first reaction. Cause I’m like, we’ve been here before with Facebook. We know that these things, they take information. We know at Google and they all do. They all eventually make money from ads.

Well

as as it’s m as it is moving now, right?

Yes.

So I was like, this is just for ads. But to be fair, it’s taken me longer. It’s taken longer than I ever thought to get to ads, to be fair. Like I thought it was going to happen really quickly to just become an ad machine. But like that was my first reaction, right? So I was like.

Yeah. I guess there

is just such a well the revenue machine for automation is

Yeah.
been there. I mean there is a big B2B side of it
No, you didn’t. Yeah.
that doesn’t exist on the product size for like
Yeah, like different from Facebook.
Instagram or Facebook, which is

or meta

or whatever we’re calling it now. Do we say meta or do we?

Meta, yeah. Yeah. Um

but yeah, I mean to get to the larger individuals using it, people

Yeah.
who aren’t paying for a Claude
Yeah.
or ChatGPT people who aren’t paying money for it, then you
Yeah. Yeah.
y as always you become the product if you’re not paying you’re paying for it one way or another, right?

Exactly. Yeah. Yeah, exactly.

If you ain’t paying, you’re the product. Yeah, I love that.

Yeah.

And anyways, then I had to start writing code, right? So after not having shit, so in 2022, I have to start writing code. And to my surprise, I found out that I was much better than I was back in 2017, surprise.

But like, felt like a surprise because I’d come in with very low expectations of myself that I thought I was going to be slow. I thought I was going to be missing things or all of that. But actually I found myself being much more confident, much more like faster at setting things up than I’d ever been. And there was no AI that I was using at this point, right? And I think to me that was just…

and learning when I think about software engineers starting to use agents. If you go about it with curiosity, I think you can become a better engineer.

Yeah, I definitely agree that

you you c if you want to effectively use agents as well, I still th st think you need adversarial checks and things like that and building those

Yeah.
out, understanding them or look figuring out what the automations are, you understanding what the actual underlying process is is going to help you
Yeah.
to get there.
And then you just like expand your own knowledge. Like I feel like I learned so many new things from coding agents. Like it’s taking me on tangents of learning things that I hadn’t before. Like I am not a Go developer, right? So I only started exploring Go. I come from a Java background, like how boring that sounds. But like I came from a Java background, which is enterprise financial software.

It’s pr

probably the most used language globally, I would guess. Yeah.

Yeah, think it’s I

think like things are getting like, you know, yeah,

Other than JavaScript, of course.
there’s like so many things but I feel like especially enterprise software, Java is, you know, king. So I came from yeah, financial enterprise software and unfortunately, I’d also started I learned Java when I was like 16. So I guess and you can ask why because my school decided that that was the language we’re teaching. Right. So

Well it’s the same

when I was in college, the all the introductory programming courses were in Java because I

Yeah.
this was in two thousand two for
Yeah.
me, so it moved from I think C++ to Java.

Yeah,

I feel like some universities and stuff, they stuck to C++ because they were like better. I don’t know what they thought of themselves, but I feel like there was this like prestige in the university that still leaned into C++, at least when I went to university, it’s like some. But my university actually did Java as well. So I feel like I did introduction to Java so many times in my life. But as I came in, but then I got to learn.

about Go, but what was so fun with a coding agent helping me understand Go was that I could say, hey, I know Java and then having it teach me things, what’s different, why it’s different, why things are similar, or like, it could leverage the concepts that it knew I knew, right? Which I think is another very fun thing about like agents and like coding agents, if you provide the context about you and what you know.

it can actually use your existing knowledge to help you build new knowledge. So.

Yeah, I d agree that I if you want to learn things now, then you’re gonna have a better option to do it than you really ever did before. It’s like you have an expert
Yeah.
who can just you can ask any question to them at any time and get an answer.

Yeah, yeah. And

you can make it personalised to you by saying, hey, I know this. I was trying to get the coding, not coding agent, but I was trying to get Claude to teach me Spanish based on that I know Swedish, German and English. Cause I was like, hey, I know these languages. Could you like, but then I gave up off. I really wasn’t clearly interested in learning Spanish. It was just that I started meeting with people that spoke Spanish and I don’t speak Spanish. So I felt a bit left out. So.

So now now you house your Spanish now. ah

nothing because I only spent two days but

I was fascinated that it gave me personalized things. I think I learned more about Spanish grammar than I learned Spanish to be fair.

Mm.

So

that’s very, very exciting.

Very exciting.

Like, I clearly realised that it wasn’t a necessity in my life to learn Spanish, but I thought it was interesting. I like the idea of having a personal tutor, like whenever you want one and they can personalise your learning experience. Okay. I have this like weird thought because I will go…

Let’s hear it.

Okay, I a question. Actually, I want to hear your take on it. I feel this is my opinion.

tell me if you agree, disagree, or have a completely different take. How many people are actually building agents, not using agents, building agents and deploying them to production for use? I feel that the number of people doing it is smaller than the marketing, like the vendor companies selling you solutions is making it out to be.

I think there’s a relatively small number of people deploying agents. I would agree. Um
Hey, and what is the barrier? Like this is something I’ve been thinking about. Like what is the barrier for doing it? Is it there’s actually not enough problems that needs an agent. So that’s why we don’t have agents in production as much. Or is it because it’s too hard to build? There’s like, what is the reality? You know?
Yeah, my theory is one that most individual developers have subscription plans and
Yeah.
the agent agents don’t building your own agents don’t necessarily work with the subscription plans. You need to go on
Of course not, yeah.
to API usage. And so I think that’s
Yeah.

one thing that

people don’t

Uh, yeah.
want to then pay additionally for that.

Because yeah,

like with Claude, for example, I have a Claude subscription and this is yeah, because I can set up the workflows, the recurring things. I can set up these like schedule tasks. So I have like a general purpose agent harness and I can have, instead of me building an agent, I can have literally scheduled tasks that help me doing triage of new GitHub issues. like. uh

I’m a maintainer of, by the way, it’s fun, I’m a maintainer of agent router, not product open source, part of the AIF. I’m doing my plug, but please, that means it’s open source. It means a bunch of people are raising issues in PRs. And I like a little bit of order and structure. So I want to have like labels on them so that I can get analysis on trends on which areas and themes, and I need to label them so I can easily run a theme analysis.

Right, makes sense? So I have, so I run it in Claude.

So where do you run do you run that in your local harna? Yeah.

Yeah, I just run it. I just have a schedule task that can do that because why, and again, sorry, I just thought about this as you were saying, like a lot of people use their subscriptions and yeah, I do. Like someone would say, you can build a agent that is doing like GitHub project, like admin for you, like labeling and all of that.

or I can just have a scheduled task in Claude, right? And then it goes off my thing.

Yeah, I think that’s how

of people I mean that is an agent, right? A scheduled task in Claude. I think

Yeah. Yeah.
that of people who are building agents, that’s what most people are doing. And then
Mm.
I think it’s somewhat rarer that people are deploying them elsewhere. I mean, now you can do it
Yeah.
like OpenAI, you can run on the SDK using their using their o agent SDK and basically just push.

Yeah. Yeah. Yeah.

Now they have all of the other things that’s coming along. I just thought about opening up. We have the little dots now. I haven’t tried

Right, exactly.
them out, but they’re like your little mini agents. They didn’t have to build.
And that is persistently on as well. Yeah, I think that
Yeah.
that is the other most I mean, some people of course have a separate server running somewhere, but
Yeah.
you have to invest time or if you wanna start getting into mixing it with code beyond something that’s
Yeah.
a skill, then you have to pick a framework, right?

Yeah.

Or what if you could, I don’t know about the dots, but what if you could extend the dots with custom code available, like custom tools that you put in to them? I don’t know. I need to look into this.

Yeah, I don’t know

y what it exposes yet as

Yeah.
part of the integrations, but I would think that
Yeah.
that’s outside of MCP. I mean of of course there’s MCP, but what beyond that?

Yeah. Yeah. I have this,

honestly, to own that topic, I actually have started to think that the biggest thing in agentic development is going to be more and more like integration, right? When I say integration, mean, like whether that is to tools and whatever type of tools that are integrations to data. I mean, we can already do these things, but I think that because these general purpose.

agentic harnesses, if you will, can solve so much. But sometimes you need data integrations or you need like tool integrations or even just like custom codes of scripts that you needed to execute for you. And maybe the actual loop, the actual agentic loop, do everyone need to build their own? Right. And could you, I find it fascinating. Like,

I am trying to find the problem for myself where I need to build a standalone agent to do something for me that is actually cheaper and like makes financial sense to run as a deployed always own separate agent than using the vendor tools, if you will, like from Anthropic or OpenAI or from Google even. I think Google is quite interesting. They now have this, so okay.

I’m going off on a weird tangent, but okay. So have you used GCP in your life?

Yes.
Okay. So if you use GCP in your life, you know about Cloud Run, right? And sort of took away all of the worry of Kubernetes and managing all of that for you, right? So I don’t know if…

Yeah, there’s no one

no one quite I th of AWS or Azure. I mean

Yeah.
maybe Azure has something more similar, but AWS does not have something.

Yeah. They have like the lambdas,

but I feel like the lambdas are like, the AWS lambdas are like thinner, like what you can do versus when you deploy. Yeah. Exactly. Yeah. Yeah. Yeah.

Yeah, it’s function based versus container. The layer of abstraction, it’s more like a deployment in Kubernetes versus function. I mean of course you

I think can do anything essentially with a function, but

Yeah,

I know there’s like some challenges. My husband was doing a bunch of stuff with lambdas and one of the challenges like long running requests become really

Yeah.

problematic with lambdas. But yes, like, and now they’re having like agent run. So you can deploy an agent. So it’s trying to make that easy, right? So you can deploy that. And I think that’s quite fascinating to me. that, like I feel like it has to be super easy. Like you’re not going to stand up a Kubernetes cluster.

Some companies will because they are big vendors

Yeah.

that are selling like the agentic capabilities. Like think about the lovable example, right? But again, is it lovable? Now I don’t know, but like imagine you are lovable and you have lots of agents that need to run. Are you going to use a GCP like agent hosting solution, or you’re going to build your whole thing yourself from like Kubernetes and up? I would argue you’re probably better off using like a, you know,

cloud provider, infrastructure, blah, blah. So you don’t have to worry about all of that. You just worry about having small agents to do your thing.

Yeah, I think it

depends on how your d data transfer patterns too. Like are if you’re already on GCP or whatever

Yeah. Yeah.
a Claude provider, then it makes sense to be there. Unless you’re you don’t need to move a lot of data, right? Because that’s always the chall the Claude provider. Moving data is expensive, yes.

Yeah. Data is expensive to move in and out. Yeah.

You don’t want to move data more than you have to. It’s all them egress costs. That’s like, there’s ingress costs, but egress costs will get you. Like, it’s not fun. So it’s like, yeah, you just find it fascinating. Like who will build agents? Where will we see that happen more? And

I guess it’s the enterprise perspective again. think that there’s like this difference. You have like the small companies, medium sized companies, right? And you have big enterprises. I can imagine more like of the big enterprises. I have heard of big enterprises deploying agents in their systems because they’re completely, you know, blocked off from the rest of the world. They have like completely Chinese walled off systems.

So in those instances, sure, it makes sense that you build, you have some agents that can run all the time.

Yeah, I think big enterprise, you’re gonna build it wherever you’ve already got your systems running because that’s
stuff. Yeah.
your constraint, but for yeah.
and then you can use your coding agent to build an agent.

Exactly. And so you

It’s fast too, right? Like you can build up or maybe use an open I mean, there’s open source frameworks like Langchain has their

Yeah.
uh their framework for building agents. There’s others.
Yeah.
I mean there’s many others, right? AWS has strands and I mean of
Yeah.
there’s tons of frameworks for doing this, but
in which we’ll win. ah So exciting. Will anything win? But I find like…

Yeah. That’s the weird thing

in in open source today, I feel like, is

Dude, like,

and there’s so much, even like in open source, like I find it, being in open source, I find it stressful because when I say stressful, like.

the expectation from adopters that, for example, I should understand alternative solutions in depth to be able to answer to them, like, what is the difference or why should I pick that over that? And I hear like most of my answers, like, I do not know your environment. I do not know your requirements. I can tell you what the solution I maintain is good at solving, right? I can tell you where…

maybe it’s not your best option. I have some opinions, but it’s like, am not an expert on any of these other things. I do not want you to trust me on these other solutions that I’m not building.

Right.

If I know something, it’s probably outdated as well. That project has probably moved on. Say have information from two months ago on a alternative project.

I won’t like… That is probably outdated by now, right? Like if they might have added features, they might have changed things that I don’t know about because I cannot spend my free time being constantly up to date.

Everything is moving fast.

Yeah. And I think that’s maybe my small frustration is like as an adopter, that is an adopter responsibility for you to know your problem.

And

the best I can do as a maintainer is tell you what is, where are solutions. So yeah, I’m a maintainer of agent router. I would often tell people it’s really good at massive amount of scale traffic. It is a bit hard to configure. If you literally just have a very small amount of traffic and you have one or two agents, maybe.

The learning curve of configuring that is not worth it. And you are not going to benefit from at scale traffic and connection handling. If you’re handling a small amount of connections, you can use something lighter. Maybe you can use a light LLM gateway. But

Yeah.

context of your situation, the person building something is what matters. But again,

My information can be and is often outdated on other projects.

So for people who don’t know about Agent Router, what is the primary problem that it solves?
Our first mission was to enable people to configure and use Envoy Proxy for inference traffic. That’s where it started, but now it’s also inference, MCP, and A2A. So for people who are not into networking, and I don’t talk about networking with humans,
Else.

Yeah, so what’s really exciting to me,

I like to say there’s two types of engineers in this world. But you may argue there’s a third one because you’re into data.

Yeah.

But let’s start with the simple. I would say there are box engineers and there are arrow engineers. Because if you think about the simplest architecture diagram you’ve ever drawn in your entire life, there was two boxes. And in between those two boxes, there was an arrow. Right?

You have people who, when I say boxes, that’s like logic, business logic, stuff that you want to happen.

They’re building the boxes.
Yes, you have people who build boxes, right, in the architecture diagram. And there are little box engineers. They might be doing functions, like in lambdas. And you have big
Right.

box engineers. They might be managing big servers, right? But ultimately, they are concerned with…

actually making stuff happen in terms of logic. So then you have arrow engineers. They need to allow the boxes to connect to other boxes. And a box could even be a database, by the way. How exciting. A database server is a box. But people don’t normally draw it as a cylinder, but whatever. Let’s call it a box for now. But you know, we can’t.

Yeah, and I don’t I don’t know why where that cylinder came from. It always looked like a a can of some kind to me. Like a like a soda can.
or like a can of beans. It’s
Or a coffee can. Coffee beans. That’s what it looked like to

like we put it all there. We put it on the shelf for storage in the pantry. But anyway, then the arrows. And what’s really interesting about arrows is how we connect. So routers, gateways, proxies, whatever you want to lead into in terms of a term.

They need to help you route the traffic. And you can argue this is in itself a little box that sits in there. It’s so small you can’t see it. there you…

Boxes all the way down.

It is boxes, but even our arrows are boxes if you look close enough, right? Very confusing. But we can say it’s an arrow to the boxes. There’s some very advanced arrow engineering. I like to talk about there’s short arrows and there’s long arrows. And the really long ones are the people who worry about like transatlantic.

network

connectivity. Very exciting. There are people who worry about data center to data center or cross cloud provider arrows. And they are big arrows. Different problems. And then you have short arrows. And shorter and shorter. You have service to service arrows inside of a Kubernetes cluster. I say they are short arrows. And if you will, there’s even shorter arrows. are services within the same pod in a Kubernetes cluster. They are really short arrows.

But anyway, at least when we talk about agents or even any piece of software that needs to interact with inference, Often inference is either hosted externally or you can be hosting it yourself, right? So you can have self-hosted or externally hosted, but you need to reach it. And there’s some really exciting pieces that becomes really tricky when it comes to connecting to inference. First of all,

It is unpredictable in terms of cost. So back in the microservices era and the explosion of the API economy for those who lived through that, when we were going to make all the money from exposing the APIs to our system, I don’t know if anyone really got rich of that. I feel like Twilio

Still hasn’t happened.
is your best example of an API first product. Yeah, I don’t.

Yes, yeah. Um how many others are there? I mean L L Ms

may be the next one.

Yeah, next one, yeah.

And yeah, so we got to this place where people were like, we cannot count number of requests because when we used to deal with microservices and software that did not improvise, I like to classify inference or LLMS like this improvising software. So.

What do you mean

by improvising software?

It’s

software that improvises. It is not deterministic. I just find it a fun way to look at it. Agents are another class of improvising, software that can improvise. Normally, if we go before we had anything that was non-deterministic, the most unpredictable actor was the human. Now there are a lot of agents interacting with software, so now agents are…

the other beast of unpredictable actors. yes, mean,

The K they are the chaos agent we’re introducing every day.

they’re not even, they’re not chaos on purpose, but they’re like chaotic in their own way, aren’t they? They can suddenly make loads of requests in a way that a improvising human is limited by physical time and space. Whereas…

improvising agents. But so what we first needed to do was like connect to inference and try and maintain costs. And so you know, like how we talked about a lot of people have these wonderful subscriptions where they can use a lot. They’re not charged per token. But we know what happened was that a lot of enterprises were not getting those deals for their engineers. They were like, well, you’re so big, you’re going to pay.

token costs. So, I don’t know if you’ve heard about this shift that happened for…

Yeah, that’s

you only you mainly I mean, I think th there are some like enterprise plans, but for the most part, right, enterprises are paying per token pricing.

Yeah, because I

feel like Anthropic moved big enterprises onto per-token pricing for their Claude code and everything. Whereas if you’re over some number of seats, I guess it is, you fall into a new category of.

And I’m sure they give them like discounts and stuff. I would expect so, right? And same with OpenAI, like they slap wonderful discounts on. But we needed to be able to calculate number of token spends and number of tokens spent per provider and then be able to do cost calculation. that was like budgeting was one of the big ones. The other problem was, well, we don’t want the code. So whether they build agents, right? So companies that build agents, like, because I do know some, I do indeed know

because

one of the co-creators of Agent Router is engineers from Bloomberg. And Bloomberg, you know, do cool stuff. They actually were do, they’re a big company, but they do a lot of cool things. So they were like, well, if we switch from, you know, a Vertex hosted or a, even if you think between, because you can have Anthropic models on Vertex and you can use Anthropic models straight from Anthropic, right? Even if you need to fail over because Anthropic,

is not the most wonderfully stable provider in the world of software, right? So if you have a run into it being down, then you would have to failover to Vertex, right? To your Vertex hosted version of Claude, whatever, right? Or Opus. Yeah.

Vertex or or AWS bedrock, wherever you wanna

go, right?

And like I’ve heard about the OpenAI to Azure failover, right? Cause you have OpenAI models there. then you, so you often will do multiple layers of failovers. So you probably want to failover in same, to same model. And if that’s not possible, you want to failover in same model family. And if that’s not possible, you want to start failing over from one provider to another. Okay. So this becomes interesting. So now we have to be able to translate and send the code of the caller hasn’t changed, but we have to.

change

the request and its structure.

You don’t they don’t you

don’t want the caller to have to know that Anthropic’s down or Claude’s down, right? You just they just want their agent to uh keep on vibing.

It changed, yeah. Like we don’t need to guess inference response. Yeah, it’s

gonna like have a great day. Like nothing’s down, right? So that failover process and translating. So we landed on like the open AI API spec, kind of. I say there are like, we couldn’t.

stick to it completely, there are some add-ons. So it’s compatible, but we had to add some extra things to be able to accommodate for a lot of the functionality, because there are functionality on other providers that doesn’t exist on OpenAI. So you kind of have to extend it a bit to allow for that. But fundamentally, having a safe failover point and having a single interface.

And having cost control, those were the three first goals. And to use Envoy as the underlying data plane proxy. Because Envoy is this proxy that is a decade old, so you have a decade of resilience. And the boring stuff that happened at L4 levels of networking, like connection pooling and handling, and all of the failover and back pressure, and all of those things.

that

is not sexy, but you have to worry about when you worry about arrow engineering. Like how do you manage connections and how do you update configurations on the proxy? What happens if you shut down the proxy? Like how do you drain the connections and how do you scale that up and down? Right, so there are loads of things to…

The lay the layer

over people are Envoy runs on Kubernetes, generally, right?

you know you don’t have to run it on

Kubernetes. You can run Envoy in a Docker container or whatever. But yeah, if you run it on Kubernetes, have to scale. Well, you can scale it up and down out this way, but yeah, you can run it on Kubernetes. You can run it standalone, but yeah, you have to manage your fleet of Envoy proxies, right? Because you normally don’t just have one. You would have many. ah But it’s, to me, it’s like a really exciting thing.

Then obviously over the last couple of years, we’ve learned so much about what’s changed in the shape of traffic. And something I did not expect, which I think is really fun, is inference requests, we know can be really big, right? You can have really big payloads. In our old world of API calls, we often had 10 megabyte limits on like…

requests like that was absurd if you had an API that took something that was more than 10 megabytes or even if you responded with more than 10 megabytes because if it was more it was often media like it would be like PDF documents or images and that is a different type of traffic like the media traffic versus API requests. Yeah, exactly.

Right, that’s static a static assets for the most part, if it’s beyond

that s espe, I mean on the input side, I don’t that would be rare historically.

Yeah, can, people upload like videos

and stuff, but that’s like, you handle that differently, like the uploading and often if you did like AWS, you would like have it uploaded to it an S3 bucket and then your system would like to move it from one to another to like a private place. But you know, there’s like things that work differently. And then, so what I found so exciting or weirdly fascinating was that the request comes in, but now we have really big ones. are way over 10 megabytes.

And

then what was really interesting to me that it, well, what does a proxy do all day? Well, a big thing that a proxy does is that there’s a TLS, like a handshake to encrypt the message. The client has now encrypted and you hold the key, the private key to decrypt this message. Because now when you send it on, if you’re sending it to Anthropic, you’re going to have to re-encrypt it, right? For the TLS handshake to send it to Anthropic.

‘Cause you’ve decrypted it so then you can

otherwise you can’t do anything with it ‘cause it’s encrypted.

because they decided we, yeah, cause we also, and

also we often have to inspect the body because we decided to put model names in the body and we decided to put other routing. Anyway, that’s another question, like an other topic that’s like, I’m like, they didn’t speak to any network engineers when they designed this interface. But anyway, cause maybe you

No yeah.
should have put in the header. If you made it easier for, yeah,
In the network headers. Uh
and the headers would make it little easier to like.

At the request headers,

yeah.

Yeah, make it lot easier to like deal with. So we didn’t have to like pass the body because these big bodies take a lot. But of course, when you, even if you want to see the headers, the headers are also encrypted, you have to decrypt them. But like passing through a body and like pulling out data from a large body, even if it’s JSON based, it takes compute time, right? But yeah, so the decryption and re-encryption of these big bodies.

is wonderfully fascinating. Like that maths that you need to do, like encryption and decryption maths, takes a lot of CPU time. So I was so confused when Nvidia introduced their blue field DPUs. They’re not new, but like they became important in AI. And it’s because we can now with Envoy Proxy, like offload the decryption and re-encryption from the CPU to the DPU. So DPU is a data processing unit.

at the network layer so we can speed that up massively because now the bodies are so big yeah doing

So the sp this specialized hardware for this kind of
fancy maths on data and that was

And this is this is hardware

like some of the I imagine some of the cloud providers have built, like AWS, right? They have their

Yes, they have, yeah, they will use their Nvidia DPUs

probably. And, you know, we were all about GPUs, they are the DPUs are having a moment to shine as well. Right? Because we have to move data around and data needs encrypting and decrypting. So that’s like fun stuff that I feel like I had never worried about in my life before as a compute intensive process.

that the CPU would not be powerful enough. I mean, the CPU is powerful enough to do the maths, but it will slow down. Like you will increase the speed of handling the request through the proxy by offloading the particular TLS maths over to a DPU.

I’d seen

something the other day actually that someone had they had ported the HTML processing, like HTML parsing over to run using uh eBPF so that it ran purely in kernel space for like a 4x speedup or something like that.

Yeah, like eBPF

is like also such a interesting thing, like it’s such a popular thing for many reasons for people. It does so I think when we talk about short and long arrows, eBPF is great for short arrows.

if you follow my arrow analogy of like networking. So obviously eBPF makes sense for short arrows. It would be very weird to use them for long arrows. yeah, so it’s like, it’s really, I feel like networking and connectivity between services, between systems is really fascinating. And the AI era has brought a lot of challenges in terms of how we had to shift how we saw cost.

we

had to shift also like from having really fast requests to slower requests. Like because I used to get told when an API was slow, there was a problem with the API, but in the age of AI, apparently now it’s all okay to have slow requests. Now it’s all fine. So.

Right, how do

you handle that when like a request I mean if you’re blocking on it could take like minutes, right?

So they,

but the exciting part with especially proxies like Envoy proxy is that you have an event loop inside of the proxy. Okay. Clearly I’m a nerd, but in a simple way of thinking about it, imagine you have a restaurant, right? And you go to the restaurant, you sit down at the table and there’s a waiter that comes to you and you place an order. Now you’re making your request, right? You’ve made your request. If you have

a situation where you are simply having one request per worker, if you will, one request per waiter. The waiter

Per waiter.

would then go and put your order into the kitchen and they will stand by the kitchen until that is ready. That’s the backend responding to your request. But the smart thing that happened in the evolution of proxies actually quite a long time ago, I think it’s over 10, it’s probably 15 years ago.

That is actually a really important thing that happened in the proxy evolution was that the event loop. So that’s not necessarily unique to on-work proxy, but modern proxies allow the waiter to go and take orders from other diners. And also the exciting part is you don’t necessarily have to have the same waiter come back to give your food to your table. You can have another one picking it up. That’s the simple analogy for how it works, but there’s a loop and there are multiple.

workers, if you will, they can pick up and handle requests. So they are not, that’s how we went from being able to handle like tens of thousands of concurrent requests. So Envoy Proxy is really good at handling large amounts of concurrent requests that are waiting.

This

goes back, are you referring back to like early nginx days and moving to the event loop, an event loop versus

Yes, nginx.
thread based?

So nginx is actually the system that originally solves our problem. So that was NGINX got such a big explosion of adoption in as nginx solved their C10K problem, the 10,000 concurrent connection problem, because that used to be a problem before it was solved. And that was a problem for the back then like Web 2.0 as it was called, because we went from Web 2.0.

1.0 which was more like stuff’s on the internet you consume it to web 2.0 where you interact with other people and stuff. I think that’s a super exciting time. So NGINX is I guess the OG solver of the big concurrent connection problem. And then you have Envoy Proxy that, so now going on a weird like networking tangent, but what Envoy Proxy

That’s that’s cool. I li like it.

But

Envoy Proxy solves in the microservices era. So Envoy Proxy gets this time to shine as we move into microservices era. Because the very terrible and annoying box engineers, very annoying people, they decided to have, yeah,

I won’t tell them.

they had loads of boxes because they decided to start breaking down their monoliths into smaller boxes and they were going to like have loads of them.

and they were gonna scale them up as well. So then they came up with workload management solutions. The winner eventually is Kubernetes in terms of adoption. There was other solutions out there before Kubernetes became sort of the winner. But those boxes meant that they were moving around because they were scaling them up. They weren’t just like making more of them. They also needed to move them often from one box to another. So I like to explain it to people as the workload manager is

playing a dynamic Tetris game of trying to fit as many differently sized boxes, differently sized boxes meaning needing different amounts of CPU and memory to function onto the available hardware or virtual hardware wherever you are in the world, but moving that around on those boxes. And that became a problem for the arrow engineers, right? So the arrows had to get repointed, right? You needed to add them. And this is where Envoy Proxy

became so powerful with its dynamic configuration reload. So you didn’t have to actually restart the proxy to pick up new config. You could.

At first

back in the old day you had Nginx, your config, and you hard coded in here’s the here’s the

Yeah.
IP address of my four servers that it’s running on, right? That’s yeah.

Yeah, there’s the ports.

And then, and if you wanted to add stuff, you had to restart your Nginx. Nowadays you can do hot reload with Nginx by the way, just to be like transparent about

Yeah. Yep. Yes.

that. But that is like why Onward Proxy becomes this critical proxy of the Claude native era, right? So that is why I think it’s really exciting that everyone has largely used Onward Proxy every day and…

It’s like if Envoy Proxy, like if you could make something magically disappear from the entire world, right, with a snap of your fingers, like if you removed Envoy Proxy, suddenly like the internet would collapse, like software would collapse, like you would not be able to pay with your credit card, you wouldn’t be able to like watch YouTube as if that was something important in your life. If you are watching this on YouTube, I’m sorry, YouTube’s clearly important to you.

that’s right. That’s right.

But

there’s like, use Envoy every day. It’s on mobile phones. Like there are Envoy mobile that runs on your phone to help with connections. So to me, that’s super exciting. Like everyone is an Envoy user. And probably most people are an NGINX user without knowing it too. Like NGINX and Envoy, like, and I don’t think they are necessarily competing technologies, by the way. I see NGINX today as the powerful.

Like if you have a website, if you want to serve up images, if you want to serve up any static content, I would not use Envoy for that. I would use NGINX for that. Even though I’m an Envoy fan girl, that doesn’t mean Envoy is the hammer that solves all your problems. It doesn’t. It doesn’t fix your screws, get a screwdriver. So, you know, choose the right tool for the job. And often they work very well together to solve a problem. So.

To me, it’s just really fascinating how now the AI era has like all of these like longer running requests, bigger requests. And we also seen like this influx of people inventing new like routers, gateways, whatever you want to call proxies, like whatever you want to call them. Some of them, not all of them, some of them are

through networking components that understand L4 challenges, like layer four, where we are not dealing with

Mm-hmm.

like business logic, but some of them are just like L7 pieces of software that is like, I would more describe them as a server that’s able to get a request and send a request, right? And I think that is a very different, and those types of sort of.

business logic-y things should probably not call themselves a gateway or proxy. They should probably lean into a existing solid foundation like NGINX or Envoy and add extensions to them because both are incredibly extensible. Because then you just get all of this traffic handling stuff for free. anyway, that’s my thought. And it’s so interesting to me with, you know, we started talking about agentic coding. I think people often underestimate the challenges.

of

things because the coding agent can build it for them.

And how does this tie into things like MCP today? It seems like that would be relevant

Yeah, MCP’s

gotten a lot better. So the newest version of MCP actually seemed to got some networking people involved because now MCP is actually placed nicely. We had to extend Envoy to be able to handle especially the statefulness and other challenges of like multiplexing with MCP. So because we do a fun thing in the agent router.

where we are allowing you to take multiple MCP servers and create a facade MCP server and you can just expose a subset of tools so you can have special little. So that’s a bit tricky.

So it’s a MCP

proxy there as well.

Yeah,

yeah, so it becomes tricky. But now, with a new version of MCP, we are able to actually handle MCP traffic natively in Envoy Proxy, because now it behaves better.

So before the latest version you had to essentially hack around it.

to

hack around a bit because of the session. So to be able to do the multiplexing where we created a facade for the, okay, if you’re interested in like weird technical details. for the, I think it’s funny because often in like, we talk about MCP v1 and MCP v2, but that’s not actually the names of it. But.

Yeah.
They have like date versions, but they’re probably too long to say. So we just go with V1 and V2, even though that’s not the official names. Yeah, like the dates, like, nah.
Those uh those ISO t those timestamps are Yeah.
The summer 2026 version is a new version. But that again, I know it’s got a specific date and how am I supposed to remember that?
There you go. Yes. Freshly mint freshly minted.

Yeah. But what is like interesting, so when we did this multiplexing to create, allow you to create this facade.

Because of the statefulness of every upstream server that we had to manage was like to manage all of these sessions. And there was two schools of thoughts how you could go about this. You could literally have a data store next to your proxy that can store all of the upstream. Upstream recall, by the way, I used to get really confused by the word upstream and downstream. Upstream is where you’re going. You’re going upstream. That’s your destination of your request. So.

your target MCP servers, you would have multiple sessions. So what we ended up doing to make this really easy to reduce the number of moving parts in the agent router was that we actually created an encrypted combination of all of your sessions. So we knew which target server.

And then that, from your agents or piece of software’s point of view, that was the session ID to the facade MCP server. So that meant when the request came back in, we didn’t have to go to datastore to fetch the upstream session IDs. They already came along. We all only had to decrypt it.

So is that being added as

so is that being added into the data the payload essentially? It’s a header.

into the… it’s a header I believe,

if I remember correctly. Maybe, or maybe that happens later in the V2 that we get to put in the header, we have to put in the payload before. But anyway, we get the session ID and it’s encrypted and we were able to not having to do any network calls to a data store to get the correct thing. that… I thought I didn’t come up with it, other people did, like Ignasi and those guys, but…

I think that was quite clever and that means that we’re sort of, we were able to handle it. But then there’s like other, the new version of MCP puts things more, things that should be in headers are in headers and it’s a cleaner, like, okay, so this is the other thing, right? Like we talk about this as protocols.

They’re

going over HTTP, right? So like the fundamental protocol we’re really dealing with is HTTP. We’re making requests. We’re having opinionated structures. I think for MCPs, it’s JSON RPC, really, we’re dealing with, uh which goes over HTTP. But uh it’s obviously an opinionated structure on how the request.

and responses look like. And also an opinionated dance, right, of getting the tool list and seeing the tool list and then for the agent to make decisions.

Has it become a challenge working over HTTP with things that inherently involve large payloads, streaming?
HTTP is fine with it. I just think that a lot of the proxies built for the traditional API and service mesh era were struggling. So if you just look at traditional API, like commercial API gateway solutions, they often had a payload limit of 10 megabytes. And that was generous, right?
Yeah.

And those commercial solutions would have been built on Envoy or on Nginx. Like, few of them would have been completely built from there. I think Apigee were not built on either of those to begin with, if I remember correctly. But those were struggling. And that meant that…

we have to like configure because one thing that happens with large payloads and long running requests is that the risk of failure

This would be the argument why no one wanted to have SLAs on anything larger than 10 megabytes. Many gateway could allow you to set it higher. Like when you see the SaaS provider API gateways, you could set it higher, but now their SLAs are not promised anymore as a SaaS provider of a gateway. Because the challenge when you are taking a big payload and you are

reading that into memory, especially we have to read it into memory, to buffer it into memory, to be able to either obtain fields like the model name if we’re making routing decisions on that, or we have to…

get hold of information inside of the request to be able to translate it from one provider interface to another provider interface, right? So the bigger that is, you are taking fundamentally you need more memory from your hardware to be able to put that in and do compute on it. So that means that, yeah. And also like just the…

More variance, right, and how long it’s gonna take and depending on what you need to

parse, if you need to compute on the underlying values, that

Yeah.
parsing could get expensive.

And also like the tricky part to think about is like if you are planning, if you are doing your effectively your hardware provisioning of your system, like having an understanding of how much memory and CPU does one instance of a proxy need, right?

Because at the end of the day, if you are sending really big payloads and you need to read them into memory, there is no way around it. But this is not consistently needing this amount of memory. That’s the other crazy part, right? Because you can have some payloads that are small. And what if 80 % of your payloads are really small and most of your traffic is small payloads, right? But then you have to be prepared for the big ones to arrive. So it makes resource planning in terms of hardware like harder.

Yeah, that’s flipped.

because of

the unpredictable nature. So is it impossible? then, OK, then we can have fun architecture ideas. But what if we

Mm-hmm.
have a two-layer proxy solution, and the first proxy only gets an idea of the size, right?
Mm.
And it will route it to instances that have more memory and CPU allocated to them. And then, so you can have a two-layer.
Gets a gets exciting. Yeah.
then you can be creative, right? But like,
Yeah.

what do you need to do? And it’s like, I think what’s interesting is if you’re like a hyperscaler, if you think you’re like, you know, Google, AWS, or like Azure, and you’re selling compute, you want to increase your profit margin, right? So you need to think about how do you make the most of your compute? The available hardware that you have, right? Say,

Most people don’t worry about these things, but this is also why when you use those gateway SaaS providers, why their SLAs will change or uh change as you increase the payload size. Because they can’t promise you that everything’s going to be all right.

If

there’s not enough available memory to read that into memory and you are planning to do stuff on the body, I think I remember that correctly with Apigee once upon a time. As long as you did not do anything with the body, you can go over 10 megabytes. But if you wanted to do stuff with the body,

Mm.
now the SLAs were not promised anymore if you went over 10 megabytes.
Inter interesting. I never th thought about that, but may it makes perfect sense once you analyze the constraints.
It’s all comes down to hardware. And I think that’s the fun thing about the AI era. It’s all about hardware. Like there’s no way around the fact that even though we’re writing all this software at the end of the day, we’re constrained by hardware.
Well, Erica, thanks again for joining us today. It’s been great to chat about everything from managing our agents through to the new hardware and network constraints in in agentic era. So great to have you and thanks again.
Thank you.