全部產品
Search
文件中心

Cloud Monitor:Agent資料去重清洗

更新時間:May 01, 2026

Agent 資料去重清洗 Pipeline 模板通過精確去重和近似去重兩級清洗,去除 AI Agent 作業記錄中的重複資料,零 AI 成本產出乾淨資料集。

適用情境與核心價值

AI Agent(如 Copilot、ChatBot、RAG 系統等)線上運行時會產生大量使用者互動日誌,其中普遍存在以下兩類冗餘資料:

  • 完全重複:同一使用者多次提交相同問題(頁面重新整理、重試、網路抖動)。

  • 字面相似:不同使用者的提問僅有標點、空格、換行等細微差異。

冗餘資料浪費儲存資源,幹擾下遊分析和模型訓練。本模板通過精確去重近似去重兩級清洗,為後續評估、標註、訓練等任務提供乾淨的資料基礎。

適用人群

角色

典型情境

資料工程師

日常資料維護、資料倉儲入庫前清洗

營運人員

Agent 日誌治理、儲存成本最佳化

演算法工程師

訓練資料預先處理、去除雜訊樣本

核心價值

  • 無LLM調用,零AI成本

  • 精確+近似兩級去重,覆蓋完全相同和字面高度相似的重複。

  • 秒級處理大規模日誌(單批萬級資料秒級完成)。

  • 支援跨批次全域去重(可選),避免歷史資料重複入庫。

Pipeline 流程

模板運算元鏈路如下:

階段

節點

類型

說明

資料準備

project

欄位選取

從原始日誌中選取inputoutputmodel等關鍵字段。

extend

欄位擴充

使用Regex從input欄位中提取使用者提問原文,產生question欄位。

where

篩選過濾

過濾question為NULL 或Null 字元串的無效記錄。

去重清洗

dedup-exact

精確去重

基於SimHash 指紋完全符合,去除內容完全相同的記錄。

dedup-fuzzy

近似去重

基於SimHash 海明距離,去除字面高度相似的記錄(預設閾值為3)。

完整配置

支援 JSON API 配置方式。JSON API 適用於通過 API 建立 Pipeline 任務。

JSON API配置

以下為完整的 Pipeline JSON 配置樣本,需要將source中的projectlogstorequery替換為實際值。

{
  "name": "agent_data_cleaning",
  "description": "Agent 資料去重清洗:精確 + 近似兩級去重,快速產出乾淨資料集",
  "source": {
    "type": "logstore",
    "logstore": {
      "project": "your-project",
      "logstore": "your-agent-logstore",
      "query": "serviceName:your-agent-service and *"
    }
  },
  "pipeline": {
    "nodes": [
      {
        "id": "select_fields",
        "type": "project",
        "parameters": {
          "input": "attributes.input.value",
          "output": "attributes.output.value",
          "model": "attributes.gen_ai.model_name",
          "trace_id": "traceId",
          "span_id": "spanId"
        }
      },
      {
        "id": "extract",
        "type": "extend",
        "parameters": {
          "question": "regexp_extract(input, '(?s)使用者提問原文:\\s*(.*?)\\s*,\\s*\"files\"', 1)"
        }
      },
      {
        "id": "filter_empty",
        "type": "where",
        "parameters": {
          "filter": "question IS NOT NULL AND length(question) > 0"
        }
      },
      {
        "id": "exact_dedup",
        "type": "dedup-exact",
        "parameters": {
          "field": "question"
        }
      },
      {
        "id": "fuzzy_dedup",
        "type": "dedup-fuzzy",
        "parameters": {
          "field": "question",
          "threshold": "3"
        }
      }
    ]
  },
  "sink": {
    "type": "dataset",
    "dataset": {
      "workspace": "your-workspace",
      "dataset": "agent_data_cleaned"
    }
  },
  "executePolicy": {
    "mode": "scheduled",
    "scheduled": {
      "fromTime": 1735689600,
      "interval": "15m"
    }
  }
}

參數說明

資料來源參數

參數

說明

樣本值

source.logstore.project

Log ServiceProject 名稱。

your-project

source.logstore.logstore

儲存Agent 日誌的Logstore 名稱。

your-agent-logstore

source.logstore.query

日誌查詢條件,用於篩選目標Agent的日誌資料。

serviceName:your-agent-service and *

Pipeline 節點參數

節點

參數

說明

預設值

project

parameters

欄位對應,將原始日誌欄位對應為統一的欄位名。Key為目標欄位名,Value為源欄位路徑。

參見上方配置樣本

