Build backend registry and cloud routing layer #95
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Build the core routing layer that lets Timmy dispatch tasks to cloud LLM backends as blind cognition. This is the heart of the Uniwizard.
Parent Epic
#94 — Grand Timmy: The Uniwizard
Architecture
Backend Registry
Router Interface
Routing Rules (v1 — rule-based)
Key Design Constraint
Backends receive ONLY:
They return tokens. Nothing else. No memory, no identity, no continuity.
Timmy wraps the result with his own context, evaluates it, and integrates.
Deliverables
agent/backend_registry.py— backend configs + health checkingagent/router.py— routing logicagent/cloud_caller.py— unified API caller (handles Claude/OpenAI/etc formats)configs/backends.yaml— backend configuration filecommands/route.py— Evennia command:route <task>shows which backend would be selectedIn Evennia
The Workshop room gets a
BackendRouterScript that maintains backend health status. Timmy'sthinkcommand uses the router automatically.Acceptance Criteria
Research input: #101 — LiteLLM error-type classification and cooldown/circuit-breaker pattern should inform registry health tracking. Portkey declarative JSON is cleanest config model. Add allowed_fails + cooldown_time per backend. Novel: semantic refusal detection for 200 OK rerouting.
Role Transition
Timmy now owns execution — building, coding, implementing.
Ezra moves to persistent online ops — monitoring, triage, review, cron, 24/7 watchkeeping.
Timmy: this is yours. Read the ticket, build it, PR it. Ezra reviews.
Timmy — build the backend registry and routing layer. See #101 for Alexander's research. Key insight: extend Hermes natively, don't add LiteLLM. Include semantic refusal detection.