本文へ移動
cccskills
無料GitHub で公開

bi-causal-attribution

从运营周报、活动文档、对话输入或文档工具 API 中提取业务事件,与指标异常时间窗口对齐,生成有证据支撑的因果归因假设并排序。当已知指标存在异常波动、需要从外部文档证据中解释"为什么"时调用。

インストール方法を見る

含まれるファイル(2)

  • SKILL.md10.9 KB
  • scripts/event_evidence_scorer.py8.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

bi-causal-attribution

从外部证据源(运营周报、活动记录、产品发布文档、对话输入等)中发现业务事件,与指标异常时间窗口对齐,生成有证据支撑的因果归因假设并按可信度排序。

与相邻归因技能的关系:

技能回答的问题输入
bi-attribution-analysis哪个维度对指标变动贡献了多少(量化)结构化 CSV
bi-causal-attribution(本技能)为什么发生这种变动(因果)外部文档证据
bi-time-impact-attribution已知具体事件后,量化其影响度结构化事件列表

典型场景:

  • "人均GAAP这周为什么下降了" → 已有异常检测结论,需从周报/活动记录中找原因
  • "企业用户 Token 消耗为什么上月明显增长" → 结合产品发布记录和运营文档解释驱动因素

前置条件

开始前确认以下信息已就绪:

  • 指标异常信息:异常指标名称、时间窗口(起止日期)、变动方向(上升/下降)、变动幅度,来自 bi-anomaly-detection 输出或用户描述
  • 受影响维度(可选):已定位的关键维度(组)值,来自 bi-attribution-analysis 或 bi-dimension-drilldown;若无则留空,维度吻合度评分将降级为中性值
  • 证据源:至少一种可用的证据来源(见步骤 2)

若异常信息不完整,需先调用 bi-anomaly-detection 获取。


执行步骤

1:构建异常锚点

整理指标异常的关键信息,作为后续事件匹配的基准,落盘至 data/processed/anomaly_anchor.csv:

字段说明示例
指标名发生异常的指标国内人均GAAP
异常开始日期异常时间窗口起始2026-06-08
异常结束日期异常时间窗口结束2026-06-14
变动方向上升 / 下降 / 波动下降
变动幅度环比/同比变化值或百分比-12%
关键维度已定位的受影响维度值(选填)企业用户

2:证据源接入

支持以下两类证据源,可同时使用:

2a. 对话输入 / 文件上传

证据直接出现在对话上下文或用户上传的文件中,包括:

  • 运营周报(文字粘贴或文档上传)
  • 营销活动计划表
  • 产品发布记录
  • 用户直接描述的业务事件(如"这周 618 活动在做折扣")

处理方式:从对话上下文或文件内容中直接提取,无需额外接口调用,进入步骤 3。

2b. 文档工具 API

通过工具调用从外部系统检索业务事件信息(如活动日历接口、产品发布记录接口)。

查询时,以异常时间窗口为中心,向前扩展 7 天构建检索范围,覆盖事件通常在指标变动前已发生的情况:

检索范围 = [异常窗口开始日期 - 7天, 异常窗口结束日期]

按以下优先级取值,命中即停:

优先级来源示例
1用户显式指定的接口/工具用户要求"查一下活动日历接口"
2域知识包(若存在)域知识包指定活动记录接口名称
3语义层接口(若可用)通过语义层查询业务事件配置

若两类来源均可用,合并结果并去重(按事件名称+时间去重);若均不可用,终止执行并提示用户提供证据源。


3:事件提取与标准化

对每份证据内容,提取其中描述的业务事件,按以下字段标准化,落盘至 data/processed/extracted_events.csv:

字段说明示例
事件名称简洁描述事件618活动折扣
开始日期事件生效起始(不确定则留空,推断值需加 [推测])2026-05-22
结束日期事件生效结束(持续中则填异常窗口末尾,留空规则同上)2026-06-22
预期方向事件对目标指标的预期效果:正向 / 负向 / 双向 / 不确定双向
影响维度事件主要影响的用户群或业务维度(不确定则留空)企业用户
来源类型结构化文档 / 周报 / 对话输入周报
原文摘要支撑提取结论的原文片段(100字以内)"【来源原文节选,100字以内,直接引用,不改写】"