extend

parameters

欄位擴充運算式。支援regexp_extract等函數,從已有欄位中提取新欄位。

where

filter

過濾條件運算式。支援IS NOT NULLlength()等SQL文法。

dedup-exact

field

去重依據欄位。基於該欄位的SimHash 指紋進行精確匹配去重。

question

dedup-fuzzy

field

去重依據欄位。基於該欄位的SimHash 海明距離進行近似匹配去重。

question

dedup-fuzzy

threshold

閾值。值越小越嚴格(1=極嚴格,5=較寬鬆)。兩條記錄的SimHash 指紋差異位元不超過該值時視為相似。

3

輸出參數

參數

說明

樣本值

sink.dataset.workspace

輸出資料集所屬的工作空間。

your-workspace

sink.dataset.dataset

輸出資料集名稱。去重後的乾淨資料將寫入該資料集。

agent_data_cleaned

調度參數

參數

說明

樣本值

executePolicy.mode

執行模式。scheduled表示定時調度執行。

scheduled

executePolicy.scheduled.interval

調度間隔。支援15m1h1d等格式。

15m

配置與使用

前提條件

  • 已開通Log Service,並建立了Project和Logstore。關於Pipeline的基本概念,參見 Pipeline

  • Agent 日誌已接入目標Logstore。

  • 已建立用於儲存清洗結果的資料集(Dataset)。

操作步驟

  1. 根據實際的Agent 日誌Schema,修改project 節點的欄位對應。將parameters中的Key保持不變,將 Value 替換為實際日誌中對應的欄位路徑。

  2. 修改extend 節點的Regex,使其匹配實際日誌中使用者提問的格式。

    說明

    如果日誌中使用者提問已經是獨立欄位(無需正則提取),可以將extend 節點替換為直接引用該欄位,或刪除此節點並修改後續節點的field參數。

  3. 根據需要調整where 節點的過濾條件。例如,添加按服務名或時間範圍過濾的條件。

  4. 根據資料特徵調整dedup-fuzzythreshold參數。

    說明

    threshold表示允許的SimHash 差異位元。值為1時極其嚴格(僅去除幾乎完全相同的文本),值為5時較寬鬆(允許更多差異)。建議從預設值3開始,根據效果調整。

  5. source中的projectlogstorequery替換為實際值,將sink中的workspacedataset替換為目標資料集資訊。

  6. 通過API提交Pipeline 配置。

運行結果

以下為典型的處理效果樣本。

處理前(原始Agent 日誌):

#

question

1

幫我查一下昨天的錯誤記錄檔

2

幫我查一下昨天的錯誤記錄檔

3

幫我查一下昨天的 錯誤記錄檔

4

幫我看下昨天錯誤記錄檔

5

統計最近1小時的PV

6

統計 最近1小時的PV

7

分析一下慢查詢的原因

處理後(去重清洗):

#

question

去重說明

1

幫我查一下昨天的錯誤記錄檔

保留(#2精確去重移除,#3、#4近似去重移除)

5

統計最近1小時的PV

保留(#6近似去重移除)

7

分析一下慢查詢的原因

保留

7條原始記錄經過兩級去重後剩餘3條,去重率57%。

實踐原則

原則

說明

Schema 前置

使用project+extend運算元完成欄位選取和擴充處理,聲明統一欄位名。

精確在前

dedup-exact成本最低(O(N)),放在第一步可大幅削減後續運算元的輸入量。

閾值適中

dedup-fuzzythreshold=3表示允許3位SimHash 差異,適合大多數文本情境。

空值過濾

正則提取可能返回NULL,where過濾可避免後續運算元異常。

定製建議

定製點

說明

欄位選取

修改projectparameters,適配實際日誌 Schema。

過濾條件

修改wherefilter,如按服務名、時間範圍等條件過濾。

去重閾值

調整dedup-fuzzythreshold(1=極嚴格,5=較寬鬆)。

跨批次全域去重

dedup-fuzzy添加"global": true"workspace": "...""dataset": "..."參數,啟用跨批次去重。

追加語義去重

dedup-fuzzy後添加dedup-semantic節點,消除表述不同但含義相同的重複。

邊界情境與行為

情境

行為

question提取為NULL

where過濾,不會進入去重流程。

threshold設定過小(如1)

可能誤刪僅有少量編輯差異的不同問題。

資料量極大(百萬級)

建議啟用全域去重模式,避免批次間重複。

需要保留去重前後的映射關係

當前模板不輸出去重關聯資訊,如需可添加output參數。