-
Notifications
You must be signed in to change notification settings - Fork 2
feat(llm): add ComplexityTier enum and TriageRouter with structured output #2142
Copy link
Copy link
Closed
Labels
enhancementNew feature or requestNew feature or requestllmzeph-llm crate (Ollama, Claude)zeph-llm crate (Ollama, Claude)
Description
Parent epic: #2141
Phase 1: Core types + triage prompt
Tasks
- Add
ComplexityTierenum (Simple,Medium,Complex,Expert) tozeph-llm/src/router/triage.rs - Add
TriageVerdictstruct (tier,reason,large_context) withDeserialize+JsonSchema - Implement
TriageRouterstruct withassess()method that sends a minimal prompt to a cheap model - Use
chat_typed::<TriageVerdict>()for structured JSON output - Triage prompt: ~150 input tokens, includes user message + conversation stats (msg_count, total_tokens, tool_count)
- Unit tests with
MockProvider
Key files
crates/zeph-llm/src/router/triage.rs(new)crates/zeph-llm/src/router/mod.rs(re-export)
Acceptance criteria
TriageRouter::assess()returnsTriageVerdictfrom mock provider- Handles provider errors gracefully (fallback to
Mediumtier) - Proptest:
assess()never panics on arbitrary input
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestllmzeph-llm crate (Ollama, Claude)zeph-llm crate (Ollama, Claude)