Please enable Javascript to view the contents

 ·  ☕ 22 分钟

J: welcome everyone to another Agent

Gateway community meeting. Um, we have a few items but nothing.

Um, if you have anything else like feel free

to add it. Uh, we can we can go and uh go in order.

Uh, while we’re getting our names in there and some agenda. Yeah, Carlos,

what’s up?

C: No, just like uh as a as a standing thing like just um we can have

like review the road map of uh always right at the end if they sign but other

than

J: um yeah definitely yeah I just want to also

go over uh recent announcement that this week we donated the agent gateway

project to the Linux foundation that was big news this week uh Lin is gone

giving the keynote at I don’t know what conference open source

summit or AI Summit, one of those, maybe both of those. Um, announcing that and

whatnot. Um, so that’s good news, I think. Um,

overall, like it doesn’t change anything on the day-to-day too much right now,

but it does mean, you know, we’re uh in a neutral foundation. So, hopefully that

will um, you know, stir up more contributions, etc., get us into

more marketing situations, all those sorts of things. So, uh, we have like a

charter and whatnot about like what that means now that we’re have like a more

open, uh, contribution model, um, that has a PR up, not not quite merged, but

basically standard open stuff. Yeah, it’s nothing. It’s nothing crazy. I

think we pretty much just copied it from from standard template uh, normal stuff,

you know.

C: from the Linux Foundation or from

CNCF? I’m guessing it’s Linux Foundation.

J: Yeah, it’s it’s fairly similar. Like I think CNCF is slightly more strict about

like that’s what that’s that’s what I’m

saying. Yeah. Uh you know the the high level is

basically uh if you contribute then anyone can

contribute if you contribute enough and you’re kind of a contributor then you

can be made a project maintainer and then there’s at the top level a

technical steering committee that kind of over on the company. So

C: yeah, I don’t I have not a lot of experience. I’m have my experience with

ASF and CNCF that Linux foundation. So I’ll be I’ll be learning but

same with us.

E: In general though, you just make the

rule. They let you make the rules for your own project.

Okay. Yeah.

C: I was just going to ask like if they have strict rules of selecting steering

um or not.

E: So So right now I believe again it’s

internal to the project. Right now the steering committee is right John it’s

meu and you all

J: yeah so I don’t know how all how other

projects work but like I’m from east there’s a technical oversight committee

and then a steering committee kind of a split there’s no split right now in this

project it’s just one uh I think it’s called the technical steering committee

actually it’s like both in one um we do have the ability to change the charter

moving forward like right now we just have one

C: um yeah I like this uh based on my experience with other CCF projects um

like like folks that are not technical or not coding, they’re great project

managers. Um they they can be in staring, right? For example, that’s just

one example.

E: Yeah. Uh so for what it’s worth, there’s

a there’s a lot there’s a bit at the end of the charter that basically says that

if we decide we want to change the charter, we can. So like nothing is

locked in stone. It’s it’s it it’ll be a living document.

C: Okay. And who approves this? The initial

members.

J: The initial members on the charter is

the initial maintainers who were me and you all. So

C: cool. Yeah, no problem. No problem. Now your

job is to grow grow community. Uh you have a responsibility more than being

convincing people.

J: Yes. Yeah. Uh I also noticed we got a few new

faces in here. You don’t have to if you don’t want to, but if you want to say

hi, share what your interest is in Agent Gateway, what your plan to do, anything,

we’d love to hear. Hey, Thomas.

T: Yeah. Hi folks, my name is Thomas. uh I work

on the uh data platform at Apple and we are exploring uh looking at the agent

gateway to deploy agents and hand you know manage MCP servers within our data

platform. Thanks.

J: Awesome. Welcome. Nice to meet you. Um, all right. If no one else, then I

think the only thing um left is to review the road map, unless

there’s anything else anyone wants to bring up.

We do had some open questions at the top, but I don’t know who asked these,

so I don’t know if they’re here to discuss them.

C: Yeah, I had one. I think I brought it up before and also to Christian

posta on the engine discovery. Linda maybe that was me on like

