大家好,我们又见面了。

作为Java生态开发的一员,你肯定对Arthas(阿尔萨斯)这个名字不陌生。这款由阿里巴巴开源的Java诊断神器,在GitHub上斩获了37,000+Star,是无数Java程序员的线上排障必备工具。

但问题来了:Arthas 功能强大,命令却有一定学习门槛。watch、trace、tt、vmtool、ognl……这些命令的参数组合让新手望而却步,即便是老手也需要频繁查阅文档。

如果有一天,你只需要说一句"帮我看下哪个线程CPU最高",AI就能自动执行诊断,今天他来了: Arthas Agent。

截至2025年底,Arthas已迭代至4.x版本,最新版本带来了多项重磅更新:

  • MCP 协议支持:支持 Model Context Protocol,可与 AI 大模型无缝集成

  • MCP Server 重构:采用 Streamable/Stateless 单服务架构

  • 新增 MCP 工具:sc、viewfile 等命令支持通过 MCP 调用

  • watch/trace 增强:支持 ClassLoader Hash,支持 -M/--sizeLimit 参数

  • async-profiler 升级:性能分析能力大幅提升

Arthas Agent

Arthas Agent 是基于 Arthas 构建的 AI 智能诊断层,它能够:

  1. 理解自然语言:将你的诊断需求翻译成安全、精确的 Arthas 命令

  2. 安全执行:通过严格的参数校验和权限控制,确保操作安全可控

  3. 智能分析:基于执行结果提供诊断建议和问题定位

简单来说,Arthas Agent = 自然语言理解 + Arthas 能力 + 安全执行框架。

核心设计理念

Arthas Agent 遵循三大设计原则:

🎯 Skill-First(技能优先)

Arthas Agent不是一个"万能AI",而是将诊断能力封装为明确定义的技能(Skill):

用户需求 → AI 理解 → 选择合适的 Skill → 执行诊断

每个 Skill 都有:

  • 清晰的能力边界

  • 预定义的参数模板

  • 明确的输出格式

这种设计确保了可预测性和可控性。

🔒 Safety-First(安全优先)

线上诊断最怕的就是"一顿操作猛如虎,服务挂了心里苦"。Arthas Agent 通过多重机制保障安全:

  • 参数白名单:只允许安全的参数组合

  • 执行次数限制:默认 -n 1,避免高频采集

  • 危险操作拦截:禁止执行可能影响业务的命令

  • 超时保护:自动终止长时间运行的命令

📊 Evidence-Based(证据驱动)

AI 的每一个诊断结论都必须基于实际证据:

执行命令 → 获取输出 → 分析数据 → 得出结论

不猜测、不臆断,所有结论都有据可查。

上手实践

场景一:CPU 飙高快速定位

传统方式:

# 1. 先看哪个线程 CPU 高
thread -n 3
# 2. 根据线程 ID 查看堆栈
thread <tid>
# 3. 分析堆栈,定位问题代码

Arthas Agent 方式:

用户:帮我看下哪个线程 CPU 最高,分析一下在干什么

Agent 自动执行 thread -n 3,获取 CPU Top 3 线程,分析堆栈,给出诊断结论。

场景二:方法执行追踪

传统方式:

# watch 命令观测方法
watch com.example.OrderService createOrder \
  '{params, returnObj, throwExp}' \
  -n 1 -x 3

Arthas Agent 方式:

用户:监控一下 OrderService.createOrder 方法,看下入参和返回值

Agent 自动构建 watch 命令,设置合理的参数,执行并格式化输出。

场景三:JVM健康检查

用户:帮我做个JVM健康检查;

Agent 会依次执行:

1. dashboard - 查看整体状态
2. memory - 检查内存使用
3. thread - 分析线程状态
4. jvm - 获取 JVM 参数

最终输出一份完整的健康报告。

如何使用 Arthas Agent?

快速开始

前置条件:

  • Java 8+ 环境

  • Arthas 4.x 版本

  • 支持 MCP 的 AI 客户端(如 Claude Desktop、Cursor 等)

启动 Arthas MCP Server:

# 下载最新版 Arthas
curl -O https://arthas.aliyun.com/arthas-boot.jar

# 启动并开启 MCP 支持
java -jar arthas-boot.jar --mcp

配置 AI 客户端:

{
  "mcpServers": {
    "arthas": {
      "url": "http://localhost:8563/mcp"
    }
  }
}

Prompt 最佳实践

与 Arthas Agent 对话时,建议遵循以下模式:

CPU分析:"帮我看下 CPU 最高的 3 个线程在干什么"
方法追踪:"监控 XxxService.xxxMethod 方法,看下入参和返回值"
类搜索:"帮我找一下UserService这个类"
Bean 查询:"查一下Spring容器里的xxxBean"
健康检查:"做一个JVM健康检查"

高级用法:

用户:监控 OrderService.createOrder 方法,
      只看 orderId 包含 "TEST" 的请求,
      记录入参、返回值和执行耗时

注意事项

  1. 生产环境谨慎使用:虽然有安全机制,但建议先在测试环境验证

  2. 避免高频采集:默认 -n 1 是合理的,不要轻易调大

  3. 注意敏感信息:watch 输出可能包含敏感数据,注意脱敏

  4. 及时退出:诊断完成后记得 stop 或退出 Arthas

Arthas Agent将AI的自然语言理解能力与Arthas强大的诊断能力相结合,让Java应用诊断变得前所未有的简单。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