Skip to main content

Route Table Lifecycle

Blueprint · Route table · Layered classifier →

The route table is versioned platform config: one row per governed path (route_id, manifest ref, policy profile, model_profile). Same discipline as manifest lifecycle.

THE CLAIM

Design the route table before the classifier. Intents are business contracts, not labels you discover after the agent ships.

Non-negotiables

RequirementWhy
Version id (2026.07.1)Examiners ask which route contract was active
Pin per sessionMid-session route table swap breaks replay
Router loads; LLM never owns tableDescriptions are not negotiable prompt text
CI on changeGolden intent set blocks regression
Auditroute_table_version on every route decision

Storage patterns

PatternMaintain whereRegulated fit
GitOps + object storageYAML in Git; publish to S3/GCSStrong: PR review, immutable artifacts
Route registry APIPlatform serviceStrong: runtime rollback, multi-tenant
Versioned file in repoplatform/routes/{product}/2026.07.1.yamlGood pilot; rollback may need redeploy
Config serviceConsul, AppConfigOK if versioning and audit already exist
Hardcoded in appCode dictDemos only

Row fields reference other artifacts by id (tool_manifest, policy_profile). Entitlements live in IdP claims, not in the table.

Typical layout

platform/routes/
corporate-assistant/
2026.07.1.yaml
2026.08.1.yaml
active → 2026.07.1

Release and rollback

EventAction
New route rowBump version; add eval fixtures; CI pass
PromoteRepoint active pointer
RollbackRepoint to prior version; no classifier redeploy if using registry
AuditLog route_table_version, eligible_routes, route_id

See Routing eval CI for gates.

Anti-patterns

Anti-patternWhy it fails
Route table only in LLM promptNot enforceable; injection can rewrite
Per-instance ad hoc routesDrift; no replay
No route_table_version in logsExaminers cannot identify active contract
Entitlements stored per user in route tableStale; use ingress claims + filter at runtime

Layered classifier →