Skip to main content
When agents need to scale independently, run on different infrastructure, or be developed by different teams, you can deploy them as separate Restate services and route requests between them. Restate makes cross-service calls look like local function calls while providing end-to-end durability, failure recovery, and automatic retries.

Local vs remote agents

There are two ways to coordinate specialist agents: Agent SDKs like OpenAI and Google ADK have built-in mechanisms for local routing (handoffs, sub-agents). For remote routing, or when using the Restate SDK directly, you deploy each specialist as its own Restate service and call it via Restate’s service clients. You can either use typed service clients or call a remote service by string name (generic calls). Learn more about calling services in the TS/Py SDK documentation.

Example: routing to specialist agents

For more details on resilient service-to-service calls, see the SDK documentation: TypeScript / Python.