🦞 ArthasClaw:用自然语言诊断 JVM 的 AI 助手,告别繁琐的 Arthas 命令

你还在背 Arthas 命令?试试用「人话」和 JVM 对话。

请添加图片描述

前言

做过 Java 开发的同学一定对这些场景不陌生:

  • 线上 CPU 飙高,SSH 上服务器后却忘了 thread -n 3 怎么拼
  • 想查某个方法的调用链,翻了半天 Arthas 文档才拼出 trace 命令
  • 新人接手运维,面对 Arthas 的几十个命令一脸懵

如果能直接用中文问"哪个线程占 CPU 最高",工具自动帮你执行呢?

这就是 ArthasClaw 要解决的问题。


ArthasClaw 是什么?

ArthasClaw 是一个 基于 Arthas 的 JVM AI 诊断助手,它通过 MCP(Model Context Protocol)协议将 Arthas 的强大诊断能力与 LLM 结合,让你用自然语言就能完成 JVM 诊断。

简单说:你负责提问,AI 负责执行 Arthas 命令并分析结果。


为什么不用通用 Agent?

你可能会问:Claude Code、Trae 这些通用 AI 编程工具也能调用 Arthas 啊,为什么还要单独做一个?

对比项 通用 Agent ArthasClaw
环境依赖 需要 Node.js 22+ 或 Python 3.11+ 只需 Java 8+
部署位置 本地开发机,远程连接服务器 直接跑在目标服务器上
通信方式 网络请求,可能超时/不可达 本地 MCP 调用,快且稳定
专业程度 通用模型,需要提示词引导 针对 JVM 诊断场景优化

一句话总结:ArthasClaw 更轻、更快、更专。

它能直接装在任何跑 Java 应用的服务器上,一键启动,不需要额外的运行时环境。


快速体验

一键安装

curl -sL https://raw.githubusercontent.com/JiajunBernoulli/ArthasClaw/main/start.sh | sh

脚本会自动完成:

  1. 从 Maven Central 下载 JAR 包
  2. 检查并提示配置 OpenAI API Key
  3. 列出服务器上的 Java 进程供选择
  4. 启动 TUI 交互界面

交互演示

启动后,你就可以用自然语言提问了:
请添加图片描述

arthasclaw> MathGame 这个类有哪些方法?
arthasclaw> 帮我查一下哪个线程 CPU 占用最高
arthasclaw> 检查是否存在死锁

AI 会自动选择合适的 Arthas 命令执行,分析结果,并用人类可读的语言告诉你结论。


核心架构

ArthasClaw 的设计非常优雅,核心只有五个组件:

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  BotArthas  │────▶│  McpClient  │────▶│  LoopAgent  │
│  (注入引擎)  │     │  (MCP 连接)  │     │  (编排引擎)  │
└─────────────┘     └─────────────┘     └─────────────┘
                           │                    │
                    ┌──────┴──────┐      ┌──────┴──────┐
                    │McpToolHandler│      │ChatResponse │
                    │ (工具发现)    │      │  Handler    │
                    └─────────────┘      │ (思考处理)   │
                                         └─────────────┘
  • BotArthas:自动下载并注入 Arthas 到目标 JVM 进程
  • McpClient:通过 MCP 协议连接 Arthas 暴露的 HTTP 接口
  • LoopAgent:编排 AI 对话流程,协调各组件工作
  • McpToolHandler:自动发现 Arthas 提供的诊断工具
  • ChatResponseHandler:处理 LLM 响应,管理工具调用链

这就是 MCP 协议的魅力——不需要重新实现诊断工具,只需要通过标准协议连接已有的强大工具(Arthas)。


技能系统:可复用的诊断经验

ArthasClaw 支持**技能(Skill)**机制,你可以把特定的诊断经验封装成可复用的模板。

内置技能示例:死锁分析器

---
name: deadlock-analyzer
description: 检测和分析线程死锁
tools:
  - thread
  - thread -b
  - stack
---
你是一个 Java 线程死锁分析专家。
分析线程问题时:
1. 使用 `thread -b` 查找阻塞线程
2. 使用 `thread` 查看整体线程状态
3. 提供可操作的解决方案

安装后,只需说"检查死锁",AI 就会按照技能定义的流程自动执行诊断。

技能管理命令

/skill install <url|path>   # 安装技能
/skill list                 # 列出已安装技能
/skill enable <name>        # 启用技能
/skill disable <name>       # 禁用技能

你可以从社区获取技能,也可以自己编写,把团队的诊断经验沉淀下来。


适用场景

  • 线上排障:CPU 飙高、内存泄漏、死锁检测,用自然语言快速定位
  • 新人上手:不需要背 Arthas 命令,直接问"这个类有哪些方法"
  • 性能分析:方法调用链追踪、耗时统计,AI 自动分析结果
  • 团队协作:通过技能系统共享诊断经验,降低知识门槛

总结

ArthasClaw 不是要替代 Arthas,而是让 Arthas 变得更好用。它把"记命令 → 敲命令 → 看输出 → 分析结果"的流程简化成了"问问题 → 拿答案"。

如果你是 Java 开发者,尤其经常需要排查线上问题,强烈建议试试。

项目地址:https://github.com/JiajunBernoulli/ArthasClaw

一键体验

curl -sL https://raw.githubusercontent.com/JiajunBernoulli/ArthasClaw/main/start.sh | sh

ArthasClaw 是一个开源项目,欢迎 Star、Issue 和 PR。

如果这篇文章对你有帮助,欢迎点赞 👍 收藏 ⭐ 评论 💬 三连支持!在这里插入图片描述

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