专门为 AI Agent 设计的本地数据分析与处理技能包(Skill),旨在解决日常办公场景下的高频、复杂数据分析任务。
Overview
不是单纯的图表生成器,而是一套面向企业数据分析全流程的 ——将专业数据分析师的工作流(导入→清洗→口径定义→质量评估→分析→可视化→报告→审计)压缩为一个可复用的 AI Agent Skill。 - :通过 /scope 定义全局/项目级业务指标(如 GMV、客单价、转化率),保证不同报告和 Dashboard 使用同一口径。项目级口径仅在项目目录及子目录生效,互不干扰。 - :通过 /schema 管理表结构定义(列名、类型、含义、主外键),Agent 生成 SQL 时自动引用精确的字段描述,避免猜测字段含义导致的查询错误。 - :全局 → 项目级 → 运行时配置,数据库连接、表结构定义、统计口径均可按级别管理。 - :支持 MySQL / PostgreSQL / MongoDB 直连查询,无需预先导入 DuckDB;连接密码使用 ${ENV_VAR} 环境变量占位符,SQL 执行统一走 scripts/sql_runner.py / scripts/db_cli.py,杜绝硬编码和临时 Python 片段。 - :任何查询、导出、报告、图表和 Dashboard 都必须具备统计口径、数据血缘/来源、生成时间、证据引用和专业版式;查询/导出自动生成 .meta.json 旁路元数据,HTML 产物通过静态质量门拦截坏布局。 - :每个图表区域必须提供“查看数据”按钮,默认隐藏对应数据表,点击后可查看该图实际使用的汇总数据或明细样本。 - :支持 HTTP API / 外部数据库定时轮询,自动刷新本地分析表。 - :所有数据修改创建新表或视图,支持任意步骤回退(Undo)。 - :柱状/折线/饼图/散点/雷达/漏斗/仪表盘/热力图/树图/桑基图/关系图/K线/3D 等 - :Agent 无需手写 option 代码,直接替换数据数组即可生成 - :省份(china.js)→ 城市(省份 JS)→ 区县街道(百度地图 API) - :KPI 卡片、趋势图、异常提醒、主题切换、响应式布局、PDF/PNG 导出 - :生成前读取 workflow_specs/dashboard_expert_library/INDEX.
README
Echart Skill — Enterprise Agent BI
本地优先 · 安全合规 · 企业级数据分析 Agent
🇬🇧 English | 🇨🇳 中文
Echart Skill 不是单纯的图表生成器,而是一套面向企业数据分析全流程的 本地 Agent BI 能力包——将专业数据分析师的工作流(导入→清洗→口径定义→质量评估→分析→可视化→报告→审计)压缩为一个可复用的 AI Agent Skill。
核心主张:让企业在不引入重型 BI 平台、不上传业务数据、不把敏感数据交给大模型的前提下,用 AI Agent 完成专业、可审计、可交付的数据分析。
为什么选择 Echart Skill?
🔒 数据安全第一
| 能力 | 实现方式 |
|---|---|
| 0 联网分析链路 | CSV/Excel/DuckDB 查询、清洗、统计、洞察、报告均在本地完成,自包含 HTML 离线可打开 |
| 0 明细过大模型 | 不将整表、明细行塞入模型上下文;模型仅接收 schema、聚合结果和样本级摘要 |
| PII 自动检测与脱敏 | 12 类敏感字段自动识别(手机号、邮箱、身份证、银行卡、薪资、地址等),支持列级脱敏 |
| 审计追踪 | 指令日志、查询 hash、脱敏状态、分类级别全量记录,支持按日期生成审计报告 |
| 数据血缘 | 追踪每份报告/图表的数据来源表、字段、统计口径和 query hash,让结果可复核 |
🏢 企业级工作流集成
Echart Skill 深度融入企业数据管理体系,不只是查询工具:
- 自定义统计口径:通过
/scope定义全局/项目级业务指标(如 GMV、客单价、转化率),保证不同报告和 Dashboard 使用同一口径。项目级口径仅在项目目录及子目录生效,互不干扰。 - 自定义表结构数据描述:通过
/schema管理表结构定义(列名、类型、含义、主外键),Agent 生成 SQL 时自动引用精确的字段描述,避免猜测字段含义导致的查询错误。 - 三级配置体系:全局 → 项目级 → 运行时配置,数据库连接、表结构定义、统计口径均可按级别管理。
- 外部数据库直连:支持 MySQL / PostgreSQL / MongoDB 直连查询,无需预先导入 DuckDB;连接密码使用
${ENV_VAR}环境变量占位符,SQL 执行统一走scripts/sql_runner.py/scripts/db_cli.py,杜绝硬编码和临时 Python 片段。 - 企业级输出门禁:任何查询、导出、报告、图表和 Dashboard 都必须具备统计口径、数据血缘/来源、生成时间、证据引用和专业版式;查询/导出自动生成
.meta.json旁路元数据,HTML 产物通过静态质量门拦截坏布局。 - 图表数据可核验:每个图表区域必须提供“查看数据”按钮,默认隐藏对应数据表,点击后可查看该图实际使用的汇总数据或明细样本。
- 数据轮询刷新:支持 HTTP API / 外部数据库定时轮询,自动刷新本地分析表。
- 非破坏式操作:所有数据修改创建新表或视图,支持任意步骤回退(Undo)。
📊 专业分析引擎
| 能力 | 说明 |
|---|---|
| 自动洞察发现 | 7 种模式:趋势、异常、排名、构成、相关性、周期性、变化检测 |
| 趋势预测 | 4 种方法(移动平均/指数平滑/线性回归/集成),零外部 ML 依赖 |
| 归因分析 | 指标变化贡献度分解、自动钻取下钻建议 |
| 数据质量评分 | 缺失率、重复率、常量列、疑似 ID 检测、质量分、等级和建议 |
| 10 大领域专家库 | 销售电商、流量增长、财务管理、营销活动、运营履约、客户会员、产品内容、风控数据质量、通用经营等 |
| 金字塔结构报告 | 结论先行 → 图表举证 → 归因解释 → 行动建议 → 附录数据 |
🎨 企业级数据可视化
- 27 类图表:柱状/折线/饼图/散点/雷达/漏斗/仪表盘/热力图/树图/桑基图/关系图/K线/3D 等
- 354 个 ECharts 官方配方:Agent 无需手写 option 代码,直接替换数据数组即可生成
- 多层地图:省份(china.js)→ 城市(省份 JS)→ 区县街道(百度地图 API)
- 交互式 Dashboard:KPI 卡片、趋势图、异常提醒、主题切换、响应式布局、PDF/PNG 导出
- Dashboard 专家规划:生成前读取
workflow_specs/dashboard_expert_library/INDEX.md,新增专家按workflow_specs/dashboard_expert_library/DASHBOARD_EXPERT_TEMPLATE.md扩展 - Dashboard 深度门槛:业务 Dashboard 在数据支持时至少包含 6 个分析模块,标题必须可追溯到用户请求、文件、表名或真实字段
- 企业级视觉:统一 HTML 骨架、语义色、打印友好、暗色/亮色双主题
快速开始
环境要求
- Python 3.10+
- Windows / macOS / Linux
安装
# 1. 解压 Skill 包
unzip echart-skill_*.zip -d ~/skills/
cd ~/skills/echart-skill
# 2. 安装依赖
pip install -r requirements.txt # 完整安装(~100 MB)
# 或
pip install -r requirements-core.txt # 核心依赖(~40 MB,覆盖 90% 场景)
# 3. 注册到 Agent 平台
ln -s ~/skills/echart-skill ~/.claude/skills/echart-skill # Claude Code
# 4. 开始使用
# 在项目目录创建 CLAUDE.md,添加 @~/.claude/skills/echart-skill/SKILL.md
30 秒体验
/import sales_2024.xlsx # 导入数据
/query SELECT region, SUM(amount) FROM sales_2024 GROUP BY region # 查询
python scripts/sql_runner.py --db workspace.duckdb "SELECT COUNT(*) FROM sales_2024"
/chart bar 各区域销售额对比 # 生成图表
/dashboard 创建销售分析仪表盘 # 一键仪表盘
/report sales --format html # 生成企业报告
/quality sales_2024 # 数据质量评分
核心能力图谱
┌──────────────────────────────┐
│ 企业决策与交付层 │
│ Dashboard │ Report │ 导出 │
└────────────┬─────────────────┘
│
┌──────────────────────┼──────────────────────┐
│ │ │
┌─────────▼─────────┐ ┌────────▼────────┐ ┌─────────▼─────────┐
│ 分析与洞察层 │ │ 预测与归因层 │ │ 可视化引擎层 │
│ Insight Engine │ │ Forecast/Attrib │ │ 27类 · 354配方 │
│ 7 种洞察模式 │ │ 4 种方法 · 钻取 │ │ 地图 · 3D · 关系 │
└─────────┬─────────┘ └────────┬────────┘ └─────────┬─────────┘
│ │ │
└──────────────────────┼──────────────────────┘
│
┌────────────▼────────────┐
│ 数据治理层 │
│ 口径 │ 质量 │ 血缘 │
│ 审计 │ 隐私 │ 脱敏 │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ 数据基础层 │
│ Import │ Clean │ DB │
│ DuckDB │ 外部数据库 │
└─────────────────────────┘
数据质量:让分析建立在可信数据之上
Echart Skill 将数据质量作为分析流程的前置环节,而非事后补救。
/quality orders --format markdown
质量报告包含:
- 完整性:每列缺失率、缺失模式分析
- 唯一性:重复行检测、疑似主键推荐
- 有效性:常量列检测(无信息列)、类型一致性
- 合规性:疑似 ID 字段标记、PII 风险提示
- 综合评分:A/B/C/D 四级,附带具体改进建议
生成企业报告或 Dashboard 前建议先跑质量评分。等级 C/D 或有 critical 问题时,报告结论自动标注「初步判断」并说明数据限制。
配合 /clean 的 Agent 引导式清洗流程(类型转换、多列唯一键排重、规则引擎校验、跨表验证),形成 质量评估 → 定向清洗 → 再次验证 的闭环。
自定义口径:企业级指标治理
在企业数据分析中,同一个指标在不同部门可能有不同定义。"口径不一致"是数据混乱的首要来源。Echart Skill 提供两级口径管理:
# 全局口径:所有项目生效
/scope set --level global --name "GMV" --desc "SUM(pay_amount) WHERE status='paid'"
# 项目口径:仅在当前项目目录及子目录生效
/scope set --level project --name "GMV" --desc "SUM(order_amount) WHERE is_valid=1"
# 查看当前生效的口径
/metrics effective
核心原则:
- 项目级口径同名覆盖全局口径
- 执行目录位于项目目录树内时,自动切换为项目口径
- Agent 生成 SQL/报告/Dashboard 时自动引用当前生效口径
- 所有使用口径的产物通过
/lineage可追踪
自定义表结构:让 Agent 真正理解你的数据
数据表列名往往是缩写或业务术语(如 pay_amt、ch_type、uid)。通过 /schema 为表结构提供精确描述,Agent 生成 SQL 将显著提升准确性:
# 为表添加列级描述
/schema add --name orders --columns "
id:INT:订单ID:pk,
pay_amt:DECIMAL:实付金额(元),
ch_type:VARCHAR:渠道类型(online/offline/partner),
uid:INT:用户ID:fk->users.id
"
# 项目级定义(表结构仅在该项目可见)
/schema add --name orders --level project --columns "..."
# 查询当前生效的表结构
/schema list
| 无 Schema | 有 Schema |
|---|---|
Agent 根据 pay_amt 猜测含义 |
Agent 精确知道是「实付金额(元)」 |
无法判断 ch_type 的合法值 |
Agent 知道渠道分为 online/offline/partner |
| 不会自动关联用户表 | Agent 知道 uid 关联 users.id |
| 查询质量依赖 Agent 运气 | 查询质量可预期、可复现 |
安全与合规:从设计上保护数据
┌─────────────────────────────────────────────────────────────┐
│ 安全架构 │
│ │
│ 用户指令 ──→ Agent 规划 ──→ 本地执行 ──→ 本地输出 │
│ │ │ │ │
│ │ ┌────▼────┐ │ │
│ │ │ DuckDB │ │ │
│ │ │ (本地) │ │ │
│ │ └────┬────┘ │ │
│ │ │ │ │
│ Schema/ PrivacyGuard Audit Pipeline │
│ 聚合结果 PII 检测·脱敏 指令·查询·Hash │
│ │ │ │ │
│ └───────────────┼──────────────┘ │
│ │ │
│ 大模型上下文 │
│ (仅含 schema + 聚合) │
└─────────────────────────────────────────────────────────────┘
安全防护清单:
| 防护层 | 机制 |
|---|---|
| 数据隔离 | 原始数据仅存在于本地 DuckDB,大模型无法直接访问 |
| 列级脱敏 | 手机号 → 138****1234,邮箱 → u***@domain.com,身份证 → 3201**********1234 |
| 审计日志 | JSON-lines 格式,记录时间戳、表名、列、行数、脱敏状态、分类级别、query hash |
| 4 级数据分类 | public < internal < sensitive < restricted |
| 非破坏式处理 | 默认生成新表、新文件和审计记录,避免覆盖原始数据 |
外部数据库查询同样经过 PrivacyGuard 检测与审计管线,使用 /audit-report 统一查看。企业环境下可以写 SQL 和 .sql 文件,但不要使用 python3 --sql "" 或 python scripts/sql_runner.py --profile --file queries/.sql 执行。
30+ 命令速览
数据基础
| 命令 | 说明 |
|---|---|
/import |
导入 CSV/Excel/URL 数据,自动处理合并单元格 |
/clean |
Agent 引导式数据清洗(类型转换、去重、规则校验、跨表验证) |
/export |
导出查询结果或整表为 CSV/Excel |
/tables |
查看表结构、行数、列信息 |
/query |
通过统一 SQL runner 执行查询,支持 DuckDB、已配置 PostgreSQL/MySQL profile、JOIN、GROUP BY、子查询 |
/catalog |
生成本地数据资产目录,含字段角色、质量分、缺失率、唯一率 |
可视化
| 命令 | 说明 |
|---|---|
/chart |
生成单图表(27 类,354 官方配方) |
/chart-list |
查看支持的图表类型和简介 |
/dashboard |
自然语言生成交互式企业 Dashboard |
分析引擎
| 命令 | 说明 |
|---|---|
/analyze |
自动分析数据表,发现规律与异常 |
/insight |
指定维度深度洞察 |
/report |
一键生成金字塔结构企业报告 |
/forecast |
时间序列趋势预测(4 种方法) |
/why |
指标变化归因分析,贡献度分解 |
/compare |
指定基准组和对比组,执行指标变化分析 |
/segment |
维度分群分析,输出规模、指标值和占比 |
/funnel |
漏斗转化分析,输出首步/上步转化率和流失 |
/cohort |
留存/队列分析,生成用户留存矩阵 |
/whatif |
What-if 假设推演,模拟指标上升/下降场景 |
治理与安全
| 命令 | 说明 |
|---|---|
/scope |
全局/项目级统计口径管理 |
/metrics |
查看当前生效的指标定义 |
/schema |
全局/项目级表结构定义管理 |
/quality |
数据质量评分与问题报告 |
/evidence |
为报告、图表、Dashboard 生成证据包 |
/review-report |
审阅报告的证据、口径、结构、行动建议和专业表达 |
/review-dashboard |
审阅 Dashboard 离线性、图表渲染和业务完整性 |
/contract |
数据契约校验,发现字段缺失、类型漂移、必填空值 |
/brief |
从报告或分析产物生成高管摘要 |
/pack |
生成带 manifest 和 SHA256 的本地 BI 交付包 |
/privacy |
PII 脱敏开关控制 |
/audit-report |
按日期生成审计报告 |
/lineage |
记录和查询产物数据血缘 |
/dbconn |
外部数据库连接管理(MySQL/PG/MongoDB) |
运维
| 命令 | 说明 |
|---|---|
/poll |
数据轮询管理(定时刷新 API/DB 数据) |
/start /stop /status |
本地预览服务管理 |
/context |
会话记忆与追问解析 |
图表类型全景
地图三层级架构:
| 层级 | 示例数据 | 渲染方式 | 依赖 |
|---|---|---|---|
| 省份 | 北京、上海、广东 | 本地 china.js |
无 |
| 城市 | 广州市、深圳市 | 本地省份 JS | 无 |
| 区县/街道 | 天河区 | 百度地图 API | 百度地图 AK |
项目结构
echart-skill/
├── references/
│ ├── examples/ # 354 个 .md 自包含图表配方
│ │ └── INDEX.md # 配方映射决策表
│ └── knowledge/ # ECharts 知识库(概念/API/模式)
├── workflow_specs/
│ ├── dashboard_workflow.md # Dashboard 工作流规范
│ ├── report_workflow.md # Report 工作流规范
│ ├── data_cleaning_workflow.md
│ ├── dashboard_runtime_quality.md # 运行时质量门(硬性约束)
│ ├── dashboard_expert_library/ # Dashboard 专家库(5 个场景)
│ ├── expert_library/ # Report 专家库(10 个领域)
│ ├── dashboard_modules/ # Dashboard 可复用模块
│ ├── html_templates/ # 企业级 HTML 骨架
│ └── visual_templates/ # 视觉方向(亮色/暗色)
├── assets/ # JS/CSS 资源、地图文件
├── scripts/ # 40+ Python 工具脚本
├── tests/ # 测试文件
└── outputs/ # 输出目录
Dashboard 生成必须执行 workflow_specs/dashboard_runtime_quality.md 中的硬性质量门,并通过 python scripts/validate_delivery.py 。组合门禁会核对查询证据 manifest、静态结构、治理信息、无障碍/性能要求,并在真实 Chromium 中拦截 console/page error、外链请求、缺失图表实例和零尺寸 canvas/SVG;静态层仍会拦截未定义的 chinaGeoJSON 与 html2canvas 不兼容的 color-mix()。
FAQ
Q: 数据安全如何保证? A: 原始数据仅存在于本地 DuckDB,大模型只接收 schema 和聚合结果。PII 自动检测脱敏,支持按列标记敏感级别。详见安全架构。
Q: 和传统 BI 工具(Tableau、Power BI)的区别? A: Echart Skill 是 Agent BI——通过自然语言与 AI 交互完成分析,无需手动拖拽配置。同时它无需部署服务端、可离线运行、数据不出本地。适合需要专业分析但不想引入重型 BI 平台的场景。
Q: 如何定义我们公司的业务指标口径?
A: 使用 /scope set --level global --name "指标名" --desc "计算规则" 定义全局口径;不同项目可用 /scope set --level project 覆盖。Agent 在生成报告和 Dashboard 时自动引用当前生效口径。
Q: 如何让 Agent 准确理解我们数据库表的字段含义?
A: 使用 /schema add 为表的每个列提供中文描述、数据类型、合法值范围和主外键关系。Agent 会在生成 SQL 时精确引用,显著提升查询准确率。
Q: 支持连接公司已有的数据库吗?
A: 支持。/dbconn 管理 PostgreSQL/MySQL/MongoDB 连接,密码通过 ${ENV_VAR} 环境变量传入。SQL 查询使用 scripts/sql_runner.py --profile ,导入本地分析库使用 scripts/db_cli.py import,避免临时 Python 造成连接泄露、审计缺失和 SQL 拼接错误。
Q: 生成的报告和图表能否直接交付给客户? A: 可以。Dashboard 和 Report 使用企业级 HTML 骨架,支持深色/亮色主题、PDF 导出、打印优化,图表为 ECharts 交互式可视化,可直接作为交付物。
Q: 分析过程是否可审计?
A: 完全可审计。/audit-report --date YYYY-MM-DD 按天输出指令、查询表、列、行数、脱敏状态、分类级别和 query hash。/lineage 追踪产物完整数据血缘。
许可证
MIT License — 详见 LICENSE
Built with ❤️ for data professionals who value privacy, quality, and efficiency.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add lgwanai/echart-skill