Project services, room services, and on-demand containers
| Option | Use it when |
|---|---|
| Project service | the capability should be available in every room |
| Room service | the capability should be available in one room only or should vary per room |
| On-demand container | you want to run something temporarily without saving it as a deployed service |
Project services vs room services
Project services are shared across the whole project. Use them for common capabilities that should always be available, such as a shared toolkit or a project-wide agent. Room services are saved to one room. Use them when the service is room-specific, user-specific, or something people should choose for their room. The same service manifest can be deployed either way. The scope is set when you deploy it:--globalcreates a project service--room myroomcreates a room service
Service vs ServiceTemplate
AService is ready to run as written.
A ServiceTemplate asks for values during deployment or installation, then renders a concrete Service.
Use:
Servicewhen the configuration is already knownServiceTemplatewhen users or installers should provide values such as prompts, API keys, names, addresses, or other settings
Service and ServiceTemplate can be used for project services or room services.
Container vs external
Under eitherService or ServiceTemplate, choose how MeshAgent reaches the service:
container: MeshAgent pulls an image and runs it for youexternal: the service is already running somewhere else and MeshAgent routes traffic to it
container when you want MeshAgent to manage the runtime. Use external when you already host the service and just want MeshAgent to connect to it.
Both Service and ServiceTemplate can use either container or external.
How deployed services behave
Deployed services are tied to room sessions.- When a room becomes active, MeshAgent starts the services that should run there.
- When the room goes idle and the session ends, MeshAgent shuts those services down.
- Project services are managed at project scope. Changes usually take effect when the room starts a new session.
- Room services are managed per room. If the saved room service changes during an active session, MeshAgent can reconcile the running service to match.
What counts as a service?
A service is anything you want MeshAgent to save and make available as part of the room or project runtime. That can include:- a process-based agent
- a toolkit or integration
- an MCP server
- a custom HTTP service
- supporting application logic that should run with the room
Where to go next
- Deploy Services with MeshAgent: use
meshagent processfor the fast path ormeshagent servicewhen you want to manage the manifest yourself - Containers API: run on-demand containers instead of deployed services
- Build and Deploy Images: build and ship container images for deployed services