提取规则:

  • 时间不明确:尽量从上下文推断(如"本周上线"→ 结合文档日期推算);推断结果在日期字段加 [推测] 标注;完全无法推断则留空
  • 方向不确定:同一事件预期方向存在歧义(如折扣活动既拉低人均 GAAP 又拉高付费人数),标注 双向,不武断判断单一方向
  • 重复事件:同一事件出现在多个来源,合并为一条;来源类型 取可信度最高的那个
  • 不相关内容:与指标或业务无关的信息(如纯流程记录、人事通知)不提取

4:事件评分与排序

按以下优先级选择计算方式,命中即停:

方式一:使用脚本

路径:scripts/event_evidence_scorer.py

参数:

参数说明
--anomaly-file异常锚点文件路径(必填,来自步骤 1)
--events-file标准化事件列表文件路径(必填,来自步骤 3)
--output-file评分结果输出路径(可选)

调用示例:

python scripts/event_evidence_scorer.py \
    --anomaly-file data/processed/anomaly_anchor.csv \
    --events-file data/processed/extracted_events.csv \
    --output-file data/processed/causal_attribution_result.csv

评分维度:

维度权重计算方式
时间覆盖度25%事件时间窗口与异常时间窗口的重叠天数 / 异常窗口总天数;事件无日期信息则为 0
方向一致性25%负向(异常为下降)或正向(异常为上升)= 1.0;双向/不确定 = 0.5;方向相反 = 0
维度吻合度25%与关键异常维度完全匹配 = 1.0;部分匹配或事件维度未知 = 0.5;不匹配 = 0;关键维度未指定时一律 = 0.5
证据明确度25%事件在证据中有明确记录且与异常直接对应 = 1.0;事件存在但描述模糊或为推测性关联 = 0.5;仅用户口头提及、无任何证据佐证 = 0

综合评分 → 可信度分级:

综合评分可信度
≥ 0.7高
0.4 ~ 0.7中
< 0.4低

输出格式:

异常窗口: {开始日期} ~ {结束日期} | 方向: {上升/下降} | 关键维度: {维度值或"未指定"}

事件名称              可信度  综合评分  时间覆盖  方向一致  维度吻合  证据明确  原文摘要
{事件A}(高覆盖)       高     0.7+    0.x      0.x     0.x      0.x    "原文节选..."
{事件B}(部分匹配)     中     0.4~0.7  0.x      0.x     0.x      0.x    "原文节选..."
{事件C}(证据薄弱)     低     <0.4    0.x      0.x     0.x      0.0    "用户口头提及"

方式二:LLM 自行推理评分

触发条件(满足任一即走本方式):

场景说明
脚本不存在scripts/event_evidence_scorer.py 文件不在项目目录中
环境无法执行脚本无 Python 环境、脚本报错、无文件系统写权限
数据未落盘步骤 1/3 未生成 CSV(如用户直接在对话中提供异常描述和事件,跳过了文件落盘)
事件数量极少提取事件 ≤ 3 条,逐条推理比调用脚本更高效

执行方式:

对步骤 3 提取的每个事件,按以下维度逐一推理打分,最终加权汇总:

① 时间覆盖度(25%)

事件时间窗口与异常时间窗口的重叠程度。重叠越多、越居中,得分越高;事件无日期信息或完全不重叠得分最低;完整覆盖整个异常窗口得分最高。在 0-1 之间打分。

② 方向一致性(25%)

事件预期对目标指标的影响方向与异常变动方向的吻合程度。方向明确一致得分最高;方向模糊(双向/不确定)居中;方向明确相反得分最低。在 0-1 之间打分。

③ 维度吻合度(25%)

