目录 一、Comet Skill 是什么 二、从 Superpowers 到 OpenSpec:Spec Coding 的探索之路 Superpowers 的痛点 OpenSpec 的特点 经典组合的摩擦 三、Comet Skill 的核心设计 3.1 稳定的状态扭转:引入状态机思想 3.2 意图识别:跨设备断点恢复 3.3 人机确认机制:关键节点人工把控 3.4 重叠 Spec 的交接:建立单向事实链 四、Harness Engineering:Skill 侧的工程化 五、总结 一、Comet Skill 是什么在 AI 驱动开发的浪潮下,Spec Coding(规格驱动编码)成为了许多开发者探索的新范式。它的核心理念是:先写清楚”要做什么”(Spec),再让 AI Agent 按照规格执行。 Comet Skill 正是在这个背景下诞生的——它将 OpenSpec 和 Superpowers 最精华的部分串联起来,打造出更易用、更稳定的 Spec Coding 工作流。 几个关键数据: GitHub 400+ Star 120+ 分钟阅读量 4.5k+ 次下载 经过生 ...
目录 一、为什么选 Claude Code 二、快速安装 2.1 安装 Node.js 2.2 安装 Claude Code 三、模型厂商与 Coding Plan 对比 3.1 阿里百炼 3.2 腾讯云混元 3.3 百度千帆 3.4 DeepSeek 3.5 火山引擎(字节) 3.6 MiniMax 3.7 智谱 GLM 3.8 月之暗面 Kimi 四、模型厂商切换:CC Switch 五、Skill:Claude Code 的核心扩展机制 5.1 什么是 Skill 5.2 常用 Skill 安装 5.3 Skill 路径 5.4 Skill 仓库与超市 六、辅助工具推荐 6.1 Starship:终端美化 6.2 gstack:工程团队工具集 6.3 Claude HUD:可视化监控面板 6.4 跳过权限确认 七、2026 年值得关注的新工具 八、总结 引用 一、为什么选 Claude CodeClaude Code 是 Anthropic 推出的终端原生 AI 编程助手。相比 IDE 插件,它有几点核心优势: 终端原生:直接在你的 shell 里运行,能操 ...
目录 一、一句话区分 二、架构对比图 Kimi WebBridge agent-browser Playwright 三、核心维度对比表 四、逐一深挖 4.1 浏览器从哪来 4.2 登录态谁提供 4.3 AI 怎么调用 4.4 底层协议 节点数差异: 4.5 元素定位 4.6 事件可信度 (isTrusted) 五、选型指南 六、面试高频追问 Q1: Kimi WebBridge 和 agent-browser 都能抓包,有什么区别? Q2: 三者哪个能做到 isTrusted=true? Q3: 为什么不直接用 Playwright,还要造 agent-browser 和 Kimi WebBridge? Q4: Kimi WebBridge 的 Extension 会比 agent-browser 慢吗? 引用 Kimi WebBridge vs agent-browser vs Playwright 三者对比 一、一句话区分 工具 一句话 Kimi WebBridge 接管用户的真实浏览器(含登录态),不需要写代码 agent-brows ...
目录 1. 一句话概括 2. 三层架构图 3. 各层职责详解 3.1 本地 Daemon(Go 二进制) 3.2 浏览器 Extension(Chrome/Edge 插件) 3.3 AI Agent(Claude Code / Kimi / Gemini 等) 4. 完整调用链路 5. CDP 协议映射表 6. 会话隔离机制 7. 为什么用 Extension + CDP 而不是裸 CDP 8. 数据安全保障 9. isTrusted 限制(产品边界) 10. 面试高频追问 11. 与 nanobot browser_v4 架构对比 11.1 架构全景对比 11.2 核心差异对比表 11.3 事件可信度 - 最大的架构差异 11.4 登录态 - 零成本 vs 程序化 11.5 为什么 Kimi 要三层,我们只要两层? 11.6 状态表示差异 11.7 反检测策略对比 11.8 nanobot V4 双协议栈设计 12. 对比深度追问 引用 Kimi WebBridge 工作原理(面试解析) 1. 一句话概括Kimi WebBridge ...
目录 1. 项目概述 2. PowerMem 智能记忆系统 原始记忆系统的问题 PowerMem 三层架构 三类记忆 记忆作用域 艾宾浩斯遗忘曲线 嵌入模型 3. 每轮对话的上下文构建 System Prompt 组成: 4. MCP 与 Skill 加载机制 MCP → 注册为 Tool Skill → 注入 System Prompt 5. 心跳与定时任务 Heartbeat(心跳巡查) CronService(精确调度) 6. Browser V1 vs V4 架构变化 关键改进 7. 会话管理与最大轮次 最大轮次 session_key 判断同一 chat 8. 跨会话知识保持 三层协作 压缩触发条件 每轮对话后的异步任务 ContextVars 会话隔离 引用 Nanobot 核心架构 1. 项目概述Nanobot 是企业级 AI Agent 框架,支持多渠道通信(钉钉/WhatsApp/CLI)和智能记忆管理。 技术栈:Python 3.12、FastAPI、SOFA、Pydantic、LiteLLM、Playwright ...
目录 一句话定位 一、HashMap 底层结构 JDK 1.7:数组 + 链表 JDK 1.8:数组 + 链表 + 红黑树 二、核心概念 哈希函数 负载因子(Load Factor) 树化阈值(TREEIFY_THRESHOLD) 扩容阈值(Threshold) 三、put 流程(JDK 1.8) 完整步骤 四、扩容机制(Resize) 什么时候扩容? 扩容做了什么? JDK 1.7 vs 1.8 扩容对比 五、面试高频问题 Q1:为什么 HashMap 初始容量是 16? Q2:为什么负载因子是 0.75? Q3:为什么要转红黑树?什么时候转? Q4:为什么链表转红黑树阈值是 8? 引用 HashMap 底层原理与扩容 一句话定位HashMap 是基于哈希表的 Map 实现,JDK 1.8 后采用「数组 + 链表 + 红黑树」结构,通过哈希函数定位数组索引,链表/红黑树解决哈希冲突,通过动态扩容保证性能。 一、HashMap 底层结构JDK 1.7:数组 + 链表12345数组(Entry[])├─ [0] → Entry(key1,value1) ...
目录 一句话定位 一、HashMap 扩容时线程不安全在哪? 场景 1:JDK 1.7 环形链表导致死循环 场景 2:数据覆盖/丢失 二、JDK 1.7 死循环问题复现 核心原因:头插法 + 多线程扩容 详细过程 三、JDK 1.8 还有线程安全问题吗? 问题 1:size 计数丢失 问题 2:put 元素覆盖 四、线程安全的解决方案 方案 1:Collections.synchronizedMap 方案 2:Hashtable 方案 3:ConcurrentHashMap(推荐) 五、面试回答话术(结构版) 回答 1:HashMap 为什么线程不安全? 回答 2:怎么解决 HashMap 线程安全问题? 引用 HashMap 线程安全问题与解决方案 一句话定位HashMap 是线程不安全的,多线程环境下扩容会导致 1.7 环形链表死循环、1.8 数据覆盖/丢失;解决方案用 ConcurrentHashMap。 一、HashMap 扩容时线程不安全在哪?场景 1:JDK 1.7 环形链表导致死循环 现象 CPU 100%,线程卡在 Ha ...
目录 一、一句话 MyBatis 二、MyBatis 核心架构 核心组件图解 核心组件详解 三、完整执行流程 流程图 详细步骤 四、动态代理实现原理 getMapper 源码解析 MapperProxy 源码解析 完整示例 五、SQL 执行流程 四大组件 Executor StatementHandler ParameterHandler ResultSetHandler 六、缓存机制 一级缓存 二级缓存 对比表 七、插件机制 四大可拦截对象 @Intercepts 和 @Signature 注解 插件实现示例 执行链原理 八、面试高频问题 MyBatis 原理 一、一句话 MyBatis MyBatis 是一个优秀的 持久层框架,它支持定制化 SQL、存储过程以及高级映射,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。可以使用简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO 为数据库中的记录。 简单说:是对 JDBC 的封装,XML/注解写 SQL,动态代理调用,自动映射结果。 二、MyBatis 核心架 ...
目录 一、什么是循环依赖 二、Spring 三级缓存机制 三、核心流程详解(A → B → A) 关键代码(DefaultSingletonBeanRegistry): 四、为什么需要三级缓存而不是两级 五、Spring 无法解决的情况 构造器注入失败示例: 六、解决方案 方案 1:构造器注入 + @Lazy(最常用) 方案 2:改用 setter 注入 方案 3:抽取公共逻辑到第三个 Bean(架构层面解耦) 方案 4:实现 ApplicationContextAware 延迟获取 七、面试高频追问 Q1:Spring Boot 2.6 默认禁止了循环依赖,怎么开启? Q2:为什么 Spring 不推荐循环依赖? Q3:构造器注入 + @Lazy 的原理? Q4:二级缓存够不够? Q5:SpringBoot 2.6 为什么要默认禁止? 八、一句话总结 引用 Spring Bean 循环依赖 关联阅读:Spring Bean生命周期 一、什么是循环依赖两个或多个 Bean 之间相互持有对方的引用,形成闭环: 12A → B → A (两个 ...
目录 一、Spring 和 Spring Boot 有什么区别 一句话 核心区别 自动配置原理(必问) 关键条件注解 面试回答 二、Spring Boot 配置文件优先级 优先级从高到低(完整版) 高频考点:jar 包外 > jar 包内 完整的外部配置覆盖顺序(jar 外) 高频考点:properties vs yml 优先级 高频考点:多配置文件激活 高频考点:配置文件 vs 代码默认值 —— 谁覆盖谁? 第一种:@ConfigurationProperties 字段初始值 / @Value 冒号默认值 验证: 第二种:SpringApplication.setDefaultProperties() 设置的默认值 完整优先级图示(关键!) 三、Spring Boot 怎么接入一个外部组件 第二步:配置连接 第三步:直接使用 Starter 自动配置原理(面试核心) 自定义 Starter 的标准套路(进阶考点) 1. 项目结构 2. 配置属性类 3. 核心服务 4. 自动配置类 5. 注册自动配置 6. 使用方引入 接入外部组件的三种模式总结 四、面 ...








