自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sam Blog

姑苏城外,技术一枚

  • 博客(107)
  • 资源 (6)
  • 收藏
  • 关注

原创 从一次 fastjson 漏洞修复看技术管理

本文以一次 fastjson 安全漏洞修复为切入点,反思技术管理中的依赖治理、封装价值与快稳平衡。指出“两天归零”背后是系统性风险:版本分散、升级依赖人力、缺乏统一管控。强调应建立 SBOM、构建有治理能力的封装层、完善应急机制与组织分工,实现从“英雄救火”到“系统防灾”的转变。真正的技术管理,是让工程师能正常下班。

2026-09-28 11:04:40 161

原创 Agent 的记忆长什么样:从上下文窗口到记忆系统到 AgentScope 的工程实现

工作记忆是此刻的工作台,语义/情节/程序性记忆是跨会话的档案室,向量库、知识图、SQL 是配对的存储引擎,RAG 是它们的检索入口。从 MemGPT 的虚拟内存到 Mem0 的写入合并、Zep 的时序图谱,工程们争的从来不是"记不记",而是"怎么记才又准又省"。AgentScope 给出的答案是克制的模块切分(存储归 Memory、策略归 Agent)加上双控制模式的优雅取舍;ReMe 则把"文件即记忆"和"三类记忆分工"推到了工程完成度的新高度。

2026-08-29 16:13:14 190

原创 Agent 框架(Java 篇):Spring AI/LangChain4j/Agents-Flex 七小龙怎么选

模型会持续变便宜,框架会持续分化,但"让智能体在真实、混乱的系统里稳定把事做成",永远是系统工程。如果你的后端是 C# 写的、又有 Java 服务要协同,它能让两边的 Agent 共享同一套编排心智。所以 Java 的 Agent 框架,不是 Python 框架的简单翻译,而是各自带着不同的"企业包袱"长出来的。银行、保险、政务、制造的核心系统,大多跑在 Java 上。但 Java 不一样——它是企业系统的底座。"——标准件、工作流、工具箱、责任链、嵌入件、推理引擎、内核,对应七种把智能体落进企业的姿态。

2026-08-12 10:43:58 194

原创 Agent 框架(Python篇):LangGraph / CrewAI / AutoGen / Dify / Agno 分析

2026 年,如果你问"做 Agent 用什么框架",大概率得不到一个标准答案。有人说 LangGraph 才叫生产级,有人说 Dify 拖两下就上线了,有人还在怀念 AutoGen 的对话编排,有人安利 Agno 的运行时,还有人默默把 CrewAI 跑成了团队流水线。其实用什么,没结论,底层是——是一台状态机、一支团队、一场对话、一条流水线,还是一个服务单元?

2026-08-09 22:31:33 256 1

原创 一张图怎么被“读懂“:以图搜图、人脸识别、拍照搜同款的底层原理

大家应该都用过它们:在网购 App 里拍下朋友的鞋子"搜同款";用相册的"以图搜图"找出处;上班打卡时对着摄像头"刷脸"。这三个功能看起来风马牛不相及——一个是找图,一个是认人,一个是找商品。。区别只在于"比什么、跟谁比"。而那个共同的点,叫。

2026-07-27 21:27:41 263

原创 从 Prompt 到 Loop:AI 工程的四次范式跃迁

有没有发现一个现象:每隔一阵子,AI 工程圈就会换一个"核心词"。2023 年大家都在聊怎么写好;2024 年 RAG 火了,开始聊;2025 年中,这个词被 Shopify 的 CEO Tobi Lütke 和 Karpathy 先后点名,一夜盖过"提示词工程";到了 2026 年,新的热词又变成了——有人干脆说"Agent 就是一个 while 循环"。这不是赶时髦换词儿。每一次换词,背后都是:人把越来越多的控制权,从自己的手里,交给了模型,最后交给了"系统自己"。

2026-07-25 16:45:11 386

原创 Token 通识:大模型到底怎么“数钱“的

你有没有过这种困惑:同样一段话,为什么发给国产模型比发给 GPT 便宜?为什么让模型"多想一会儿"账单就炸了?为什么有人告诉你"把 system prompt 写稳定能省钱"?。

2026-07-23 14:33:14 276

原创 OmniRoute 踩坑实录:那些文档不会先告诉你的坑