okay and I think is working on something uh

but if it’s not ready it’s not that’s okay we can discuss it when it’s still

not SOLO on the network DNA discovery of A2A this is more A2A protocol to

discover agents.

J: yeah do you know more of the state on

that or no

E: uh I think I mean what I what I know is

like it is something we’re interested in but I think for like right now, you

know, we have a lot of irons in the fire. Um, so I don’t know that anyone is

working on it this exact second. Uh, but it is something we have ideas around. So

no, no new updates is basically what I is my update is no update.

Okay. Sorry.

C: Yeah. The only thing I heard was like

something based similar as like a registry or a DNS registry like that

type of thing discovery. Yeah.

Agent, but other than that, I don’t have any info. I I’m yeah we can wait for

that. Yeah.

J: Yeah. One thing I will say is this this registry stuff most of it will probably

be outside of agent gateway. I mean if there is I think we might need to

integrate with it but yeah

C: it was just a gap that I identified when

I was doing A2A like how do I find my the agent cards other than putting in a

JSON file or array.

J: Um yeah definitely makes sense.

Uh let’s see. Next question was A2A gateway in front or agent gateway in

front of multiple A2A servers. Um not sure if someone’s on the call to ask

this but this should work. Um you know we can do

multiple multiple A2A servers

by serving multiple different agents or in front of a gateway. This should this

should work. Uh we can

C: yeah we’re talking about the same

concept of MCP multiplexing to do a multiplexing. I don’t think so. Right.

J: Yeah. So do we don’t do like any like sort of magic multipplexing like that

because it’s kind of um you know what agent

like we’re not you have to that’s like a decision by the client still but you can

still expose multiple in one agent gateway just on different paths or

different headers routing routing to them like like normal backend.

C: normal proxy the the baseline right of proxying that that agent gateway has

E: so agentgateway does have um different RPCs though like you can uh get like push

notifications and things like that so I don’t think there’d be multipplexing but

there are different like you know the same way that MCP has different arback

right like you can do arback for tools and things We we could expose basically

it’s the same, you know, same thing. It’s an RPC based arbback.

J: Yeah, it’s just something that it’s like more uh it’s almost more like the LLM

guardrail stuff because like the call tool like there’s no call tool that’s

like a structured thing, right? It’s just like start this.

E: Well, no, but there’s like confuse, right?

And cancel. There’s get task, there’s cancel task,

C: it’s manageable tasks.

E: Yeah. Yeah. Exactly. So you may be able

to run, but you may not be able to get historical tasks, right? Things things

like that because it’s there’s no p there’s a bunch of different Yeah. Like

RPCs that do different things. Okay. Yeah, there’s definitely A2A

definitely has has a room to expand on our capabilities there for sure. I I’m

less familiar with. Yeah, I haven’t got that deep into the

um other than tasks and just flowing around, right? Um

C: and then the secret one is interesting. What does that mean? Any plans to manage

secrets by agent gateway? In what respect?

J: Yeah, it’s definitely I I don’t know of any gaps currently without more context

here. So, I don’t know who wrote this, but um if there’s if there’s more than

what we have now,

C: K gateway has that capability, right? In

K gateway, you can specify uh how you want to authenticate to the

back ends, right? Uh if they need uh secret or API key and things like that.

J: Yeah. So I mean for various things that are secret whether it’s certificate

private keys or API keys or whatever uh we can load those from environment

variable or files and then for XDS K gateway will send them from secrets uh

Kubernetes secrets that is so to me if you just ask me to go manage secrets by

agent gateway that’s what I would say would do but if there’s more requests beyond that

I think just let us know.

C: Yeah, environment variables right would be the

normal way of doing it like you have a target load an environment variable that

that um I guess passed I don’t know config file um expanding environment

variable so or or if you need a API key in

authorization header to your back end um that doesn’t make sense MCP AgentGateway

just thinking out loud

E: yeah I think in general you know agent

gateway should be really good at, you know, network stuff. Like there’s a lot of

good secret management platforms that can get the secrets into our, you know

what I mean? Yeah.

