)
Arthas Agent 是一个让 Java 线上排障变得更简单的工具它将复杂的 Arthas 命令转换为自然语言指令帮助用户快速定位问题。通过内置的排障技能和安全的命令序列生成Arthas Agent 可以自动执行诊断流程并提供结构化的诊断报告。无论是小白还是程序员都可以通过 Arthas Agent 轻松掌握 Java 线上排障技巧提高工作效率。Arthas 是 alibaba/arthas 开源的 Java 诊断工具。它能在不重启应用的前提下动态查看线程/CPU、反编译类、追踪方法耗时、观察入参返回值、执行 OGNL、查看类加载器、线上取证定位问题——几乎是 Java 线上排障的“瑞士军刀”。地址https://github.com/alibaba/arthas但现实也很直白Arthas 很强门槛也很高。你得知道该用哪个命令thread/dashboard/trace/watch/tt/vmtool/ognl/jad…你得知道参数怎么写、OGNL 怎么拼、如何限量避免线上刷屏或增加开销你还得会“排障路径”先拿证据再收敛再验证——而不是一通乱跑我们做的 Arthas Agent就是把这件事反过来让你用自然语言表达意图让 Agent 负责把意图翻译成安全、可控、循证的 Arthas 操作并把结果组织成一份“像 SRE 写的诊断报告”。TL;DR30 秒版没有 AI你需要会 Arthas 的“语法”更需要会“排障套路”一件事往往要跑 515 条命令并且每一步都要读懂输出才能继续收敛。有 Arthas Agent你只要描述“现象/目标”它会自动匹配内置 Skills排障技能自动生成限量、安全的命令序列每轮只推进 12 步避免线上冲击在拿到证据后“像资深同学一样”继续收敛最后输出结构化诊断报告结论/证据/原因/建议一个例子 - 直接询问正在运行的Spring的版本号整个过程不到30秒。没有 AI 的 Arthas你需要记住“命令”而不是“问题”传统方式里你的大脑会被迫切换成“命令思维”“CPU 高”要先 dashboard 还是 thread -n“启动卡住”要看 main 线程还是先扫 Spring Context“我只想看某种参数类型的调用”——watch 条件怎么写“我想拿 traceId 去查日志”——应该 watch 哪个点、怎么限量这些问题不难但它们很耗时而且常常发生在你最紧张的线上时刻。更要命的是真正耗时的不是“敲命令”而是这些经验成本你要把问题先翻译成“下一条命令是什么”你要读懂输出再翻译成“下一条命令是什么”你要持续约束风险限量、避免宽泛匹配、避免刷屏你要在脑子里维护上下文关键证据、时间点、线程 ID、类名、配置项于是排障变成了同时需要“会命令的人”和“理解问题的人”。缺少一项都无法排查。有了 Arthas Agent你只需要说“现象/目标”剩下交给它Arthas Agent 的核心不是“把 Arthas 包装成 ChatBot”而是把线上诊断变成一种工程化的、可复用的能力Skill-first技能优先内置一套“排障剧本”先匹配最相关的技能再按剧本推进例如arthas-cpu-highCPU 飙高、arthas-springcontext-issues-resolveSpring Context/Bean、arthas-eagleeye-traceid获取 traceId安全优先Safety First默认只做低风险、高信息量的动作需要更深的操作会先做最少澄清或限量执行例如每轮只推进 1–2 个低风险步骤对 OGNL 强制单引号禁止无锚点全量枚举类内置权限隔离循证闭环Evidence-based所有结论必须引用工具返回的真实证据不凭空“猜”多 Agent 协作把“长文本/日志/堆栈分析”交给专门的 log_reader 子 Agent形成上下文隔离你可以把它理解为一个 Agent 负责“跑工具拿证据”另一个 Agent 负责“读证据写结论”工具自发现先从 MCP 侧拿到“当前可用工具清单”再决定怎么做更适配不同环境/权限最终体验是你用一句话描述问题它按步骤推进并且每一步都会告诉你为什么要跑这条命令期待看到什么如果结果 A/B/C下一步分别怎么走一个例子 – 应用启动不成功怎么办1 “AI 的方便”到底方便在哪把长流程变成一句话我们最想强调的不是“AI 会背命令”而是它能把下面这种长流程自动跑通先做低风险的“体检”拿方向感再抓关键证据线程堆栈/调用链/配置生效值再按证据收敛到更精确的观察点trace/watch/tt最后把证据整理成“能交付给团队”的报告你只需要说“现象/目标”它负责把“专家脑内流程”显式化并且每一步都把为什么要这么做讲清楚。真实案例一句话完成复杂诊断下面的例子来自我们在日常环境下的历史记录已隐藏工具调用重点看“诊断路径”和“证据收敛”。1 一句话诊断“应用启动卡住/无法正常启动”你说诊断一下应用无法正常启动的原因。1.1 没有 AI 时资深同学怎么跑这条长流程作为有经验的人通常不会直接上来就 trace 或 watch因为那样要么太宽、要么风险不可控。一个更“稳”的套路是先确认问题类型是“没启动/退出了”还是“进程在但卡住了”这一步会决定你后续是去看日志/退出码还是去看线程堆栈/锁/远程依赖先跑低风险体检高信息量、低扰动看 JVM 基本信息、dashboard 的 CPU/线程/GC 概况快速判断是否存在“资源异常/线程暴涨/GC 异常”再抓关键线程证据若是“卡住”优先看 main 线程堆栈很多启动卡住的根因就藏在这里若是“忙”则先找最忙线程再从堆栈提取“可疑方法名”把堆栈里的方法翻译成“系统组件”Spring refresh卡在 Spring 生命周期步骤了RPC/服务发现数据库连接池类初始化锁等待必要时进一步确认但仍要控制风险反编译关键类确认“它在初始化阶段做了什么”查 Spring Context/配置生效值确认“是不是某个配置导致等待/超时过长”最后产出可执行建议临时止血依赖服务、网络、注册中心、超时长期治理避免静态初始化块做远程依赖初始化、改为懒加载/异步、合理重试这条链路“每一步都不难”难的是你要在压力下把下一步想清楚还要保证每一步都可控。1.2 来看看 AI 能不能做到它是如何自动跑通并写出报告的Agent 的推进路径摘要先拿 JVM 基本面JVM/线程/GC 概况、dashboard再检查是否存在死锁/异常阻塞锚定 main 线程堆栈发现卡在某个服务依赖初始化的等待点进一步定位到某业务类的静态初始化块启动期创建 Spring Context 并触发远程依赖初始化给出“根因 证据 解决建议”例如把启动期强依赖改成懒加载/异步或缩短超时、检查注册中心/网络等为什么这类问题适合 Agent启动卡住往往是“线程堆栈 配置 初始化时序”的组合题。Agent 的价值在于能把“你脑中隐含的排障套路”显式化并用最短路径把证据补齐。2 一句话获取 JVM 信息并做健康摘要你说现在可以获取 jvm 信息不Agent 输出摘要化展示运行时环境JDK 版本、启动时间、CPU 核数与负载内存-Xms/-Xmx、堆/非堆使用、Metaspace 指标GCG1GC 的 Young/Concurrent/Old 次数与耗时、GC 日志路径线程线程数、守护线程、死锁检查结论没有 AI 时你可能也能跑出 jvm但“读懂它、总结成可行动结论”往往要再花 10 分钟。Agent 把这 10 分钟省掉并告诉你下一步应该把火力用在哪个方向。3 一句话在线读取 Spring 配置 server.port不改代码、不重启你说获取 spring 配置 server.port 值3.1 没有 AI 时你很容易绕路这件事看起来简单但经常会踩坑你去翻配置文件application.yml/application.properties但线上可能来自配置中心/环境变量/启动参数覆盖你去看启动参数-Dserver.port…但容器/启动脚本可能又做了二次注入你去看监听端口netstat/ss但应用可能有多个 connector或者端口被 sidecar/代理转发换句话说你想要的不是“文件里写了什么”而是运行时 Spring Environment 里最终生效的值。3.2 来看看 AI 能不能做到Skill-first 的标准剧本在真实历史记录里Agent 的推进是识别这是 Spring 上下文配置排查匹配到内置 Skill排障剧本并先读取 skill 文档再行动保证安全与正确性使用 vmtool 获取 ApplicationContext调用 getEnvironment().getProperty(“server.port”) 拿到最终生效值解释“这个值可能来自哪些配置源”如果你要追溯来源它会给出下一步查来源的命令建议4 一句话getstatic 读取“静态字段/嵌套字段”并做对比分析你说getstatic com.example.ConfigRepo configuration ‘defaultRatio’示例Agent 的处理要点识别这是“明确指令型模式 A”可以直接执行当你访问嵌套字段时自动提醒/采用 OGNL 方式读取同一配置重复查询时会提醒“结果发生变化”提示可能存在动态刷新/热更新并给出下一步建议比如追踪是谁改的这类需求在排查“开关/灰度/采样比例/动态配置”时非常常见你只要说出类与字段Agent 帮你把结果读出来并解释它意味着什么。5 一句话watch 只观察“特定类型/特定场景”的调用OGNL 条件过滤你说watch 方法怎么限制只针对特定类型使用Agent 给出核心机制-c/–condition 写 OGNL 条件只输出满足条件的调用典型写法按参数类型、接口/父类、返回值类型过滤强提醒OGNL 必须使用英文单引号包裹 ‘…’示例# 只看第一个参数是某个类型的调用watch com.example.Service doSomething {params, returnObj} -c params[0].class.name com.example.User -n 5 # 只看参数实现某接口watch com.example.Handler handle {params} -c params[0] instanceof com.example.MyInterfaceclass -n 5你不再需要记住 OGNL 语法细节告诉它你想“过滤什么”它给你一条能直接复制执行的命令。6 长流程示例CPU 飙高排查从“哪个线程”到“哪段代码”我们构造了一个由于正则表达式递归导致的CPU增高场景。看看Arthas能不能找到原因。你说现在 CPU 使用率很高帮我查查是哪个线程导致的6.1 没有 AI 时资深同学会怎么推进典型 1020 分钟链路CPU 高的排查真正难的不是“找到 CPU 高”而是从“现象”收敛到“能改的代码点”。常见的专家流程是Step 0先确认是不是误报/外因系统负载、容器限额、是否有压测/流量激增、是否是 GC 频繁导致 CPU 被 GC 吃掉Step 1看整体面低风险dashboardCPU/线程/GC 概况先判断是“忙”还是“堵”Step 2定位最忙线程关键thread -n 3 或 thread -n 5拿到最忙线程的堆栈Step 3读堆栈把方法归类如果堆栈在序列化/正则/日志格式化 → 计算型热点如果堆栈大量 BLOCKED → 锁竞争/排队型热点如果堆栈看起来“很正常但 CPU 仍高” → 可能是热点在 native/或采样点没踩中需要更精确观察Step 4收敛到目标方法按需选一个堆栈里最像业务关键路径的方法进一步用 trace 验证调用链与耗时分布如果需要看入参/返回值再用 watch/tt但必须限量避免线上刷屏Step 5产出结论证据dashboard 摘要 top 线程堆栈关键片段 trace 的慢点建议缓存/限流/降级/修算法/减少日志/拆锁/优化序列化等6.2 来看看 AI 能不能做到一条问题触发 arthas-cpu-high 剧本Arthas Agent 会把这类问题自动匹配到内置 Skillarthas-cpu-high并按Skill内容推进先 dashboard 拿整体面再 thread 找 topN 热点线程并抓堆栈再把堆栈里的方法提炼成“下一步最值得 trace/watch 的候选点”最终输出结构化报告并且在每一步提醒限量与风险先读取了技能。我们为什么说这是“最懂 Java”的诊断 Agent不是因为它会背命令而是因为它把 Java 线上诊断里的关键难点做成了“产品能力”。懂排障节奏先低风险取证dashboard/thread/jvm再逐步收敛到 trace/watch/tt懂工程边界默认限量、避免刷屏高影响命令必须明确授权懂 Spring 体系优先只读验证contains/beanNames/type/environment避免 getBean() 触发副作用懂链路定位把“拿 traceId 看慢点在哪”合并成一条可执行路径Skill 剧本懂上下文管理用 log_reader 子 Agent 专门做“长日志/堆栈”分析避免主对话被噪声淹没再补一句“工程同学最关心的”它不会上来就乱跑。信息不足时它会先问清楚需要高影响操作时会先解释风险并要求明确授权默认每轮只推进 12 个低风险步骤避免线上被“刷屏式诊断”二次伤害。使用帮助那么这么好用的AI Agent在哪里可以用到呢打开Arthas在线诊断网页再选择IPAttach 之后就可以直接提问。1 怎么开始一般推荐两段式第 1 段先 Attach / 确认目标 JVM可由启动/Attach Agent 协助完成输出 PID 与摘要第 2 段把具体问题交给 Arthas Agent 诊断2 如何提问Prompt 指南你可以像与同事交谈一样与 Copilot 对话。以下是几种典型的提问模式A. 明确指令型当你清楚知道要做什么但记不住具体命令参数时“反编译 com.example.UserController 类。”“帮我查看 com.service.OrderService 的 createOrder 方法的入参和返回值。”“检测一下现在的 JVM 线程情况。”B. 现象咨询型推荐当你遇到线上问题需要排查思路时CPU 问题“现在 CPU 使用率很高帮我查查是哪个线程导致的”性能问题“queryUserInfo 这个接口偶尔特别慢怎么排查是卡在哪里了”死锁问题“服务好像卡住了没反应是不是死锁了”逻辑问题“代码里的 if (user.vip) 分支好像一直没进去帮我看看运行时的变量值。”C. 模糊查询型当你不知道具体的类全名时“帮我找一下类似 OrderController 的类有哪些”“我想看下 redis 相关的配置类。”注Agent 会先尝试通过安全的方式探测类名然后引导你进一步操作3 交互流程提出需求在输入框描述你的问题。方案生成Agent 会分析意图给出一组推荐的 Arthas 命令并解释每一步的用途。执行与反馈Agent 可能会询问“是否授权我执行”或建议你“请执行以下命令并将结果贴给我。”多轮诊断对于复杂问题如性能优化Agent 会根据第一步的输出结果如线程栈动态调整下一步的命令如 trace 具体方法逐步收敛直到找到根因。小建议让 Agent 更快更准的 4 条信息如果你愿意多给一点点上下文排障速度会明显提升目标范围应用主包名例如 com.mycompany、模块名、接口名现象时间大概从什么时候开始、是否持续、是否能复现影响面影响的接口/用户比例、是否伴随错误码/异常栈你最关心的结论要根因、临时止血方案、还是长期治理建议结语把“会用 Arthas”变成“每个人都能用好 Arthas”Arthas 让我们能在生产环境里“看见运行中的 Java”。Arthas Agent 则让这种能力从“少数专家的手艺”变成“每个工程师都能复用的流程”你说现象它给路径你给线索它补证据你要结论它写报告如果你愿意把你最常见的排障场景告诉我们我们会把它们沉淀成新的 Skills让下一次“一句话排障”覆盖更多问题。小白/程序员如何系统学习大模型LLM由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】