Skip to main content
Hiro Server runs on the Root Node. Each running workspace has one server process. The server process is the runtime container for the workspace. It loads workspace configuration, prepares shared runtime state, wires the main components together, then runs them in one asyncio event loop. The main components are active services. Shared objects such as ServerContext are not components in this sense. They are runtime context passed into the components.

Channel Manager

The Channel Manager owns the boundary between Hiro Server and channel plugins. It starts enabled channel plugins as subprocesses, accepts their local WebSocket connections, and routes plugin messages into the server. The mandatory devices channel plugin bridges device nodes through Hiro Gate. Inputs: Plugin registration, inbound UnifiedMessage payloads, channel events, and outbound messages from the Communication Manager. Outputs: Plugin configuration, outbound channel.send messages, channel events, and stop signals during shutdown.

Communication Manager

The Communication Manager is the internal message router. It sits between the Channel Manager and the Agent Manager. It validates inbound messages, routes requests and events, runs message adaptation, queues agent-ready messages, and sends outbound messages back to channels. Inputs: Raw inbound message dictionaries from the Channel Manager, plus outbound UnifiedMessage objects from the Agent Manager and other server services. Outputs: Adapted messages on the Agent Manager inbound queue, request responses, events such as message.received, and outbound messages to the Channel Manager.

Agent Manager

The Agent Manager runs the assistant side of Hiro Server. It consumes prepared inbound messages from the Communication Manager, resolves the conversation and character, invokes the LLM agent, and sends replies back through the Communication Manager. Inputs: Agent-ready UnifiedMessage objects, workspace preferences, character configuration, conversation history, and available tools. Outputs: Text replies, saved conversation messages, and optional message.voiced events when voice replies are available.

HTTP Server

The HTTP Server is the local control API for the running workspace server. It fits beside the message pipeline, not inside it. Local clients use it to inspect live server state, control server lifecycle, read local character/profile data, inspect channels and metrics, and access the workspace Tool Registry over HTTP. Inputs: Local HTTP requests for status, channels, tool schemas, tool invocation, character profiles and photos, metrics, shutdown, and restart. Outputs: JSON status and inspection responses, registered tool schemas, tool execution results, character profile/photo responses, metrics snapshots, and lifecycle signals such as shutdown or restart.

Admin UI

The Admin UI is a local Control Room for a Hiro League. It runs on the Root Node and gives a browser interface for managing workspaces, gateways, LLM Providers, characters, channels, device pairing, logs, metrics and more.

Metrics Collector

The Metrics Collector observes runtime health. It runs beside the main pipeline. It samples the server process, system resources, and channel plugin subprocesses. Inputs: Timer ticks, process stats, and child process information from the Channel Manager. Outputs: Latest metrics, metrics history, and live data for the HTTP Server and Control Room.