自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (4)
  • 收藏
  • 关注

原创 MCP 与 Skill 两种 Agent 工具机制的设计思路

它们都用于,但在上存在本质差异。

2026-03-16 16:57:21 402

原创 Agent2Agent协议你怎么理解?

如果只用一句话来概括:MCP 解决的是 Agent 怎么调用工具,A2A 解决的是 Agent 怎么和另一个 Agent 协作。

2026-03-16 16:50:18 623

原创 MultiAgent系统的一些开发方案

摘要:MultiAgent系统是由多个专门化的Agent协作完成复杂任务的系统架构,适用于工具过多、上下文过大或需要不同专长的场景。主要分为网络型、监督型和分层型架构,运作模式包括工具调用和任务交接两种。设计时需明确Agent职责、流程控制、上下文管理等。示例代码展示了监督型架构中主管Agent调用数学和知识解释两个子Agent的工具调用模式,实现了模块化协作和流式响应功能。该系统提高了任务处理的专业性和可维护性。(150字)

2025-11-10 18:15:01 706

原创 一个简单对话的Agent也有疑难点

本文探讨了构建可运行智能对话Agent的两个关键问题。意图识别是首要难点,需根据不同场景在通用与定制间取得平衡,小规模可直接用大模型判断,大规模需结合语义过滤。多轮对话需解决状态完整性问题,建议使用结构化状态存储或对话记忆框架来跟踪用户信息。此外,应合理划分AI与代码的职责,用模型处理模糊推理,用代码确保边界约束,尤其在工具调用阶段需验证参数完整性。这些方法能有效避免对话混乱,提升Agent的实用性和稳定性。

2025-11-07 16:36:21 590

原创 提示词user、system、assistant如何正确应用

介绍了对话系统中的三种核心角色:system(系统角色,定义模型身份和规则)、user(用户角色,提出请求)和assistant(助手角色,生成回答)。通过结构化对话历史,模型会综合这些角色信息生成响应。文章还对比了不同框架中的角色实现方式,并提供了五种实用场景示例,包括基础问答、示例教学、多步推理、多角色对话和格式控制,展示了如何通过角色分工有效引导模型输出。最后强调system指令具有最高优先级,是控制模型行为的关键。

2025-10-27 11:05:42 962

原创 坤哥看了都能懂的MCP和Function Calling异同

MCP与Function Calling对比分析 本文通过咖啡点单场景形象对比了MCP与Function Calling的异同。Function Calling如同直接操作咖啡机,需预先定义工具集,模型只能调用固定函数;MCP则像拥有万能助理,能动态发现和协调多种服务。关键区别在于:Function Calling在限定工具集内执行,MCP支持动态扩展服务。两者都能处理多工具场景,但MCP更注重服务发现和协议通信。文章还详细列举了两者的调用流程步骤,说明MCP具有更好的灵活性和可扩展性,而Function

2025-09-30 21:23:52 796

原创 【SpringBoot】@Scheduled是静态配置,是我想改时间,但又不想引入其他组件,还有什么方案么?

本文介绍了Spring中两种定时任务实现方式:静态的@Scheduled注解和动态的TaskScheduler。重点展示了动态任务的实现方案,包括配置线程池任务调度器、任务管理类封装核心功能(添加/删除/更新任务)、业务方法类示例以及对外暴露的REST接口。通过Map存储任务状态,支持运行时动态调整任务配置,并提供了调试示例(如每5秒执行邮件发送任务)。该方案比静态注解更灵活,适用于需要动态管理定时任务的场景。

2025-09-29 15:49:32 236

原创 为什么需要优化提示词

摘要: 提示词优化对大模型生成结果至关重要,因为模型基于概率生成内容,模糊的提示词会导致泛化输出。优化技巧包括:1)详细描述需求,减少模型猜测;2)添加系统消息(如角色定义)引导风格;3)明确技能描述避免发散;4)设定约束(如格式、禁忌内容)保证输出一致性;5)结构化格式(如Markdown/XML)提升可读性。例如,通过角色定义、技能说明、约束条件和示例模板,可精准生成李白风格的诗歌并以JSON格式输出。优化后的提示词能显著提升结果的针对性和实用性。

2025-09-29 15:10:08 585

原创 Transformer简易笔记