本文总结了使用OmniRoute时常见的14个坑及解决方案,涵盖安装、配置、运行和成本认知等方面。关键问题包括Node版本兼容性、数据库损坏、免费层稳定性、代理封号风险、OAuth令牌失效等,并提供了相应修复建议。FAQ部分解答了数据隐私、免费层适用性、工具对比等常见疑问。文章强调,尽管OmniRoute能节省配置成本,但用户仍需理解系统特性,避免过度依赖免费服务,合理选择主力供应商,才能实现稳定高效的使用体验。

2026-07-19 17:26:45 974

原创 OmniRoute 深度拆解:把 231 家 AI 供应商塞进一个端点

OmniRoute 深度拆解,四层降级链、压缩管线、免费 token

2026-07-17 13:54:49 453

原创 Token 省钱革命:开发者为何对推理成本如此敏感

本文探讨了开发者为降低AI推理成本掀起的"Token省钱革命",通过压缩、复用和免费网关三种策略大幅减少token消耗。压缩工具如RTK和Caveman可过滤输入/输出中的冗余信息,节省60-90%token;复用技术将知识存储为可重复使用的资产;免费网关则智能路由到最优API源。这场自下而上的开源运动揭示了AI应用的真实瓶颈不在模型能力,而在于系统中存在的token浪费问题。开发者通过系统优化,能节省90%以上的推理成本,让AI工具更经济实用。

2026-07-16 09:38:58 199

原创 具身智能上展台容易,进工厂难

摘要: 具身智能在展台上惊艳亮相(如人形机器人表演),却难在工厂落地。展台演示依赖定制化环境、预设任务和宽松标准,而工厂需要99.9%的稳定性、复杂非结构化环境、系统集成能力和明确的ROI。四道鸿沟阻碍落地:1)可靠性(从单次成功到持续无故障);2)环境适应性(从干净实验室到杂乱车间);3)任务复杂性(从单点炫技到全流程协作);4)成本核算(从不计成本到回本周期)。真正的挑战在于将具身智能视为系统工程,而非单纯技术问题。短期更现实的路径是聚焦细分场景(如分拣、巡检),而非追求通用机器人。行业需从"炫技"转向

2026-07-14 20:28:26 266

原创 我试了6款AI编程助手,结果…

【150字摘要】2026年AI编程工具评测:针对6款主流工具(Cursor、GitHub Copilot、Claude Code、TRAE、通义灵码、Windsurf)的5维深度测试显示: 1️⃣ 代码生成:TRAE与Copilot并列第一(9.5/10) 2️⃣ 项目理解:Cursor领先,支持全流程自主开发 3️⃣ 中文适配:国产工具碾压,TRAE中文准确率98% 4️⃣ 价格:TRAE免费最优,Cursor Pro最贵($20/月) 选型建议:新手选TRAE,企业用Copilot/通义灵码,金融医疗优

2026-07-12 11:58:24 378

原创 我们高估了模型的智商,低估了系统的笨拙

本文揭示了AI落地中的关键误区:企业往往过度关注模型性能,而忽视了支撑系统的笨拙。文章指出,80%的AI落地障碍源于三个系统性问题:数据闭环断裂、权限缺失和评估体系不健全。作者通过制造业案例说明,即使不升级模型,只要修复数据回流、优化权限设计并建立评估机制,系统效能就能显著提升。真正的挑战不在于模型智商,而在于组织能否构建持续进化的运营体系。文章呼吁将AI落地视为系统工程而非单纯的技术选型,强调"系统顺了,模型才能发挥价值"这一核心理念。

2026-07-12 10:54:46 196

原创 Java异常:Throwable

一、概述1、Throwable接口1)Error 类2)Exception 类编译期问题:不是 RuntimeException 的异常必须进行处理的,因为你不处理,编译就不能通过。运行期问题:RuntimeException 异常这种问题我们也不处理,因为是你的问题,而且这个问题出现肯定是我们的代码不够严谨,需要修正代码的。二、异常的处理: (一)异常的处理方式1、JVM的默认处理:报错。把异常的名称,原因,位置等信息输出在控制台,程序不能继续执行了。2、自己处理1)方式1:

2022-05-31 21:58:01 2006

原创 集合详解(五):集合嵌套与Collections工具类

二、Collections工具类(一)概述1、Collections:是针对集合进行操作的工具类,都是静态方法。2、Collection和Collections的区别:1)Collection:是单列集合的顶层接口,有子接口List和Set。2)Collections:是针对集合操作的工具类,有对集合进行排序和二分查找的方法(二)方法1、方法:1)public static void sort(List list):排序,默认情况下是自然顺序。2)public static

