Overview
The Vega Capability Protocol (VCP) defines Capability metadata, Action schemas and contracts, Provider lifecycle, execution contracts, standard errors, health, services, and optional recovery.
VCP is not a published network protocol. It currently does not define a WebSocket, HTTP, gRPC, or IPC transport; canonical wire messages; endpoint discovery; registration messages; heartbeats; or feature negotiation. A future language-neutral wire specification must be versioned and published separately.
Concepts
| Term | Meaning |
|---|---|
| Capability package | A directory containing capability.yaml, schemas, Provider code, and optional configuration assets. |
| Provider | A Python object that implements the VCP lifecycle and Actions. |
| Action | A versioned, schema-defined operation in a Capability manifest. |
| Runtime | The consumer that validates, loads, initializes, and invokes a Provider through the SDK contract. |
| SDK | The current standalone Python binding for VCP. |
Position in Vega
Vega Runtime owns orchestration and invokes a loaded Provider in-process through the public SDK contract. A Provider owns robot-, vendor-, or service-specific behavior. The SDK contains reusable Python types and validation helpers. The manifest describes compatibility, resources, input/output schemas, execution properties, and Action contracts.
What VCP defines
- Manifest API version vcp.shyda.ai/v1alpha1 and the Capability kind.
- Package validation: containment, schema validity, SDK compatibility, resources, execution declarations, and action contract bounds.
- Python Provider methods: initialize, execute, health_check, and shutdown.
- Immutable execution request and result contracts.
- Cancellation, progress, Artifact, logging, clock, trace, and lease contracts.
- Standard errors, health results, and optional recovery probes.
What VCP does not define
VCP does not define robot drivers, ROS behavior, vendor APIs, Runtime planning, Runtime persistence, a remote Provider transport, or an SDK binding for a language other than Python. A non-Python Provider cannot currently claim VCP wire-level compatibility from this repository.
Typical current workflow
Runtime → Runtime : Validate Capability packageRuntime → Provider : initialize(initialization context)Runtime → Provider : health_check()Runtime → Provider : execute(request, execution context)Provider → Runtime : progress via injected reporter (zero or more)Provider → Runtime : result or CapabilityErrorRuntime → Provider : shutdown()
The Unitree Go2 speech Capability, for example, declares speech.speak, validates text input, reports progress, returns structured playback data, and reports physical termination as unknown for its Go2 bridge when it cannot establish a hard acknowledgement.

