- 博客(56)
- 收藏
- 关注
原创 你真的知道怎么设计一个通用的高并发 Agent 系统吗?---(下篇):网关、上下文与线上交付
本文延续工单场景,深入Agent任务执行细节:通过路由与配额绑定确保模型调用合规,实现预算预留、费用分层与状态追踪;工具网关强化参数校验与权限核验,防止越权操作;结合上下文压缩与结果交付,保障输出一致性。强调“路由即契约”“预算可追溯”“授权动态验证”,构建可审计、可恢复的可信执行链路。
2026-09-09 16:37:38
248
原创 你真的知道怎么设计一个通用的高并发 Agent 系统吗?---(上篇):容量、状态与调度
本文探讨Agent系统在高并发下的执行协议设计,强调需将“并发”转化为可计算的负载指标。通过容量推演,明确Run、Step、Attempt等核心对象的统计边界与资源消耗,提出以持久化状态为核心,统一管理进度与恢复。关键在于:任务状态由数据库保管,重试与重复投递不改变业务语义;执行粒度应匹配外部调用边界,避免过度细分;资源不足时按配额与优先级调度,确保系统稳定。最终构建可扩展、可观测、可验证的通用运行时架构。
2026-09-09 15:19:46
299
原创 AI 原生研发流水线(下):跑通 demo 后,才知道真正难的是门禁
一条 AI 原生研发流水线,第一阶段的目标不是替代工程团队,而是把低风险变更变成可控的半自动流程。它应该做到:自然语言需求进来,系统生成可测规约和改动计划,在隔离环境里产出补丁,跑测试和静态门,组装证据包,停在人审边界前。人批准的是内容指纹,CI 仍然按原规则执行,发布仍然受控。做到这一步,才有资格谈提效。再往后,不是继续堆 prompt,而是用真实运行数据迭代系统:哪些需求适合自动化,哪些门禁误报太多,哪些失败能反馈修复,哪些必须升级人工,哪些仓库需要先补测试。
2026-06-28 17:41:30
164
原创 AI 原生研发流水线(上):别再问模型靠不靠谱,先问系统怎么兜底
不积跬步,无以至千里”。AI 写代码这件事,已经没什么神秘感了。让模型补一个接口、改一段样式、写几个测试,大多数工程师都见过,也都踩过坑:看起来像能跑,细看又有边界条件漏掉;局部 diff 很漂亮,放进真实仓库就开始和历史包袱打架;第一次生成挺惊艳,第二次修 bug 又把前面写好的东西改坏。所以我现在不太愿意把“AI 研发提效”理解成“找一个更会写代码的模型”。模型当然重要,但它不是系统的安全边界。
2026-06-28 11:40:35
228
原创 我对国内 AI 商业化落地的 8 个判断:热闹很多,真正赚钱的方向其实不多
这篇文章不讲模型参数,也不讲炫酷 Demo,而是站在一线 AI 项目落地的视角,聊聊我对 国内 AI 商业化现状、行情和未来机会 的一些真实判断。为什么很多 AI 项目看起来很火,却始终难以形成稳定收入?为什么越来越多企业开始从“看效果”转向“算 ROI”?接下来 2~3 年,国内真正值得下注的方向到底在哪?结合这两年在多模态 RAG、SQL Agent、复杂 Agent 落地中的实战经验,我尝试给出一套更务实的观察与思考。
2026-04-15 12:04:32
425
原创 撕开 RAG 的遮羞布:多模态文档解析中的真实 Bad Case 治理与破局策略
讲到这里,基本可以把一些幻觉打掉了。RAG 这件事,很多人把火力都集中在“模型是不是够强”。你喂给模型的文档,往往从第一步就已经坏了。多模态文档解析不是外围模块,它就是知识入口的总闸门。复杂版式读序错乱、跨页表格撕裂、图文混排语义断链,这三个 Bad Case 不解决,后面所有检索增强、生成优化、提示词工程,都会有一种在泥地里拧涡轮的荒诞感。没有银弹。真的没有。分类型治理针对性建模结构优先于文本规则与模型协同基于 Bad Case 的持续迭代围绕业务文档建立自己的数据和评测体系。
2026-03-07 12:42:16
469
原创 LangGraph 实战:如何用“双图编排”将多模态 OCR-RAG 做到生产级落地
它不是“把 Chain 画成 DAG”,而是给复杂 AI 流程加上了执行语义。对于多模态 OCR-RAG 这种典型生产场景,真正该拆的不是“函数”,而是责任边界在线图,只负责快、稳、可降级;离线图,只负责重、慢、可恢复;中间靠状态层解耦,而不是靠一次请求强行串到底。一条超长 Chain 在 demo 里很优雅,在生产里通常像玻璃剑:看着亮,真打起来先碎。双图编排就没那么浪漫了,但它扛揍、能回放、能插人工、能局部重试,出了事故也知道去哪里拧螺丝。这才是生产级落地最值钱的地方。
2026-03-06 12:19:41
584
原创 大模型应用发展与Agent前沿技术趋势(下)
本文探讨了大模型Agent技术在金融风控领域的应用,重点展示了一个基于深度学习的风控系统实现方案。该系统通过FinancialDataProcessor类处理结构化金融数据,包括数值特征标准化、分类特征编码和时间特征提取;TransactionEncoder类构建交易特征嵌入模型,采用神经网络处理各类特征;UserBehaviorModel类则利用LSTM网络分析用户行为序列模式。该实现方案融合多源数据特征,通过深度学习模型进行风险评估,为金融风控决策提供技术支持,体现了Agent技术在金融领域的实际应用价
2025-08-22 18:57:54
655
原创 大模型应用发展与Agent前沿技术趋势(中)
本文探讨了大模型与Agent结合的分层式架构设计。文章提出了一种包含六个核心组件的现代Agent系统架构:感知层处理多模态输入数据,理解层进行语义分析,规划层制定决策,执行层实施行动,记忆层管理历史数据,学习层持续优化策略。作者通过Python代码示例展示了各层实现细节,包括多模态处理、记忆管理和语义理解等关键技术。这种分层设计提高了系统的可维护性和扩展性,为构建高性能Agent系统提供了实用框架。
2025-08-17 11:36:19
1185
原创 大模型应用发展与Agent前沿技术趋势(上)
摘要: 大模型在NLP、CV等领域取得显著进展,但仍面临数据依赖、资源消耗等挑战。Agent技术通过强化学习、多Agent协作等提升大模型的自主决策与交互能力,在智能客服、自动驾驶等场景展现优势。核心算法如DQN结合大模型优化任务处理,应用案例包括基于GPT-4的智能客服系统,通过动态调整对话策略提升交互质量。未来,Agent技术将推动大模型在复杂环境中实现更高效的自主学习和决策。
2025-08-16 16:39:12
1115
原创 Spring-rabbit重试消费源码分析
本文深入解析了RabbitMQ与Spring Boot 3.1.x集成时RetryOperationsInterceptor的工作原理。该组件通过拦截消息消费异常实现重试机制,支持配置最大尝试次数(如3次)、退避策略(初始间隔1秒,倍增因子2.0)和最终恢复处理(转发至死信队列)。源码层面揭示了其与RetryTemplate的协作流程:当消费失败时自动重试,若达到上限则调用RepublishMessageRecoverer将消息路由至死信队列。文章还展示了如何通过@RabbitListener与自定义容器工
2025-06-14 15:24:19
926
原创 Responsive programming in Springboot Application (2)
Springboot reactive programming
2024-08-04 12:55:06
962
原创 Responsive programming in Springboot Application (1)
【代码】Responsive programming in Springboot Application (1)
2024-07-07 17:29:34
1332
7
原创 Java使用Zstandard压缩算法对字节数组进行压缩和解压缩
最近在做项目的时候,因为项目部署在国外,又是公网的环境,流量费用很贵,所以需要使用Netty对传输的数据进行压缩和解压缩,准备用Facebook的Zstandard试试性能,听说压缩性能好,还可以根据需求调整压缩比。然而在网上搜索了一阵子发现,java通过zstd对字节数组做压缩和解压缩的例子很少,仅有的几个给出的API还都是错误的,更别说跑通了,就算使用Gpt3.5和4.0给的的示例也是错误的,所以干脆写篇文章记录一下。
2023-11-02 14:06:48
2153
原创 Linux运行环境搭建系列-Docker及MySQL8安装
问题:新版 MySQL 授权用户时报错 near ‘IDENTIFIED BY ‘密码’ with grant option’ at line 1。原因:因为新版的的mysql版本已经将创建账户和赋予权限的方式分开了。
2023-10-14 16:08:27
386
原创 Linux压测工具wrk安装与使用
简介wrk是一款简单的HTTP压测工具,托管在Github上,https://github.com/wg/wrk。wrk 的一个很好的特性就是能用很少的线程压出很大的并发量. 原因是它使用了一些操作系统特定的高性能 io 机制, 比如 select, epoll, kqueue 等. 其实它是复用了 redis 的 ae 异步事件驱动框架。 确切的说 ae 事件驱动框架并不是 redis 发明的, 它来自于 Tcl 的解释器 jim, 这个小巧高效的框架, 因为被 redis 采用而更多的被大家所熟知
2022-05-12 12:10:33
3139
原创 Gor + Apisix实现流量复制
环境准备#安装Go 1.13+$ wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz$ tar -C /usr/local -zxvf go1.13.linux-amd64.tar.gz$ sudo vim /etc/profileexport GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/bin$ source /etc/profile#查看Go版本$ go version##
2022-05-12 12:06:17
1385
1
原创 xxl-job系列(3)- 几种任务调度形式
1 BEAN模式(类形式)Bean模式任务,支持基于类的开发方式,每个任务对应一个Java类。优点:不限制项目环境,兼容性好。即使是无框架项目,如main方法直接启动的项目也可以提供支持,可以参考示例项目 “xxl-job-executor-sample-frameless”;缺点:每个任务需要占用一个Java类,造成类的浪费;不支持自动扫描任务并注入到执行器容器,需要手动注入。步骤一:执行器项目中,开发Job类:1、开发一个继承自"com.xxl.job.core.handler.
2021-12-22 19:21:16
7425
原创 xxl-job系列(2)- 任务详解
开发第一个任务“Hello World”“GLUE模式(Java)”的执行代码托管到调度中心在线维护,相比“Bean模式任务”需要在执行器项目开发部署上线,更加简便轻量。前提:请确认“调度中心”和“执行器”项目已经成功部署并启动;步骤一:新建任务:登录调度中心,进入任务管理,点击“新建任务”按钮,新建示例任务。然后,点击保存。步骤二:“GLUE模式(Java)” 任务开发:点击任务操作栏 “GLUE IDE” 按钮,进入 “GLUE编辑器开发界面” ,见下图。“GLUE模式(Java)”
2021-12-22 18:39:19
4591
原创 xxl-job系列(1)- 快速入门
快速入门1 初始化“调度数据库”“调度数据库初始化SQL脚本” 位置为:/xxl-job/doc/db/tables_xxl_job.sql调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例;如果mysql做主从,调度中心集群节点务必强制走主库;2 编译源码解压源码,按照maven格式将源码导入IDE, 使用maven进行编译即可,源码结构如下:xxl-job-admin:调度中心xxl-job-core:公共依赖xxl-job-executor-samples:执行器
2021-12-22 18:38:21
718
原创 高性能微服务网关APISIX - 常用插件(3)
limit-req简介限制请求速度的插件,使用的是漏桶算法。属性名称类型必选项默认值有效值描述rateinteger必须rate > 0指定的请求速率(以秒为单位),请求速率超过 rate 但没有超过 (rate + burst)的请求会被加上延时。burstinteger必须burst >= 0t请求速率超过 (rate + burst)的请求会被直接拒绝。keystring必须[“remote_addr”, “ser
2021-12-17 20:11:54
3023
原创 高性能微服务网关APISIX - 常用插件(2)
proxy-rewrite简介proxy-rewrite 是上游代理信息重写插件,支持对 scheme、uri、host 等信息的重写。属性NameTypeRequirementDefaultValidDescriptionschemestring可选“http”[“http”, “https”]不推荐使用。应该在 Upstream 的 scheme 字段设置上游的 scheme。uristring可选转发到上游的新 uri 地址。meth
2021-12-17 19:15:45
2718
1
原创 高性能微服务网关APISIX - 常用插件(1)
APISIX 常用插件(1)APISIX 插件机制Plugin 表示将在 HTTP 请求/响应生命周期期间执行的插件配置。Plugin 配置可直接绑定在 Route 上,也可以被绑定在 Service 或 Consumer上。而对于同一 个插件的配置,只能有一份是有效的,配置选择优先级总是 Consumer > Route > Service。在 conf/config.yaml 中,可以声明本地 APISIX 节点都支持哪些插件。这是个白名单机制,不在该白名单的插件配置,都将会被自动忽
2021-12-17 13:32:29
6413
原创 使用kubeadm部署Kubernetes集群(v1.20.0)
使用kubeadm部署Kubernetes集群(v1.20.0)介绍Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。环境准备服务器要求:• 建议最小硬件配置:2核CPU、2G内存、30G硬盘• 服务器最好可以访问外网,会有从网上拉取镜像需求,如果服务器不能上网,需要提前下载对应镜像并导入节点软件环境:软件版本操作系统CentOS 7.x 64位容器引擎Docker CE 19
2021-12-15 20:41:33
1528
原创 高性能微服务网关APISIX - API文档
Admin APIDescriptionAdmin API 是为 Apache APISIX 服务的一组 API,我们可以将参数传递给 Admin API 以控制 APISIX 节点。更好地了解其工作原理,请参阅 architecture-design 中的文档。启动 Apache APISIX 时,默认情况下 Admin API 将监听 9080 端口(HTTPS 的 9443 端口)。您可以通过修改 conf/config.yaml 文件来改变默认监听的端口。在下面出现的 X-API-KEY 指
2021-12-15 18:37:25
9793
2
原创 APISIX Dashboard 源码构建
APISIX Dashboard 源码构建注:此文档构建环境为腾讯云CentOS 7.9,虚拟机同样适用。SourceThe Dashboard project contains both manager-api and web, but web is optional.The manager-api and web will be included in this build guide product.PrerequisitesBefore using source codes to b
2021-12-15 18:29:28
2911
1
原创 Apache APISIX 源码构建
如何构建 Apache APISIX注:此文档构建环境为腾讯云CentOS7.9,虚拟机同样适用。步骤1:安装依赖# 编写依赖脚本cd /usr/local && mkdir apisix-depscd apisix-deps && vim deps.sh# 脚本内容见下方代码块# 添加权限并执行脚本,安装依赖chmod +x deps.sh && ./deps.shrm -f deps.sh#!/usr/bin/env bash
2021-12-15 16:51:03
1705
原创 Feign源码深度刨析-(7)终章:请求处理组件LoadBalancerCommand
“不积跬步,无以至千里。”Controller中调用FeignClient 接口方法,经过动态代理机制,由FeignInvocationHandler 的invoke() 方法处理,转而交给SynchronousMethodHandler 的invoke() 方法处理,继续调用LoadBalancerFeignClient 的execute() 方法return lbClient(clientName).executeWithLoadBalancer(ribbonRequest, requestCo.
2021-08-27 16:26:49
856
原创 Feign源码深度刨析-(6)动态代理核心处理器:FeignInvocationHandler
“不积跬步,无以至千里。”前面说了,FeignClientFactoryBean的getObject()方法返回的就是一个类型为FeignInvocationHandler的代理对象所有,一旦Controller 中调用feign接口的方法,实际调用的就是这个动态代理,有点尝试的都知道,对于动态代理对象的方法调用,都会经过其绑定的InvocationHandler 的invoke()方法来处理private final Map<Method, MethodHandler> dispat.
2021-08-20 18:05:30
994
原创 Feign源码深度刨析-(5)核心组件FeignClientFactoryBean(下)
“不积跬步,无以至千里。”回顾一下,前面说了,把Feign.Builder、context、HardCodedTarget 一起传入了一个loadBalance()方法里面,最后给 return 了,这个 return 的就是feign client的代理对象,然后注入给Controller的属性这篇文章来着重分析一下 loadBalance() 方法protected <T> T loadBalance(Feign.Builder builder, FeignContext cont.
2021-08-20 15:44:55
547
原创 Feign源码深度刨析-(4)核心组件FeignClientFactoryBean(中)
“不积跬步,无以至千里。”这一篇文章的话,就来看一下feign的动态代理是怎么生成的,生成的动态代理会被添加到容器中,在需要的时候被调用,实际上我们前面也说了,在Controller中自动注入的就是这里生成的动态代理对象,那么这个对象里面包含了什么组件?怎么读取application.yml中配置的跟feign相关的参数的?接着上篇的代码继续跟进,给Feign.Builder 注入一些组件(logger、encoder、decoder等)之后configureFeign(context, buil.
2021-08-19 11:42:33
504
原创 Feign源码深度刨析-(3)核心组件:FeignClientFactoryBean(上)
“不积跬步,无以至千里。”前面说了,@EnableFeignClients 这个注解往容器中导入了一个组件 FeignClientsRegistrar ,这个组件实现了 ImportBeanDefinitionRegistrar接口,那么它的 registerBeanDefinitions() 方法就会往spring容器中导入一些组件registerFeignClients(metadata, registry);这个方法会搞一个组件扫描器ClassPathScanningCandidateCom.
2021-08-18 14:40:05
770
原创 Feign源码深度刨析-(2)组件扫描器:ClassPathScanningCandidateComponentProvider
“不积跬步,无以至千里。”这篇文章,一起来看看feign的核心机制,看看是如何扫描所有包下的@FeignClient注解的接口入口就是这个registerFeignClients(metadata, registry)方法public void registerFeignClients(AnnotationMetadata metadata, BeanDefinitionRegistry registry) { ClassP.
2021-08-16 18:22:36
867
2
原创 Feign源码深度刨析-(1)初探:@EnableFeignClients
“不积跬步,无以至千里。”之前我们讲了ribbon的核心源码,其实在实际生产环境中,国内用ribbon+restTemplate去做微服务调用的甚少,因为会导致我们每次去调用人家一个接口,都要单独写一些代码,非常不简洁,所以我们这一个专题开始,研究一下feign的底层核心源码。feign这个东西呢,底层也是依赖了ribbon做负载均衡的,所以是整合了ribbon的,feign的具体用法这里就不赘述了,相信来看这篇博文的,都是熟练使用的,技术,用,是很简单的,随便百度一下,csdn其他的文章,一搜一大.
2021-08-16 12:39:28
740
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