LRUCacheWithExpireTime 一. 题目 带过期时间的LRU. 二. 思路 维护双向链表,用于最近最久未使用。 单独node维护k、v、l、r、expireTime。 注意:很多题解,直接put完然后检查是否超限,若超则清除尾巴。但是,双链中可能有已经过期的,且尾巴没过期,其实应该先清理过期,再判断是否超限。 三. 代码 imp
IronClaw-MCP 一. 相关结构 1. MCPSessionManager(管理client和server之间的会话) /// Manages MCP sessions across multiple `(user, server)` pairs. /// /// Server names are typed via
IronClaw-短期记忆 一. 相关结构 1. SessionManager (会话管理session-thread-turn) pub struct SessionManager { sessions: RwLock<HashMap<String, Arc<Mutex<Session>>>>, thread
IronClaw-hook 一. 类别和注册时机 具体来说,向这个 Arc<HookRegistry> 注册 hook 的路径有 4 条,每条的发生时机不同: ┌─────┬────────────────────────────────────┬─────────────────────────────────────
Ironclaw-SafetyLayer 一. 介绍 SafetyLayer 提供六大能力:长度截断、凭据扫描/替换、策略执行(Block/Sanitize)、prompt-injection 清洗、入站凭据预检、工具输出/外部内容的 XML 包裹与解包,并通过四个 getter 暴露底层组件以便做精细控制。 二. 类型 1. Safety
IronClaw-Tool 一. 工具类型 `apply_patch` 工具需要付费权限,我直接给一个完整的分析答复并附上关键代码引用。 --- ## ToolRegistry 工具类型统计 `ToolRegistry` 的核心数据结构是 `tools: RwLock<HashMap<String, Arc<dyn To
IronClaw-LLM调用(装饰器模式) 一. 实现的接口 /// Trait for LLM providers. #[async_trait] pub trait LlmProvider: Send + Sync { /// Get the model name. fn model_name(&self) -> &str
IronClaw-启动流程 一. 文件锁避免重复实例 let _pid_lock = match ironclaw::bootstrap::PidLock::acquire() {//尝试获取 Ok(lock) => Some(lock), Err(ironclaw::bootstrap
IronClaw-CLI初始化 一. 介绍 1. 介绍 //CLI命令主要是通过clap 的 #[derive(Subcommand)]按子命令解析去实现 //首先解析然后去匹配command的枚举 let cli = Cli::parse(); let enable_non_cli = non_cli_chan