新闻详情

新闻详情

首页 / 资讯中心 / 详情

JMeter压测全流程:从安装到接口性能报告与报错排查

发布时间:2026/10/1 11:36:09来源:尧图网络
JMeter压测全流程:从安装到接口性能报告与报错排查
做Java后端开发写业务代码只占工作的一半另一半是搞清楚这套代码在真实流量下到底扛不扛得住。我第一次认真接触压力测试是在一次大促前的容量评估上团队只有一台配置很普通的测试机却要预估订单接口在高峰期能不能撑住。当时用的就是 JMeter——一个用 Java 写的开源压测工具解压就能跑不依赖数据库不用改一行业务代码靠图形界面加上命令行就能把并发量拉起来。这篇文章我打算把 JMeter 从安装到出完整报告的链路讲透包括线程组参数怎么算、命令行怎么跑、那些让人抓头的报错怎么排查以及怎么把它和日常的接口测试流程揉到一起。适合谁看如果你是 Java 后端想给自己负责的接口做一次靠谱的容量评估如果你是测试岗正在从功能测试往性能测试转或者你只是面试被问到JMeter 线程组参数怎么设置想弄明白原理这篇内容都能对上。我不会只贴一遍点击流程而是把每一步背后的逻辑讲清楚让你换个项目也知道怎么改。全文涉及的关键词会自然散落在各节里比如 jmeter 安装、jmeter 压测简单步骤、jmeter 性能测试步骤、jmeter 接口测试教程需要哪块直接跳过去看就行。1. 压测这件事Java后端为什么绕不开JMeter1.1 从一次接口变慢说起压测到底解决什么问题讲个真实场景。某个查询接口单次调用耗时从 80ms 涨到 600ms肉眼在测试环境完全看不出来因为只有一个人在点。上线之后并发一上来线程池排队、数据库连接池被占满、上游服务超时重试雪崩就这么来了。压测的意义在于把这个过程提前到上线之前用可控的并发量把潜在的瓶颈逼出来而不是等用户在群里喊着页面转圈才开始救火。还有一种情况是容量规划。产品说预计峰值每秒 300 单那后端到底要几台机器、数据库要不要加读写分离、缓存该给多大内存这些数字不能拍脑袋。JMeter 能给你的是——在给定硬件条件下接口的吞吐量上限、响应时间随并发变化的曲线、以及开始大面积报错的那个拐点在哪。有了这条曲线加机器的决策才有依据。我个人的判断标准很朴素凡是会对外暴露、会被多个用户同时调用的接口上线前都值得跑一次压测。别等出了问题再回头补那时候成本高得多。1.2 JMeter、ab、wrk、Gatling 之间怎么选工具选型这块很多人一上来就问哪个最好其实取决于你的场景。ab 轻量适合快速压一个静态接口但它不支持复杂场景和参数化wrk 性能极强单机就能打出很高的 QPS但脚本要用 Lua 写对 Java 同学不太友好Gatling 用 Scala DSL报告漂亮学习曲线偏陡。JMeter 的优势在于三点一是纯 Java跨平台和 Java 项目的技术栈天然接近懂 Java 的人上手很快二是图形界面加上丰富的元件取样器、逻辑控制器、断言、监听器不用写代码就能搭出登录、下单、支付这种多步骤业务流三是插件生态成熟数据库、MQTT、Kafka 之类的协议都有现成扩展。缺点也明显——GUI 本身吃资源所以正式压测必须走命令行。我的建议是做接口级、业务级的场景压测选 JMeter做单接口的极限 QPS 摸底可以用 wrk 交叉验证。两个工具跑出来的数字对不上是常事这时候更该怀疑的是压测机本身的瓶颈而不是工具。1.3 装 JMeter 之前先把 JDK 环境理顺JMeter 是 Java 写的所以第一件事是确认本地 JDK。这里有个坑JMeter 5.4 以后至少要 JDK 8JMeter 5.6 及以上建议 JDK 17。如果你机器上装的是 JDK 8直接下最新版 JMeter 可能启动就报版本不支持。我的习惯是先java -version看一眼确认版本对得上再下 JMeter。安装步骤本身很简单去 Apache 官网下载二进制包解压到任意目录配置好JMETER_HOME和PATH或者直接进bin目录双击jmeter.batWindows/jmetermacOS、Linux。如果双击一闪而过基本是 JAVA_HOME 没配或者指向了 JRE 而不是 JDK这个在 jmeter 安装教程里被反复提到但每年还是有人踩。还有一个容易忽略的点JMeter 默认的堆内存偏小正式压测前建议改bin/jmeter或jmeter.bat里的HEAP参数比如设成-Xms1g -Xmx4g具体给多大取决于压测机的物理内存和你打算模拟的线程数。线程数一多GUI 模式的窗口会卡到没法操作这也是为什么生产级压测一定要用命令行。2. JMeter 内部机制拆解元件、线程组与执行顺序2.1 测试计划是一棵树执行顺序有讲究打开 JMeter 看到的那个左侧树形结构不是随便排的它代表真实的执行顺序。测试计划Test Plan是根节点下面挂线程组Thread Group线程组下面挂取样器Sampler、逻辑控制器Logic Controller、配置元件Config Element、前置处理器Pre-Processor、后置处理器Post-Processor、断言Assertion、监听器Listener。执行时同一个线程组内JMeter 按配置元件 → 前置处理器 → 定时器 → 取样器 → 后置处理器 → 断言 → 监听器的顺序走一遍。理解这个顺序你才知道为什么有时候断言没生效、变量没取到值——多半是元件挂错了层级或者作用域的先后顺序搞反了。我见过最常见的错误是把 HTTP 信息头管理器挂在测试计划根节点下然后想给不同线程组设置不同的 Content-Type。因为根节点下的配置元件对所有线程组生效后面挂的会覆盖前面挂的结果就是怎么改都不对。正确做法是把信息头管理器放到对应线程组的内部让它只作用于那个线程组。2.2 线程组模型虚拟用户、Ramp-up、循环次数到底怎么算线程组是 JMeter 压测的核心三个参数必须搞懂参数含义设置逻辑线程数Number of Threads模拟的虚拟用户数也就是并发数等于你预估的峰值并发或者你想验证的目标并发Ramp-up Period多少秒内把线程全部启动完越小越猛0 表示瞬间启动一般设为线程数的 1/5 到 1/10循环次数Loop Count每个线程执行多少轮决定测试总时长勾选永远则配合调度器定时停止举个具体例子。你想模拟 100 个用户并发Ramp-up 设为 10 秒循环次数设为 10那么总请求数大约是 100 × 10 1000 次前提是单线程每轮只发一个请求。Ramp-up 10 意味着每秒启动 10 个线程压力是线性爬升的这更接近真实的用户涌入过程。为什么不要一上来就把 Ramp-up 设成 0因为瞬间启动 100 个线程压测机自己的 CPU 和网络会先被自己打满你测到的响应时间里混进了大量本机调度开销数据就失真了。真正靠谱的做法是先用较大的 Ramp-up 找到服务端的能力边界再用陡峭的负载验证稳定性。关于jmeter 模拟 100 用户并发报告这个常见需求线程数填 100 只是第一步后面的监听器和报告怎么配才是重点这个放到第 4 节细说。2.3 作用域规则为什么你的断言老是不生效JMeter 的元件有作用域概念而这个概念坑了无数新手。简单说一个元件的作用域是它的父节点及其所有子节点。你把断言挂在线程组下面它对这个线程组里所有取样器都生效你挂在某个 HTTP 请求下面它只对这个请求生效。有个真实案例同事写了个压测脚本登录接口的断言一直通不过排查半天发现断言挂在了一个复用的HTTP 请求默认值配置元件下面而那个元件根本没挂在登录请求的父链路上。元件挂错位置JMeter 不报错就是静默不生效特别容易浪费时间。我的经验是把断言尽量靠近对应的取样器挂尤其是多个接口用了不同的成功判定标准时。别图省事全挂线程组下面否则一个接口的失败会污染整个线程组的成功判定报告里看不出到底是哪个环节出的问题。3. 手把手搭一个能复用的 HTTP 压测脚本3.1 测试计划骨架与 HTTP 请求默认值先说骨架怎么搭。新建测试计划之后第一件事是加一个线程组。然后加HTTP 请求默认值配置元件把协议、服务器域名或 IP、端口、编码这些公共信息填进去。后面所有 HTTP 取样器只要填路径和方法就行改动服务器地址时只改一处这是脚本可复用性的关键。如果你的接口需要登录态还得加一个HTTP Cookie 管理器。这个管理器有个开关叫每次迭代清除 Cookie压测时一般关掉让同一线程复用会话接口测试时反而要打开模拟不同用户。这个开关在不同场景下的用法完全相反值得单独留意。接着加HTTP 信息头管理器常见的Content-Type: application/json、Accept: application/json都放这里。如果接口需要 Token可以从登录请求的后置处理器里提取然后用变量引用的方式塞进信息头形成登录—提取—带 Token 请求的完整链路。整套骨架搭完你的脚本结构应该是清晰的线程组下面挂配置元件配置元件下面挂业务取样器。这样别人接手你的脚本五分钟就能看懂哪块是环境配置、哪块是业务逻辑。3.2 参数化CSV 数据文件与函数助手压测脚本如果所有请求都用同一份参数缓存命中率会异常高测出来的 QPS 虚高。真实场景里每个用户的手机号、订单号、查询条件都不一样所以参数化是必须的。最常用的是 CSV Data Set Config。准备一个.csv文件一行一条数据配置元件里指定文件路径、变量名、分隔符、是否循环读取。然后在请求里用${变量名}引用。注意几个细节文件编码最好用 UTF-8避免中文乱码Recycle on EOF控制读完是否重头再来Stop thread on EOF控制读完后是否停止线程。压测时通常设成允许循环接口测试时设成读完停止。另一个利器是函数助手Function Helper菜单里打开。比如__Random生成随机数、__UUID生成唯一标识、__time生成时间戳、__counter生成自增序号。做幂等性测试时用__UUID给每个请求生成唯一业务号能有效避免重复提交被拦截这种干扰。参数化有个隐形收益它能帮你发现代码里的线程安全问题。单线程跑得好好的接口一旦参数换成不同数据、并发上来之后开始报数据错乱那多半是共享变量没加锁或者用了非线程安全的集合。这种问题用单测基本测不出来。关于jmeter restful 参数怎么写我的习惯是GET 请求参数放Parameters标签POST、PUT 请求的 JSON 放Body Data标签同时信息头里声明application/json。不要在 Body Data 里手动拼 URL 编码JMeter 不会帮你转义容易出问题。3.3 断言设计响应断言与 JSON 断言没有断言的压测脚本等于没做压测。因为 HTTP 状态码 200 不代表业务成功——很多系统出错时也返回 200把错误信息塞在响应体里。这时候如果不断言业务字段报告会告诉你错误率 0%实际上接口全程在返回失败。基础的用响应断言Response Assertion可以匹配响应文本、响应码、响应头。比如判断响应体是否包含code:0或者判断响应码是否等于 200。更推荐的是 JSON 断言用 JSONPath 表达式直接提取字段判断。比如$.code等于 0、$.data.orderId存在。JSONPath 的好处是不依赖字段顺序和空白字符比字符串包含判断更稳。注意断言别设太严格。曾经有个脚本用响应体完全相等做断言结果接口多返回了一个traceId字段就全线报错实际业务毫无问题。断言的目标是判断业务是否成功不是做全字段比对。如果接口返回结构复杂用 JSON 断言配合多个 JSONPath 组合判断是性价比最高的方案。既不用写代码又能覆盖核心字段。3.4 结果收集结果树、聚合报告与 HTML 报告导出监听器负责收数据但它在 GUI 模式下非常吃内存正式压测要把它们都禁用。常用的几个察看结果树View Results Tree调试用能看到每个请求的请求头、请求体、响应体排查问题神器。但它会把所有响应存在内存里压测时开着准崩。聚合报告Aggregate Report给出样本数、平均值、中位数、90% 线、95% 线、99% 线、最小值、最大值、错误率、吞吐量。这是最常用的性能指标来源。汇总报告Summary Report和聚合报告类似字段略有差别。说到jmeter 察看结果树导出很多人想在 GUI 里把结果导出成 CSV。结果树左上角有个Save Table Data按钮但它有个坑——数据量大的时候点下去要等很久而且容易卡死。更靠谱的做法是压测时直接配置简单数据写入器Simple Data Writer或者命令行-l参数直接落盘成.jtl文件事后分析。图形化报告是 JMeter 3.0 之后的重头戏。命令行加上-e -o 报告目录就能生成一套包含 TPS 曲线、响应时间分布、错误率趋势的 HTML dashboard。这套报告拿去给团队看非常直观比贴一堆数字强多了。3.5 非 GUI 命令行压测参数到底怎么写正式压测必须用命令行这是铁律。GUI 模式本身要消耗 CPU 和内存去渲染界面几百个线程一开界面卡死不说测出的数据也不准。命令行模板大概长这样jmeter -n -t order_test.jmx -l result.jtl -e -o ./report参数逐个说-n表示非 GUI 模式-t指定测试计划文件-l指定结果文件如果文件已存在会报错记得先删或者换名-e表示压测结束后生成 HTML 报告-o指定报告输出目录目录必须为空否则报错。另外几个常用参数-J用来覆盖 JMeter 属性比如-JthreadNum200可以在不改脚本的情况下改变量-r是分布式压测时启动远程节点用的。分布式这块一般单机压不够了才上注意主从机器的 JMeter 版本要一致防火墙端口要放开。我踩过的一个坑压测脚本里的线程数写死在 jmx 里每次调整都要开 GUI 改一遍再保存。后来学会用${__P(threads,100)}这种属性引用的写法配合命令行-Jthreads500传参改并发量再也不用开界面了效率高很多。4. 高频报错与排查速查表4.1 error writing to server 到底在说什么java.io.IOException: Error writing to server是 JMeter 压测里出现频率最高的报错之一。字面意思是往服务端写数据时出错但它背后可能是好几类原因得逐个排除。第一种压测机本地端口耗尽。客户端每次建立 TCP 连接都会占用一个本地端口连接关闭后进入 TIME_WAIT 状态默认要等 60 秒才能复用。几百个线程高频率请求端口很快就不够用了。查看net.ipv4.ip_local_port_range和net.ipv4.tcp_tw_reuse这两个内核参数适当扩大端口范围和开启 TIME_WAIT 复用能明显缓解。第二种压测机文件句柄数不够。每个 TCP 连接都占一个文件描述符ulimit -n默认可能是 1024几百个并发就顶到了。用ulimit -n 65535临时放大或者改系统配置永久生效。第三种服务端主动断连。比如服务端设置了 keep-alive 超时时间比客户端的短服务端先关连接客户端再写数据就报错。这时候要么调服务端超时要么在 JMeter 的 HTTP 取样器里调整连接超时和响应超时参数让客户端主动控制连接生命周期。第四种网络中间设备负载均衡、防火墙有并发或连接数限制超过阈值就重置连接。这种需要联系运维确认。提示遇到这个错误别急着改代码先按本机资源 → 网络中间层 → 服务端的顺序逐层排查。我见过太多次问题根本不在被测服务上。4.2 域名解析、连接超时与端口耗尽的区分报错信息不同排查方向完全不同整理成一张速查表更直观报错关键词常见原因排查动作UnknownHostException域名解析失败检查 hosts、DNS 配置或直接用 IP 测试ConnectException / Connection refused目标端口没监听或服务未启动用 telnet 或 nc 确认端口连通性SocketTimeoutException响应超时调大 JMeter 超时参数同时看服务端是否卡住Error writing to server端口耗尽、句柄不足、服务端断连检查内核参数、ulimit抓包看谁先断OutOfMemoryErrorJMeter 自身堆溢出调大 HEAP 参数禁用结果树监听器这张表我几乎每次压测前都会在脑子里过一遍。提前知道大概会遇到什么排查起来至少不会慌。另外强烈建议学会用netstat或者ss看连接状态分布TIME_WAIT 和 ESTABLISHED 各有多少一眼就能看出是不是本机端口的问题。4.3 压测结果怎么读TPS、RT、错误率的三角关系很多人拿到聚合报告只看平均值这是个坏习惯。平均值会被少量极端值拉偏真正有参考价值的是 90%、95%、99% 分位线。比如平均响应时间 50ms 看着很漂亮但 99% 线是 2000ms说明每 100 个请求就有一个用户等了两秒这个体验是很差的。TPS每秒事务数不是孤立看的它和响应时间、并发数之间有个近似关系并发数 ≈ TPS × 平均响应时间。所以你会看到随着并发数增加TPS 先上升到达某个点后趋于平缓甚至下降而响应时间开始飙升——那个转折点就是系统的容量拐点。错误率也很关键。如果错误率突然从 0 涨到 5%同时 TPS 不升反降说明系统已经过载线程在排队重试。这时候继续加压没意义应该回头找瓶颈是数据库慢查询、线程池满了还是缓存穿透。我的习惯是每个压测场景至少跑三档并发低档确认功能正常中档看性能曲线高档找极限。单跑一档数据说明不了太多问题。4.4 压测机自身的瓶颈排除这是最容易被忽略的一环。你有没有想过你测出来的服务端性能上限可能其实是压测机自己的上限判断方法很简单压测时同时监控压测机的 CPU、内存、网络带宽和句柄数。如果压测机 CPU 跑满、网卡带宽打满那测出来的数字就不可信。千兆网卡的实际上限大概在 900Mbps 左右换算下来如果单个响应体是 100KB理论最大也就每秒一千来个请求。解决办法有几个把响应体裁剪掉只压接口逻辑不压传输、启用 gzip 压缩、或者上分布式压测用多台机器分摊压力。还有个小技巧是加常量吞吐量定时器把压力稳定在某个值避免瞬间峰值触发本机瓶颈这样数据更干净。5. 进阶玩法录制、数据库参数化与 Beanshell 断言5.1 HTTPS 脚本录制与证书导入手工敲每个请求太慢尤其是接口多、参数复杂的业务流。JMeter 自带的 HTTP(S) Test Script Recorder测试脚本录制器能帮你自动生成脚本。原理是它在本地监听一个端口把浏览器的请求先转到这个端口JMeter 记录下流量再转给真实服务端。HTTPS 场景会多一步JMeter 需要用它自己生成的证书来解密流量。这个证书在录制器启动时自动生成路径通常在bin目录下文件名是ApacheJMeterTemporaryRootCA.crt。要把这个证书导入到系统或浏览器的信任列表里浏览器才会接受录制器的解密。不导入的话HTTPS 请求会报证书错误录不全。关于jmeter 安全证书还有个常见困惑录制结束后要不要把这个信任删掉建议删掉因为它是临时证书留在信任列表里没有意义。另外生产环境的证书和这个临时证书是两回事别搞混。录制出来的脚本通常有一堆冗余请求图片、样式、静态资源需要手动删掉只保留接口请求。参数化也要重新做因为录下来的都是固定值。所以录制只是省了敲 URL 的功夫真正有价值的整理工作还得自己来。5.2 数据库参数化取值JDBC 取数的完整链路压测时如果参数需要从数据库里查比如从订单表里取 1000 个真实订单号来压查询接口就要用到 JDBC 系列元件。完整链路是这样先加JDBC Connection Configuration配置元件填数据库 URL、驱动类名、用户名密码。注意驱动 jar 要放到lib目录下不然会报 ClassNotFound。然后加一个JDBC Request取样器写 SQL 查询在Variable Names里给每一列起个变量名。查询结果会被存进这些变量最后在业务请求里用${变量名_1}、${变量名_2}这种方式按行引用。这里有个细节JDBC Request 有个Max Number of Rows to Retain参数控制一次取多少行。如果 SQL 返回几千行全存内存JMeter 堆会吃不消。建议配合LIMIT分批取或者把这个值设小一点。还有个常见问题是连接池。JMeter 的 JDBC 配置默认会维护连接池Max Number of Connections设太小压测时数据库取数会变成瓶颈。这个值一般要大于等于线程数。至于jmeter 数据库参数化取值的具体写法SQL 里记得加排序因为不保证顺序的话多线程取数会乱序影响结果可复现性。5.3 Beanshell 与 JSR223 断言什么时候用哪个内置的响应断言和 JSON 断言能覆盖大部分场景但有些业务判断逻辑特别复杂比如响应里的金额字段必须等于请求里的金额乘以折扣率这种就得写代码。Beanshell 断言可以直接写 Java 代码用prev对象拿响应数据String resp prev.getResponseDataAsString(); if (!resp.contains(\code\:0)) { prev.setSuccessful(false); prev.setResponseMessage(业务码校验失败: resp); }不过现在更推荐用 JSR223 断言配合 Groovy 语言。原因很实际Beanshell 是解释执行的并发高的时候性能很差本身就成瓶颈Groovy 支持 JIT 编译JMeter 还会缓存编译后的脚本执行效率高一个档次。写法上差别不大def json new groovy.json.JsonSlurper().parseText(prev.getResponseDataAsString()) if (json.code ! 0) { prev.setSuccessful(false) prev.setResponseMessage(业务码校验失败: ${json.msg}) }注意不管是 Beanshell 还是 JSR223都别在脚本里写太重的逻辑。断言执行次数等于请求数每个请求都跑一遍稍微慢一点就会被放大成几倍的性能损耗。我的经验是优先用内置断言能用 JSONPath 表达的绝不上脚本。脚本只用来处理内置元件搞不定的边界情况。5.4 插件扩展MQTT 及其它协议怎么补JMeter 本体只覆盖 HTTP、JDBC、FTP 等常见协议遇到 MQTT、Kafka、gRPC 这些就得靠插件。JMeter Plugins Manager 是管理插件的好帮手装一次之后在界面里就能搜索安装。MQTT 场景下需要下载 MQTT 插件把 jar 包放到lib/ext目录重启 JMeter 就能看到 MQTT 相关元件。MQTT 连接配置里要填 Broker 地址、客户端 ID、QoS 等级、Keep Alive 时间这些。压测时注意客户端 ID 要唯一用__UUID或者变量生成否则多个线程用同一个 ID 会互相踢下线。插件虽好但要注意版本兼容。JMeter 版本升级后老插件可能不兼容表现为重启后元件消失或者直接报错。建议把插件版本和 JMeter 版本对应关系记录在项目文档里团队换人时不至于抓瞎。6. 把 JMeter 接进日常流程6.1 接口测试与压测脚本复用很多团队把接口测试和压力测试当成两件事维护两套脚本其实完全可以复用。同一个.jmx文件接口测试时线程数设 1、循环 1 次、开启结果树和断言压测时改命令行参数、关掉 GUI 监听器、拉高并发。脚本主体请求、断言、参数化完全一样。这样做的好处是接口改了只要维护一份脚本就够接口测试通过之后压测脚本天然是功能正确的状态不会因为脚本本身写错导致压测数据失真。用-J参数传线程数、循环数、服务器地址就能做到一套脚本多种用途。我负责的项目里jmx脚本是跟着代码一起提交到版本库的。接口一改先跑接口测试模式验证再跑压测模式评估影响流程很顺。6.2 与构建流程衔接的思路更进一步可以把命令行压测接进持续集成流程。比如每次发布前自动拉起一个测试环境跑一轮基准压测把 TPS 和响应时间记录下来和历史对比。如果新版本性能下降超过阈值就卡住发布。实现思路不复杂CI 脚本里调用jmeter -n -t ... -l ... -e -o ...然后解析生成的 CSV 或者 HTML 报告用脚本提取关键指标做对比。JMeter 本身也支持在测试计划里用断言判断吞吐量是否达标不达标直接让整个构建失败。难点不在工具而在于环境的一致性。压测机的配置、网络环境、服务端数据量每次都要尽量保持一致否则数字没法横向比较。我一般会在压测前用同一套初始化脚本重置数据保证每次基线一致。做到这一点压测数据才有长期参考价值否则只是一次性的数字游戏。最后分享一点个人体会。我刚开始做压测时特别执着于跑出一个漂亮的 TPS 数字后来发现真正有价值的是排查过程中发现的问题——慢查询、连接池配置不合理、锁竞争、缓存击穿这些才是压测的产出。数字只是结果瓶颈才是财富。现在每次压测完我都会认真整理一份分析记录这次找到了什么问题、定位过程是怎样的、怎么解决的。攒上几次之后团队对系统的理解会深很多下次遇到线上波动也不至于手忙脚乱。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

