System architecture
Canyon is assembled from six distinct layers, each responsible for a single concern. A chat-driven console. An authenticated API. A multi-agent orchestrator. A tool layer that speaks MCP. Isolated sandbox runtimes. A governed data layer. Each layer is independently scalable, replaceable, and auditable.
Layered view
Every layer is independently deployable. The API gateway is stateless; every orchestrator node is a pod; each sandbox is a short-lived, isolated container. The tool layer is the one piece that spans both Canyon-native and customer-owned systems — this is how Canyon reaches private data and internal tooling without those things ever leaving your perimeter.
Request path
Users interact through the Canyon Console. The API gateway routes authenticated requests to the orchestrator, which classifies intent, plans changes, generates code in an isolated sandbox, and validates the output. Every change is persisted as a Git commit and a checkpoint snapshot so time travel is a click away.
- Console sends an authenticated chat request.
- Intent Agent classifies the message in sub-second time, using a fast classification model.
- On a build or modify intent, the request is forwarded to the code-generation pipeline.
- Planner Agent produces a file-by-file spec using the design system and tool layer.
- Builder Agent executes inside a sandbox, calling read/write/edit and your MCP tools.
- Validator Agent runs deterministic checks (type-checker, linter, constraint rules).
- On success, code is committed and checkpointed. On failure, the retry loop kicks in.
Reference diagram
The canonical picture — the one every Canyon engineer keeps on their desk.
┌─────────────────────────────────────────────────────────────────────────────────────────┐
│ CANYON CONSOLE │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Chat │ │Code Explorer│ │Live Preview │ │ Checkpoints │ │ KPI Builder │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────────────────┐
│ API GATEWAY │
│ auth · chat · sandbox · projects · metrics · MCP · admin · audit │
└─────────────────────────────────────────────────────────────────────────────────────────┘
│
┌────────────────────────────┼────────────────────────────┐
▼ ▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────┐
│ AGENT ORCHESTRATOR │ │ TOOL LAYER (MCP) │ │ SANDBOX MANAGER │
│ ┌───────────────────┐ │ │ ┌─────────────────┐ │ │ ┌─────────────────┐ │
│ │ Intent Agent │ │ │ │ Design System │ │ │ │ Local sandbox │ │
│ │ Planner Agent │ │ │ │ Data sources │ │ │ │ Cloud sandbox │ │
│ │ Builder Agent │ │ │ │ Code repo │ │ │ │ Repo sync │ │
│ │ Validator Agent │ │ │ │ Custom tools │ │ │ │ Checkpoint Mgr │ │
│ │ Conversation │ │ │ └─────────────────┘ │ │ └─────────────────┘ │
│ └───────────────────┘ │ └─────────────────────────┘ └─────────────────────────┘
└─────────────────────────┘ │ │
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────────────────────────┐
│ DATA LAYER │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Operational │ │ Session cache │ │Canyon Semantic │ │ Code repos │ │
│ │ multi-tenant │ │ & pub/sub │ │ layer │ │ (per project) │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────────────────┘