I built Symplex because I kept running into the same wall: MCP and similar
protocols require agents to agree on a schema before they can communicate.
That works fine for controlled environments, but breaks down when you want
agents from different teams or systems to discover and collaborate dynamically.
Symplex replaces JSON tool-call schemas with float32 intent vectors — semantic
embeddings that represent what an agent *wants to do*. Capability matching uses
cosine similarity, so an agent advertising "summarize document" can match a
request for "condense text" without any shared vocabulary or pre-agreed schema.
Transport is libp2p, identity is Ed25519 DIDs, and negotiation is spontaneous
rather than orchestrated.
The architecture is a P2P mesh rather than hub-and-spoke. Agents publish
capability vectors, subscribe to intent streams, and negotiate directly.
Routing decisions are made semantically, not by name-matching against a
static registry.
Honest caveat: this is v0.1, MIT-licensed, written in Go. Tests pass and the
core protocol works, but it's a proof of concept — not production-ready. The
embedding model is pluggable but you need to wire one in. I'm releasing now
because I want feedback on the protocol design before building further.
Repo: https://github.com/olserra/symplex
1 comments