Fabric is a JSON-RPC-centered protocol with profile-specific method families. The core rule is simple: a service advertises the profiles it supports, then accepts the methods and event shapes owned by those profiles.
Conventions
| Convention | Rule |
|---|---|
| Envelope | JSON-RPC 2.0 request, response, notification, and error envelopes |
| Method names | Slash-delimited family names such as conversation/send or inference/generate |
| IDs | Client-generated request IDs are preserved through gateway projection where possible |
| Errors | JSON-RPC error objects with profile-specific codes and structured data |
| Casing | Current implementations may still expose legacy casing in a few compatibility paths; new Fabric surfaces should use the canonical profile shape |
| Capabilities | Services advertise supported profiles and optional features before clients depend on them |
Core Methods
Every Fabric endpoint should support enough core behavior to identify the peer, discover capabilities, and establish expectations.
| Method | Purpose |
|---|---|
initialize | Negotiate protocol version, identity context, and supported profiles |
capability/list | Return the profile and feature set available on this endpoint |
health/check | Lightweight health probe for gateway or service liveness |
Profile Families
| Family | Typical owner | Purpose |
|---|---|---|
conversation/* | Diminuendo | Sessions, messages, turns, approvals, and transcript state |
presentation/* | Diminuendo and clients | UI-presentable artifacts and structured client state |
stream/* | Diminuendo, Podium, Ensemble | Streaming lifecycle, deltas, completion, and errors |
runtime/* | Podium | Agent deployment, instance creation, lifecycle, and routing |
inference/* | Ensemble | Model listing and generation |
resource/* | Unison, Diminuendo | Resource reads, writes, subscriptions, and scoped access |
workspace/* | Chronicle | File tree, snapshots, iterations, and workspace authority |
sync/* | Unison, Chronicle | Change streams, reconciliation, and bidirectional replication |
Compatibility Position
Fabric intentionally keeps old and external protocols at the edge:
- ACP is useful for clients that already speak the Agent Client Protocol.
- MCP is useful for tool and resource exposure to model hosts.
- A2A is useful for inter-agent task delegation across vendors.
- AG-UI is useful for UI event streams and agentic interface integration.
Those adapters should map into Fabric-owned semantics. They should not invent a second internal runtime model.
Versioning
Fabric profiles can advance independently. A client should check capabilities before using newer methods, and services should prefer explicit "unsupported method" errors over silent partial behavior.