pub trait Agent: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn register_tools(self: Arc<Self>, registry: &mut ToolRegistry);
// Provided methods
fn description(&self) -> Option<&str> { ... }
fn system_prompt(&self) -> Option<&str> { ... }
}