use crate::types::{AgentId, SkillId, MemoryId, Result}; pub trait Agent: Send + Sync { fn id(&self) -> AgentId; fn name(&self) -> &str; } pub trait Skill: Send + Sync { fn id(&self) -> &SkillId; fn name(&self) -> &str; } pub trait MemoryStore: Send + Sync { fn store(&self, content: &str) -> Result; fn retrieve(&self, id: &MemoryId) -> Result>; }