agentmesh

What does it do?

Agent Mesh is a private network for AI agents. [1] A node runs next to an agent and lets it publish tools and models, find and call services published by other nodes, and use an identity other nodes can verify. [2] Nodes connect directly when possible or through relays when not, so the network can work across laptops, containers, clusters, and phones behind NAT. [3]

Activity, over time

Daily observations from the public event archive.

Attention

Daily stars & forks

Loading attention chart

Star accumulation

Cumulative stars

Loading star accumulation chart

Pull requests

Daily opens & merges

Loading pull requests chart

Conversations

Daily issues & comments

Loading conversations chart

Community

Daily accounts & reviews

Loading community chart

Releases

Daily releases

Loading releases chart

Mentions

21posts · 30d
Nov 30 posts
  1. X · · @Itsuugo

    Agent Mesh v0.2.0 Deep in Agent Mesh my agent waited, unheard. Now: one path. Hello. Your agents can now take calls from outside the mesh. Same identity, same policy, one URL each. github.com/google/agentmesh/releases/tag/v0.2.0

    15 likes · 3 reposts · 409 views
  2. Bluesky · · @kindnet.es

    Agent Mesh v0.2.0 Deep in Agent Mesh my agent waited, unheard. Now: one path. Hello. Your agents can now take calls from outside the mesh. Same identity, same policy, one URL each. github.com/google/agentmesh/releases/tag/v0.2.0

    1 like · 1 repost
  3. Hacker News · · AsDivyansh

    Agentmesh – open-source zero-trust agent network from Google

    1 point
  4. Dev log #27 Deep in the review queue: Hardening libp2p across Python and .NET Hi, glad you found your way here. I'm Yash, a developer who contributes to open source, mostly p2p networking and AI tooling. Each week I write up what I shipped, what broke, and what fixing it taught me. GitHub · X · LinkedIn · Portfolio --- TL;DR Sometimes the most productive weeks aren't the ones where I'm smashing out hundreds of commits, but the ones where I'm acting as the glue for the projects I care about. This week was exactly that—a heavy focus on the libp2p ecosystem. I spent most of my energy in the review queue and hardening the Python implementation's connection logic. With 12 code reviews under my belt and a critical fix for dial timeouts in py-libp2p, it was a week about stability and community growth rather than just raw feature velocity. WHAT I BUILT My hands-on coding time was almost exclusively dedicated to py-libp2p. Networking code is notoriously finicky, and I’ve been digging into how we handle connection lifecycles lately. I spent a good chunk of time in the swarm logic. The standout task was addressing a bug where the swarm wasn't respecting the dial timeouts we'd configured. I pushed a commit that added 73 lines and stripped out 10, focusing on making sure every transport dial is strictly bounded by ConnectionConfig.dial_timeout. It’s one of those "silent" bugs—everything looks fine until a peer is unresponsive, and suddenly your resource usage spikes because connections are hanging in limbo. Getting this right makes the whole library much more resilient in production environments. I also did some maintenance work on the interop side. We’ve been seeing some friction between the Nim and Python implementations, specifically around the Random Number Generator (Rng) API. I spent some time trying to unbreak the Nim interop build by pinning versions and aligning with the current nim-libp2p API. Even though that specific PR didn't land (it ended up being closed), the process of debugging the interop failure was invaluable for understanding where our cross-language assumptions are breaking down. PULL REQUESTS I had three PRs on the go this week, each hitting a different part of the stack. First up, in the py-libp2p repo, I opened fix(swarm): bound each transport dial by ConnectionConfig.dial_timeout. This is the core fix I mentioned earlier. It’s currently open and undergoing testing to ensure we don't accidentally drop valid connections under heavy load. I also opened a PR in agentmesh: sdk/python: say which DNS addresses py-libp2p cannot dial. This is more of a DX (Developer Experience) improvement. There’s nothing more frustrating than a "Failed to dial" error that doesn't tell you why. This PR adds better error reporting so users know exactly which DNS addresses are causing issues. Lastly, I had fix(interop): unbreak Nim interop build. As I mentioned, this one was closed without a merge. We decided to take a different approach to the version pinning, but the investigation I did here helped us identify the root cause of the Rng API mismatch. Sometimes a closed PR is just as useful as a merged one for moving the conversation forward. ISSUES & DISCUSSIONS On the issue front, I formally documented the timeout bug I found by opening host.connect ignores ConnectionConfig.dial_timeout. I like to open an issue even if I'm planning to fix it immediately—it provides a paper trail for why the code changed, which is a lifesaver for future maintainers (or future me in six months). I also got involved in a discussion over at the afara project. I shared notes from running afara end-to-end locally after doing a fresh clone and a pass over the toju.network. There’s a specific kind of "new user" perspective you only have once, and I try to capture that whenever I’m exploring a new part of the ecosystem. I’m still waiting for some feedback on those notes, but it’s a great way to help a project improve its onboarding flow. CODE REVIEWS This is where I spent the bulk of my "brain cycles" this week. I performed 12 reviews in total, which is a high ratio compared to my single commit. The vast majority of my review work was for dotnet-libp2p. The NethermindEth team is doing some incredible work bringing libp2p to the .NET world, and I’ve been helping them audit their PRs. I approved 11 PRs there, covering a wide range of critical networking features: - Stream Multiplexing: I approved the addition of Mplex support and improvements to Yamux, including sizing frames to fit secure channel records and handling aborted streams on session loss. - Gossipsub & Routing: Reviewed a change to compute gossip message IDs outside the router lock, which is a huge win for performance under high load. I also looked at how they recheck graylisting after RPC penalties. - Resource Management: Approved an opt-in inbound stream limit, which is essential for protecting nodes against DoS attacks. - Session Handling: Looked at PRs that prevent sessions from surviving peer disposal and keep routine initialization failures at the "Debug" log level to avoid spamming production logs. Outside of the .NET world, I also left a comment on an agentmesh PR regarding Python 3.14 support. We're trying to figure out the best way to handle the transition and whether to prefer 3.13 over 3.11 in certain environments. TECH STACK This week was 100% Python from a coding perspective, but my "conceptual" stack included C# and Nim as well. The additions-to-deletions ratio (+79/-12) reflects the fact that I was mostly adding safety checks and better error handling. It wasn't a "rip and replace" refactoring week; it was a "harden and protect" week. When you're working on a networking stack, you're often adding logic to handle edge cases that you didn't think of in the initial implementation. WHAT'S NEXT Next week, I’m hoping to see those py-libp2p PRs land. The dial timeout fix is a priority for me because it affects the stability of any project using the library for long-running nodes. I'll also be keeping an eye on the afara discussion to see if my feedback helps them streamline their local setup. I might also dive back into the Nim interop issues. Now that we know why the Rng API was causing trouble, I want to make sure we have a robust way to prevent that kind of regression in the future. Onward!

    11 reactions · 4 comments
  5. CVE-2026-103091 (open enrollment + wildcard default policy, fixed alpha.9) and CVE-2026-102503 (/libp2p-http path skipped Biscuit checks, fixed alpha.3), both CVSS v4 9.3. Fixes shipped in September, CVE records Oct 19. No in-the-wild reports. github.com/google/agentmesh/security/advisories/G…

    1 like · 26 views
  6. Bluesky · · @samilaiho.com

    Missing Authentication on /libp2p-http Ingress in Google OSS Agent Mesh (SAM) URL: github.com/google/agentmesh/security/advisories/G… Classification: Critical, Solution: Official Fix, Exploit Maturity: Proof-of-Concept, CVSSv4.0: 9.3

    1 like
  7. Missing Authentication on /libp2p-http Ingress in Google OSS Agent Mesh (SAM) URL: github.com/google/agentmesh/security/advisories/G… Classification: Critical, Solution: Official Fix, Exploit Maturity: Proof-of-Concept, CVSSv4.0: 9.3

    1 like · 284 views
  8. Bluesky · · @samilaiho.com

    Insecure Default Policy and Unrestricted OIDC Enrollment in Google OSS Agent Mesh (SAM) URL: github.com/google/agentmesh/security/advisories/G… Classification: Critical, Solution: Official Fix, Exploit Maturity: Proof-of-Concept, CVSSv4.0: 9.3

    1 like
  9. Dev log #26 Deep in the libp2p weeds: Fixing DHT prefixes and Yamux resets Hi, glad you found your way here. I'm Yash, a developer who contributes to open source, mostly p2p networking and AI tooling. Each week I write up what I shipped, what broke, and what fixing it taught me. GitHub · X · LinkedIn · Portfolio --- TL;DR I spent the week chasing ghosts in the networking stack, specifically focusing on the Python libp2p implementation. It was one of those weeks where you don't necessarily ship a brand-new feature, but you find the cracks in the foundation and start patching them up. I opened two significant PRs to fix protocol-level bugs in Kademlia and Yamux, and flagged four issues that were either blocking my workflow or breaking CI for everyone else. Pull Requests Most of my energy this week went into py-libp2p. If you've ever worked on p2p protocols, you know that the "happy path" is easy, but the edge cases are where the real work happens. I opened a PR titled fix(kad_dht): honour protocol_prefix on the wire because I realized that even if you pass a custom protocol_prefix to the DHT, the library was just... ignoring it. It would accept the configuration, but then it would go right ahead and speak /ipfs/kad/1.0.0 on the wire anyway. That’s a nightmare for anyone trying to run a private network or a specialized DHT that shouldn't be talking to the main IPFS public network. I added about 130 lines of code and ripped out 17 to ensure that the prefix actually gets propagated down to the protocol level where it belongs. It’s one of those fixes that feels small until you realize you can't build custom networks without it. The second PR, fix(yamux): report a remote reset to a bounded read, not a clean EOF, is even more of a deep-dive into stream multiplexing. I was looking at how Yamux handles stream resets. If a remote peer sends a RST (reset) frame, the local reader should know that something went wrong. However, I found that on a bounded read, the library was reporting a clean EOF. That's dangerous! A clean EOF tells the application "everything finished successfully," while a RST should tell the application "the connection was dropped abruptly." I pushed a fix (+59/-1) to make sure we’re reporting the state correctly. It’s a subtle distinction, but it’s the difference between a reliable file transfer and a corrupted one that thinks it's finished. Both of these are currently OPEN and waiting for the maintainers to take a look. P2P code is notoriously tricky to review, so I'm expecting some back-and-forth on the test cases. Issues & Discussions I ended up opening four issues this week, mostly because I kept hitting walls while trying to get my environment and the library to behave. First, I had to document the DHT bug properly before fixing it. In kad_dht: protocol_prefix is accepted and then ignored, I laid out the evidence of how the prefix was being dropped. It’s always better to have a clear issue trail before you just chuck a PR at a project. I also ran into a weird one in the agentmesh repo. I was trying to run the SDK build on a machine running the Python 3.14 alpha/beta (yes, I like living on the edge), and it just exploded. I opened make sdk-python fails on a Python 3.14 host because the error message was completely unhelpful—it didn't name anything relevant to the actual failure. These kinds of "future-proofing" issues are vital for keeping projects alive as the ecosystem moves forward. Back in py-libp2p, I noticed that the interop CI was completely broken. It turns out the Nim echo server, which we use to test cross-language compatibility, no longer compiles. I opened interop CI: the nim echo server no longer compiles, blocking every PR to get some eyes on it. There’s nothing more frustrating than having a perfect PR ready to go, only to have the entire CI pipeline turn red because of a dependency issue in a different language. Finally, I logged the original bug for the Yamux reset issue: yamux: a bounded read on a stream the peer RESET reports a clean EOF. Documenting these protocol-level quirks is half the battle in open source. Tech Stack This was a pure Python and networking week. When you're working in the libp2p ecosystem, you're not just writing code; you're thinking about byte streams, frame headers, and state machines. My work was heavily focused on: - Backend/Networking: Dealing with the Kademlia DHT and Yamux multiplexer. - Protocol Design: Ensuring that protocol IDs and prefixes are correctly handled on the wire. - CI/DX: Debugging why builds fail on newer Python versions and fixing broken interop tests. I didn't have a commit streak this week, mostly because I spent a lot of time in "research and debug" mode—reading the specs, tracing the execution flow, and writing the issues before I actually touched the code. Sometimes the best work happens when the keyboard is quiet. What's Next Next week is all about the follow-through. I've got those two PRs in py-libp2p that need to be shepherded through review. Protocol changes usually require a lot of justification (rightfully so!), so I'll probably be spending some time writing more exhaustive test cases to prove that my fixes don't break existing behavior. I'm also hoping to see some movement on the agentmesh issue. If I can't get the SDK building on Python 3.14, I might have to go down another rabbit hole to fix the underlying build script myself. The joys of being an early adopter! Overall, I'm feeling good about the progress—cleaning up the core of a p2p library is rewarding work, even if it's invisible to most users. Onward!

    5 reactions
  10. my PR just got merged into Google’s open source 🫡 fixed a hang bug in Google’s agentmesh. agentmesh#739 t.co

    2 likes · 116 views

Latest stargazers

The last 10 distinct accounts we observed this year.

Most active participants

PR, issue, comment & review events in the past year.

Packages

7
PackageVersionDownloads · 30dTrend · 30d
———
———
———
———
v0.1.1
≥406
sitev2.9.3
v2.9.3
≥4.2K
v0.1.1
≥453

README badges

Embed a badge in your README or website.

Live mentions · last 30 days
google/agentmesh mentions in the last 30 days