Extend · Choose a contract
Adapters
Connect current work and media implementations through small, directly wired contracts.
An adapter connects an RMC contract to an implementation or external service. The client requests room operations; the host chooses and configures the implementation that handles them.
For example, a client requests reasoning through a delegation. The registered adapter translates that request into the reasoner service's API and returns its result to RMC.
Start with the contract you need
| Contract | Adapter responsibility | Current example |
|---|---|---|
| Delegation | Execute an objective using authorized context | HTTP reasoner |
| Media | Issue scoped join credentials and coordinate provider cleanup | LiveKit |
| Voice | Set up a voice session and handle provider controls | OpenAI Realtime |
A room agent has a different trigger: it reacts to committed events instead of a requested task.
Follow a requested-work adapter
The host registers an adapter and its capabilities in code. A delegation requests a capability such as reasoning.ask. RMC selects a matching adapter, supplies authorized context, and records its progress and result.
The adapter owns the service call and its failure handling. RMC owns the task's identity, revisions, cancellation request, and accepted outcomes. See the work guide for the registration interface and client flow.
Put failures at the integration boundary
An integration must define timeouts, cancellation, and duplicate handling for any external action it performs. Room history records the outcome; it cannot undo an external write.
Keep provider credentials in trusted host configuration. Use the integration catalog for existing implementations and routing rules, or build an extension for a runnable example.