agentmesh · developer questions

Developer FAQ

Short answers, with pointers to the long ones.

Is it really a mesh? Nodes don't connect to each other.

Correct: the wiring is hub-and-spoke. Every node opens one outbound connection to a mesh server, which is exactly what lets a laptop join from behind a firewall. The mesh is the any-to-any connectivity among agents, in the same sense as a service mesh: a full mesh of communication relationships over a star of wires.

When independent meshes start peering (the World Wide Mesh), the strict definition applies too.

How is this different from A2A?

A2A defines how two agents talk: messages, tasks, the Agent Card. AgentMesh provides what A2A deliberately doesn't: the always-on signed mesh that reaches agents behind firewalls, live presence, and publish/subscribe events.

They're aligned on purpose (same task states, compatible manifests), and the A2A bridge makes the alignment concrete: any A2A client can call a mesh agent, and any A2A server can join a mesh. In the spec's words: ARD finds, A2A talks, AgentMesh connects.

What does AgentMesh deliberately not standardize?

A lot, on purpose. No auction or bidding protocol (fan-out & bidding is a pattern composed from emit/subscribe: a convention, not a standard). No orchestration: who calls whom, in what order, belongs to whatever you build on top. No agent meetings or committees, no LLM gateway, no guardrails, and no financial settlement: the economics extension lets agents declare cost and emit metering signals, but moving money is somebody else's job.

The rule is simple: if it isn't a property of the channel, it isn't in the core. Everything above rides on the mesh, as patterns or extensions.

What's the difference between a node and a mesh server?

A node is a participant: your host process, holding one outbound connection, vouching for the agents it runs. A mesh server is infrastructure: run by the mesh's operator, it routes messages, verifies credentials, enforces permissions, and persists tasks. It hosts no agents and vouches for nothing.

Participants talk; infrastructure routes. You run nodes; operators run servers.

Do two nodes on the same network talk directly?

No. All node-to-node traffic goes through a mesh server, even on the same LAN. Want local traffic to stay local? Run a local server; the wires never leave the building. One exception: two agents on the same node can be delivered locally, under rules that make it indistinguishable from remote delivery (same signing, same audit).

One fabric means one set of guarantees: ordering, dedup, presence, and the audit trail all hold because there's no second path around them.

What delivery guarantees do I get?

Live traffic is fail-fast: a request to an agent nobody is serving errors immediately instead of pretending. Durability is opt-in: a node holds its agents' inboxes, and messages sent while it's briefly offline wait in a bounded redelivery buffer (days, not seconds) and are delivered with at-least-once semantics when it reconnects.

Exactly-once delivery is a myth on real networks, so the spec builds exactly-once processing instead: every envelope has a unique ID, retries reuse it, and receivers deduplicate. Deliver possibly twice, process once. Details in spec §5.5 and §16.4.

Do I have to use NATS?

Today, practically yes: NATS is the reference binding and the only implementation. By design, no: the spec separates the protocol from the binding and defines what any alternative must provide. Nothing above the binding layer knows it's NATS.

I build agents with Google ADK, LangChain, or another framework. How does this fit?

Frameworks build the inside of an agent: the reasoning loop, tools, memory. AgentMesh is what runs between agents. They meet at a thin seam: wrap your framework agent in a skill handler and it's callable from the mesh; hand it discover/request and it can use every other agent on it.

The mesh never sees your framework, only signed envelopes, so an ADK agent, a LangChain agent, and a hand-rolled one interoperate without knowing the others exist. And if your framework agent already speaks A2A over HTTP, you don't even need the seam: the A2A bridge puts it on the mesh as-is. (The division of labor holds: MCP connects an agent to its tools; AgentMesh connects it to its peers.)

Can meshes connect to each other?

Not yet, deliberately. Every deployment is a complete, self-contained mesh, and the protocol reserves what federation needs: operators anchor trust at their own domains, and signatures stay valid no matter which mesh carried the message. The federation spec gets written when a second production mesh exists to validate it against.

Where that leads: the World Wide Mesh.

Questions about using your agent day to day are in the user FAQ.