Excel 智能处理助手(发布版 v4.0 · 轻量优先)
核心设计哲学
轻量优先,深度按需。 不预设模板,不强迫输出,结论先行,文件附后。
工作流(三步走,不可跳步)
第一步:快速预览(必须执行)
用户上传文件后,只读前 5 行 + 形状探测(pd.read_excel(nrows=5) 或 preview()),输出极简摘要:
📋 数据快照:共 1,247 行,18 列
📊 关键指标:总销售额 1,280.5 万,平均客单价 3.2 万
⚠️ 潜在提示:'客户姓名'列缺失率 12%,'订单日期'存在 3 种格式
💡 建议:如需深度异常检测(集中大单/拆单嫌疑),请回复"深度分析"
此阶段禁止:
- 计算健康度评分
- 运行 MAD/IQR 离群检测
- 生成三层漏斗报告
- 写入带格式的 Excel 驾驶舱
第二步:意图判断(自动分类)
根据用户原始指令(传入 main(user_query=...))+ 数据特征,判断任务类型:
| 用户指令关键词 | 自动归类 | 执行模式 | |---------------|---------|---------| | "看看/预览/汇总/合计" | 浏览型 | 轻量模式(只出摘要) | | "合并/去重/筛选/改格式" | 操作型 | 工具模式(执行原子操作,"去重"→删除完全重复行) | | "考勤/打卡/出勤/加班/迟到" | 考勤型 | 深度模式(启用考勤分析器:重复打卡+加班 MAD) | | "销售/客户/完成率/大单" | 销售型 | 深度模式(启用销售分析器:组合异常检测) | | "异常/体检/检查/问题/深度" | 质检型 | 深度模式(启用 MAD 离群检测) | | 未命中任何关键词 | 通用型 | 轻量模式(仅摘要+基础统计) |
第三步:执行与交付
- 轻量/工具模式:直接返回处理结果(纯文本摘要 + 附件文件),不生成任何额外报告 Sheet。
- 深度模式:在轻量摘要基础上,附加行号级异常清单(纯文本列表),并在附件 Excel 中将异常行仅标黄(不加额外 Sheet、不加颜色规范渲染)。
输出格式约束:
- 主交付物始终是 处理后的原始数据文件(格式与原文件一致)。
- 结论用 纯文本 + 简单 Markdown 列表 呈现,禁止输出多 Sheet 复杂驾驶舱。
- 深度模式异常清单格式:
🔍 异常行(共 3 条):
- 第 48 行:销售额 99,800 元,超出同类均值 15 倍(疑似大单,建议核实客户真实性)
- 第 132 行:客户数 1 人但订单量 50 笔(疑似拆单,建议核实)
- 第 877 行:加班时长 18.5 小时(远超正常范围 2~6 小时,建议核实排班)
可调参数(config.py)
LIGHT_MODE_PREVIEW_ROWS = 5(预览行数)DEEP_MODE_PERCENTILE = 0.95(深度检测参考阈值:超出 P95 的记录值得关注)- 兼容区:
MAD_THRESHOLD = 3.5、MIN_SAMPLES = 10等仅在深度模式被引用,默认休眠
禁止事项(红线)
- ❌ 禁止在任何模式下自动生成"健康度评分"或类似主观量化分数。
- ❌ 禁止在轻量/工具模式下运行 MAD/IQR/重复打卡等重型算法。
- ❌ 禁止固定输出"三层漏斗"或"AI驾驶舱"Sheet。
- ❌ 禁止未经用户确认写入带复杂格式(颜色/合并单元格)的 Excel 文件(异常行标黄除外)。
- ❌ 禁止把执行环节转交给用户——一切在沙盒完成,结果以文件交付。
脚本调用规范
import sys; sys.path.insert(0, "<skill目录>/scripts")
from insight_engine import main, preview
# 预分析(第一步):只读前 5 行
info = preview("用户文件.xlsx", n=5)
# 执行(第二/三步):把用户原话传入 user_query 做意图判断
result = main(input_file="用户文件.xlsx", output_dir="./outputs", user_query="帮我看看这个考勤表有没有问题")
# result: {"success", "output_file", "error", "summary", "scene", "anomaly_count", "anomaly_rows"}
- Agent 将
result["summary"]原文呈现给用户,并把result["output_file"]作为附件交付。 - 深度算法(MAD、重复打卡、组合异常)全部保留在
attendance_analyzer.py与引擎内部,默认休眠,仅在意图命中时被deep_scan()精准调用。
示例交互(对标发布版风格)
用户:"帮我看看这个销售表,有没有问题。"
回复:
📋 数据快照:共 856 行,12 列(2026年1-6月销售数据)
📊 总销售额 1,280.5 万,环比 +3.2%,华东区贡献 42%
⚠️ 注意:'客户数'列有 8% 空值,'订单金额'最大值为 99,800 元(均值的 12 倍)
💡 如需深度检测"集中大单"或"拆单嫌疑",回复"深度分析"即可。
用户:"深度分析"
回复:
🔍 深度检测完成(基于 P95 百分位):
- 第 48 行:销售额 99,800 元(超出 P95 阈值 85,000 元),建议核实客户真实性
- 第 132 行:客户数 1 人但订单 50 笔(拆单嫌疑),建议核实
📎 已标注异常行的文件:sales_data_20260908_153022.xlsx
资源文件
excel-data-insight/
├── SKILL.md # 本文件(轻量优先工作流)
└── scripts/
├── __init__.py # Python 包标识
├── insight_engine.py # 引擎:light_summary/deep_scan/main 轻量路由 + 休眠的重型算法
├── attendance_analyzer.py # 考勤深度模块(重复打卡/加班 MAD,深度模式才调用)
└── config.py # 轻量配置:2 个活跃参数 + 深度模式兼容区
执行型自检清单(每次交付前 Agent 必须核对)
- [轻量] 默认路径是否只做了摘要+基础统计?有没有偷偷跑健康度评分或 MAD?
- [意图] user_query 是否传入了 main()?模式归类是否符合关键词表?
- [输出] 深度模式的异常是否带行号?附件中异常行是否仅标黄(无额外 Sheet)?
- [交付] 生成的文件是否作为附件返回给用户?
- [回退] 失败时是否返回友好错误提示(不泄漏堆栈)?
- [休眠] 轻量/工具模式下重型算法是否确实未被调用?
Scan to join WeChat group