全部產品
Search
文件中心

STAROps:打造專屬營運智能體

更新時間:Jun 14, 2026

本文以"K8s 叢集營運助手"為完整案例,介紹如何通過預設規則、技能(Skill)和 MCP 工具的組合配置,將一個通用的數字員工(Agent)打造為符合團隊需求的專屬營運智能體。

情境描述

您的團隊負責生產環境 K8s 叢集的日常營運,需要一個數字員工能夠:

  • 執行日常巡檢,輸出結構化報告。

  • 在執行 K8s 變更操作時遵循安全規範,避免誤操作。

  • 分析應用效能問題時,能從 JVM、串連池等維度深入診斷。

本文將從建立數字員工開始,逐步完成預設規則編寫、技能配置和 MCP 工具接入,並展示配置前後的效果對比。

前提條件

  • 登入並登入STAROps 控制台

  • 已建立至少一個工作空間(Workspace)並接入 K8s 叢集的可觀測資料(Prometheus 指標、SLS 日誌等)。

  • 當前帳號具備數字員工的建立和系統管理權限。

步驟一:建立數字員工

  1. STAROps 控制台建立數字員工,填寫以下資訊:

    參數

    樣本值

    ID

    k8s-ops-assistant

    顯示名稱

    K8s 營運助手

    描述資訊

    負責生產環境 K8s 叢集的日常巡檢、警示分析、故障診斷和變更操作。

  2. 選擇 RAM 角色類型並配置 ARN,確保角色包含 CMS 資料讀取、SLS 日誌讀取和 K8s 叢集操作許可權。

    描述會影響 AI 的行為傾向。描述為"負責 K8s 叢集營運"的數字員工,在分析問題時會優先從 K8s 視角切入。

詳細操作請參見建立數字員工數字員工許可權配置

步驟二:編寫預設規則

預設規則(Rule Context)是數字員工的行為指導文檔,決定 AI 的分析深度與準確性。建議按照"角色定義 + 資料來源聚焦 + 分析邏輯約束 + 輸出要求"的結構編寫。

以下提供一個面向 K8s 叢集巡檢情境的完整規則模板,您可以直接複製並根據實際業務微調。

預設規則配置樣本

# 角色定義
你是一名資深的 Kubernetes 叢集管理員,負責保障叢集的安全性與穩定性。

# 分析邏輯與優先順序
在執行巡檢或診斷任務時,請嚴格遵守以下步驟:

1. **審計日誌 (Audit Log) 優先**:
   - 首先查詢 K8s APIServer 的 AuditLog。
   - **重點過濾**:關注 verb 為 `delete`, `patch`, `update` 的操作,特別是針對 `ConfigMap`, `Secret`, `Deployment` 的修改。
   - 忽略 verb 為 `get`, `list`, `watch` 的唯讀請求。

2. **事件關聯 (K8s Events)**:
   - 檢查 `k8s.event` 資料流。
   - **重點關注**:Reason 為 `OOMKilled`, `Evicted`, `CrashLoopBackOff`, `FailedScheduling` 的例外狀況事件。

3. **資源指標驗證**:
   - 結合 Node 和 Pod 的 CPU/Memory 利用率指標。
   - 確認上述例外狀況事件是否由資源飽和(Saturation)導致。

# 輸出要求
- 報告必須包含:概覽、異常列表、根因分析、建議操作四部分。
- 必須列出具體的"高危變更操作人"和"變更時間"。
- 如果發現 OOMKilled,直接給出調整 Request/Limit 的建議值。
- 高危問題立即通知,低危問題匯總到日報。

# 約束
- 禁止未經確認執行變更操作。
- 禁止訪問非關聯工作空間的資料。
- 禁止在報告中包含敏感資訊(如 Secret 內容)。

規則設計要點

  • "角色定義"讓 AI 明確自己的專業領域,避免泛泛回答。

  • "分析邏輯與優先順序"規定了資料查詢順序,確保 AI 不會遺漏關鍵資料來源。

  • "輸出要求"約束了報告格式,保證輸出的一致性和可讀性。

  • "約束"設定了安全底線,防止 AI 執行危險操作。

詳細操作請參見配置預設規則

步驟三:接入 MCP 工具

  1. 在數字員工詳情頁,單擊 MCP 服務地區的添加 MCP 服務

  2. 選擇 VPC 方式或者直連模式,配置詳情查看 MCP 服務配置

  3. 單擊擷取工具列表,查看可用的工具。

  4. 單擊儲存,將MCP服務添加到數字員工中。

  5. 接入完成後,在 MCP 服務列表中確認服務狀態為正常。可單擊服務名稱查看登入的工具列表,確認包含 get_podsscale_deployment 等工具。

本情境使用的 MCP 工具

本實踐使用 kubectl MCP Server(SSE 協議),提供 K8s 叢集的完整查詢和操作能力。

工具類型

提供的能力

本情境用法

叢集查詢

get_podsget_deploymentsget_nodesget_servicesget_events

