diff --git a/crates/gyandoot-agent/src/agent_loop.rs b/crates/gyandoot-agent/src/agent_loop.rs index 12ebd00..052a714 100644 --- a/crates/gyandoot-agent/src/agent_loop.rs +++ b/crates/gyandoot-agent/src/agent_loop.rs @@ -163,25 +163,33 @@ impl AgentLoop { let (agent_name, agent_role, user_name, user_role) = { let memory = self.memory.lock().await; let (l0, _) = memory.identity_get().unwrap_or_default(); - if !l0.is_empty() && !self.config.identity.agent_name.is_empty() { - ( - self.config.identity.agent_name.clone(), - self.config.identity.agent_role.clone(), - self.config.identity.user_name.clone(), - self.config.identity.user_role.clone(), - ) - } else if !l0.is_empty() { - // Parse from L0: "name: X\nrole: Y\nuser: Z (W)\n" - let mut parts = l0.lines().filter_map(|l| l.split_once(": ").map(|(_, v)| v.to_string())).collect::>(); - ( - parts.get(0).cloned().unwrap_or_default(), - parts.get(1).cloned().unwrap_or_default(), - parts.get(2).and_then(|u| u.split_once(" (").map(|(n, _)| n.to_string())).unwrap_or_default(), - parts.get(2).and_then(|u| u.split_once(" (").and_then(|(_, r)| r.trim_end_matches(')').to_string().into())).unwrap_or_default(), - ) + + // Priority: config identity > L0 file > config.agent.name > defaults + let a_name = if !self.config.identity.agent_name.is_empty() { + self.config.identity.agent_name.clone() } else { - (String::new(), String::new(), String::new(), String::new()) - } + self.config.name.clone() // fallback to agent name from config + }; + + let a_role = if !self.config.identity.agent_role.is_empty() { + self.config.identity.agent_role.clone() + } else { + "AI Assistant built by Gyannetra".to_string() + }; + + let u_name = if !self.config.identity.user_name.is_empty() { + self.config.identity.user_name.clone() + } else { + "the User".to_string() + }; + + let u_role = if !self.config.identity.user_role.is_empty() { + self.config.identity.user_role.clone() + } else { + "User".to_string() + }; + + (a_name, a_role, u_name, u_role) }; // Build system prompt with identity + dialogue memory