C: Like and it’s just because I’m not another

header or following the protocols of MCP.

Yeah. I don’t think there’s secrets, but yeah, if the person is uh as a

question, it’ be good to understand the point of view what that meant.

And I I think I added uh the semantic search, but uh

idea uh that I saw in another gateway um that I found interesting of like

semantic search uh to be able to find which tool to use

that are available, right? That’s something that is provided by

cloud vendor.

J: Yeah, I’ve seen that as well from other

tools. I was curious how well it works. Uh like the concept seems nice. Um

I don’t know if there’s any data that you have or that we could find or test

ourselves maybe on the effectiveness of it and just in terms of like how well

the LLM can actually use it, right? Yeah.

E: But like also what’s the use case, right? like the LLM is already doing not

semantic but it’s already picking tools is the use case that you like like

what’s the actual use case there

J: but maybe have a lot of tools right

yeah you don’t want to expose all the tools

E: so it’s like a pre-filtering layer like
C: I think so um I can I can take the I can

take the to like uh research I’m new to this uh agent core at least uh this this

piece of the semantic search. I’ve been doing work with agent gateway in this

this cloud provider and and um I just saw the feature so I can take the to-do

to like take a look what what it means right and if it means anything for agent

gateway or not but I can just explain and maybe show a use case that make any

sense on what will be the the the benefit

but it’s the same thing around like um some people not related to semantic

search but uh in the people want to have a portal where they search which tools

are available that are configuring the gateway right like maybe that’s a UI

thing or something uh like like a catalog of like um yeah I

have like uh weather MCP and I have like a flood information and um hurricane

information like you have different MCP u kind of like UX but I might that might

be more a UI/UX type of thing and not searching semantically for the API.

Yeah, I just I just write brought the

reference so people can read on it, right? See uh if they find something

useful. Uh you have

S: Yeah, I guess I want to on that. I guess maybe along the lines we could think of

this as more of a uh a dynamic tool selection where you have some tool

selection based on tags or something because ultimately the LLM uh you’re

binding tools and then it uses that in the context. Uh so if you can do it

postbinding right during when you are providing the tool context

maybe the agent composition can be done with some dynamism like the the gateway

can have an API say that that you can pass attributes maybe that is like

semantic search but it could be like tags or other attributes.

J: Yeah. Yeah. I think there’s some room as well like on the MCP side like we have

like two split paths like the LLM side and the MCP side and I think there’s

potentially areas where we want to mess with MCP things on the LLM requests

themselves. Um like one example uh you know with like

OpenAI for example you can have them call a remote MCP server and if you want

call an MCP server like it’s a nice UX because you don’t

have to worry about anything. You say hey just call the GitHub MCP server

but then if you can only call the GitHub MCP server from you know your own

internal network like it’s not going to work. You’re not gonna let Open AAI call

your network. Yep. So I was thinking we could and

maybe like do something fancy like see that and then resolve that ourself and

actually make the tool call uh from agent gateway itself and we already know

obviously how to reach an MCP service because we’re already hooked up with all

of them. Um that would be fairly complicated but it could be something

interesting. like a a really like fancy nice

C: like grabbing like you’re having like grabbing the tool use payload that comes

back and then like instead of like g to the agent I’m going

to execute it trust trusted that that’s the

right answer I

I don’t know a good idea putting the

E: it’s called putting the

agent in in agent gateway you know

C: yeah and then we configure more yaml and

then do I get I build an agent with yaml in the agent gateway config

J: Interesting. Interesting. Yeah, I don’t know if it’s a good idea.

It’s just an idea I had. So, something somewhat similar on the wish.

E: I I think it’s it’s I also just want to like mention I think it’s it could be

cool because like then you don’t need to give your agents access to your tools.

You can do all of your arbback from uh from your agent.

So or sorry from your gateway.

C: Yeah. Interesting. Interesting. I don’t

know if I’ll be top priority but but yeah interesting.

J: Yeah. Next question we got here. I think it’s from Thomas about transformation

and transformation Cell. Um so basically the transformation broadly is just a

