7 ms·
It’s frustratingly difficult to see what these (A2A and MCP) protocols actually look like. All I want is a simple example conversation that includes the actual
by zellyn 2y ago
It’s frustratingly difficult to see what these (A2A and MCP) protocols actually look like. All I want is a simple example conversation that includes the actual LLM outputs used to trigger a call and the JSON that goes over the wire… maybe I’ll take some time and make a cheat-sheet.
I have to say, the endorsements at the end somehow made this seem worse…
- laichzeit0 2y agoTake a look at the samples: https://google.github.io/A2A/#/documentation https://google.github.io/A2A/#/documentation
- zellyn 2y agoOh, that's really nice. I'd also like to see what syntax the LLM uses to _trigger_ these calls, and what prompt is sent to the LLM to tell it how to do that. I should probably just go read Goose's code…
- medbrane 2y agoThat's dependent on the particular LLM one uses. But it can be a json with the tool name and the payload for the tool.
- laichzeit0 2y agoThe LLM returns a message called ToolMessage which then describes which function to call and the parameters (you register these functions/tools as part of the initialisation step, like when you pass it temperature, or whatever other options your LLM allows you to set). So think of it as instead of steaming back text, it’s streaming back text to tell you “please call this function with these args” and you can do with that what you want. Ideally you’d call that function and then give the output back to the LLM. Nothing magic really.
- ronameles 2y agohttps://www.youtube.com/watch?v=5_WE6cZeDG8 https://www.youtube.com/watch?v=5_WE6cZeDG8 - I work at an industrial software company. You can kind of think of us as an API layer to factory data, that is generally a mess. This video shows you what MCP can do for us in terms of connecting factory data to LLMS. Maybe it will help. A2A is new to me, and I need to dig in. Basically if we expose our API over MCP, agents can "figure it out". But MCP isn't secure enough today, so hoping that gets enhanced.
- behnamoh 2y agoIt seems companies figured introducing "protocols" or standards helps their business because if it catches on, it creates a "moat" for them: imagine if A2A became the de facto standard for agent communication. Since Google invented it and already incorporated in their business logic, it would suddenly open up the entire LLM landscape to Google services (so LLMs aren't the end goal here). Microsoft et al. would then either have to introduce their own "standard" or adopt Google's.
- mindcrime 2y agoor adopt Google's. Which is an open standard that is Apache licensed[1]. That's no moat for Google. At best it's a drainage ditch. [1]: https://github.com/google/A2A https://github.com/google/A2A
- esafak 2y agohttps://modelcontextprotocol.io/docs/concepts/transports#message-format https://modelcontextprotocol.io/docs/concepts/transports#mes... https://modelcontextprotocol.io/quickstart/client https://modelcontextprotocol.io/quickstart/client
- zellyn 2y agoOh, that's very nice. Thanks!
- whalesalad 2y agoAgreed. At the end of the day we are talking about RPC. A named method, with known arguments, over the wire. A simple HTTP request comes to mind. But that would just be too easy. Oh wait, that is what all of these are under the hood. We are so cooked. from fastmcp import FastMCP mcp = FastMCP("Demo ") @mcp.tool() def add(a: int, b: int) -> int: """Add two numbers""" return a + b This is an example of fastmcp. Notice anything? Replace 2-3 lines of code and this is a Flask or FastAPI application. Why are we not just going all-in on REST/HATEOAS for these things? My only hunch is that either 1. the people designing/proselytizing these "cutting edge" solutions are simply ignorant to how systems communicate and all the existing methods that exist, or 2. they know full well that this is just existing concepts with a new shiny name but don't care because they want to ride the hype train and take advantage of it.
- daxfohl 2y agoAudio and video streams, two way sync and async communication, raw bytes with meaning, etc. And it's not just remote services, it can be for automating stuff local real-time on your machine, your ide or browser, etc. Like the docs say, MCP is to an AI model as USB is to a CPU.
- peab 2y agoYeah, i haven't seen a reason why we can't just use REST. Like, auth is already figured out. The LLMS already have the knowledge of how to call APIs too!
- skeledrew 2y agoIt's like deciding between Assembly or C for some given project.
- pjerem 2y agoIronically, I tried to use the official "github-mcp" and failed to make it work with my company's repos, even with a properly configured token. The thing comes with a full blown server running inside a docker container. Well, I just told my llm agent to use the `gh` cli instead. It seems all those new protocols are there to re-invent wheels just to create a new ecosystem of free programs that corporations will be able to use to extract value without writing the safety guards themselves.
- daxfohl 2y agoFor MCP I found the tutorials at https://github.com/block/goose https://github.com/block/goose made it click for me.
- mlenhard 2y agoI was in the same boat in regards to trying to find the actual JSON that was going over the wire. I ended up using Charles to capture all the network requests. I haven't finished the post yet, but if you want to see the actual JSON I have all of the request and responses here https://www.catiemcp.com/blog/mcp-transport-layer/ https://www.catiemcp.com/blog/mcp-transport-layer/
- kristopolous 2y agoI had never heard of charles ... (https://www.charlesproxy.com/ https://www.charlesproxy.com/) I basically wrote a simple version of it 20 years ago (https://github.com/kristopolous/proxy https://github.com/kristopolous/proxy) that I use because back then, this didn't exist ... I need to remember to toss my old tools aside
- mlenhard 2y agoYeah, at its core it's just a proxy, so there are a lot of other tools out there that would do the job. It does have a nice UI and I try to support projects like it when I can. I'll check out your proxy as well, I enjoy looking at anything built around networking.
- Maxious 2y agoeven the approach that charles takes for intercepting TLS traffic is a bit old school (proxies, fake root certs etc.) - cool kids use eBPF https://mitmproxy.org/posts/local-capture/linux/ https://mitmproxy.org/posts/local-capture/linux/
- stavros 2y agoI can see how you don't need a proxy any more, but I don't see how you can bypass TLS without fake root certs, even with eBPF.
- Tokumei-no-hito 2y agonew to this program as well but looks really nice. i think it is still a proxy though unless I’m missing something (beyond the name lol). [here's a section on macos dealing with certs](https://mitmproxy.org/posts/local-capture/macos/ https://mitmproxy.org/posts/local-capture/macos/)
- mycall 2y agoIt is quite hard to reliably and consistently connect deterministic systems and goals with nondeterministic compute. I don't know if all of this will ever be exactly what we want.
- throwaway-blaze 2y agoSort of like asking a non-deterministic human to help make changes to an existing computer system. Extends the problems of human team management to our technology systems.
- Xelynega 2y agoNot only extends them, but compounds them because you have a non-deterministic human making changes to a non-deterministic computer system which is making changes to an existing computer system.
- TeMPOraL 2y agoThat's basically the problem of employing and managing people.
- yurishimo 2y agoAnd look at how much effort our industry goes through as a whole to work around it! Managing people is harder than wrangling machines, even if the upfront cost to "train" and build the machine is multiples higher. Once a deterministic system works, it will keep going until a variable changes. The "problem" with humans is that our variables change like the weather and it takes a lot more effort and resources to keep everyone on track. "If you just get out of people's way, then they'll do a good job and the right thing!" - yea, perhaps. But how much of "getting out their way" is more a product of providing meaningful ownership and compensation in the workplace? See the paragraph above. Good employees are expensive and as time marches on, their compensation will need to continue to increase at least with inflation, while the machine will likely become cheaper to operate over time as societal advances bring down the cost and complexity of operation.
- jacobs123 2y agoIt's shown in the link below. It's kind of crazy that they have this huge corporate announcement with 50 logos for something that under the hood seems sort of arbitrary and very fragile, and is probably very sensitive to things like exact word choice and punctuation. There will be effects like bots that say "please" and "thank you" to each other getting measurably better results. https://google.github.io/A2A/#/documentation?id=multi-turn-conversations https://google.github.io/A2A/#/documentation?id=multi-turn-c...
- kc10 2y agoCan you please expand on this? The sensitivity to prompts and response quality are related to an agent's functionality, A2A is only addressing the communication aspects between agents and not the content within.
- TS_Posts 2y agoHi there (I work on a2a) - can you explain the concern a bit more? We'd be happy to look. A2A is a conduit for agents to speak in their native modalities. From the receiving agent implementation point of view, there shouldn't be a difference in "speaking" to a user/human-in-the-loop and another agent. I'm not aware of anything in the protocol that is sensitive to the content. A2A has 'Messages' and 'Artifacts' to distinguish between generated content and everything else (context, thoughts, user instructions, etc) and should be robust to formatting challenges (since it relies on the underlying agent).
- jacobs123 1y agoSome of the research I want to show you is, although technically public, very relevant for malware development, especially in worming payloads that are spread by exposed agents to other exposed agents. It's not secret information but I don't want to make it easy for script kiddies to skip 4+ years of studying engineering and the associated learning about ethics. Can I contact you directly in some way? Thanks.
- sunpazed 2y agoI had the same frustration and wanted to see "under the hood", so I coded up this little agent tool to play with MCP (sse and stdio), https://github.com/sunpazed/agent-mcp https://github.com/sunpazed/agent-mcp I really is just json-rpc 2.0 under the hood, either piped to stdio or POSTed over http.
- wongarsu 2y agoYou weren't kidding with the endorsements. It's endorsed by KPMG, Accenture and BCG. McKinsey and PwC are not in the partner list but are mentioned as contributors. Honorable mention to SAP as another company whose endorsements are a warning sign
- ycombinatrix 2y ago>the endorsements at the end somehow made this seem worse holy cow you weren't kidding. legit the last people i would trust with software development.
- TS_Posts 2y agoHi there! If you load the CLI demo in the github repo (https://github.com/google/A2A/tree/main/samples/python/hosts/cli https://github.com/google/A2A/tree/main/samples/python/hosts...) you can see what the A2A servers are returning. Take a look!