Skip to main content

CapabilityDescriptor

One capability a provider offers, described well enough to call it.

The fabric standardizes this shape and passes call payloads opaquely; only the caller and the provider interpret them, validated against the schemas published here. Descriptors are immutable: a provider that changes its contract publishes a new descriptor (new version for semantic changes; the revision digest changes on any drift).

Attributes: id: Opaque capability identifier (for example memory or tts). Doubles as the telemetry-plane discovery tag. version: Semantic version of the capability contract (MAJOR.MINOR.PATCH). Callers negotiate id@version. title: Short human-facing name. description: What the capability does, written for both humans and generative callers (an LLM reads this plus the schemas at runtime to call a capability it has never seen). input_schema: JSON Schema (2020-12) for the call payload. output_schema: JSON Schema for the unary result, or None when the capability produces no meaningful result body. io_mode: How the call moves data (see :data:CapabilityIoMode). input_chunk_schema: JSON Schema for one inbound stream frame; required for client_streaming/bidirectional, forbidden otherwise. output_chunk_schema: JSON Schema for one outbound stream chunk; required for server_streaming/bidirectional, forbidden otherwise. annotations: Optional opaque string hints for callers (for example {"latency": "interactive"}); never interpreted by the fabric.

idId (string)required
versionVersion (string)required
titleTitle (string)required
descriptionDescription (string)required
input_schema objectrequired
property name*any
output_schema object
anyOf
object
io_modeIo Mode (string)

Possible values: [unary, server_streaming, client_streaming, bidirectional]

Default value: unary
input_chunk_schema object
anyOf
object
output_chunk_schema object
anyOf
object
annotations object
anyOf
object
CapabilityDescriptor
{
"id": "string",
"version": "string",
"title": "string",
"description": "string",
"input_schema": {},
"output_schema": {},
"io_mode": "unary",
"input_chunk_schema": {},
"output_chunk_schema": {},
"annotations": {}
}