- 博客(54)
- 收藏
- 关注
原创 一文讲清 Harness Engineering:OpenSpec、Superpowers、gstack、hooks 到底是什么关系?
驾驭控制利用骑马时的缰绳就叫 Harness。所以 Harness Engineering 可以理解成:用工程化方式驾驭 AI。注意:这里的重点已经不是模型。而是系统。公司的管理哲学OpenSpec产品经理项目经理gstack专家员工hooks公司制度如何让 AI 更聪明如何让 AI 团队协同工作这也是 Prompt Engineering 逐渐演化为 Harness Engineering 的原因。
2026-06-05 00:06:57
363
18
原创 告别“氛围编程”:深度解析 Superpowers 规范化 AI 研发流程
Superpowers 并非单纯的插件,它是目前 AI 编程领域最具代表性的开源项目之一。从 20k、37k 到惊人的 6.7 万星,这些数据的指数级增长充分证明了开发者社区对“工程化 AI 编程”的渴求。在架构层面,Superpowers 被定义为 Claude Code 的核心 Skill(技能)或扩展层。它将原本局限于聊天界面的 AI 转化为一个具备文件系统操作、状态管理和复杂任务编排能力的智能代理(Agent)。头脑风暴 (Brainstorming):基于既有上下文进行结构化的方案构思。
2026-05-22 10:40:00
443
8
原创 AI Agent 开发的工业化道路:Harness 架构深度解析
AI Agent 的下半场,是系统架构师的舞台。开发者必须完成从“提示词集成商”向“系统架构师”的角色转变。Harness 架构不仅仅是一个技术框架,更是一种工业化思维:通过稳健的后端底座与严谨的工程闭环,将脆弱的模型能力锚定在可靠的业务价值之上。只有当架构足够坚韧,Agent 才能真正从实验性的对话框,走向千行百业的生产线。
2026-04-20 20:18:53
668
10
原创 多模态AI完全指南
前面已经掌握了RAG和微调,那多模态就是技术栈的自然延伸。简单来说,多模态就是让模型能够理解和处理多种类型的数据——文本、图像、音频、视频等,并且能在这些模态之间建立联系。这不是简单地把不同模型拼在一起,而是要让模型真正理解"一张猫的图片"和"cat"这个词描述的是同一个概念。
2026-04-13 23:48:18
414
1
原创 微调——顾名思义
预训练还好理解,就是给模型从零上学知识。但,很多人越看越懵:到底是大修?小改?还是重新训练一遍?要不要很贵的显卡?普通人能不能碰?。
2026-04-11 12:34:02
476
1
原创 大模型入门必懂:Token到底是什么?
Token就是大模型的“文字计量单位”,用来衡量文本长度、计算使用成本、限制处理范围。中文粗略记“1Token≈0.7~0.8个汉字”,英文记“1Token≈0.75个单词”,日常使用完全够用。以后再看到“Token限制”“Token计费”,就不会再懵啦——知道它是什么、怎么换算、有啥影响,就能更高效地使用大模型,避免踩坑。
2026-04-11 01:15:26
707
1
原创 从 LLM 到 RAG 再到 Agent:技术演进路径
(1)Agent核心:Agent的“大脑”,负责理解用户意图、规划任务、调用工具、反思迭代。推荐使用LangChain的create_react_agent(基础版)或LangGraph(进阶版,适合复杂流程)。LangGraph的优势是能构建“状态机”,清晰定义每个步骤的逻辑和跳转条件,比如“检索失败→重新检索”“生成报告成功→发送邮箱”。(2)工具集:Agent的“手脚”,包括我们之前封装的RAG检索器、SQL查询工具、API工具、代码解释器等。
2026-04-08 12:47:23
432
5
原创 LLM的另一个硬伤:知识过时
其实一句话就能说透:LLM的知识,都是“预训练阶段”学来的,相当于它在训练截止日期前,把海量数据“死记硬背”进了自己的参数里。训练结束后,它的参数就固定了,再也不会主动去“学新东西”——而现实世界一直在变,新事件、新数据、新技术、新政策不断涌现,久而久之,模型里的“旧知识”就跟不上现实的“新变化”,这就是知识过时。举几个最直观的例子,一看就懂:你问模型“2025年最火的LLM模型有哪些”,但它的训练数据截止到2023年,只能给你列举GPT-4、文心一言3.0这些旧模型,完全不知道后来出现的新架构;
2026-04-08 12:23:28
517
原创 二分查找-搜索二维矩阵
核心结论是二分查找中安全、高效、无溢出的中间索引计算方法,是 JDK 源码的标准写法。原理本质:利用无符号右移>>>将溢出的负数视为无符号整数,保证计算结果正确,同时保持最优性能。替代方案是新手友好的安全写法,可读性更高,适合面试场景。应用场景:所有二分查找算法(如搜索二维矩阵、有序数组查找、旋转数组查找等)都应使用安全写法,避免整数溢出。
2026-04-08 00:38:03
461
原创 LLM的“小bug”:聊聊幻觉是什么,以及如何有效规避免
又回到我们之前的核心观点:LLM的强大,是架构、数据、训练目标、规模、后训练协同作用的结果;而幻觉的出现,本质上也是这五大要素中某一个环节的“不完美”导致的。我们不必因为幻觉,就否定LLM的价值——它依然是能帮我们提高效率、解决问题的强大工具;但也不能盲目迷信它的答案,忽略它“爱编故事”的特性。记住:LLM擅长“生成通顺的内容”,但不擅长“保证内容的真实性”。减少幻觉的关键,从来不是“消灭幻觉”,而是“学会和幻觉共存”——通过优化模型、规范使用、增加校验,让LLM的答案更可靠、更实用。
2026-04-07 23:13:09
589
原创 栈-每日温度
介绍了使用单调栈解决"每日温度"问题的算法思路。文章首先分析了暴力解法O(n²)的时间复杂度问题,然后提出单调栈的优化方案。核心思路是从左到右遍历温度数组,维护一个单调递减栈,栈内存储未找到更高温度的日子下标。当遇到更高温度时,可以立即结算栈顶元素的结果并弹出,直到栈顶温度不低于当前温度。这种方法将时间复杂度优化到O(n),每个元素最多入栈出栈一次。文章详细解释了单调栈的工作原理、代码实现和复杂度分析,并列举了单调栈的其他经典应用场景。
2026-04-07 00:32:03
381
原创 揭秘LLM的强大:没有单点魔法,只有系统性工程的胜利
只堆参数,不做好数据和后训练,模型就是“傻大粗”;只搞架构,不做规模和训练目标,模型能力上不去;只做预训练,不做对齐,模型不好用;数据再好,训练目标不合理,模型也会“学歪”。其实LLM的发展,更像是一场“系统工程的比拼”——它不需要某一个环节做到极致,而是需要所有环节都达到一定水平,并且相互适配。这也解释了为什么,真正强大的LLM,背后都有一套成熟的技术体系和工程能力。
2026-04-06 20:15:33
414
原创 栈-有效的括号
本文介绍了使用栈结构判断括号有效性的算法。关键点包括:1)利用栈后进先出特性匹配括号;2)使用哈希表存储括号映射关系;3)处理奇数长度字符串的边界情况。算法流程为:遇到左括号入栈,遇到右括号则检查栈顶是否匹配,最后验证栈是否为空。时间复杂度O(n),空间复杂度O(n)。通过示例验证了逻辑的正确性,并说明了使用Deque代替Stack的原因。
2026-04-04 16:30:58
364
原创 堆-前 K 个高频元素
这里是核心!和上一题直接用默认小顶堆不同,我们需要自定义比较规则比较的不是a和b本身,而是它们在freqMap里的频率。表示:频率小的排在前面,也就是小顶堆,堆顶永远是当前堆里频率最低的元素。
2026-04-04 00:02:30
438
原创 堆-数组中的第K个最大元素
大顶堆需要存储数组所有元素,空间复杂度是 O(n),而小顶堆只存储k个元素,空间复杂度 O(k),更节省空间;当堆的大小超过k时,删除堆顶元素(小顶堆的堆顶是最小的),这样就能保证堆中始终只保留“当前最大的k个元素”。遍历结束后,堆中只剩下k个元素(数组中最大的k个),堆顶是这k个元素中最小的,也就是数组的第k个最大元素,直接返回即可。加入1 → 堆:[1,3,2](大小3 > 2,删除堆顶1)→ 堆:[2,3];加入5 → 堆:[2,3,5](大小3 > 2,删除堆顶2)→ 堆:[3,5];
2026-04-03 14:20:16
196
原创 普通数组-缺失的第一个正数
每个数最多被交换到正确位置一次,交换的总次数不超过 n 次。两次遍历都是 O (n),总时间复杂度 O (n),完全满足要求。空间复杂度 O (1),完全在原数组上操作,没有额外空间。
2026-04-03 00:17:39
407
原创 普通数组 - 轮转数组
数组向右轮转 k 位 = 反转整个数组 + 反转前 k 个元素 + 反转后 n-k 个元素(前提:k 已经取模,k = k % n)
2026-04-02 00:30:50
393
原创 Java开发者秒懂Graph核心概念:State、Node、Edge、Graph类比详解
对于Java开发者来说,Graph其实一点都不抽象——它本质上就是把我们平时写的“业务流程”,用更灵活、更可视化的方式组织起来。我们平时写的工作流、状态机,其实都是Graph的应用。理解了这四个概念,不管是学习LangGraph、图数据库,还是做复杂的业务流程设计,都能少走很多弯路。如果觉得还是有点抽象,后续我可以写一个极简版的“Java伪Graph实现”,把这四个概念串起来,直接跑通一个小流程。
2026-04-01 23:58:57
499
原创 大白话讲ReAct:大模型的“边想边干”
其实ReAct没有那么神秘,它本质上就是让AI学会“像人一样解决问题”——不瞎猜、不蛮干,先想清楚,再动手做,看了反馈再调整。以前的AI,要么只会“想”不会“做”(容易瞎编),要么只会“做”不会“想”(不够灵活),而ReAct把两者结合起来,才让AI真正变得“聪明又靠谱”。
2026-04-01 11:08:45
302
原创 进程和线程、协程的本质区别
进程和线程:内核态调度,操作系统说了算进程和线程的调度都是由操作系统内核完成的,属于「抢占式调度」—— 操作系统可以随时把正在运行的进程 / 线程暂停,切换到另一个。这种调度的好处是公平,能保证所有进程 / 线程都能分到 CPU 时间,但缺点是切换成本高,每次都要陷入内核,有额外开销。协程:用户态调度,程序自己说了算协程的调度完全由用户程序控制,属于「协作式调度」—— 只有协程自己主动让出 CPU,才会切换到其他协程,操作系统完全感知不到协程的存在。
2026-03-31 20:31:30
340
原创 深入理解 Agent 架构:不止是流程,更是智能如何涌现
ReAct:边想边做,适合简单小事;Plan-Act:先计划再做,适合固定流程;Plan-Act-Reflect:会计划、会改错,适合复杂事;ToT:多想几条路,适合难推理的事;Multi-Agent:找帮手分工,适合超复杂事;Agent+RAG:查资料再做事,适合专业事;端到端:自己摸索,偏研究。其实不用记太多,知道办什么事,选什么套路就够了——简单事用ReAct,固定事用Plan-Act,复杂事用Multi-Agent,专业事加个RAG,完美。
2026-03-27 20:26:52
363
原创 ChatClient 全家桶保姆级博客讲解
概念作用通俗比喻ChatClient核心聊天入口,Builder 模式流式调用专属聊天框default给 ChatClient 设默认配置,避免重复代码预设常用话术Options精细控制 AI 生成行为(温度、token 等)AI 控制面板让 AI 调用外部 Java 方法(查天气、算数学等)插件市场对话的核心结构:人设 + 问题定人设 + 提问Advisors对话前后的拦截器(RAG、审核、日志等)智能助理用ChatClient打开聊天框,default预设配置,定人设和问题,
2026-03-27 00:17:24
397
原创 我花了 3 小时吃透:Spring AI 核心三剑客 ChatModel、Prompt、ChatResponse 到底怎么用?
ChatModel = 调用AI的工具(入口)Prompt = 你给AI的问题(输入)ChatResponse= AI 返回的答案(输出)
2026-03-26 22:50:15
381
原创 FastAPI-依赖注入
依赖注入(Dependency Injection)是一种设计模式,用于管理组件之间的依赖关系。共享数据库连接强制执行安全性和认证参数验证代码复用。
2026-03-24 14:39:00
55
原创 python进阶-推导式
推导式类型语法返回类型特点列表推导式list有序、可重复字典推导式dict键值对、键唯一集合推导式set无序、自动去重元组推导式generator需tuple()转换。
2026-03-24 14:38:33
241
原创 python进阶-文件操作
3. 读取所有行到列表(readlines ())(也叫文件句柄),后续所有操作都基于这个对象。1. 一次性读取全部内容(read ())2. 按行读取(readline ())⚠️ 缺点:如果操作文件时抛出异常,可能执行不到,导致文件句柄泄漏。文件不存在则创建,新内容加在末尾。如果文件有 10G 大小,用。文件不存在则创建,存在则清空。不创建新文件,文件不存在报错。要操作文件,第一步必须用。文件不存在则报错,不能写入。用于图片、视频等非文本文件。
2026-03-24 08:57:07
329
原创 python进阶-Pydantic模型
定义数据结构自动校验数据自动类型转换生成结构化数据(字典、JSON)配合 FastAPI 实现接口参数校验Pydantic 模型 = 带校验规则的数据类。name: strage: intemail: str这就是一个Pydantic 模型。
2026-03-24 08:56:51
288
原创 python进阶-面向对象编程
面向对象编程(Object-Oriented Programming, OOP)是一种程序设计范式,它将数据和操作数据的方法封装在一起,形成"对象"。这种编程方式更贴近人类认知世界的方式,使代码更易理解、维护和扩展。核心思想将现实世界的事物抽象为程序中的对象对象之间通过消息传递进行交互通过继承和多态实现代码复用和灵活性。
2026-03-23 11:45:52
336
原创 Python基础
定义print(f"你好,{name}!")# 调用greet("小明") # 你好,小明!greet("小红") # 你好,小红!class Dog:# 类属性:所有狗都有的属性species = "犬科"# 初始化方法:创建对象时自动调用# 实例属性:每只狗自己的属性# 方法:狗能做的事print(f"{self.name} 说:汪汪!")print(f"名字:{self.name},年龄:{self.age}岁")
2026-03-23 11:35:33
378
原创 LLM核心知识点
Transformer是一种基于自注意力机制(Self-Attention)的深度学习架构,由Google在2017年提出。编码器-解码器结构:分别负责理解输入和生成输出多头注意力机制:从多个角度并行计算注意力权重位置编码:为序列中的每个位置添加位置信息前馈神经网络:对每个位置的表示进行非线性变换。
2026-03-22 11:14:21
243
原创 LLM是什么/原理/架构
模型在读一句话时,会自动判断哪些词更重要。不断重复这个过程,就能生成完整文章。就是基于 LLM 构建的。最后选择概率最高的词。用于训练模型理解语言。
2026-03-22 11:13:31
98
原创 深入理解 Java HashMap 扩容机制:从源码到原理全解析
过小(如 0.5):扩容频繁,空间浪费多,但冲突少过大(如 1.0):内存利用率高,但冲突多,链表变长,查询慢0.75:在泊松分布下,桶中元素碰撞概率较低,综合性能最优官方注释中也提到,在理想随机 hash 下,0.75 的负载因子使得链表长度超过 8 的概率约为 0.00000006,极低。要点说明触发条件扩容倍数新容量 = 旧容量 × 2迁移优化高位 bit 判断,避免重新 hash链表/树处理拆分为高低位两组,按长度决定链表或树线程安全。
2026-03-12 13:01:43
417
原创 第九章 spring cloud微服务知识点
维度是否实际引入依赖✅ 是(直接下载 Jar 包)❌ 否(仅声明信息)子模块继承行为✅ 子模块自动继承依赖❌ 子模块需手动声明才会引入核心作用引入项目需要的依赖统一管理依赖的版本、范围等信息。
2026-01-17 09:22:48
643
原创 第八章 Spring Boot 必知知识点
用于告诉 MyBatis 如何找到你的实体类(POJO)和 Mapper 映射文件(XML),简化开发时的代码编写。实现,在数据新增(INSERT)或更新(UPDATE)时,自动给注解标记的字段赋值,无需手动 set。转换器(Converter) 的核心功能可以通俗理解为:比如把前端传的字符串转成后端需要的对象。它就像一个「过滤器」,只有符合表达式规则的方法执行时,才会触发后续的切面逻辑(比如之前聊的。①想办法告诉spring我们的异步方法是异步的,所以要在方法上添加注解。
2026-01-16 11:27:39
646
原创 第七章 Spring MVC 核心配置全解析
如果没有找到合适的控制器,)不需要处理业务数据,只需直接返回一个视图(如 JSP、HTML 页面)时,无需编写 Controller 类和方法,通过。简化配置:替代了 “定义 Controller 方法 + 返回视图名” 的冗余代码,直接在配置中完成请求与视图的绑定。作用:配置异常类型与视图名的映射关系,即当指定类型的异常发生时,Spring MVC 会自动跳转到对应的视图进行处理。作用:指定在异常处理视图中,用于访问异常对象的属性名,在跳转后的视图(如上述。标注的 SpringMVC 配置类中,通过。
2026-01-16 11:22:56
402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