Docs

Reliable by Design · 05.14

Capability Router: One Door for Workflow, Node, Phase, Agent & MCP

Resolves a single capability URN onto one execution path, so chat, workflow, and MCP all delegate through the same trusted handlers.

CapabilityRouter

A URN in, a delegation plan out — or honest guidance

The router never reimplements execution — it maps a capability URN onto arguments for an existing, already-trusted platform tool, so capability.invoke delegates through the exact handlers chat, workflow execution, and MCP already share:

URN kindResolves to
workflowagentis.workflow.run
nodeagentis.run.replay — replay-from-node against the workflow's latest run
phaseagentis.run.replay — from the phase's entry node
agentagentis.agent.dispatch
mcp_toolagentis.mcp.call
appThe app's sole workflow, or disambiguation guidance if it has several

Never a silent wrong action

Some URN kinds simply aren't invocable — a skill URN isn't a standalone run, it's a building block meant to be wired into a workflow via skill_task/extension_task; a collection URN is data, not an action, and should be queried or written instead. And when a target genuinely can't be executed as-is — a deep node with no prior run to seed its upstream state from, an app with several workflows and no clear default — the router returns structured guidance naming the concrete next URNs or tools to try, rather than guessing and doing the wrong thing quietly.

Continue