SDD与Harness驾驭工程:从氛围编码到可控AI编程实战 2026/10/1 13:02:16

SDD与Harness驾驭工程:从氛围编码到可控AI编程实战

1. 从“氛围编码”到可控工程:SDD 与 Harness 到底在解决什么“氛围编码”这个词,最早在开发者圈子里流行起来的时候,带着一种半调侃半惊喜的语气。你对着 AI 编程助手敲下一段模糊的需求,比如“帮我做一个用户登录页面&#xff0…

阅读更多 →
LLM输出失控怎么办?五层Guardrail护栏体系从格式校验到熔断兜底全解析 2026/10/1 13:02:15

LLM输出失控怎么办?五层Guardrail护栏体系从格式校验到熔断兜底全解析

上个月我们客服工单自动回复系统正式接入 LLM,结果三天之内生产环境出了两次事故。第一次是模型输出的 JSON 多了一个尾逗号,下游工单写入服务直接全红;第二次更麻烦,一条自动回复里夹带了另一个用户的订单号,隐私合规…

阅读更多 →
Skills Manager:统一管理54+ AI编程工具的Agent技能体系 2026/10/1 13:02:15

Skills Manager:统一管理54+ AI编程工具的Agent技能体系

AI 编程工具的爆发式增长,让一个很现实的问题浮出水面:每个工具都有自己的 Agent 技能体系,格式不同、目录不同、加载方式不同。你可能有 Cursor 的一套规则文件、Claude Code 的一套技能目录、Windsurf 的又一套配置,再加上各种 …