2022-05-31 21:57:32 1594

原创 集合详解(四):Map

一、Map(一)Map概述1、Map集合:将键映射到值的对象。1)一个映射不能包含重复的键;2)每个键最多只能映射到一个值。 2、Map集合和Collection集合的区别1)Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的。可以把这个理解为:夫妻对 。2)Collection集合存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的。可以把这个理解为:光棍(11.11)3、注意: 1)Map集合的数据结构只针对键有效,跟值无关 ,Ha

2022-05-31 21:57:08 1178

原创 集合详解(三):Set

一、概述1、无序,存储顺序和取出顺序不一致2、不能重复,唯一二、HashSet(一)特点:1、不保证 set 的迭代顺序,特别是它不保证该顺序恒久不变。虽然Set集合的元素无序,但是,作为集合来说,它肯定有它自己的存储顺序, 而你的顺序恰好和它的存储顺序一致,这代表不了有序,你可以多存储一些数据,就能看到效果。2、不能重复,唯一性。3、HashSet底层是HashMap实现的,而数据结构为哈希表

2022-05-31 21:56:47 1035

原创 集合详解(二):List

一、List概述(一)概述1、List特点1)有序(存储和取出的元素顺序一致),对每个位置可以精确控制。2)可重复的,不唯一。2、List的子类特点1)ArrayList:查询快底层数据结构是数组(定长),查询快,增删慢。线程不安全,效率高。2)Vector:不推荐底层数据结构是数组,查询快,增删慢。线程安全,效率低。

2022-05-31 21:56:21 1179

原创 集合详解(一):Collection以及简单数据结构

一、Collection 概述二、三、

2022-05-31 21:56:01 2139

原创 时间日历:Date、Calendar

