File size: 2,049 Bytes
b9347e8 1718208 b9347e8 2ba439c b9347e8 1718208 2ba439c b9347e8 1718208 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | # Proactive Triage And Preference Learning
## Proactive `nudge_decision`
`proactive_assistant` supports `action="nudge_decision"` to bucket candidate nudges into:
- `interrupt`
- `notify`
- `defer`
Routing is deterministic and depends on:
- `policy`: `interrupt | defer | adaptive`
- `quiet_window_active` (explicit arg, otherwise runtime quiet-window policy)
- candidate urgency inputs (`severity`, `due_at`, `expires_at`, `interrupt_allowed`)
- optional `context` inputs (`user_busy`, `conversation_active`, `presence_confidence`)
- `max_dispatch` capacity limit
- dedupe suppression window (`dedupe_window_sec`, default 600 seconds)
The response returns per-bucket rows plus summary counts and cumulative proactive counters.
When context indicates an active/busy interaction or low presence confidence, non-critical interrupts are downgraded to `notify`/`defer`.
Candidates recently dispatched within the dedupe window are downgraded to `defer` with reason `duplicate_recent_dispatch` to reduce notification spam.
## Preference Learning Loop
Conversation runtime now detects explicit user style directives and updates the active voice profile for:
- `verbosity` (`brief | normal | detailed`)
- `confirmations` (`minimal | standard | strict`)
- `pace` (`slow | normal | fast`)
- `tone` (`auto | formal | witty | empathetic | direct`)
When memory is enabled, learned profile state is mirrored to memory summaries (`voice_profile:<user>`). Learned updates are exposed through runtime voice status (`preference_learning`) and observability intent metrics (`preference_update_turns`, `preference_update_fields`).
## Safety Boundaries
- Preference learning only triggers on explicit style-oriented directives (not on arbitrary requests).
- High-risk action safeguards remain unchanged (preview/approval gates, policy checks).
- Quiet-hour and policy controls still govern whether proactive actions interrupt or defer.
- Multimodal grounding is advisory for operator transparency and recommendation quality; it does not bypass policy gates.
|