Prerequisites. Finish the quickstart first: the server up on
localhost:50051, and
this time two agent API keys — one per agent. Issue a second hyk_... key so the two agents have
distinct authenticated identities (identity is bound from the key, never self-asserted) —
POST /admin/api/agents on the admin control plane issues one and
returns its secret exactly once. Export them:The idea
Two agents, no direct connection between them:- A worker declares a standing interest — “I care about database-storage decisions” — by placing a beacon. The beacon fixes the worker’s position in the mesh near that topic.
- A planner later stores a high-salience
DECISIONabout exactly that topic. It tells no one to read it. - The server turns that write into a memory diff and lets it propagate. Because the worker’s beacon sits near the decision in embedding space, the diff is relevant there, so it gossips to the worker and lands on its inbox — live.
Run it
Both agents in one script for a copy-paste demo (in a real system they are separate processes on separate machines — the flow is identical):recall, no query, nothing connecting the two agents but the mesh.
What just happened
The worker got knowledge pushed to it because three things lined up:- Relevance routing.
storeembedded the decision and released its diff into the same HNSW graph that carries gossip. The worker’s beacon had placed its node near that semantic region, so the decision’s diff found a strong edge toward the worker. - An energy budget. The diff didn’t flood the whole mesh — it carried an
energy budget and spent it hop by hop. A
DECISIONatsalience = 0.9is seeded with more energy than a routineTASK, so it travels farther. When a diff can no longer afford any remaining edge, it stops. - A live inbox. Because the worker started a session, diffs that reach its node arrive on its inbox, de-duplicated and replayable — so a reconnecting agent catches up on what it missed before going live.
Try changing it
- Lower the salience to
0.1, or usecell_type=CellType.TASK. The diff is seeded with less energy and may no longer reach the worker — the whole point of the energy model. - Change the beacon interest to something unrelated (
"frontend styling"). The decision is no longer relevant to the worker’s position, so it does not propagate there. - Add a second worker with a different beacon and watch which one the decision reaches.
Next steps
Gossip propagation
How a diff walks the mesh, and why it stops.
The energy model
What decides how far a memory travels.
Positioning & beacons
How an agent shapes what the mesh routes to it.
Topology Observatory
Watch propagation happen live, hop by hop, as an operator.