一、Date(一)概述1、Date:表示特定的瞬间,精确到毫秒。2、构造方法:Date():根据当前的默认毫秒值创建日期对象Date(long date):根据给定的毫秒值创建日期对象(注意时区,这边是东8区) /* * Date:表示特定的瞬间,精确到毫秒。 * * 构造方法: * Date():根据当前的默认毫秒值创建日期对象 * D

2022-05-31 21:55:39 1260

原创 数组Array及其工具类的使用

一、一维数组(一)初始化1、静态初始化:给出初始值,系统决定长度int[] sArr = {1,2,3};String[] sArrStr = {"a","b","c"};2、动态初始化:只指定长度,系统给出初始值int[] dArr = new int[3];//分配空间dArr[0] = 1;dArr[1] = 2;dArr[2] = 3; Strin

2022-05-31 09:48:38 2632

原创 String 和 StringBuffer详解

一、概述1、字符串:就是由多个字符组成的一串数据。也可以看成是一个字符数组。2、通过查看API,我们可以知道字符串字面值"abc"也可以看成是一个字符串对象。字符串是常量,一旦被赋值,就不能被改变。3、构造方法:public String():空构造public String(byte[] bytes):把字节数组转成字符串public String(

2022-05-31 09:48:05 5634

原创 超类Object和键盘类Scanner

一、构造方法1、无参的构造方法二、常用方法(一)hashCode1、特点返回该对象的哈希码值。针对不同的对象返回不同的整数,通过将该对象的内部地址转换成一个整数来实现。(二)equals1、特点:指示其他某个对象是否与此对象“相等”,内部是使用“==”实现,看源码。默认情况下比较的是地址值。比较地址值一般来说意义不大,所以我们要重写该方法

2022-05-31 09:47:33 566

原创 面向对象(三):常用知识下

十一、抽象类1、抽象类的特点:抽象类和抽象方法必须用abstract关键字修饰抽象类一般会有一个 public 的方法,作为访问的入口。抽象方法,一般使用 protected 关键字修饰,用于子类重写。内部使用的方法,为 private 修饰。抽象类中不一定有抽象方法,但是有抽象方法的类必须定义为抽象类。抽象类不能实例化 ,但是抽象类有构造方法,作用在于子类访问

2022-05-26 22:17:21 951

原创 面向对象(二):常用知识上

一、成员变量和局部变量1、区别 1)在类中的位置不同成员变量:在类中方法外局部变量:在方法定义中或者方法声明上 2)在内存中的位置不同成员变量:在堆内存局部变量:在栈内存 3)生命周期不同成员变量:随着对象的创建而存在,随着对象的消失而消失局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 4)初始化

2022-05-26 22:16:57 740

原创 面向对象(一):基础分析

Java 程序在运行时,需要在内存中分配空间。为提高运算效率,对内存空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式与内存管理方式。1、Class Loader 类加载器类加载器的作用是加载类文件到内存,比如编写一个HelloWord.java程序,然后通过javac编译成class文件, Class Loader承担的就是这个责任,Class Loader加载的class文件是有格式要求。2、STACK 栈:存放局部变量。数据用完就释放,一定是脱离了它的作用域。Java中,栈的大

2022-05-26 22:16:33 659

原创 SpringMVC学习笔记(二): 日常使用功能

七、@RequestBody 和 @ResponseBody (一)@RequestBody:1、作用: 1)该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上。2)再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。2、使用时机:1)GET、POST方式提时, 根据request header Content-Type的值来判断:①、ap

2022-05-25 09:51:53 1676

原创 SpringMVC学习笔记(一): 基础知识

spring-mvc的主要结构:1、DispatcherServlet:中央控制器。1)把请求给转发到具体的控制类(即具体的Controller)。2)需要在web.xml 中配置,类似于struts2需要配置的 StrutsPrepareAndExecuteFilter 。2、Controller:具体处理请求的控制器。1)类似于struts2的action ,处理具体请求与返回的信息。2)日常功能都在Controller 中处理。可以使用xml实现(继承AbstractController

2022-05-25 09:51:16 2323

原创 Spring笔记(五): spring 整合jdbc、hibernate、jpa

一、简介(一)需要的jar包1、需要的jar包:spring、hibernate、mysql、xml、apache-commons等等的jar包。2、以上jar包,如spring、xml和commos都是冗余的。(二)分析1、涉及到的实体、service、dao接口、jdbc配置文件以及service实现类都可以通用,只需要实

2022-05-25 09:50:50 3109

原创 Spring笔记(四): spring的编程式事务与声明式事务

事务管理对于企业应用而言至关重要。它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性。就像银行的自助取款机,通常都能正常为客户服务,但是也难免遇到操作过程中机器突然出故障的情况,此时,事务就必须确保出故障前对账户的操作不生效,就像用户刚才完全没有使用过取款机一样,以保证用户和银行的利益都不受损失。在 Spring 中,事务是通过 TransactionDefinition 接口来定义的。该接口包含与事务属性有关的方法。在 Spring 中,事务是通过 Transa

2022-05-25 09:50:28 3059

原创 Spring笔记(三):Aop详解

1、需要的包:spring的包,还需要 aspectjweaver.jar,aopalliance.jar ,asm.jar 和cglib.jar 。2、Aop的实现方式:Spring 接口方式,schema配置方式和注解的三种方式3、概念1)切面(aspect):用来切插业务方法的类。2)连接点(joinpoint):是切面类和业务类的连接点,其实就是封装了业务方法的一些基本属性,作为通知的参数来解析。3)通知(advice):在切面类中,声明对业务方法做额外处理的方法。4)切入点(po

2022-05-25 09:50:02 3508

原创 Spring笔记(二):Ioc 之注入与装配

1)控制反转(IOC):以前传统的java开发模式中,当需要一个对象时我们,我们会自己使用new或者getInstance等直接或者间接调用构造方法创建一个对象,而在Spring开发模式中,Spring容器使用了工厂模式为我们创建了所需要的对象,我们使用时不需要自己去创建,直接调用Spring为我们提供的对象即可,这就是控制反转的思想。实例化一个java对象有三种方式:使用类构造器,使用静态工厂方法,使用实例工厂方法,当使用spring时我们就不需要关心通过何种方式实例化一个对象,spring通过控制反转机

2022-05-25 09:49:31 898

原创 Spring笔记(一):Ioc 之 Bean的管理

2、Spring主要核心是:1)控制反转(IOC):以前传统的java开发模式中,当需要一个对象时我们,我们会自己使用new或者getInstance等直接或者间接调用构造方法创建一个对象,而在Spring开发模式中,Spring容器使用了工厂模式为我们创建了所需要的对象,我们使用时不需要自己去创建,直接调用Spring为我们提供的对象即可,这就是控制反转的思想。实例化一个java对象有三种方式:使用类构造器,使用静态工厂方法,使用实例工厂方法,当使用spring时我们就不需要关心通过何种方式实例化一个对

2022-05-25 09:46:06 2058

原创 SpringMVC4.x 笔记(4):控制器(Controller)功能实现

文章目录使用 `@RequestMapping` 映射请求通过请求URL进行映射使用 URI Template Patterns 风格通过请求参数、请求方法/请求头进行映射`@RequestMapping`请求方法组合注解请求处理方法参数绑定(参数获取)使用`@RequestParam`绑定请求参数使用`@CookieValue`绑定请求中的Cookie值使用 `@RequestHeader` 绑...

2020-02-06 21:30:50 675

原创 SpringMVC4.x 笔记(3):使用JavaConfig配置实现开发

文章目录一、配置Spring MVC(一)Xml配置(二)JavaConfig配置(Servlet3.x)(三)Servlet3.x 配置实现分析二、JavaConfig配置实现解析(一)配置实现分析(二)扩展实现的功能列表参考一、配置Spring MVC(一)Xml配置配置 DispatcherServlet<web-app> <display-name&g...

2020-02-06 21:24:56 448

原创 SpringMVC4.x 笔记(2):Spring MVC中MVC设计

文章目录请求流程请求流程图流程分析Control 设计处理器映射 HandlerMappingHandlerMapping 概述HandlerMapping 初始化常用`HandlerMapping`了解BeanNameUrlHandlerMappingSimpleUrlHandlerMappingRequestMappingHandlerMappingHandlerMapping 的使用处理器适...

2019-10-13 11:16:50 258

原创 SpringMVC4.x 番外(1):Spring MVC 上下文容器初始化

文章目录MVC 应用配置实现Web.xml 配置实现Servlet3.x 容器实现MVC 容器初始化DispatcherServlet 创建DispatcherServlet 初始化参考MVC 应用配置实现在目前的实现中Spring的上下文容器可以称之为RootApplicationContext,而MVC的上下文容器称之为WebApplicationContext或者ServletApp...

2019-09-26 10:10:45 336

原创 Spring4.x 番外(1):Spring 上下文容器(WebApplicationContext)初始化

文章目录WebApplicationContext 配置实现使用 Web.xml 配置启动使用 SpringServletContainerInitializer 配置启动容器初始化监听器对象的创建监听器初始化监听器销毁参考WebApplicationContext 配置实现Spring 框架提供了用于启动 ApplicationContext上下文容器的监听器:ContextLoaderL...

2019-09-25 13:27:18 610

原创 SpringMVC4.x 笔记(1):框架体系概述

文章目录简单使用核心类DispatcherServlet 初始化上下文容器初始化内部组件初始化核心组件扩展注解 @EnableWebMvc内部组件扩展核心类 WebMvcConfigurationSupport请求流程请求流程图流程分析总结简单使用使用 Spring MVC 方式有多种,刚开始接触一般为 Web.xml 和 dispatcherServlet-servlet.xml 配置实现。...

2019-09-25 09:40:21 342

原创 Spring4.x 笔记(14):Spring 声明式 Aop

文章目录声明式 Aop 实现基于AspectJ注解实现基于Schema标签实现基于注解的 Advice注解Advice详解说明前置- @Before后置- @AfterReturning环绕- @Around异常抛出- @AfterThrowingFinal- @After引介- @DeclareParentsAdvice 的顺序切点表达式函数详解常用函数以及用法@annotationexecut...

2019-05-17 16:02:02 709

大规模SOA系统中的分布式事务处理_程立

大规模SOA系统中的分布式事务处理_程立 经典中的经典,蚂蚁CTO 分享的分布式事务解决方案

2019-01-30

rabbitmq-server-windows-3.7.9.zip

rabbitmq 的 window 版本 rabbitmq-server-windows-3.7.9.zip

2019-01-29

抓包工具:Wireshark-win64-3.0.0 和 FiddlerSetup

抓包工具:Wireshark-win64-3.0.0 和 FiddlerSetup

2019-03-19

RabbitMQ实战指南.zip

RabbitMQ实战指南 PDF 下载 RabbitMQ实战指南 PDF 下载,高清

2019-06-06

大型网站技术架构:核心原理与案例分析-李智慧.pdf

大型网站技术架构:核心原理与案例分析-李智慧.pdf

2019-01-30

大型网站系统与JAVA中间件实践-曾宪杰

大型网站系统与JAVA中间件实践-曾宪杰

2019-01-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除