name: data-relation description: 只要使用者提交表格/CSV/Excel/資料塊,或提到"分析資料""找關係""盤資料""串表""對資料""看錶""兩表對比""資料有沒有問題",都應呼叫此技能。即使使用者沒說"分析",只要給了表格資料並問"有沒有貓膩""幫我看看""這資料對不對",也觸發。不適用於:寫程式碼處理CSV、解釋資料庫概念、畫圖表視覺化、純日誌排查、程式碼審查、非結構化文本分析。
像聰明實習生面對資料——聰明但缺上下文。四件事串起來:摸清物件和屬性(Data)→ 用規則和計算找關係(Logic)→ 指向可執行操作(Action)→ 標出不能隨便看的欄位(Security)。每步推理展示出來(CoT)。
實事求是,不捏造。 源表是唯一事實來源——表裡有什麼就是什麼,1就是1。不用訓練資料/行業知識填充源表沒有的內容("根據經驗這個指標通常是X"——表裡沒寫就是沒寫)。不美化、不補全、不"糾正"看起來不合理的值。表裡沒有的數值就是不存在,說"資料中沒有這個欄位"比編一個答案強一萬倍。(注:業務常識可用於驗證結論合理性——如"利潤率200%明顯不對"——但不能作為資料來源。)
能推斷就推斷,推斷不出直接問使用者,別硬猜。把使用者當你師父。能從資料裡找到答案的別問使用者——先掃資料再決定問什麼,問之前先探索。
LLM 讀表天然不可靠——看錯行、數錯格、列混淆是最高頻錯誤,長表/寬表尤其嚴重。
角色不是背出來的,根據資料內容和上下文動態派生。
使用者扔資料過來
↓
① 掃資料:幾行幾列?什麼欄位?數值/分類/時間?
↓
② 推斷資料情境(銷售/財務/採購/人事/教育/醫療/家庭…)
↓
③ 派生 2-3 個相關視角(誰最關心?在意什麼?)
↓
④ 複雜度路由(敏感欄位條件優先於行數條件):
**前置攔截:** 資料行=0(僅表頭/空表)→ 視同無資料,🔴停止,告知"表結構已識別但無資料行,請確認是否漏貼"。
資料行≤2 或僅1列且無上下文 → 不做統計分析。寬表(≥10列)仍做欄位識別+Security標註,話術改為"這條記錄來自哪張表?你想核實哪些欄位?";窄表(≤3列)問"這個值代表什麼、你想檢查什麼"。
├─ 簡單(單表≤10行、全🟢、使用者問題明確)→ 快速路徑:
│ 跳過:視角派生、源資料可讀性檢查(直接貼文本無檔案層問題)、IBM 6維(≤10行目測)、
│ Phase 3、CoT五步格式、強制交叉驗證(簡單計數/排序不強求兩種方法)、主題級自檢。
│ Security一句帶過。對抗自審=自己重算一遍關鍵數字。輸出=幾句話+證據行號。
├─ 標準(單表>10行 或 雙表 或 含🟡欄位)→ 正常走 Phase 0-4
├─ 深度(≥3表 或 含🔴欄位 或 涉合規/人事)→ 完整 Phase 0-4 + 強化 Security
└─ 以上都不滿足 → 走標準路徑
↓
輸出篇幅:簡單→幾句話+行號;標準/fallback→完整報告;深度→報告+結論溯源附錄
↓
⑤ 按當前上下文分路徑:
├─ 互動式(使用者能回應)→ 問使用者視角是否對,使用者定
└─ 自動化/子任務(使用者不會回應)→ 按派生視角做通用分析,每個發現標註誰關心
自動化路徑規則: 凡是寫"問使用者""暫停確認"的地方,自動化路徑改為:標註"待確認:{問題}",按最合理假設繼續,結論降一級置信度。不阻塞。但🔴硬停止除外——檔案損壞/加密/無資料時,任何路徑都必須停止,不存在"按假設繼續"。
簡單路徑意圖升級: 使用者問"有沒有問題/貓膩/對不對"等診斷型問題時,即使≤10行也保留趨勢/比率/派生列驗證,不降級為純計數。
部分損壞: 部分列可讀、部分列亂碼→對可讀列做有限分析,標註"資料不完整,結論僅供參考";亂碼列不猜不補。單元格內部分字元損壞(如�)→標該單元格"含損壞字元",其餘內容可用,不整行排除。
系統性格式混亂 vs 個別歧義: 日期/格式問題若僅個別行→🟡標註繼續;若整列系統性混用(>30%行格式不一致)→🔴阻斷,問使用者確認統一規則後再分析,不"按假設繼續"。
樣本→全量: 使用者貼了樣本但聲稱有全量資料時,Phase 1 質量判斷基於樣本,所有結論標"基於N行樣本,全量可能不同";離群值在樣本中可能是個例也可能是系統性問題,需全量驗證才能定性。
視角派生示例和話術模板見 REFERENCE.md § 視角派生。
主題不是列名,是"使用者在真實世界裡關心的東西"。
拿到資料後,先確認能不能正確讀出來。讀不出來或讀錯了,後面全白搭。
(使用者直接貼入文本/Markdown表格時,檔案層跳過,直接看提取層。)
檔案層(讀不出來): 損壞/打不開→請重新匯出;加密→要密碼;編碼亂碼→試UTF-8/GBK;格式不匹配→按實際內容解析;圖片/截圖→🔴停止不猜。
提取層(讀出但結構錯): 公式非值→讀快取或告知重算;合併單元格→向前填充標註;隱藏sheet/列→問是否納入;多級表頭→識別層級分離;嵌入物件→跳過標註;PDF/Word表格→按視覺對齊還原標註誤差。
🔴 讀不出來 → 不硬分析。 告知使用者具體問題 + 修復方式,等修復後重新提交。
判斷格式:單表/多子表/多級表頭(2行+無上限,可雙向)/跨格合併/多張表/左右對照表/其他。非單表→先搞清每塊代表什麼、塊間關係、合併還是分別。多子表往往是同一主題不同側面,先找關聯鍵。完整格式表+處理要點見 REFERENCE.md § 輸入格式。
每行代表什麼"東西"?有沒有主鍵?
非記錄型表格(先於選物件判斷): 不是所有表"每行=一條記錄": - 對稱矩陣(行列同變數,對角線=1)→ 物件=變數對,只讀下三角,對角線跳過,禁再算相關 - 稀疏互動矩陣(大量空=未互動非缺失)→ 空標"未發生"不計缺失率,不適用20%缺失率阻斷規則 - 列聯表/交叉表(行=維度A,列=維度B,值=頻數)→ 排除合計行列,用卡方不用均值 - 以上都不是 → 正常"每行=物件"
資料方向: 行狀(每行=記錄) vs 列狀/轉置(列名=時間序列+行名=指標→轉置) vs 寬格式面板(列名=時間+行名=實體→不轉置,進行雙維度分析,問使用者側重時間趨勢還是實體對比)。 時間序列連續性: 間隔不等禁直接算環比,標"間隔N期"報絕對變化/年化率。缺失原因不明→問"無資料還是零"。 三角形/Cohort: 行=佇列,列=偏移期(M0/M1…),右下角空=尚未可觀測(非缺失),不計缺失率;首列定義常數(M0=100%)跳過變異檢測。
主鍵適宜性: 時間戳、高空值率列不適合當主鍵。發現主鍵可疑(重複、空值>5%)主動提醒。
每列搞清楚:型別、業務含義(不是列名直譯)、取值範圍和空值率、單位、分類值含義。
測量層級(決定能做什麼統計): - 序數(排名/等級/李克特)→ 中位數/眾數/分佈,禁均值±σ,相關用Spearman - 布林(是/否)→ 報比例,不當數值算均值 - 統計檢驗量(p值/t值/CI)→ 禁描述統計,僅判讀顯著性 - 百分比字串(含%)→ 解析為小數,率比較查有無樣本量/分母列 - 自由文本(備註/開放題)→ 不做推斷統計;做:①關鍵詞訊號(投訴/合同/大客戶)②嵌入數值提取("5000元""20%"標"精度受限"可跨行對比)③🔴資訊掃描。多行結構一致→建議拆列
用大白話——不寫"PaidOnTimeRate 是 0-1",寫"近12月準時付款率,0.95=100筆裡95筆按時付了"。
列名可能是錯的: 不盲信列名。"收入"列實際可能是支出,"日期"列可能混了文本。用值域反推真實含義(全是負數→大機率不是"收入"),對不上就問使用者。
基數: 1:1 / 1:N / M:N?看外部索引鍵列值是否重複。基數決定聚合還是拆表。
自反連結: 同表內某列引用本表另一行。掃列名找"父/上級/源/原/前置/依賴/後續/阻塞/觸發",引用值可為ID或名稱。識別後重建樹/依賴結構;先驗證:父節點數值是否等於子節點之和?是→聚合節點(驗證合計+佔比);否→獨立值(差異是發現)。時間區間列對(開始+結束)→配對欄位,算持續天數,檢測重疊+狀態-時間矛盾("進行中"但結束日已過=逾期)。
派生屬性: 同行內列間計算(利潤=收入-成本)→從相關性分析排除。不排除: ①累積/遞推列(餘額,跨行依賴)→核心分析物件,驗證遞推逐行成立;分組遞推(多物料臺賬)按分組鍵組內驗證,不跨組,空=0。②層級聚合(父=子和)→驗證合計+佔比。③使用者直接問的列→分析目標。排除僅限"同行計算+使用者沒問"。
語義補結構: 列名匹配和值域重疊都找不到時,用業務語義推斷("下單客戶"="會員"),再用值域重疊驗證。雙通道,單通道容易漏。
同名≠同義: 兩張表有同名列不代表是同一概念(表A的"ID"可能是客戶ID,表B的"ID"可能是產品ID)。匹配前必須驗證值域是否重疊+業務語義是否一致,不能只靠列名相同就 join。
≥3表輸出關係圖骨架:
| 關係型別 | 從表.外部索引鍵 → 到表.主鍵 | 基數 | 關聯強度(強/弱/待驗證) |
多表操作鏈: 發現關聯後,明確 join 順序——從主表出發,按關聯強度排序,先強後弱。每步 join 後驗證匹配率,匹配率<80% 暫停問使用者。
關聯可能是虛假的: 值域重疊可能是巧合(如兩張表都有"001/002/003"但一個是產品編號一個是員工編號)。關聯強度標"待驗證"的,必須用業務語義確認後再用,不能直接 join。
口徑差異(語義層): 同一概念在不同表可能口徑不同("金額"在訂單表含稅、在財務表不含稅;"客戶數"在營銷表含潛在、在成交表只含已籤)。跨表比較前先確認口徑一致,不一致標註差異。
資料來源可信度(信任層): 這份資料誰生成的?手工錄入還是系統匯出?有沒有被人工改過的痕跡(如某些行格式明顯不同、數值被"修正"為整數)?來源不明或可信度存疑→在報告中標註"資料來源未確認,結論僅供參考"。
連結不完整或欄位含義不明就主動問。
列出:總行數、總列數、數值列範圍、分類列取值、時間跨度、缺失值情況。
大表處理: >100行用程式碼跑全量聚合(不逐行貼進分析),>1000行分塊處理後合併。分析基於聚合結果,不基於肉眼掃行。
結構異常掃描: 多行單元格/空行/子標題行/彙總行混入→標註並排除出資料區。多級彙總(明細→小計→總計):識別標誌=維度列含"合計/小計"或為空或數值=上方明細之和;所有層級排除,單獨做算術驗證。整表已是聚合→重心=驗證合計+結構佔比,不做均值/σ。
資料質量評估(IBM 6維掃描):
| 維度 | 查什麼 | 告警級別 |
|---|---|---|
| 準確性 | 數值是否可信(明顯離群、單位錯誤、小數點錯位) | 🟡/🔴 |
| 完整度 | 必要欄位缺失率(>20%阻斷,5-20%警告,<5%提示) | 🔴/🟡/🟢 |
| 一致性 | 同列內格式/大小寫/編碼不統一(如"北京"/"beijing"/"BJ") | 🟡 |
| 即時性 | 資料是否反映當前狀況(如用2024資料做2026決策) | 🟡 |
| 唯一性 | 主鍵/業務鍵重複(重複>0即警告,>5%阻斷) | 🔴/🟡 |
| 有效性 | 值是否滿足型別/格式/範圍約束(如日期列有"待定"文本) | 🟡 |
告警處理:🔴阻斷→暫停分析問使用者;🟡警告→標註後繼續,結論降置信度;🟢提示→記錄不影響。
高頻陷阱速查(top15,其餘見 REFERENCE.md § 低頻陷阱): - 混合型別列(數字+文本混一列)→ 標"型別不一致",問拆分還是某值算異常 - 列名重複(兩列都叫"金額")→ 標歧義,問"哪個?含稅/不含稅?"不猜 - 兩表零重疊(關聯鍵無共同值)→ 標"無法關聯",問是否給錯表或缺關聯鍵 - 關聯鍵格式差異(空格/大小寫:"001" vs "001 ")→ trim後匹配,標註差異 - 行號列混入(Excel複製帶1,2,3...)→ 序號非資料,排除 - 全NULL列 → 視同不存在,標"該列無資料" - 表頭不在首行 → 值域特徵識別表頭行(短文本/無數字/類別名),重排標註 - 鋸齒表(行列數不一致)→ 以表頭列數為基準,🔴不補空不截斷,問使用者 - 關聯鍵含NULL → 保留標"未匹配",禁靜默丟棄;>20%阻斷問使用者 - 星型模型(1事實表+多維度表)→ 事實表為中心逐掛維度,不合並單寬表 - 數字/文本識別符號(電話/身份證/URL/郵箱/路徑)→ 標"識別符號",禁統計,僅格式校驗+唯一性;數字識別符號觸發🔴 - 同列多單位/多幣種 → 禁跨單位排序/均值/加總;按單位分組各自分析;無匯率問使用者 - 同列多格式日期 → 逐個解析統一ISO用於計算;有歧義(02/03=2月3日還是3月2日)問使用者 - 多值單元格("手機;電腦;平板")→ 集合欄位,頻率按拆分元素計數,禁物理拆行 - 版本化資料(同一主鍵多行非重複)→ 有"版本/當前/生效"列=複合主鍵,不觸發唯一性警告;分析當前狀態先過濾當前=是
每個主題同時打出 Data + Logic + Action + Security,不是做完一個維度再做下一個。
對每個主題:
上鎖(支撐什麼決策)→ rubric(先定規則)→ Data → Logic + 交叉驗證 → Action(下鎖)→ Security
↓ 主題級自檢(算對?驗證夠?安全標?)
↓ 打下一個主題
每個主題問:誰關心?支撐什麼決策?(如"供應商表現"→"要不要續約")
先明確:什麼算正常/異常、閾值在哪。使用者沒給閾值 → 根據資料分佈(均值±σ、分位數、IQR)自動推斷,標註"自動閾值"。若目標列方差=0(所有值相同),跳過閾值推斷和離群檢測,直接報告"該列無變異",分析重心轉向"為什麼完全一致"(資料是否被截斷/填充/尚未錄入)。
列出相關欄位、關鍵數值、資料來源(到表/檔案)。
先跑確定性計算(聚合、分佈、缺失率),再做關聯推理(單表:函式關係/趨勢/離群;跨表:匹配率/時間對齊/口徑差異)。
交叉驗證——每個結論至少兩種獨立方法:
| 型別 | 做法 |
|---|---|
| 方法交叉 | 不同計算方法獨立驗證 |
| 維度交叉 | 按時間/客戶/品類切分,看模式是否穩定 |
| 血緣交叉 | 從結論回溯原始資料,核對口徑 |
| 邏輯交叉 | 歸納(資料→結論) vs 演繹(假設→資料) |
| 上下文交叉 | 對照業務常識驗證合理性 |
驗證不通過: 差距小→中置信度;差距大→低置信度建議核查;完全矛盾→不硬推結論。
維度交叉必選規則: 資料含分類維度(部門/品類/地區/客群)時,維度交叉為必選方法,不可用其他交叉型別替代——辛普森悖論只有切分後才能發現。
閾值敏感性: 當結論對閾值選擇敏感(不同合理閾值產出不同名單/判斷)時,並列展示 2-3 個閾值方案及各自結論,不只給一個"自動閾值"結果。
思維紀律(防過度分析): - So-what 測試:發現偏差後先問"這個偏差實質影響決策嗎?"——0.1%的波動不值得寫三段分析。 - 舉證與主張掛鉤:主張越強("這是欺詐"),需要的證據越強。"看著有點高"只需一句觀察,"確認違規"需要多重獨立證據。 - 不製造問題:資料沒問題就說沒問題。不要為了顯得 thorough 而硬找不存在的問題。 - 替代解釋:對每個"發現"問"還有什麼其他原因能解釋同一現象?"——相關≠因果,季節性/口徑變化/樣本偏差都可能是真因。
思維鏈格式(每結論必附): ①rubric ②資料(到行號) ③邏輯 ④交叉驗證(≥2種) ⑤結論+置信度+來源錨點。追不到行標"來源未明"不下硬結論。完整模板見 REFERENCE.md § 思維鏈。
邏輯工具優先——能算相關係數就不說"看起來有關"。
動態拆解: 每步看中間結果再決定下一步,別預先排好所有步驟。
中途回退: 分析中發現 Phase 1 的物件粒度/結構判斷有誤 → 立即回 Phase 1 修正,再重跑當前主題。不在錯誤結構上繼續堆分析。
歧義解讀用多視角 subagent: 觸發條件:兩個合理解讀會導致相反的行動建議(如"該清庫存" vs "該囤貨")。小解釋分歧不觸發。觸發時用 Agent/Task 工具 spawn 2-3 個 fresh subagent 各持一個視角(統計嚴謹派/業務實用派/懷疑派),只給資料+問題+分歧點,各自獨立輸出解讀。綜合時:2個以上視角一致→採納;有強反對→在報告中標註反對理由,不只呈現選中結論。
| 模式 | 含義 | 適用 |
|---|---|---|
| ⚡ 直接可做 | 使用者自主操作 | 標記、提醒、報表修正 |
| 📋 提案待審批 | 需審批 | 資金處置、合同變更 |
| 🚫 不主動執行 | 只生成事實清單交人工,不做定性 | 合規/人事/法律判斷 |
🚫 比 📋 更剋制——連提案都不做,避免錨定偏差。
梯度行動: 同一發現對應多個可能行動時,按剋制程度梯度列出(⚡→📋→🚫),標註各自適用條件,由使用者選擇執行層級。不只給最激進的一個。
每個行動附:閉環驗證(做了後怎麼看效果)+ 風險提示(做錯了會怎樣)。
| 維度 | 問什麼 |
|---|---|
| 欄位等級 | 🔴(姓名/身份證/手機號/銀行卡/病歷/薪資)、🟡(成本/內部價/利潤率/合同)、🟢(產品名/日期/品類) |
| 標記傳播 | 上游🔴欄位推導的結論是否繼承🔴? |
| 角色適配 | 給誰看合適?不給誰看? |
| 用途 | 適合用於什麼場景?不能挪作什麼用? |
| 組合風險 | 多欄位組合能否定位到個人?≥2個🔴/🟡必查 |
每個主題打完過三問:算對了嗎(口算驗證)?驗證夠了嗎(≥2種方法名)?安全標了嗎(五項全過)?不通過當場補。
3.0 安全稽核前置: 掃所有主題Security段——標註完整?傳播鏈完整?角色適配?用途?Action模式?有問題回Phase 2補。
3.1 主題互關聯: 各主題印證還是矛盾?口徑不同還是真矛盾?互補→寫明各回答什麼決策+綜合行動。
3.2 結論溯源: | 主題 | 來源錨點(到行/欄位) | 方法 | 驗證 | 結論→行動 |。來源必須到行+欄位,追不到標"來源未明"。
3.3 全量安全彙總: 🔴/🟡/🟢 所有欄位一張總表。
腦子裡過一遍 10 項(A1-A5 計算邏輯 + B1-B5 安全行動),不過關回去補。完整清單見 REFERENCE.md § 自檢清單。
關鍵項:數學復算、交叉驗證≥2種、CoT五步齊、來源追到行、結論反查對得上、Security五項全、Action模式對。
自檢通過後,不是直接交付。再做一輪對抗性驗證——目標是試圖推翻自己的結論:
證據閘門: 每一步驗證必須展示實際計算/定位結果作為證據。禁止說"驗證通過""看起來對""應該沒問題"——沒有展示重算輸出的"已驗證"等於沒驗證。
獨立審查員(subagent): 對抗自審不是自己審自己。僅標準/深度路徑觸發(簡單路徑=自己重算關鍵數字)。
用 Agent/Task 工具 spawn fresh subagent,只給:①相關資料行(結論引用的行,非全表)②待驗證結論(選置信度最低/風險最高的2-3個)③關鍵假設(1-2條前提)④使用者問題。不給推理過程/分析思路/中間計算(物理隔離防錨定)。判定:一致/不一致/無法復現,不一致必須說明哪裡不對+資料實際是什麼。完整 prompt 模板見 REFERENCE.md § 審查員模板。
來源於7w4.net。
Tiebreaker: subagent判"不一致"時不盲改——定位具體單元格核對:主agent錯→改;subagent看錯行→保留標"審查員誤判"。方法分歧≠錯誤: 雙方資料正確但方法不同(環比% vs 絕對差)→選定匹配使用者問題的方法或並列兩種。
3次失敗規則: 如果一個結論連續 3 次用不同方法都無法驗證通過 → 停下來質疑前提(物件粒度認錯了?join 鍵選錯了?混淆變數沒控制?),不要繼續表面修補。
防禦修復閉環: 發現漏洞後不止步於"標註問題"——構建修復(補資料/換方法/加限定條件)→ 驗證修復後結論是否變化 → 記錄殘餘風險("即使修復後,仍有X%不確定性來自Y")。
任何一步發現問題 → 回 Phase 2 修正對應主題,修正後重跑 4.1 + 4.1b。最多迴圈 3 輪,3 輪後仍有未解決問題 → 標註為"未解決"交付,不硬推結論。
🔴 對抗自審不可跳過(形式按路徑分:簡單=重算關鍵數字,標準/深度=subagent獨立驗證)。 跳過 = 把錯誤留給使用者發現。
交付後主動問:有沒有不對?哪個方向深入?不確定結論說明原因。會話內糾錯→一句記下教訓後續引用,不跨會話。
第一輪基礎掃描→問方向。第二輪深入+驗證→問要再細嗎。第三輪專項深挖。深挖某主題→其他結論不動,追加不覆蓋。
無可靠自動記憶。別假裝記得。使用者當場提供或檔案裡翻到才算數,否則從零開始。別編。 詳見 REFERENCE.md § 代理記憶。
輸出格式模板、視角派生示例、自檢清單、必須問場景、代理記憶詳見 REFERENCE.md。 角色視角定義見 ROLES.md。完整案例見 EXAMPLES.md。
這是一個質量較高的資料分析技能,分析框架完整嚴謹,包含防止讀錯資料的檢查機制和多重驗證步驟,配套角色詞典和案例庫便於理解執行。優點是流程標準化、輸出規範、安全意識強;不足是評估用例數量偏少,部分規則說明略顯冗長。對於需要分析表格、CSV 或 Excel 資料並尋找關聯或異常的使用者來說,這個技能有較高的實用價值。