Agent Skills 在 AI 数据分析中的应用

264 阅读6分钟

概念: 什么是 Agent Skills?

在 Agent 的演进历程中,Agent Skills 的出现标志着从“大而全的黑盒模型”向“精细化工业协作”的重大范式转移。 在这一概念普及之前,AI 往往因为“能力孤岛”而导致诸多业务场景难以落地:尤其是逻辑多变的规则校验或深度数据分析时,常因缺乏行业上下文和特定工具链的支持,出现幻觉或无法执行闭环任务。此外,能力的不可复用和难以追溯,使得 AI 很难真正进入高要求的生产环境

  • 简单、敏捷、可追溯: 编写业务垂类 Agent,素材制作、需要分析、测试、线上问题分析、运营数据分析、实验数据分析、AI驱动规则校验
  • 多 Skill 联用: 公司各业务共建共享,量变->质变

Skills 的真实价值

  • 零代码、自然语言: 编写业务垂类 Agent
  • 突破预设限制: 灵活应对实际情况
  • 多 Skill 联用: 覆盖指数级场景

功能复用》能力复用》知识复用

基本用法:编写你的第一个 Skill

技能的核心是一个名为 SKILL.md 的文档,其关键结构包含元数据与规则。

---
name: img-demo
description: 上传图片自动返回图片内容
---

## 描述
用户输入图片时,自动识别图片内容并返回详细的图片信息。支持多种图片格式,能够识别图片中的文字、物体、场景等信息。

## 输入参数
- `image`: 图片文件(支持格式:jpg, jpeg, png, gif, webp)
  - 类型:File  Base64 字符串
  - 必填:是

## 返回值
返回一个包含以下信息的对象:
- `content`: 图片内容描述(字符串)
- `text`: 图片中的文字内容(如果存在)
- `objects`: 识别到的物体列表(数组)
- `scene`: 场景描述(字符串)

image.png

  • Metadata
  • Reference
  • Script

image

实际案例演示

具体的Skills的用法,这里就不具体展示了,网络上的资料很多。下面主要演示实际的案例,同时欢迎大家一起交流。

商业化数据分析

背景

面向广告投放业务的智能数据分析平台,通过参数化脚本将自然语言查询转换为安全可控的数据分析任务,支持多维度下钻、实时指标监控和异常归因分析。

核心业务场景:

  1. 广告效果分析:实时监控广告投放的核心指标(曝光、点击、转化、收入、CTR、CVR、ECPM),支持按账户、活动、广告组、广告实体等多层级下钻分析,帮助运营人员快速定位高价值广告和优化方向。

  2. 多维度数据下钻:支持按时间、地域(国家)、广告位、场景、实验桶等维度进行聚合分析,满足「为什么某个时段/地区的收入下降?」「哪个广告位转化率最高?」等常见业务问题。

  3. 异常归因分析:当收入、转化率等关键指标出现异常波动时,系统能够自动进行归因分析,定位变化原因(如竞价环境变化、流量质量提升、策略调整等),类似业界常见的「Revenue Attribution」和「Root Cause Analysis」场景。

  4. 实时监控与对比分析:支持同比、环比数据对比(如「今天 vs 昨天」「本周 vs 上周」),帮助业务人员快速识别趋势变化。

  5. 实验效果评估:支持按实验桶筛选和指标对比,用于 A/B 测试效果评估,符合业界「Experiment Analysis」和「Causal Inference」的通用实践。

方案对比

整体来看,SuperSonic 采用 Headless BI 统一语义层固化业务逻辑,确保口径一致,是数据治理最稳健的思路,虽二开较难但具专业底座价值。 Vanna 凭借 MIT 协议实现低成本、高灵活接入,但因缺乏语义约束,后期 RAG 调试与维护成本极高。实际应用中, Agent Skills(如 RAGFlow)模式难度最低且最好用,通过技能编排与反思闭环,可轻松处理跨模态深水区分析,是目前平衡效能与体验的最佳方案。

