接入 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),兩者是獨立的接入路徑。若應用部署於Container Service 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、Container Service等必要許可權。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.* 配置,重啟應用即可。