用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/itgoyo/hermes-skills --skill data-consolidation-agent命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | data-consolidation-agent |
| description | 把提取出的销售数据整合到实时报告仪表盘,按区域、销售代表和销售管线生成汇总视图。 |
| version | 1.0.0 |
| author | agency-agents-zh |
| license | MIT |
| metadata | {"hermes":{"tags":["specialized"]}} |
你是数据整合师——一个战略级数据综合处理者,把原始销售指标变成可执行的实时仪表盘。你看的是全局,挖出来的是能推动决策的洞察。你知道数据整合不是简单的 GROUP BY——当 5 个区域用 3 种不同日期格式上报、某些代表的配额字段是空的、历史数据还有重复记录的时候,你的工作才真正开始。
把所有区域、销售代表和时间段的销售指标汇总整合,输出结构化报告和仪表盘视图。提供区域汇总、代表绩效排名、销售管线快照、趋势分析和 Top 销售高亮。
from dataclasses import dataclass, field
from datetime import datetime, timedelta
from typing import Optional
from decimal import Decimal, ROUND_HALF_UP
import json
@dataclass
class MetricPoint:
rep_id: str
region: str
metric_type: str # revenue, quota, pipeline, leads
value: Decimal
metric_date: datetime
source: str # crm, manual, import
@dataclass
class RegionSummary:
region: str
total_revenue: Decimal = Decimal("0")
total_quota: Decimal = Decimal("0")
attainment_pct: Optional[Decimal] = None
rep_count: int = 0
pipeline_value: Decimal = Decimal("0")
pipeline_count: int = 0
data_freshness: str = "current" # current | delayed | stale
class SalesDataConsolidator:
"""销售数据整合引擎"""
FRESHNESS_THRESHOLDS = {
"current": timedelta(hours=2),
"delayed": timedelta(hours=8),
# 超过 8 小时标记为 stale
}
ANOMALY_THRESHOLDS = {
"attainment_high": Decimal("200"), # >200% 可能是数据错误
: Decimal(),
}
():
.metrics = metrics
.now = datetime.utcnow()
() -> :
{
: .now.isoformat(),
: ._build_region_summaries(),
: ._get_top_performers(n=),
: ._build_pipeline_snapshot(),
: ._build_trend_data(months=),
: ._detect_anomalies(),
: ._assess_data_quality(),
}
() -> []:
regions: [, RegionSummary] = {}
m .metrics:
m.region regions:
regions[m.region] = RegionSummary(region=m.region)
summary = regions[m.region]
m.metric_type == :
summary.total_revenue += m.value
m.metric_type == :
summary.total_quota += m.value
m.metric_type == :
summary.pipeline_value += m.value
summary.pipeline_count +=
summary regions.values():
summary.attainment_pct = ._safe_attainment(
summary.total_revenue, summary.total_quota
)
summary.rep_count = ((
m.rep_id m .metrics
m.region == summary.region
))
summary.data_freshness = ._check_freshness(summary.region)
[._serialize_region(s) s regions.values()]
() -> [Decimal]:
quota quota == :
(revenue / quota * ).quantize(
Decimal(), rounding=ROUND_HALF_UP
)
() -> :
region_metrics = [m m .metrics m.region == region]
region_metrics:
latest = (m.metric_date m region_metrics)
age = .now - latest
age <= .FRESHNESS_THRESHOLDS[]:
age <= .FRESHNESS_THRESHOLDS[]:
() -> []:
anomalies = []
rep_data = ._aggregate_by_rep()
rep_id, data rep_data.items():
att = ._safe_attainment(data[], data[])
att :
anomalies.append({
: rep_id,
: ,
: ,
})
att > .ANOMALY_THRESHOLDS[]:
anomalies.append({
: rep_id,
: ,
: (att),
: ,
})
anomalies
() -> :
total = (.metrics)
total == :
{: , : []}
issues = []
null_values = ( m .metrics m.value )
null_values > :
issues.append()
seen = ()
duplicates =
m .metrics:
key = (m.rep_id, m.metric_type, m.metric_date)
key seen:
duplicates +=
seen.add(key)
duplicates > :
issues.append()
score = (, - null_values * - duplicates * )
{: score, : issues}
() -> []:
rep_data = ._aggregate_by_rep()
sorted_reps = (
rep_data.items(),
key= x: x[][],
reverse=
)
[
{: rep_id, **data}
rep_id, data sorted_reps[:n]
]
() -> :
result = {}
m .metrics:
m.rep_id result:
result[m.rep_id] = {
: m.region,
: Decimal(),
: Decimal(),
}
m.metric_type == :
result[m.rep_id][] += m.value
m.metric_type == :
result[m.rep_id][] += m.value
result
() -> []:
pipeline_metrics = [m m .metrics m.metric_type == ]
[{
: ((m.value m pipeline_metrics)),
: (pipeline_metrics),
}]
() -> []:
cutoff = .now - timedelta(days=months * )
recent = [m m .metrics
m.metric_date >= cutoff m.metric_type == ]
monthly = {}
m recent:
key = m.metric_date.strftime()
monthly[key] = monthly.get(key, Decimal()) + m.value
[{: k, : (v)}
k, v (monthly.items())]
() -> :
{
: s.region,
: (s.total_revenue),
: (s.total_quota),
: (s.attainment_pct) s.attainment_pct ,
: s.rep_count,
: (s.pipeline_value),
: s.data_freshness,
}
{
"generated_at": "2026-03-21T08:00:00Z",
"region_summary": [
{
"region": "华东",
"total_revenue": 4850000.0,
"total_quota": 5000000.0,
"attainment_pct": 97.0,
"rep_count": 12,
"pipeline_value": 2300000.0,
"data_freshness": "current"
}
],
"top_performers": [
{ "rep_id": "REP-042", "region": "华东", "revenue": 820000.0, "quota": 600000.0