Transformer是一种基于自注意力机制的神经网络,分为编码器和解码器两部分。编码器通过词嵌入、位置编码和多头自注意力机制理解输入序列,再经过前馈网络增强表达能力,最后通过残差连接和层归一化输出抽象表示。解码器采用带遮挡的自注意力以避免信息泄露,并通过交叉注意力整合编码器输出,最终生成目标序列。输出层通过线性变换和Softmax预测下一个词的概率分布。Transformer通过堆叠多层结构实现高效的序列建模和生成。

2025-09-22 17:04:05 560

原创 这个所谓的 RAPTOR 是怎么优化 RAG 的?

RAPTOR优化RAG的核心在于递归构建摘要树结构。它将文档分块后,通过聚类和摘要生成多层抽象节点,形成树状索引。检索时不仅匹配原始分块,还会沿树结构展开相关上下文,从而获取更全面的信息覆盖。相比普通RAG仅检索原始分块,RAPTOR能通过摘要节点捕捉宏观关联,提升长文档和多步推理的表现,但构建成本较高,需进行聚类、摘要和多层embedding处理。

2025-08-15 10:56:46 455

原创 【Docker】docker-compose中的nginx为何突然访问不到服务了?

摘要:在使用docker-compose部署Nginx和服务时,当服务重建后IP变化会导致Nginx无法访问。原因是Nginx默认只解析服务名一次并缓存DNS结果,而Docker重建服务可能分配新IP。复现方法:先停止服务,用临时容器占用原IP,再重建服务。解决方案是修改nginx.conf,添加resolver 127.0.0.11 valid=5s设置动态DNS解析,通过变量$backend触发每次请求前的DNS查询。这解决了Nginx缓存旧IP导致的服务不可访问问题。

2025-06-20 14:57:46 624

原创 【JAVA】中文我该怎么排序?

Java默认的字符串排序基于Unicode编码,无法正确处理中文拼音顺序。通过Collator类,可以按拼音顺序对中文字符串进行排序,并支持升序和降序排列。

2025-05-21 11:13:57 948

原创 【JAVA】常用的JDK8、JDK17 以及 JDK21 的主要新特性和演进过程

JDK8、JDK17 以及 JDK21 的主要新特性和演进过程

2025-04-10 17:04:37 1350

原创 【概念】xx即服务到底是啥?

那么多的xx即服务,到底怎么理解?

2025-02-24 14:25:29 929

原创 【Linux】macOS下使用scp命令编写脚本上传文件至服务器

上传文件

2023-12-20 18:03:28 1063

原创 【Linux】查看Java进程并编写脚本停止和启动

查看Java进程并编写脚本停止和启动。

2023-12-20 17:00:31 960

原创 【SpringBoot】springboot数据使用多线程批量入数据库

Spring实现事务的原理是通过ThreadLocal把数据库连接绑定到当前线程中,同一个事务中数据库操作使用同一个jdbc connection,新开启的线程获取不到当前jdbc connection。可见时间从180秒,缩短到了28秒,但是@Transactional对于多线程是控制不了所有的事务的。可见5个线程都报错了,但是去查询数据库,却可以查询到5000条数据,这是不应该出现的情况。分别放开子线程报错和主线程报错,会发现事务都可以正常回滚,达到了预期的效果。耗时时间:87217ms。

2023-02-02 17:09:32 6672 5

原创 【JAVA】一个方法中多个线程new Thread(....).run()会发生啥呢

根据上面说的,直接调用run方法,效果其实就是普通代码块,并没有以多线程的方式执行,所以输出 A B。A线程sleep的时间比B长,所以输出结果是 B A。

2023-01-30 16:23:02 1196

原创 【SpringBoot】FilterRegistrationBean一次只能注册一个Filter,那在Filter个数不确定的情况下如何注册呢,那便是需要手动注册过滤器

1. 首先编写程序时,或多或少会存在几个固定的Filter,那么第一步就是为确定的那几个Filter指定好顺序。(通常情况下的使用场景是:你要将你现在编写的项目打包成jar给别的项目使用)2. 其次程序确定的几个Filter已经编写好了,那么需要将它们和不确定的那几个放在一起进行重新排序。3. 将排好序的Filter进行注册。

2023-01-16 18:48:06 1619

原创 【SpringBoot】使用AOP+注解实现请求参数的指定自动填充

使用AOP+注解实现请求参数的指定自动填充