阅读更多 →
从GitHub日榜看开源新趋势:AI基建与开发者工具双轮驱动 2026/10/1 13:02:14

从GitHub日榜看开源新趋势:AI基建与开发者工具双轮驱动

1. 2026年9月25日的GitHub日榜:这九只项目正在闷声发大财 老实说,我现在每天起床后的第一件事,已经不是刷朋友圈了,而是先看一眼GitHub Trending。这个习惯坚持了快七年,从当初的每天花十分钟随便翻翻,到现…

阅读更多 →
DeepSeek本地部署实战:Ollama+Dify搭建内网私有知识库问答系统 2026/10/1 13:02:14

DeepSeek本地部署实战:Ollama+Dify搭建内网私有知识库问答系统

前天一位做企业内部知识库的朋友问我,能不能把 DeepSeek 这类开源模型部署到他们只有内网的测试环境里。他自己的笔记本是 16G 内存的 Windows,手头还有一台 32G 内存的旧服务器,想跑一个能给团队用的“私有问答机器人”。我给他的方案就是 O…

阅读更多 →
邢台资质齐全的GEO推荐机构、推荐一下GEO企业、有实力的GEO机构筛选名录 2026/10/1 13:02:08

邢台资质齐全的GEO推荐机构、推荐一下GEO企业、有实力的GEO机构筛选名录

行业科普:GEO推广与数字化营销的底层逻辑在数字化浪潮席卷各行各业的今天,企业获客方式正经历深刻变革。传统依赖展会、电话销售、老客转介绍的获客模式,已难以满足企业快速增长的需求。GEO推广,即生成式引擎优化,正成…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