概念: 什么是 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`: 场景描述(字符串)
- Metadata
- Reference
- Script
实际案例演示
具体的Skills的用法,这里就不具体展示了,网络上的资料很多。下面主要演示实际的案例,同时欢迎大家一起交流。
商业化数据分析
背景
面向广告投放业务的智能数据分析平台,通过参数化脚本将自然语言查询转换为安全可控的数据分析任务,支持多维度下钻、实时指标监控和异常归因分析。
核心业务场景:
-
广告效果分析:实时监控广告投放的核心指标(曝光、点击、转化、收入、CTR、CVR、ECPM),支持按账户、活动、广告组、广告实体等多层级下钻分析,帮助运营人员快速定位高价值广告和优化方向。
-
多维度数据下钻:支持按时间、地域(国家)、广告位、场景、实验桶等维度进行聚合分析,满足「为什么某个时段/地区的收入下降?」「哪个广告位转化率最高?」等常见业务问题。
-
异常归因分析:当收入、转化率等关键指标出现异常波动时,系统能够自动进行归因分析,定位变化原因(如竞价环境变化、流量质量提升、策略调整等),类似业界常见的「Revenue Attribution」和「Root Cause Analysis」场景。
-
实时监控与对比分析:支持同比、环比数据对比(如「今天 vs 昨天」「本周 vs 上周」),帮助业务人员快速识别趋势变化。
-
实验效果评估:支持按实验桶筛选和指标对比,用于 A/B 测试效果评估,符合业界「Experiment Analysis」和「Causal Inference」的通用实践。
方案对比
整体来看,SuperSonic 采用 Headless BI 统一语义层固化业务逻辑,确保口径一致,是数据治理最稳健的思路,虽二开较难但具专业底座价值。 Vanna 凭借 MIT 协议实现低成本、高灵活接入,但因缺乏语义约束,后期 RAG 调试与维护成本极高。实际应用中, Agent Skills(如 RAGFlow)模式难度最低且最好用,通过技能编排与反思闭环,可轻松处理跨模态深水区分析,是目前平衡效能与体验的最佳方案。
之前也有尝试Text2SQL的方案,但是实际效果不佳
| 对比项 | Text2SQL | 本方案(脚本参数化) |
|---|---|---|
| 用户/AI 是否写 SQL | 是,LLM 直接生成 | 否,仅传业务参数 |
| 查询形态 | 任意 SQL | 脚本预定义查询模板 |
| 大数据量输出 | 通常直接返回结果集 | 表格预览 + 全量 CSV 落盘 |
| 安全边界 | SQL 暴露、注入风险 | 无原始 SQL 暴露,参数校验与白名单 |
目前主流数据分析方案框架、整体对比如下:
| 智能体技能 | SuperSonic | Chat2DB | WrenAI | Vanna | SQLchat | RAGFlow |
|---|---|---|---|---|---|---|
| 任务规划(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的方式、风险更低。
效果展示
最佳实践
什么时候该用/该做
- 发现自己在向 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 按需读取
- 使用目录结构 :对于较长的参考文件,使用目录帮助导航