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.
input_schema objectrequired
output_schema object
- object
- null
Possible values: [unary, server_streaming, client_streaming, bidirectional]
unaryinput_chunk_schema object
- object
- null
output_chunk_schema object
- object
- null
annotations object
- object
- null
{
"id": "string",
"version": "string",
"title": "string",
"description": "string",
"input_schema": {},
"output_schema": {},
"io_mode": "unary",
"input_chunk_schema": {},
"output_chunk_schema": {},
"annotations": {}
}