接入 AgentLoop 应用监控通常需要逐步完成 Workspace 配置、APM 初始化、服务注册和探针注入。alibabacloud-agentloop-management Skill 将这一流程封装为 AI Agent 可执行的结构化工作流——将该 Skill 安装到 QoderWork、Cursor 或 Claude Code 后,只需用一句自然语言描述接入需求,Agent 即可自动编排并执行全流程接入。接入完成后,可通过控制台查看以下监控数据:
服务端应用:应用拓扑、接口调用、异常事务、慢事务等 APM 数据
AI 应用:LLM 调用耗时、Token 使用量、Agent 链路、工具调用(Tool Call)等 AI 可观测指标
AI Agent 接入是对传统控制台接入流程的智能化封装,底层使用 AgentLoop CLI 与标准探针方案(如 ack-onepilot、AliyunJavaAgent、aliyun-bootstrap、instgo、OpenTelemetry 等)。针对 AI Coding Agent 运行数据采集的场景,可使用 LoongSuite Pilot 方式接入(AI 应用接入:AI Coding Agent),两者是独立的接入路径。若应用部署于容器服务 ACK 或 ACS,请确保集群已通过 ack-onepilot 组件安装探针并完成授权。
AI Agent 由大语言模型驱动,可能存在命令参数错误、资源识别偏差等模型幻觉风险。尽管 Skill 内置了两阶段确认机制,仍需在批准执行前仔细核对 Agent 生成的命令与目标资源。接入操作可能涉及集群组件变更、应用重启等影响生产的变更,建议先在测试环境完成接入验证与效果评估,确认探针对应用性能与稳定性的影响可接受后,再在生产环境使用。
适用场景
根据应用类型,Agent 会自动选择对应的探针与接入路径:
应用类型 | 典型技术栈 | 关注指标 | 典型部署环境 |
服务端应用 | Java、Golang、Python、Node.js 等微服务 | 接口 QPS/RT、应用拓扑、慢事务 | ACK/ACS、ECS |
AI 应用 | LangChain、DashScope、Dify、AgentScope 等 | LLM 调用、Token 用量、Agent 链路 | ACK/ACS、ECS |
AI Agent 接入说明
alibabacloud-agentloop-management Skill 将 AgentLoop CLI 的接入流程封装为 AI Agent 可执行的结构化工作流,核心能力包括:
自然语言驱动:用一句话描述接入需求,无需记忆 CLI 命令与参数。
场景感知:根据应用类型、语言、部署环境(ECS、ACK/ACS)自动选择探针方案。
自动编排:完成 Workspace 确认、APM 初始化、凭证获取、服务注册与探针配置。
安全可控:对 Patch Deployment、修改启动参数等变更操作执行两阶段确认,用户审核后再执行。
典型工作流程:
用户描述接入需求(Workspace、应用类型、语言/框架、应用名、部署环境)。若未提供符合
agentloop-{32位编码}格式的 Workspace,Agent 会主动询问。Agent 检查 CLI 环境与凭证,初始化 APM 基础设施。
Agent 生成执行计划,展示命令、影响范围与回滚方式。
用户确认后,Agent 执行探针注入或启动参数变更。
Agent 验证接入结果,引导用户通过控制台查看监控数据。
支持的探针方案
服务端应用
AI Agent 会根据应用语言与部署环境,自动选择以下接入方式之一:
语言 | ack-onepilot(K8s) | 自研探针 | OpenTelemetry |
Java | 支持 | AliyunJavaAgent | OTel Java Agent |
Golang | 支持 | instgo | OTel Go SDK |
Python | 支持 | aliyun-bootstrap | opentelemetry-instrument |
Node.js | — | @loongsuite/cms_node_sdk | OTel Node SDK |
PHP | — | — | OTel PHP extension |
.NET | — | — | OTel .NET Auto-Instrument |
K8s 场景下优先使用 ack-onepilot 无侵入注入,无需修改应用代码或 Dockerfile。ECS 场景下通常通过修改 JVM 启动参数(Java)或安装探针包(Golang/Python)完成接入。
AI 应用
AI 框架 | 底层探针 | 典型部署环境 |
LangChain / LangGraph | Python aliyun-bootstrap | ACK/ACS、ECS |
DashScope | Python aliyun-bootstrap | ACK/ACS、ECS |
AgentScope | Python aliyun-bootstrap | ACK/ACS、ECS |
OpenAI SDK | Python aliyun-bootstrap | ACK/ACS、ECS |
Dify | Dify 内置 OTel | 自建部署、K8s |
Coze | Golang instgo | ACK/ACS、ECS |
OpenClaw / CoPaw / Hermes | 专用 installer 脚本 | 视具体方案 |
Python 系 AI 框架在 K8s 场景下通常通过 ack-onepilot 自动注入 aliyun-bootstrap 探针。Dify 等已内置 OpenTelemetry 的应用,Agent 将引导配置 OTel Exporter 指向 AgentLoop Endpoint,无需通过 ack-onepilot 注入。
前提条件
条件 | 说明 |
阿里云账号 | 已开通 AgentLoop,并对目标 Workspace 具有管理权限 |
AgentLoop Workspace | 必填,格式为 |
阿里云 CLI | 版本 ≥ 3.3.15,已安装 |
CLI 凭证 | 已通过 |
AI Agent | 已安装 QoderWork、Cursor、Claude Code 或其他支持 Agent Skill 的工具。Skill 安装方式见下方步骤二 |
K8s 场景 | ACK/ACS 集群已安装 ack-onepilot(版本 ≥ 5.1.0)并完成 ARMS 资源授权 |
ECS 场景 | 目标 ECS 实例可通过 Cloud Assistant 或 SSH 执行命令 |
K8s 场景下 ack-onepilot 接入涉及集群组件的安装或配置变更,以及为目标应用添加 Label 后触发的 Pod 滚动重启,可能对运行中的业务或 AI 推理服务产生影响。
步骤一:安装并配置 CLI 环境
若尚未安装阿里云 CLI,请先完成安装。
# 确认 CLI 版本 >= 3.3.15
aliyun version
# 验证 cms2 插件可用
aliyun cms2 --help若 cms2 命令不可用:
aliyun plugin update配置访问凭证:
aliyun configure建议使用 RAM 子账号,并授予 AgentLoop(cms2 API)、ARMS、容器服务等必要权限。K8s 场景下,托管集群通常通过 ARMS Addon Token 免密授权;专有版集群或 ACS 集群可能需要通过 ack-onepilot 配置 AK/SK,详情见通过 ack-onepilot 组件安装 Java 探针的授权章节。
步骤二:安装 alibabacloud-agentloop-management Skill
打开 Skill 市场页面:alibabacloud-agentloop-management。
根据页面指引,将 Skill 安装到 Cursor、Claude Code 或 QoderWork。
安装完成后,重启 AI 助手或通过对话确认 Skill 已加载。
自然语言触发示例:
触发关键词示例 | 对应能力 |
"接入 Java 应用"、"Spring Boot 监控" | Java 服务端应用 K8s/ECS 接入 |
"Golang 探针接入"、"instgo" | Golang 应用接入 |
"LangChain 接入"、"LangGraph 监控" | Python AI 应用 K8s/ECS 接入 |
"DashScope 应用接入 AgentLoop" | 通义千问 SDK 应用接入 |
"AI Agent 监控"、"LLM 调用监控" | AI 可观测指标采集 |
"Dify 接入 OpenTelemetry" | Dify OTel 配置引导 |
"ack-onepilot 接入 APM" | K8s 容器无侵入探针注入 |
"ECS 上安装 Java 探针" | ECS 裸机 AliyunJavaAgent 接入 |
步骤三:使用自然语言发起接入
描述接入需求时,建议包含以下信息(缺失时 Agent 会自动探测或询问):
信息 | 是否必填 | 示例 |
AgentLoop Workspace | 是 |
|
应用类型 / 语言 / 框架 | 是 | Java、LangChain、DashScope、Dify |
应用名称 | 是 |
|
部署环境 | 是 | ACK 集群、ECS |
集群/实例信息 | 视场景 | 命名空间/Deployment 名称、ECS 实例 ID |
地域 | 可选 | 需单独提供,或从集群信息自动推导 |
服务端应用示例
K8s 中 Java 应用:
将 ACK 集群 default 命名空间下的 order-service 部署接入 AgentLoop APM,语言是 Java,Workspace 是 agentloop-2694ecf8****************1f84542dECS 上 Java 应用:
帮我在 ECS 实例 i-bp1xxxxxxxxxx 上为 Spring Boot 应用 order-api 接入 APM 监控,Workspace 是 agentloop-2694ecf8****************1f84542dK8s 中 Golang 应用:
帮我把 ACK 集群里的 Golang 微服务 payment-service 接入 AgentLoop 应用监控,Workspace 是 agentloop-2694ecf8****************1f84542dAI 应用示例
K8s 中 LangChain 应用:
帮我把 ACK 集群里的 LangChain 应用 customer-support-agent 接入 AgentLoop 监控,Workspace 是 agentloop-2694ecf8****************1f84542dDashScope 应用 ECS 接入:
帮我在 ECS 上为 DashScope 对话应用 qa-bot 接入 AgentLoop AI 可观测监控,Workspace 是 agentloop-2694ecf8****************1f84542dDify 自建部署:
我的 Dify 部署在 K8s 上,帮我配置 OpenTelemetry 上报到 AgentLoop,Workspace 是 agentloop-2694ecf8****************1f84542d步骤四:确认执行计划并完成接入
Agent 生成执行计划后,会展示目标资源、具体命令、影响范围与回滚方式,等待确认后才执行变更操作。
两阶段确认协议
阶段 | 行为 |
Phase A(计划) | 展示目标资源、具体命令、影响范围与回滚方式,结束当前轮次等待确认 |
Phase B(执行) | 仅在用户明确批准(如回复"yes"或"确认")后执行 |
只读命令(get、list)与幂等初始化(apm configuration create)无需确认,Agent 可直接执行。
K8s 场景下,Agent 完成 APM 初始化和服务注册后,将通过 Patch Deployment 为 Pod Template 添加 Label 触发 ack-onepilot 自动注入探针。详细执行流程参见 Agent 执行流程参考,Label 配置说明参见 K8s 接入 Label 配置参考。
ECS 场景接入说明
ECS 场景下,Agent 将通过 Cloud Assistant 或 SSH 在目标实例上执行以下操作:
下载并解压对应语言探针(如 AliyunJavaAgent、aliyun-bootstrap)。
配置探针属性(LicenseKey、AppName、Workspace)。
修改应用启动参数或环境变量。
重启应用并验证探针加载。
Java 应用 JVM 启动参数示例:
java -javaagent:/opt/arms/AliyunJavaAgent/aliyun-java-agent.jar \
-Darms.licenseKey=<LicenseKey> \
-Darms.appName=order-api \
-Darms.workspace=agentloop-2694ecf8****************1f84542d \
-jar app.jarECS 接入涉及修改应用启动脚本并重启进程,Agent 会通过执行计划明确列出变更内容与回滚步骤。
Dify 等非 ack-onepilot 场景
Dify 内置 OpenTelemetry 支持,Agent 将引导配置 OTel Exporter,将 Trace 数据上报至 AgentLoop APM Endpoint(LicenseKey + Endpoint 由 apm configuration get 获取),无需通过 ack-onepilot 注入。
接入完成后,Agent 会提示等待 2~3 分钟,然后通过控制台查看监控数据。
步骤五:验证接入结果
通过 CLI 验证
aliyun cms2 apm service list \
--workspace agentloop-2694ecf8****************1f84542d \
--service-name <应用名称> \
--region cn-hangzhou成功标准:应用出现于服务列表,状态为 Running。
通过 K8s 验证(容器场景)
kubectl rollout status deployment/<deployment-name> -n <namespace>
kubectl get pods -n <namespace> -l app=<app-label> \
-o jsonpath='{range .items[*]}{.metadata.name}: initContainers={.spec.initContainers[*].name}{"\n"}{end}'
kubectl logs -n <namespace> -l app=<app-label> --tail=30 | grep -i "arms\|OneAgent\|bootstrap\|agent"通过 ECS 验证
# Java 应用:确认进程中已加载 ARMS Agent
ps aux | grep "aliyun-java-agent" | grep -v grep查看控制台监控数据
登录 AgentLoop 控制台。
选择目标 Workspace。
在左侧导航栏选择。
单击目标应用名称,查看监控数据:
服务端应用:应用拓扑、接口调用(QPS/RT/错误率)、异常事务、慢事务
AI 应用:LLM 调用(模型名称、耗时、成功率)、Token 统计、Agent 链路、Tool Call 拓扑、异常追踪
Agent 执行流程参考
以下以 K8s 场景为例,展示 Agent 接到确认指令后的典型执行流程,仅供了解 Agent 的内部行为,无需手动执行这些命令。Java 服务端与 Python AI 应用步骤相同,仅 Label 的语言标识不同。
(1)获取账号与集群信息
aliyun sts get-caller-identity --force -o json
aliyun cs describe-clusters(2)初始化 APM 基础设施并获取凭证
aliyun cms2 apm configuration create \
--workspace agentloop-2694ecf8****************1f84542d \
--region cn-hangzhou
aliyun cms2 apm configuration get \
--workspace agentloop-2694ecf8****************1f84542d \
--region cn-hangzhou -o json返回的 authToken 即为 LicenseKey,publicDomain / privateDomain 为数据上报 Endpoint。
(3)注册应用服务
# 服务端 Java 应用示例
aliyun cms2 apm service create \
--workspace agentloop-2694ecf8****************1f84542d \
--region cn-hangzhou \
--body '{"serviceName":"order-service","serviceType":"TRACE","attributes":"{\"language\":\"java\"}"}' \
< /dev/null
# AI Python 应用示例
aliyun cms2 apm service create \
--workspace agentloop-2694ecf8****************1f84542d \
--region cn-hangzhou \
--body '{"serviceName":"customer-support-agent","serviceType":"TRACE","attributes":"{\"language\":\"python\"}"}' \
< /dev/null(4)检查 ack-onepilot 组件状态
kubectl get pods -n ack-onepilot(5)Patch Deployment 注入探针
Java 服务端应用:
kubectl patch deployment order-service -n default \
--type=strategic -p '{
"spec":{"template":{"metadata":{"labels":{
"aliyun.com/app-language":"java",
"armsPilotAutoEnable":"on",
"armsPilotCreateAppName":"order-service",
"armsPilotAppWorkspace":"agentloop-2694ecf8****************1f84542d"
}}}}}
}'Python AI 应用(LangChain / DashScope 等):
kubectl patch deployment customer-support-agent -n default \
--type=strategic -p '{
"spec":{"template":{"metadata":{"labels":{
"aliyun.com/app-language":"python",
"armsPilotAutoEnable":"on",
"armsPilotCreateAppName":"customer-support-agent",
"armsPilotAppWorkspace":"agentloop-2694ecf8****************1f84542d"
}}}}}
}'(6)验证滚动更新
kubectl rollout status deployment/<deployment-name> -n <namespace> --timeout=120s接入完成后,Agent 会提示等待 2~3 分钟,然后通过控制台查看监控数据。
Patch Deployment 添加 Label 后会触发应用 Pod 滚动重启。受 AI 模型幻觉影响,Agent 可能误识别集群、命名空间或 Deployment 名称,或在 Label、Workspace 等参数上出现偏差,请在批准执行前逐项核对 Agent 生成的命令与目标资源。
K8s 接入 Label 配置参考
K8s 场景下,AI Agent 通过为 Pod Template 添加 Label 触发 ack-onepilot 自动注入探针。Label 必须添加在 spec.template.metadata.labels 层级(Pod Template),而非 Deployment 的 metadata.labels。
labels:
armsPilotAutoEnable: "on"
armsPilotCreateAppName: "<应用名称>"
armsPilotAppWorkspace: "<Workspace 名称>"
aliyun.com/app-language: "<语言>" # 如 java、golang、python完整 YAML 示例(Java 服务端应用):
apiVersion: apps/v1
kind: Deployment
metadata:
name: order-service
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: order-service
template:
metadata:
labels:
app: order-service
armsPilotAutoEnable: "on"
armsPilotCreateAppName: "order-service"
armsPilotAppWorkspace: "agentloop-2694ecf8****************1f84542d"
aliyun.com/app-language: java
spec:
containers:
- name: order-service
image: registry.example.com/order-service:latest
ports:
- containerPort: 8080完整 YAML 示例(Python AI 应用):
apiVersion: apps/v1
kind: Deployment
metadata:
name: customer-support-agent
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: customer-support-agent
template:
metadata:
labels:
app: customer-support-agent
armsPilotAutoEnable: "on"
armsPilotCreateAppName: "customer-support-agent"
armsPilotAppWorkspace: "agentloop-2694ecf8****************1f84542d"
aliyun.com/app-language: python
spec:
containers:
- name: customer-support-agent
image: registry.example.com/customer-support-agent:latest
ports:
- containerPort: 8000使用 AI Agent 生成或执行 Label 配置时,请逐项核对应用名称、Workspace 及语言参数是否与预期一致。
常见问题
Agent 提示 cms2 命令不可用
原因:CLI 版本过低或未安装 cms2 插件。
解决方法:
aliyun upgrade -y
aliyun plugin update
aliyun cms2 --helpK8s 场景下 Pod 未注入探针
原因:ack-onepilot 未安装、版本过低,或 ARMS 授权未完成。
解决方法:
确认 ack-onepilot 版本 ≥ 5.1.0。
检查
kubectl get pods -n ack-onepilot输出是否正常。确认集群 ARMS Addon Token 或 AK/SK 授权已配置。
确认
aliyun.com/app-language与实际应用语言一致。确认 Label 添加在 Pod Template 层级。
Pod CrashLoopBackOff
原因:探针注入失败或探针与应用运行环境不兼容。
解决方法:
查看 initContainer 日志排查注入失败原因。
确认
aliyun.com/app-language与实际应用语言一致。在测试环境验证通过后,再重新执行接入。
探针已加载但控制台无数据
原因:LicenseKey、Workspace 或 Endpoint 配置错误,或网络不通。
解决方法:
重新执行
aliyun cms2 apm configuration get核对凭证。确认
armsPilotAppWorkspaceLabel 值与 Workspace 名称一致。检查集群/ECS 到 APM Endpoint 的网络连通性(VPC 内网建议使用 privateDomain)。
触发一次业务请求或 LLM 调用后等待 2~3 分钟再查看控制台。
AI 应用接入后看不到 LLM 调用数据
原因:探针未正确加载,或 AI 框架尚未被探针识别。
解决方法:
确认 Pod 中 ack-onepilot 已成功注入 initContainer。
确认应用使用的是 aliyun-bootstrap 支持的 Python AI 框架(LangChain、DashScope 等)。
触发一次 LLM 调用后等待 2~3 分钟再查看控制台。
查看应用日志中是否有探针初始化成功的输出。
如何回滚接入
K8s 场景:移除 ARMS 相关 Label 后 Pod 会重新滚动,探针注入即被移除。
kubectl patch deployment <deployment-name> -n <namespace> \
--type json \
--patch '[
{"op": "remove", "path": "/spec/template/metadata/labels/armsPilotAutoEnable"},
{"op": "remove", "path": "/spec/template/metadata/labels/armsPilotCreateAppName"},
{"op": "remove", "path": "/spec/template/metadata/labels/armsPilotAppWorkspace"}
]'ECS 场景:移除启动参数中的 -javaagent 及相关 -Darms.* 配置,重启应用即可。