nice extensible way to modify headers and bodies and stuff in K gateway. What

how this is done is with Ginga templates. Um well actually technically

this library called mini ginger which is a C library that’s similar to the Python

ginger library. Uh that’s what the original transformation was trying to

take that um and port it over to to Rust. I found that I did not really like

the flexibility that it gave us in terms of implementation. So we had done an

initial implementation of this but it’s not hooked up. I don’t think it’s usable

at all and later we started using Cell a lot more extensively in the project like

all over the place and uh so we ended up implementing the transformation based on

Cell. So this one is dead code basically we should probably remove it at this

point um that file. Okay.

Yeah. Uh transformation is the is the new uh transformation Cell is what if

you actually go configure like the transformation filter will be used. Um

C: what type of transformation are available? Are these in the docs? I

never I know.

J: Uh yeah. So we also uh we revamped the

docs quite a bit um in the last week as well. So we have a documentation of

every every filter we do has documentation now. Um

so you can look transformation example um can be found here. Let me share this

tag. Um so you can do like request headers, you can like add um and these

are all expressions. So here I called the random variable. Uh you can

manipulate the body. So you can do more advanced stuff like conditional things,

things like that. Um you can do

C: what is supported? What is the extensive list of things supported?

J: Yeah, so this is these are all Cell expressions. We have this reference page

here of all the things you have access to. Um so this is like request

information draw information uh info about the LLM call like the model

input output tokens etc.

C: So the JWT for example is not documented

what’s inside or no wait

J: uh it’s not well it’s it’s it’s just the

claims. So if it’s anything that’s in the claim so it’s a map of opaque JSON

C: but I think there’s more stuff in that chart.
J: Uh there is like you can do but

it’s a a map so we don’t know what what values are in it right.

C: Ah I see. So it’s represent it’s representation of the of the uh

dictionary. Okay.

J:Yeah but like when you actually

reference it like you’ll probably have like a sub key or whatever. So you can

do things like jot sub. Right.

C:Yeah. There’s a few that are standard. I

thought they were like uh hardcoded but it’s um it just happens to be uh

whatever

J: there might there might be some that are

hard hard required. I’d have to look.

E: There are two. There are I think it’s

two like issuer and sub. I think it’s like it’s way less than you would think.

It’s they’re only

C: Okay. I thought it was like Okay. Maybe

we should document that, right? That those are two those are like required.

J: Yep. Yep. That’d be good. Yeah. There’s also all these functions that you can

access too. We can add more as well. Um so

C: a lot of networking functions like uh say CR math.

J: Uh no, everything is uh it’s like stateless. No, no network calls or like

reading files or anything right now. We could in theory.

C: I mean like um I was saying like get me get me the sub9 or something like that

or like um like cider math kind of thing like we did in

J: um no we don’t have that. So the Cell li we but we don’t have it but we could. Um

basically in Cell there’s all these extension libraries and uh the Cell rust

project is working to go port those all over. Um, so I was going to GO do them,

but then I saw they were doing it, so I figured we

C: Oh, wait a minute. This is not Go, right? I mean, yeah, I’m familiar with

the Go Cell implementation from the upstream go. Did they have a run rust

also?
J: Yeah, there’s another Rust project that

is like uh the same same language, same most of the same functions but different

implementation obviously.

C:Oh, same project, same project members

like contain.
J: No, it’s uh not officially it’s not a part of the official so like

Google project but separate project but uh it’s a pretty good project has has

contributions from Microsoft Red Hat uh I started contributing a few few changes

as well after using it so it’s pretty good.

J: Hey got a hand. Yeah.

R: Hi everyone. Um my name is

Ratnapam. I am a senior architect with AWS. Uh, hi Carlos. Nice to see you.

And I see Sri also. So, yeah, nice to see you Sri. I see some familiar faces.

Um, so I have been experimenting with this um gateway project and uh we also

have a conversation with with Lynn uh parallelly. Uh so my question uh is that

I see that um I mean the gateway is a place for implementing the the

authorization right. So do like do you um intend to support any specific uh