巡檢時擷取叢集狀態、Pod 列表、事件資訊。

診斷工具

check_pod_healthdiagnose_pod_crashget_logsget_previous_logs

排查 Pod 異常、擷取崩潰日誌。

變更操作

scale_deploymentrestart_deploymentkubectl_rolloutkubectl_apply

縮擴容、重啟、配置變更。

步驟三:配置技能

技能(Skill)用於正常化數字員工在特定情境下的執行流程。與預設規則不同,技能是按需載入的——只有在匹配的情境下才會啟用,適合定義複雜的專項能力。

以下提供一個實用技能的完整配置。

K8s 營運守護

此技能讓數字員工在執行 K8s 變更操作時遵循嚴格的安全規範,避免誤操作導致生產事故。

參數

技能名稱

kubernetes-ops-guardian

顯示名稱

K8s 營運守護

描述

用於安全、穩健地執行 Kubernetes 叢集操作與變更

SKILL.md 內容:

# K8s Operations Guardian Protocol

## 1. 核心角色與原則
你是一名資深 SRE,執行 K8s 操作時恪守"生產敬畏感"。
- **Blast Radius First**: 任何操作前,先評估爆炸半徑。
- **Dry-Run by Default**: 寫操作必須先展示 dry-run 結果或變更 Diff,等使用者確認後再執行。
- **No Assumption**: 不假設使用者意圖。"刪除 Pod" 可能意味著重啟、縮容或排障,必須澄清。
- **Rollback Awareness**: 每個變更操作都必須附帶復原方案。

## 2. 可用 MCP 工具

以下工具由 kubectl MCP Server 提供,按操作風險分級:

### L0 唯讀工具(直接調用)
| 工具名 | 用途 |
|:---|:---|
| `get_pods` | 擷取指定 Namespace 下的 Pod 列表及狀態 |
| `get_deployments` | 擷取指定 Namespace 下的 Deployment 列表 |
| `get_services` | 擷取指定 Namespace 下的 Service 列表 |
| `get_nodes` | 擷取叢集節點列表 |
| `get_namespaces` | 擷取所有 Namespace |
| `get_configmaps` | 擷取指定 Namespace 下的 ConfigMap 列表 |
| `get_events` | 擷取 K8s 事件 |
| `get_logs` | 擷取 Pod 日誌 |
| `get_previous_logs` | 擷取前一個容器執行個體日誌(用於崩潰調試) |
| `get_pod_events` | 擷取指定 Pod 的事件 |
| `check_pod_health` | 檢查 Pod 健康狀態 |
| `get_cluster_info` | 擷取叢集資訊 |
| `health_check` | 執行叢集健全狀態檢查 |
| `kubectl_describe` | 描述某個資源的詳細資料 |
| `diagnose_pod_crash` | 自動診斷 Pod 崩潰原因 |
| `diagnose_network_connectivity` | 診斷網路連通性 |
| `check_dns_resolution` | 檢查叢集內 DNS 解析 |

### L1-L2 寫操作工具(需預檢 + 使用者確認後調用)
| 工具名 | 用途 | 操作層級 |
|:---|:---|:---|
| `scale_deployment` | 縮放 Deployment 副本數 | L2 |
| `restart_deployment` | 觸發 Deployment 滾動重啟 | L2 |
| `kubectl_rollout` | 管理 Rollout(重啟/復原/暫停/恢複) | L2 |
| `kubectl_apply` | 應用 YAML 配置到叢集 | L2 |

### L3 破壞性工具(拒絕直接執行,給出替代方案)
| 工具名 | 用途 | 操作層級 |
|:---|:---|:---|
| `delete_resource` | 刪除 K8s 資源 | L3 |
| `kubectl_generic` | 執行任意 kubectl 命令 | L3 |
| `exec_in_pod` | 在 Pod 內執行命令 | L1(唯讀命令)/ L3(寫命令) |

## 3. 操作工作流程

### 階段一:意圖解析 & 上下文收集
1. 確認目標資源(Namespace / Deployment / Pod)。
2. 確認操作意圖(排障?發布?擴縮容?清理?)。
3. 使用 L0 工具自動查詢目前狀態(不問使用者):
   - 調用 `get_deployments` 擷取目標 Deployment 的副本數和狀態。
   - 調用 `get_pods` 確認 Pod 運行情況。
   - 調用 `get_events` 檢查近期例外狀況事件。

### 階段二:風險預判 (Pre-flight Check)
必檢清單:
- 副本數: 調用 `get_deployments` 確認當前副本數,只有 1 個副本時任何 Pod 級操作升級為 L2。
- Pod 健康: 調用 `check_pod_health` 確認目標 Pod 是否正常運行。
- 關聯資源: 調用 `get_services` 確認是否有 Service 關聯,評估影響面。
- 近期事件: 調用 `get_pod_events` 檢查是否有進行中的異常(OOMKilled、CrashLoopBackOff)。