事件影响的用户群或业务维度与已定位的异常关键维度的匹配程度。完全匹配得分最高;部分匹配或维度不明得分居中;明确不匹配得分最低;若步骤 1 未指定关键维度,则一律取中性分。在 0-1 之间打分。

④ 证据明确度(25%)

事件被找到、记录并与本次异常关联的清晰程度。在证据中有明确记录且可直接对应本次异常得分最高;有记录但描述模糊或关联为推测性的得分居中;仅为用户口头提及、无任何文档佐证得分最低。在 0-1 之间打分。

综合评分计算:

综合评分 = 时间覆盖度 × 0.25 + 方向一致性 × 0.25 + 维度吻合度 × 0.25 + 证据明确度 × 0.25

按综合评分从高到低排序,划分可信度等级后,输出与方式一相同的表格格式,进入步骤 5。


5:归因结论输出

基于步骤 4 的评分结果,生成结构化归因结论,按以下格式输出:

  1. 异常摘要:一句话描述(指标名、时间窗口、变动方向与幅度、关键维度)
  2. 归因列表(按可信度降序排列):每条包含:
    • 可信度标注:[高] / [中] / [低]
    • 事件名称与时间范围
    • 因果机制说明:1-2 句解释该事件如何导致指标变动
    • 证据原文:直接引用原始摘要,注明来源
    • 待验证疑点(若有)
  3. 未解释比例:现有证据无法覆盖的指标变动占比(若上游提供了维度贡献度数据则可计算)
  4. 后续建议:对低可信度归因的验证方式,或需要补充的证据类型

输出格式:

异常摘要:{指标名} {时间窗口} 环比{变动方向} {变动幅度},{关键维度(若有)贡献约 X% 的变动}。

归因结论:

[高] {事件名称}({起止日期})
     机制:{1-2句说明该事件如何通过具体路径导致指标变动}
     证据:"{原文节选}" —— {来源描述,如"X月X日运营周报"}

[中] {事件名称}({日期})
     机制:{机制说明}
     证据:{来源描述}
     疑点:{待验证的不确定因素,及建议的验证方式}

[低] {事件名称}({时间不确定时注明})
     机制:{机制说明}
     证据:{来源描述,如"用户对话输入,无明确时间"}
     疑点:{需要补充的信息,及获取方式}

未解释比例:现有证据覆盖指标变动约 {X}%,剩余 {Y}% 尚无对应证据。

后续建议:
- [{可信度}] {事件名称}:{具体的验证动作或所需补充数据}

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

将用户的数据分析需求转化为结构化的分析计划并与用户确认。用户提出 BI 业务分析、数据探索、统计建模等需要规划的分析任务时使用。简单数据查询、公式明确的定量计算等流程简单、无需规划的任务不使用。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

通过量化历史数据的自然波动幅度,自适应计算判定阈值。当需要从数据本身确定阈值(如波动阈值、影响度阈值等)、而非使用固定值时调用。仅适用于日/周粒度阈值确定。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

基于阈值检测时间序列中的显著异常波动点。当需要找出指标异常波动日期、识别数据异动时调用。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

计算各维度(组)值对指标变动的贡献度,支持可加型量值指标和加权平均型/率值指标。当需要计算贡献度、解释指标"为什么涨/跌"时调用。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

对用户、产品等业务对象做分群:用波士顿矩阵法做象限分群,或用分层聚类、K-means、DBSCAN 等聚类技术分群。当需要做客群/产品分群、象限策略、画像或密度型子结构发现时调用。触发条件:当对话中出现“分群”、“分类”、“聚类”、“不同类型”、“不同场景”等体现分群分析词语时触发。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

把用户按同一批/同一类分组,比较各群体后续表现。触发条件:对话涉及同期群分析、分群后表现对比、用户生命周期分群跟踪等任务时触发,如出现「同期群」「cohort」「按起始特征分群后表现如何」「不同客群后续转化/留存对比」「注册周/获客渠道分群跟踪」等相似问题时触发。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

agentscope-ai のスキルをすべて見る

このスキルの問題を報告する