从“会敲 Arthas 命令”到“会做线上诊断”:我做了一个 Arthas Agent 工具

线上 Java 故障排查这件事,很多团队都经历过同一个痛点:

  • Arthas 很强,但学习成本高;
  • 排障不是"会几条命令"就行,而是要有完整路径;
  • 最耗时间的不是敲命令,而是每一步怎么收敛、怎么控风险、怎么给出结论。

正好最近看到了阿里写的这个 《我们做了比你更懂 Java 的 AI-Agent -- Arthas Agent》 正好我们项目也经常用 Arthas 排查问题,但是这个项目没开源。但是查阅Arthas 的开源项目发现除了这个可视化页面,其实阿里已经把所有的步骤都开源了。还是很感谢阿里的开源大佬。

如果我们的项目如果出现了问题比如CPU 升高,我们可能需要在机器上 使用dashboard 查看CPU/线程/GC 概况,使用 thread 找出最忙的前 N 个线程并打印堆栈,找到可疑的方法优先使用 stack / trace 针对该方法观察,最后得出结论在不断的验证自己的排查方法。但是如果是一个经验不足的人可能会走很多的弯路。

但是现在有了这个Agent 就可以大大降低我们开发人员的门槛。我们只需要通过自然语言询问这个 Agent 让Agent 来帮我们做这件事就好。

来兄弟们咱们看一下调用的大致链路

在介绍一下这个项目都使用什么技术:

  • Spring Boot 3.5.11
  • Java 17
  • AgentScope 1.0.10(阿里开源的 Agent 框架)
  • MCP (AI 和项目桥梁)
  • Skill (AI 的技能包大佬沉淀的经验)

来上场景

  • 查询当前服务的环境变量是什么
  • 代码反编译
    有时候需要看第三方库的源码,或者线上代码和本地不一致:
    用户:查看 com.example.Service 的源码
    AI:正在执行 jad 命令...[返回反编译后的代码]

当然很多案例就不一一在这里描述。

最后在简单介绍一下 MCP 、Arthas、Skill

  • MCP(Model Context Protocol)
    可以理解为 AI 和外部工具之间的"标准接口协议"。
    有了 MCP,Agent 就能安全、规范地调用外部能力(比如执行 Arthas 命令、查系统信息、读日志等),而不只是纯聊天。
  • Skill(技能)
    Skill 是一套"可复用的处理剧本/能力包"。
    它把某类问题的排查步骤、约束和最佳实践固化下来。比如"CPU 飙高排查"就是一个 Skill,Agent 会按预定义路径一步步诊断,而不是每次临时发挥。
  • Arthas
    Arthas 是阿里开源的 Java 在线诊断工具。
    最大特点是 不重启应用 就能排查问题:看线程、看 CPU、trace 方法耗时、watch 入参返回值、查类加载等,常用于线上故障定位。

一句话串起来这个项目就是 大模型是大脑, Arthas 负责"诊断能力",Skill 负责"诊断方法论",MCP 负责"让 Agent 稳定调用这些能力"。

最后最后把这个demo 放到了这个 github 上。项目地址: https://github.com/liuee123/arthas-agent-util

如果大家有兴趣,欢迎一起交流讨论!👋

本文基于个人学习经历整理,如有错误欢迎指正。

相关推荐
砍材农夫1 小时前
spring-ai 第四多模态API
java·人工智能·spring
专职4 小时前
Cline与大模型的交互协议(内涵Agent实现原理)
agent
她说..4 小时前
Java 对象相关高频面试题
java·开发语言·spring·java-ee
庞轩px4 小时前
深入理解 sleep() 与 wait():从基础到监视器队列
java·开发语言·线程··wait·sleep·监视器
皮皮林5515 小时前
面试官:ZSet 的底层实现是什么?
java
yangyanping201085 小时前
Go语言学习之对象关系映射GORM
jvm·学习·golang
码云数智-大飞6 小时前
C++ RAII机制:资源管理的“自动化”哲学
java·服务器·php
2601_949816586 小时前
Spring+Quartz实现定时任务的配置方法
java
冬奇Lab6 小时前
5种来自谷歌的Agent Skill设计模式:减少Token浪费,精准触发正确行为
人工智能·agent
计算机毕设指导67 小时前
基于SpringBoot校园学生健康监测管理系统【源码文末联系】
java·spring boot·后端·spring·tomcat·maven·intellij-idea