从“会敲 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

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

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

相关推荐
冬奇Lab2 小时前
Agent 系列(21):Harness 测试工程——45 个测试怎么设计,以及它发现了什么 bug
人工智能·llm·agent
NE_STOP5 小时前
Vide Coding--AI编程工具的选择
java
码云数智-园园6 小时前
C++20 Modules 模块详解
java·开发语言·spring
程序员黑豆6 小时前
JDK 下载安装与配置详细教程
java·前端·ai编程
小宇宙Zz6 小时前
Maven依赖冲突
java·服务器·maven
swordbob6 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
咖啡八杯7 小时前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
十五喵源码网7 小时前
基于springboot2+vue2的租房管理系统
java·毕业设计·springboot·论文笔记
摇滚侠7 小时前
IDEA 创建 Java 项目 手动整合 SSM 框架
java·ide·intellij-idea
源分享7 小时前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm