码农戏码

新生代农民工的自我修养

0%

Agent开发-对接arthas mcp server

对于Agent的价值,一直抱有怀疑态度,甚至认为未来会不会像大前端一样

别看现在火爆得不行,其实再走到下一个节点,就如前端一样,在裁员批次里面是第一梯队

因为它只是个连接器,一端是大脑LLM,另一端是承载业务的平台或专业软件,它自己本身对业务没有任何承载。

或者说它只是LLM的一个外延,也许未来会有其它的形式

之前想到的一个价值,就类似客服一样,可以帮助客户或者实施更快捷地接入产品,使用产品。

像一个垂直类专业软件,需要花费很多的资源去培训客户,但如果有了agnet,通过自然语言直接对话,都不需要去学习软件的使用,就能产出相应的结果

有点类似后端程序,可能都不清楚产品前端界面是什么样,开发一个个接口逻辑就行了。

但还不够具象。

在看到arthas也出品了agent,这感觉具象化了,对于arthas 我是实实在在的使用客户。

以前你需要去学习arthas的各种命令,会安装一下IDEA 的插件,直接能复制生成出相应完整命令行,再去执行。

但有了agent 那就更方便了,什么都不需要,把碰到的问题直接使用自然语言抛给agent,它能帮你分析,帮你执行命令。相当方便

本来打算学习一下arthas agent,结果agent也没对外开源,只是阿里内部使用。

不过对外开源了mcp server,自己搭agent

https://arthas.aliyun.com/doc/mcp-server.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mcp:  
client:
enabled: true
type: sync
name: north-agent
version: 1.0.0
request-timeout: 15s
toolcallback:
enabled: true
streamable-http:
connections:
arthas-mcp:
url: http://localhost:8563
endpoint: /mcp

直接创建一个SKILL.md

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
---
name: arthas-diagnosis
description: 用于 Arthas MCP 诊断任务,包括 JVM 信息查看、线程分析、类加载器排查、方法跟踪、性能采样和文件结果读取。
---

# Arthas 诊断技能

这是面向运行时诊断与排障的专用技能。

## 什么时候使用

- 用户明确提到 `Arthas`、`JVM`、`线程`、`堆`、`类加载器`、`trace`、`watch`、`profiler`
- 用户要做运行时排障、性能分析、线程阻塞分析、类加载问题诊断
- 用户希望读取 Arthas 导出的诊断结果文件

## 核心原则

- 这是诊断域技能,不要和 Lot / CPE 业务操作混用
- 当前环境中的诊断能力来自 **arthas-mcp 已注册工具**,不要假设存在本地 Arthas CLI、`arthas-boot.jar`、JVM attach 权限或 shell 执行能力
- 只能调用当前 skill 已挂载的 MCP 工具;不要编造不存在的工具名,例如 `run_arthas_command`
- 不要读取或引用不存在的示例文件;若用户没有提供真实文件路径,不要假设如 `dashboard_sample_output.txt` 之类的本地样例文件存在
- 先做只读诊断,再做可能影响运行时状态的动作
- 如果用户目标不明确,先澄清要排查的是:线程、内存、类、方法调用、还是性能
- 优先使用风险更低、范围更小的工具

## 可直接使用的工具类型

本技能应直接使用 arthas-mcp 暴露出来的工具,例如:

- 概览:`dashboard`、`jvm`、`memory`、`thread`
- 类诊断:`sc`、`sm`、`classloader`、`jad`
- 方法诊断:`stack`、`trace`、`watch`、`monitor`、`tt`
- 性能分析:`profiler`
- 文件读取:`viewfile`

效果还可以,后面分析一下arthas相关源码,里面的实现很是精巧,有意思!