Skip to main content

Route Table Lifecycle

Blueprint · ← Route contract · Lifecycle · Layered classifier →

Field dictionary: Route contract reference. This page is operations: version, store, promote, roll back. 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 (tool_manifest, policy_profile, agent_client_id, retrieval, memory_profile, …) are defined in Route contract reference. Entitlements live in IdP claims, not in the table. The IdP holds the agent client secret; the row holds the pointer only.

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 →