2023-01-09 18:08:27 2028 2

原创 【SpringBoot】在一个@Bean方法内,this调用同一个类的@Bean方法会有什么效果呢?

此时配置类会被CGLIB增强(生成代理对象),放进IoC容器内的是代理,方法相互调用能够保证是同一个实例,都指向IoC内的那个单例,可以支持通过常规Java调用相同类的@Bean方法而保证是容器内的Bean,但是运行时会给该类生成一个CGLIB子类放进容器,有一定的性能、时间开销。模式中的Bean,不支持Bean间的相互调用,如果相互调用,那么将会被视为标准的Java方法调用,Spring不会通过。方法,甚至只是在一个非常普通的类中声明的Bean方法,都被认为是Lite版的配置类。

2023-01-05 10:33:54 1006 3

原创 【JAVA】我一定要重写equals()和hashCode()方法吗?

通常不重写上述两个方法,一个类大致是这样的可见,我们给一个对象设置的每个属性都相同,期望就是,但是此时的结果并不尽人意,那么此时要想实现需求,就需要去重写方法,我们在上述类中添加下面这段代码,重写其方法。代码还是比较简单的,我们判断这两个对象是否一样,那就是要去判断他们的每个值是不是一样的。此时可以看到,比较返回true了,这已经达到了我们的预期结果了,好像不重写也没什么关系,确实,如果你的对象仅仅是这么使用的,不需要像方法中后半段一样放进集合进行操作,那重不重写对你来说问题不大。

2022-11-07 09:48:22 312

原创 【JAVA】给线程的interrupt()方法使用举个栗子

上面这段代码就是,interrupt()的基本用法,子线程TestThread会一直判断当前线程有没有被标记为可以中断了,直到检查到被标记了,while循环结束,子线程任务结束。

2022-08-05 17:12:35 329

原创 【Spring】@Transactional常用参数使用示例、以及常见的一些坑

当spring隔离级别和数据库隔离级别不一样时,spring的优先。

2022-08-03 22:45:46 3181 5

原创 【SpringBoot】在A类上标注@Component和@ConditionalOnMissingBean({A.class})两个注解,导致bean注册失败

我有一个类名为,我在其上加上注解和期望其在没有这个Bean的时候注册一个Bean,但是得到的结果却是,容器中并不存在这个Bean。}System.out.println(beanDefinitionName+"存在");}}}}那么此时,如果容器中存在该bean,springboot程序启动时就会如下图但是,实际情况是只存在@Component注解时会输出,一旦加上使用了就会不存在。......

2022-07-27 22:14:49 1823 2

原创 【SpringBoot】异步执行,设置某些异步任务优先执行

前提: @Async 注解可以实现异步功能,但是如果想让其中一些异步任务先于一些异步任务执行,那么这个注解就实现不了了。参考大神文章:这篇文章,需要大显神通解决思路:为使用这里的配置基本和使用注解时配置线程池的无异,就是使用了去为在等待队列中的线程设置优先级。调试和输出结果String类型任务优先级高,List类型任务优先级低输出结果:可见List任务在最后执行完成......

2022-06-14 16:20:47 1856 1

原创 【JAVA】用二维码生成工具,取出无法联网电脑的文件内内容

背景内网环境开发,内外网不互通,想拿东西进出都得申请,有时候写代码时总结了一些帮助开发的工具类,想拿出来做点笔记方便后续的使用,但是由于内网原因,只能再敲一遍代码,这属实是很难受,由于内网仓库二维码开发工具包都有,所以就有了将文件生成二维码再手机扫码拿出文件的想法。实操(完整类在文末)所需jar包<dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</art

2022-04-27 22:46:48 922

原创 【Database】动手捣鼓一下MySQL并发问题:脏读、幻读、不可重复读

MySQL脏读、幻读、不可重复读问题演示建测试表和数据create table show_me_problem( id int auto_increment, price int null, location varchar(256) null, constraint show_me_problem_pk primary key (id))comment 'mysql并发问题演示表';insert into show_me_problem values (1,1,'第一条');i

2022-04-19 23:18:11 750 1

原创 【Linux】docker login 明明账号密码正确,但还是登陆不上问题记录

登陆时要用账号登陆,不要使用邮箱!!!!

2022-03-29 23:12:06 2611 1

