- 博客(27)
- 收藏
- 关注
原创 IntelliJ IDEA 无法识别 Git:Git is not installed 问题解决
给命令行用,给 IDE / 第三方工具用。IDEA、VS Code、Eclipse 等 IDE 配置 Git 时,一律指向,可规避绝大多数 "Cannot identify git" 问题。项目有.git+ 命令行能用 ≠ IDE 能用,IDE 的环境变量是独立的,需要单独配置。遇到这类无响应报错,优先考虑可执行文件路径是否正确,而不是重装 Git。
2026-09-17 17:11:25
340
原创 Agent 记忆管理(Memory)高阶架构设计笔记
摘要:AgentMemory系统旨在解决大模型无状态缺陷,通过分层记忆架构模拟人类认知演化。系统采用三层漏斗模型:短期记忆处理当前对话,工作记忆存储会话摘要,长期记忆沉淀核心知识。工程实践中采用混合模式,结合向量检索、摘要压缩和知识图谱等技术。关键技术挑战包括冲突解决(时间戳标记、置信度衰减)和高效索引设计(分块策略、异步更新)。优秀记忆系统需满足分层存储、Token优化、冲突处理等要求,使Agent能像人类一样选择性记忆和快速检索关键信息。
2026-05-28 11:27:39
409
原创 RAG vs Memory = “图书馆 vs 日记本”?
RAG与Memory的核心差异可以从七个维度解析:数据来源(公共vs私有)、归属(共享vs专属)、更新频率(批量vs实时)、读写方向(只读vs双向)、检索方式(内容匹配vs身份识别)、冲突处理(版本控制vs即时覆盖)和遗忘机制(保留vs淘汰)。RAG如同图书馆,解决不知道的问题,提供通用知识;Memory则像日记本,解决记不住的问题,记录个性化信息。二者分别对应"查资料和记人情的不同需求,因此在AI系统中往往需要同
2026-05-28 10:52:35
246
原创 可以将RAG理解成一种hash库吗?
本文对比了RAG(检索增强生成)和Hash库的核心差异。RAG像会自己翻书再回答问题的AI,通过语义检索相关文档片段后生成新答案;而Hash库是按索引精确找值的字典,直接返回存储的原始数据。关键区别在于:Hash库保证key-value严格对应,输出确定不变;RAG则通过检索+生成动态创造新内容。前者适合缓存等精确存取场景,后者用于问答系统等需要理解语义的任务。虽然都包含检索步骤,但RAG多了生成环节,使其成为智能化的知识处理系统而非单纯的数据查询工具。
2026-05-28 10:40:07
357
原创 高并发场景下的前端缓存与降级策略
摘要:高并发场景下前端策略的核心是前端做盾,后端做枪。前端通过多级缓存(HTTP强缓存、CDN边缘缓存、客户端数据缓存等)减少无效请求,采用版本化更新和随机扰动预防缓存雪崩。降级策略包括功能降级(隐藏非核心模块)、数据降级(本地兜底数据)和限流容错(按钮锁定、主动熔断)。实战中通过预热CDN、按钮防抖、短缓存等技术保障核心链路,体现分层防御思维:缓存为防,降级为守,前端作为系统稳定性的第一道防线。(149字)
2026-05-27 10:09:16
378
原创 【智能体设计】
本文介绍了智能体设计的基本概念和原则,重点阐述了子智能体(Subagents)的特点和应用。子智能体是专注于特定任务的独立AI助手,具有任务专业化、上下文隔离、可重用性等优势。文章详细说明了子智能体的工作流程和基本结构配置,强调设计时应遵循单一职责、清晰专业化和可操作性三大原则。同时提供了React专家和Python专家的具体实现示例,包括专业知识领域、工具配置和使用案例。这些设计指南有助于创建高效、专注且易于维护的智能体系统。
2026-04-07 12:10:53
213
原创 Opencode启动时内置Bun段错误的解决笔记
问题本质:Opencode内嵌的Bun v1.3.5在Windows上存在目录敏感的段错误Bug触发条件:误操作(Ctrl+C中断、git撤回)破坏opencode状态文件解决核心:彻底清理环境 + 重新安装预防关键:谨慎操作 + 定期维护。
2026-02-02 11:15:16
5807
1
原创 JS 进阶--设计模式分类汇总与常用模式详解
本文介绍了JavaScript中常用的设计模式及其应用场景。设计模式分为创建型(如单例、工厂、原型)、结构型(如代理、装饰器)和行为型(如观察者、策略)三大类。通过代码示例展示了单例模式保证全局唯一实例、工厂模式封装对象创建、代理模式控制访问、观察者模式实现松耦合通信等典型应用。设计模式能提高代码复用性、可维护性和扩展性,建议根据实际需求合理选择,避免过度设计。
2025-09-10 17:50:52
559
原创 js进阶-promise全方位解析和异步编程
本质:一个构造函数(类),通过实例化。核心机制resolve(标记成功)和reject(标记失败)。Promise 内部通过状态机管理异步操作的结果,外部通过监听状态变更。setTimeout(() => resolve('异步操作成功'), 1000);// 1秒后标记成功});语法糖:基于 Promise 的语法糖,让异步代码看起来像同步代码。本质async函数返回 Promise,await用于暂停执行直到 Promise 完成。Promise 状态机。
2025-09-10 16:24:05
1062
1
原创 完全平方数--华为技术加面的手撕算法题
给你一个整数n,返回和为n的完全平方数的最少数量。是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,149和16都是完全平方数,而3和11不是。
2025-07-19 18:22:23
565
原创 js热点--防抖&节流(华为技术一面的手撕代码题之一)
防抖节流面试常考,也是非常实用的前端热点!要牢记“防抖像电梯等人齐再关门;节流像地铁固定 3 分钟一班。”的记忆口诀,弄懂本文的几种手撕实现!
2025-07-16 18:07:04
852
原创 js基础--判断变量类型的方法梳理
在实际开发中,可以根据具体需求选择合适的方法来判断变量类型。对于基本数据类型,typeof通常是最简单直接的方法;对于复杂类型或需要更精确判断的情况,可以使用instanceof或。对于数组类型,是最推荐的方法。
2025-07-10 10:17:56
458
原创 js基础--深拷贝和浅拷贝
深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是编程中(前端我们讨论js)常见的概念,尤其是在处理数据结构如数组和对象时。它们描述了复制数据时的不同行为和结果。
2025-07-10 01:31:22
557
原创 访问房间--记一道华为web前端技术二面的手撕真题
访问房间:钥匙i可以访问房间号为i的房间,每个房间中可以拿到一串钥匙(即一个数组),根据这串钥匙去访问对应房间,初始有吧钥匙0或者理解为房间号为0的房间门没锁。问是否所有房间都能被访问到?能则返回true,不能则返回false。
2025-07-10 00:56:52
228
原创 No.316去除重复字母(leetcode困难)
给你一个字符串s,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证(要求不能打乱其他字符的相对位置)。"abc""acdb"该题与 1081相同。
2025-07-03 17:30:39
574
原创 No.443压缩字符串(leetcode中等)
给你一个字符数组chars,请使用下述算法压缩:从一个空字符串s开始。对于chars中的每组1ss压缩后得到的字符串s,需要转储到字符数组chars中。需要注意的是,如果组长度为10或10以上,则在chars数组中会被拆分为多个字符。请在,返回该数组的新长度。你必须设计并实现一个只使用常量额外空间的算法来解决此问题。返回 6 ,输入数组的前 6 个字符应该是:["a","2","b","2","c","3"]"aa" 被 "a2" 替代。"bb" 被 "b2" 替代。"ccc" 被 "c3" 替代。
2025-07-02 19:15:15
765
原创 No.70爬楼梯
这里形成的数列正好是斐波那契数列,答案要求的 f(n) 即是斐波那契数列的第 n 项(下标从 0 开始)。我们来总结一下斐波那契数列第 n 项的求解方法:n 比较小的时候,可以直接使用过递归法求解,不做任何记忆化操作,时间复杂度是 O(),存在很多冗余计算。一般情况下,我们使用「记忆化搜索」或者「迭代」的方法,实现这个转移方程,时间复杂度和空间复杂度都可以做到 O(n)。
2025-07-01 02:02:02
362
原创 No.283移动零
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。
2025-07-01 01:49:12
356
原创 No.1两数之和(leetcode简单)
因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。整数,并返回它们的数组下标。你可以按任意顺序返回答案。,请你在该数组中找出。
2025-06-29 19:37:14
336
原创 No.2两数相加(leetcode中等)
给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
2025-06-29 18:23:29
402
原创 面向对象编程--ES6继承机制和mixin实现多继承
在 ES6 中,由于语言本身仅支持(通过extends只能继承一个父类)、(多个子类继承父类)和(一个子类继承父类,父类再继承祖父类),但可以通过 模式模拟和等复杂继承关系。
2025-06-27 16:46:51
792
原创 面向对象编程--ES6核心特性
ES6(ECMAScript 2015)引入了更完善的面向对象编程(OOP)语法,使得 JavaScript 的类(Class)和继承机制更加清晰和易用。
2025-06-26 20:46:41
986
原创 面向对象编程--JS原型和原型链
JavaScript 的继承和属性查找机制完全依赖原型和原型链,理解它们是掌握 JS 面向对象编程的关键!是它实现继承和属性查找的核心机制。理解它们,才能真正掌握 JavaScript 的面向对象编程。JavaScript 是一门基于原型的语言,。本质上是语法糖,底层仍然是基于原型的继承。dog (Dog 实例)dog (Dog 实例)对象自身 → 对象的。
2025-06-25 16:48:21
895
2
原创 JS基础--闭包和函数作用域
实际上是function先被定义好,而后点击,这期间i已经走完了for循环并自增成了5,且i是由var声明的,在整个函数作用域中共享同一个引用(这里可以理解为i变量存放的地址没变,而其值从1自增成了5),所以点击的时候,访问i的存放地址只能获取到值5,于是输出5+1=6。1、各个按钮点击都能输出值,说明都绑定上了点击事件,说明var声明的变量的递增是作用到了buttons[i](i=1,2,...,5)上,即五个按钮中的任何一个buttons[i].onclick都成功被赋值为一个function。
2025-06-24 11:37:23
303
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