-
Notifications
You must be signed in to change notification settings - Fork 2
feat(agent): integrate complexity triage into agent loop with provider swap #2144
Copy link
Copy link
Closed
Closed
Copy link
Labels
enhancementNew feature or requestNew feature or request
Description
Parent epic: #2141
Phase 3: Agent loop integration
Tasks
- Insert triage check in
process_user_message_inner()afterprepare_context(), beforeprocess_response() - Pattern: similar to guardrail check (mod.rs:3118) — async pre-call gate
- Pass context token count from
ContextBudgettoTriageRouter::assess() - On tier decision: swap provider via existing
provider_override: Arc<RwLock<Option<AnyProvider>>>slot - Context window hard override: if accumulated tokens > target provider's
context_window()× 0.8, auto-escalate - Status message via
channel.send_status("evaluating complexity...") - Fallback: if triage call fails → use default provider, log warning
- Reset provider_override after response (so next turn gets fresh triage)
Key files
crates/zeph-core/src/agent/mod.rs(process_user_message_inner)crates/zeph-core/src/agent/builder.rs(triage provider injection)
Acceptance criteria
- Simple prompt ("hello") routes to cheap provider in multi-provider setup
- Complex prompt routes to expensive provider
- Triage provider failure falls back to default without error to user
- Context overflow auto-escalates to provider with larger window
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request