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.