原创 【Linux】M1芯片MacBook上制作xxl- job镜像并在aarch64的CentOS7虚拟机上运行,并制作镜像push到Dockerhub

aarch的cnetos7上的xxl-job镜像的制作,并push上Dockerhub

2022-03-29 22:55:53 2538 6

原创 【JAVA】使用流进行树形数据构造

使用Java8的流进行树形数据的构造

2022-03-17 19:01:28 581

原创 【Linux】Shell学习向一个sh文件写入内容并执行

文章目录Shell学习向一个sh文件写入内容并执行本次学习最终效果描述最终代码代码描述第一段第二段第三段知识补充上述if语法说明补充for循环补充while循环补充case语句Shell学习向一个sh文件写入内容并执行本次学习最终效果描述执行check.sh将向test.sh中写入命令并执行最终代码check.sh#!/bin/bashfile="null"#接受参数while getopts f: OPT; do case ${OPT} in f) echo "in==

2022-01-15 20:21:46 3393

原创 【Linux】设置时区、开机同步时间

设置时区开始是这样的通过命令 sudo timedatectl set-timezone 'Asia/Shanghai'设置并重启即可看到如下结果想修改成特定时间date -s "2021-12-16 10:12:12"保存设置hwclock --systohc同步时间yum install -y ntpdate后面的ntp.api.bz 如果不行就换一个ntpdate -u ntp.api.bz设置开启自动同步网络时间vi /etc/init

2021-12-19 16:15:11 1357

原创 【Linux】服务器安装使用FTP(安装,创建用户,使用windows连接)

安装1. 检查是否安装了vsftpd,如果安装了会显示对应信息的rpm -qa|grep vsftpd2. 没有的话下面开始安装yum -y install vsftpd#开机启动systemctl enable vsftpd.service创建用户及配置1. 创建用户# 创建用户useradd -d /home/testFtp -s /sbin/nologin -g ftp -G root testUser# 设置密码 我设置的是 Test@123passwd testUs

2021-10-11 22:45:04 706

原创 【Mybatis】Mybatis调用带有in和out的存储过程

Mybatis调用带有in和out的存储过程测试表CREATE TABLE `demo_test` ( `ID` varchar(64) NOT NULL, `name` varchar(64) DEFAULT NULL, `age` varchar(64) DEFAULT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `DEMO_TEST_ID_uindex` (`ID`));CREATE TABLE `demo_test2` ( `other

2021-08-13 15:31:28 1371

原创 【JAVA】基于commons.compress的压缩文件以及文件夹的工具类记录

依赖<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.20</version></dependency>代码import org.apache.commons.collections.CollectionUtils;imp

2021-08-05 18:56:39 1121

原创 【JAVA】java8常用函数式接口示例

位于java.util.function的函数式接口,单个使用方法都大同小异,难的是将多个混合使用。Supplier只有输出Supplier<String> stringSupplier = () -> "supplier输出String";System.out.println(stringSupplier.get());Consumer只有输入Consumer<String> stringConsumer = (a) -> { System.out.p

2021-08-04 11:43:00 294

原创 【Database】Oracle分隔数据,及用指定字符连接数据

操作Oracle将逗号分隔的字符串转成列装显示'A,B,C,D,E'为你的字符串,[^,]+中的逗号是你的字符串分隔字符,其他不用变。SELECT REGEXP_SUBSTR('A,B,C,D,E', '[^,]+', 1, rownum) testfrom dualconnect by rownum <= LENGTH('A,B,C,D,E') - LENGTH(regexp_replace('A,B,C,D,E', ',', '')) + 1Oracle把上面转成列显示的内容再转回

2021-07-30 15:38:02 659

原创 【MySQL】MySQL存储过程从一张表查数据插入另一张表

测试表CREATE TABLE `demo_test` ( `ID` varchar(64) NOT NULL, `name` varchar(64) DEFAULT NULL, `age` varchar(64) DEFAULT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `DEMO_TEST_ID_uindex` (`ID`));CREATE TABLE `demo_test2` ( `other_info` varchar(255) DEF

2021-07-27 15:03:34 2573

原创 【Maven】mvn install打包让其包含源码注释

<build> <plugins> <!--生成doc jar包--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId>

2021-07-27 13:34:20 1931 1

CentOS7_64位-Mini.zip

备着备着

2021-10-24

空空如也

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

TA关注的人

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