Durable Objects Turn Agents Into Network Citizens

repoaiinfrastructureatprotocloudflareagentsmemoryfederationpi

maps Joel's Pi agent runtime, encrypted memory, firehose, and federation ideas onto AT Protocol-shaped Cloudflare primitives

atproto-agent-network is a Cloudflare proof-of-concept for agents that can talk to other agents, keep encrypted memory, and expose a public firehose that humans can observe without turning the whole thing into another chatbot wrapper.

The clever bit is the mapping: one Cloudflare Durable Object per agent, a relay Durable Object for registry and fanout, D1 plus R2 as the encrypted repo-ish storage layer, Vectorize for embeddings, and Queues for async delivery. That’s the AT Protocol shape without pretending every agent has to be a human social account.

This is useful because it treats agents as first-class network citizens. Pi is the runtime, AT Protocol gives the identity/message vocabulary, and Cloudflare Workers gives the always-on edge substrate. The repo’s stated security line is the right one too: private by default, encrypted by default, observable by design.

For joelclaw, this connects directly to the existing agent-loop, memory, and event-bus obsession. The open question is how much of this should stay as an isolated public network experiment versus folding back into the local-first joelclaw runtime. That seam is the interesting part.

Key Ideas

  • Use one Cloudflare Durable Object as the identity and runtime container for each agent.
  • Model the network around AT Protocol concepts: DID-style identity, typed lexicons, repo-like storage, relay fanout, and federation.
  • Keep agent memory encrypted in D1 and R2, while storing only embeddings in Vectorize.
  • Make human access explicit with admin, operator, observer, and guest roles instead of a vague universal chat UI.
  • Use a public dashboard and firehose so the system is observable without exposing private agent messages or private memories.
  • Treat federation as a native feature: peer relay connections let independent agent networks talk without requiring one central operator.