diff --git a/desktop/src-tauri/src/intelligence/reflection.rs b/desktop/src-tauri/src/intelligence/reflection.rs index fe7a5c0..be5172f 100644 --- a/desktop/src-tauri/src/intelligence/reflection.rs +++ b/desktop/src-tauri/src/intelligence/reflection.rs @@ -390,7 +390,7 @@ impl ReflectionEngine { // Pattern: Too many tasks accumulating let task_count = *type_counts.get("task").unwrap_or(&0); - if task_count >= 5 { + if task_count >= 3 { let evidence: Vec = memories .iter() .filter(|m| m.memory_type == "task") @@ -408,7 +408,7 @@ impl ReflectionEngine { // Pattern: Strong preference accumulation let pref_count = *type_counts.get("preference").unwrap_or(&0); - if pref_count >= 5 { + if pref_count >= 3 { let evidence: Vec = memories .iter() .filter(|m| m.memory_type == "preference") @@ -426,7 +426,7 @@ impl ReflectionEngine { // Pattern: Many lessons learned let lesson_count = *type_counts.get("lesson").unwrap_or(&0); - if lesson_count >= 5 { + if lesson_count >= 3 { let evidence: Vec = memories .iter() .filter(|m| m.memory_type == "lesson") @@ -447,7 +447,7 @@ impl ReflectionEngine { .iter() .filter(|m| m.access_count >= 5 && m.importance >= 7) .collect(); - if high_access.len() >= 3 { + if high_access.len() >= 2 { let evidence: Vec = high_access.iter().take(3).map(|m| m.content.clone()).collect(); patterns.push(PatternObservation { @@ -460,9 +460,9 @@ impl ReflectionEngine { // Pattern: Low-importance memories accumulating let low_importance_count = memories.iter().filter(|m| m.importance <= 3).count(); - if low_importance_count > 20 { + if low_importance_count > 15 { patterns.push(PatternObservation { - observation: format!("有 {} 条低重要性记忆,建议清理", low_importance_count), + observation: format!("有 {} 条低重要性记忆,可考虑清理", low_importance_count), frequency: low_importance_count, sentiment: Sentiment::Neutral, evidence: vec![], @@ -721,6 +721,18 @@ pub fn pop_restored_result(agent_id: &str) -> Option { } } +/// Peek restored state from cache (non-destructive read) +pub fn peek_restored_state(agent_id: &str) -> Option { + let cache = get_state_cache(); + cache.read().ok()?.get(agent_id).cloned() +} + +/// Peek restored result from cache (non-destructive read) +pub fn peek_restored_result(agent_id: &str) -> Option { + let cache = get_result_cache(); + cache.read().ok()?.get(agent_id).cloned() +} + // === Tauri Commands === use tokio::sync::Mutex;