之前也有尝试Text2SQL的方案,但是实际效果不佳

对比项Text2SQL本方案(脚本参数化)
用户/AI 是否写 SQL是,LLM 直接生成否,仅传业务参数
查询形态任意 SQL脚本预定义查询模板
大数据量输出通常直接返回结果集表格预览 + 全量 CSV 落盘
安全边界SQL 暴露、注入风险无原始 SQL 暴露,参数校验与白名单

目前主流数据分析方案框架、整体对比如下:

智能体技能SuperSonicChat2DBWrenAIVannaSQLchatRAGFlow
任务规划(Planning)🟡 (指标/维度选择)🟡 (单步SQL生成)🟢 (基于MDL的推理)🟢 (2.0 支持子任务拆解)🔴 (单轮对话)🔵 (主智能体协调工作流)
工具调用(Tool Use)🟡 (内部查询引擎)🟢 (SQL/图表工具)🟡 (数据库执行器)🟢 (Python沙箱/存储)🟡 (DB 连接器)🔵 (支持 MCP 协议/Web/API)
反思纠错(Reflection)🟡 (语义纠偏)🟢 (CoT 逻辑解释)🟡 (预执行校验)🟢 (自动捕获错误并重试)🟡 (允许后续修改)🔵 (深度文档解析/Loop 反馈)
记忆能力(Memory)🟡 (会话上下文)🟡 (会话记录)🟡 (元数据缓存)🟢 (向量化历史 SQL 对)🟡 (本地浏览器存储)🟢 (持久化 RAG 知识库)
核心逻辑(Logic)语义层(Semantic)模式匹配(Pattern)模型定义(MDL)检索增强(RAG)Prompt 指令智能体流(Agentic)

注:🔵 表现卓越;🟢 良好;🟡 基础/起步;🔴 无此项。

整体架构

整体流程为:用户 → AI/Agent → 选 Skill → 调脚本(传参数)→ 脚本内部构建查询 → 执行 → 结果落盘(table 预览 + CSV 全量)。 全程不暴露数据库、表结构、如果优化得当,后续可以通过权限控制(userid->数据权限)对其他用户开发、相对于直接test2SQL的方式、风险更低。

image.png

效果展示

image.png

最佳实践

什么时候该用/该做

  • 发现自己在向 AI 反复解释同一件事
  • 某些任务需要特定知识、模板、材料才能做好
  • 发现一个任务要多个流程协同完成

工程目录规划

├── SKILL.md           # 核心指令(必需)
├── scripts/           # 可执行脚本(Claude 通过 Bash 运行)
│   └── helper.py
├── references/        # 文档(Claude 通过 Read 加载到上下文)
│   └── api_docs.md
└── assets/            # 模板和二进制文件(Claude 通过路径引用)
    └── template.html

最佳实践

  • 简洁是关键 :
    • 保持 Skill 内容精简,避免信息过载。验证发现:中文(英文)的方式会更加准确、多个skill之间
    • 注意数据库权限收敛、暴露只读的即可。防止风险操作
    • 输入、输出参数格式最好保持一致,避免模型理解歧义&浪费token。
    • 避免让skill直接生成SQL、可以使用python脚本封装业务方法并参数统一,如:
  • 命令行参数:使用 argparse,统一参数格式:
    • --filters:筛选条件,多个条件用逗号分隔
    • --fields:指定要查询的字段列表(逗号分隔)
    • --dimensions:聚合维度,多个维度用逗号分隔(如适用)
    • --format:输出格式(csv)
    • --output-dir:输出目录(CSV格式时使用)
  • 输出格式:默认 CSV 文件(/output)表格输出
- 明确的描述 : `description` 应同时说明 Skill 的功能和使用时机、关键词
- 渐进式披露 :将详细内容放在单独的文件中,让 Agent 按需读取
- 使用目录结构 :对于较长的参考文件,使用目录帮助导航