Vega
Vega Capability Protocol

VCP overview

VCP is the public contract for packaging and implementing Vega Capability Providers — currently exposed through a standalone Python SDK and a capability.yaml manifest format.

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

TermMeaning
Capability packageA directory containing capability.yaml, schemas, Provider code, and optional configuration assets.
ProviderA Python object that implements the VCP lifecycle and Actions.
ActionA versioned, schema-defined operation in a Capability manifest.
RuntimeThe consumer that validates, loads, initializes, and invokes a Provider through the SDK contract.
SDKThe current standalone Python binding for VCP.

Position in Vega

Vega Runtime
Capability Provider
capability.yaml + schemas
Vega Capability SDK
Declared Actions

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

sequence
Runtime → Runtime : Validate Capability package
Runtime → 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 CapabilityError
Runtime → 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.