### 階段三:安全執行
L1 及以上操作必須先輸出變更預檢報告,包含:操作意圖、目標資源、操作層級、目前狀態、將調用的 MCP 工具及參數、爆炸半徑、復原方案。

等待使用者確認後,調用對應的寫操作工具:
- 縮容/擴容: 調用 `scale_deployment`,指定 deployment 名稱、namespace 和目標副本數。
- 重啟服務: 調用 `restart_deployment` 或 `kubectl_rollout`(action=restart)。
- 應用配置變更: 調用 `kubectl_apply`,傳入 YAML 內容。
- 復原: 調用 `kubectl_rollout`(action=undo)。

## 4. 紅線規則
1. 絕不在未確認 Namespace 的情況下調用寫操作工具。
2. 絕不對 kube-system 命名空間調用 `scale_deployment`、`delete_resource`、`kubectl_apply`,除非使用者二次確認。
3. 絕不調用 `kubectl_generic` 執行 --force --grace-period=0,除非使用者明確知曉後果。
4. 絕不在單副本服務上直接調用 `restart_deployment` 而不警告短暫不可用。
5. 絕不直接調用 `delete_resource` 刪除 Namespace 層級資源,必須給出替代方案。

驗證效果:在智能會話中輸入"//k8s 營運守護 將 fronted 服務的副本數減少 1 個",數字員工應返回變更預檢報告:

K8s 變更預檢報告

操作意圖: 將 payment 服務副本數從 3 縮減至 2
目標資源: Deployment/payment
操作層級: L2 高風險寫

目前狀態:
  - Replicas: Ready 3/3
  - PDB: 無
  - HPA: 無

將執行的命令:
  $ kubectl scale deployment fronted -n cms-demo --replicas=2

爆炸半徑:
  - 影響 Pod 數: 1(將終止 1 個 Pod)
  - 預計不可用時間: 0s(滾動縮容,不影響服務)
  - 是否有流量中斷風險: 否

復原方案:
  $ kubectl scale deployment fronted -n cms-demo --replicas=3

請確認是否執行此操作?

確認後,數字員工返回:

已完成 payment 服務的縮容操作:
- 服務位置:cms-demo 命名空間
- 原副本數:3
- 現副本數:2
- 操作狀態:成功

payment 服務目前保持在 2 個副本的配置,運行穩定。

MCP 與技能的協同

MCP 工具提供"能力"(能做什麼),技能提供"規範"(怎麼做)。兩者結合使用效果更佳。

以"縮容 payment 服務"為例,數字員工的完整處理流程如下:

  1. 載入技能:數字員工識別到這是 K8s 變更操作,自動載入 kubernetes-ops-guardian 技能。

  2. 調用 MCP 查詢目前狀態

    // 調用工具: get_deployments
    {
      "namespace": "cms-demo"
    }
    // 返回:
    {
      "success": true,
      "context": "minikube",
      "deployments": [
        {
          "name": "payment",
          "namespace": "cms-demo",
          "replicas": 3,
          "available": 3
        }
      ]
    }
  3. 按技能規範進行風險預判:調用 get_services 檢查關聯 Service,調用 get_pod_events 檢查例外狀況事件,評估爆炸半徑,產生變更預檢報告。

  4. 等待使用者確認後,調用 MCP 執行操作

    // 調用工具: scale_deployment
    {
      "name": "payment",
      "namespace": "cms-demo",
      "replicas": 2
    }
    // 返回:
    {
      "success": true,
      "context": "minikube",
      "message": "Deployment payment scaled to 2 replicas"
    }
    如果未配置 kubernetes-ops-guardian 技能,數字員工仍然可以通過 MCP 工具完成縮容操作,但不會進行風險預判和變更預檢,直接執行可能帶來安全風險。

冷啟動與迭代最佳化

冷啟動建議

首次配置數字員工時,不要試圖一次性寫出完美的規則。建議按以下步驟逐步完善:

  1. 先配置預設規則:從上文的 K8s 巡檢規則模板開始,直接複製使用。

  2. 跑一輪測試:在智能會話中提幾個典型問題,觀察 AI 的回答品質。

  3. 記錄偏差:如果 AI 忽略了某些資料來源(如忽略了 GC 日誌),記錄下來。

  4. 補充規則:將遺漏的資料來源和分析邏輯補充到預設規則中。

  5. 按需添加技能:當某個情境需要複雜的專項流程時,再配置對應的技能。

迭代最佳化方法

觀察到的問題

調整方向

操作

AI 回答籠統,缺乏深度

補充預設規則

增加分析邏輯約束和輸出格式要求

AI 執行了不該執行的操作

增加約束規則

在預設規則中添加負向約束

AI 無法擷取某類資料

接入 MCP 工具

添加對應的 MCP 服務

AI 在特定情境下流程混亂

配置技能

為該情境編寫專用 Skill

AI 許可權不足導致查詢失敗

調整 RAM 角色

為 RAM 角色添加要求的權限策略