what server like key lock or octa or like is that um a layer that would

sit behind the gateway because my understanding is that gateway will have

some pluggable um you know features to connect to these different watch servers

right?

J: Uh yeah so what we have found is that

there’s like the MCP spec on how OT should work and then there’s the reality

which is that like no IDP really can implement it

and so we’ve started to add is kind of I mean it depends on what exactly you want

to do and which IDP there’s different approaches so we have this MCP

authentication uh filter and uh like at the most basic level it’s just like pass

through mode which just sends a request through that’s that’s fine that’s normal

uh we can also to serve like the resource metadata ourselves from there.

And then at the most advanced level, if we know the IDP, then we can do tricks

to kind of make up for the gaps that they have in terms of compliance with uh

the protocol specifications. So right now we have an off zero and keycloak

support. Okay.

Um like keycloak I forget like it does it works dynamic registration but it

doesn’t support like resource metadata or something. So, we just like fudge the

resource metadata to make it work. Um, I’d have to look on the docs if you go

to uh the MCP authentication page.

C: Show this. I didn’t security under what MCP authentication.

J: Yeah, I sent the link on the on the more stuff. There’s more stuff in the

docs. I need to read stuff. Yeah. Yeah. We we went through and did a

big uh big docs rehaul because the docs were severely lacking a week ago.

C: Um so better now to handle DCR you mean like the proxy

will handle the DCR flow or like machine to machine getting a new

token which to which

J: yeah so it’s not like we like the most

advanced level would be like we do dynamic registration and like we store

these like client IDs and like we we are full ID. We’re not doing that, but we’re

like one step short of that. So, we like proxy everything through us and then we

like fill in the gaps for them.

C: I see. I don’t see octa here.
J: Uh uh we have ozero and key

in the docs. Uh the doc doesn’t seem to document

ozero, but it it just documents key. So maybe I have to ramp up the the docs for

the the two

C: in which in which page backend

authentication I’m trying to

J: No, it’s in the MCP authentication.

There’s just keycloakation.

C: Okay. For example, keycloak. Okay.

Uh yeah, that’s that that’s a canonical example, right? for us to do hello world

and examples of the project.

J: It’s definitely one of the most complicated things of agent gateway or

MCP in general. So feedback here is is definitely welcome.

Um we’re about wrapped up. I just want to quickly answer the last question we

got about link fuse or other tracing stuff. Um we actually do sort of

integrate with these. Um so we support pretty rich customizations of trace

traces using Cell again um which lets us output traces that are matching what

these providers uh use. So I had done some examples with

what’s it called trace loop and link views. Um and both of those I got

working. Um so I think we just need to document it. Maybe we want to add like

more first class support so you don’t have to manually configure it all. Uh

but it’s definitely at least possible today. Um and if you anyone gets another

provider working um then that would be awesome to to document how you did it.

It’s generally not so hard, but most of these providers don’t actually document

what they expect a trace to look like. They all just say like, “Oh, we support

open a open telemetry.” And they’re all completely different in terms of what

they expect. So, yeah. Eton.

E: Well, I was going to say one do we are

are they using like the general the Gen AI semantic or are they using like spe

like little special tweaks of it?

J: Well, there’s like which version of the

Gen AI semantic and some of them use special tweaks and some use

I didn’t know it was multiple versions. Yeah, they’ve changed it and it’s like

they went from spans to logs as well. None of them are supporting the log

stuff yet. So,

E: yeah, I I wonder if it would be

it might be worth having at some point like a like you know how on Envoy not to

bring up but like how they have you know Zipin and whatever like we could have

like a laying fuse option.

J: Yeah. No, I think it it might be useful

to have more built in and it would be easy to implement. It’s just like a an

alias really for manually configuring yourself.

Uh yeah. All right. That’s I think everything. I think we’re wrapped up on

time as well. So, thanks everyone for coming. Uh if you have anything you want

to discuss, feel free to put on the future topics or drop it in the Discord

or anything. And we’ll see you all next week.

Thanks.

分享

Mark Zhu
作者
Mark Zhu
An old developer