在数据科学中使用智能体技能
在我的上一篇文章中,我分享了如何使用MCP将大语言模型集成到完整的数据科学工作流中。我还简要提到了另一个有用的工具:技能(skills)。
技能是一个可复用的指令包,可以选择性地包含支持文件。它帮助AI更可靠、更一致地处理重复性的工作流。最基本的要求是一个SKILL.md文件,其中包含元数据(名称和描述)以及关于该技能应该如何工作的详细指令。人们通常还会将它与脚本、模板和示例捆绑在一起,以实现标准化和准确性。
此时你可能会想,为什么我们要使用技能,而不是直接把所有内容写入Claude Code或Codex的上下文中呢?一个优势是技能有助于保持主上下文的简洁。AI最初只需加载轻量级的元数据——当它判断该技能相关时,再读取剩余的指令和捆绑的资源。你可以在skills.sh找到出色的公共技能集合。
让我用一个简单的例子来使这个概念更加具体。
1、一个简单的例子:每周可视化技能
从2018年起,我每周都会制作一个可视化作品,这个过程高度重复,每周大约需要花费我一个小时。因此,我认为它是使用技能自动化的绝佳候选对象。
1.1 没有AI时的工作流
这是我每周的例行工作:
- 找到一个我感兴趣的数据集。我常去寻找灵感的网站包括Tableau每日可视化、Voronoi、美国劳工统计局的每日经济数据、r/dataisbeautiful等。
- 打开Tableau,探索数据,发现洞察,并构建一个能直观讲述故事的可视化。
- 将其发布到我的个人网站。
1.2 AI工作流
虽然数据集搜索步骤仍然是手动的,但我创建了两个技能来自动化第2步和第3步:
- 一个 storytelling-viz技能,用于分析数据集、识别洞察、建议可视化类型,并生成直观、简洁、以叙事为导向的交互式可视化。
- 一个viz-publish技能,用于将可视化作为嵌入式HTML发布到我的网站——我不打算分享这个技能,因为它与我的网站仓库结构密切相关。
下面是一个在Codex Desktop中触发storytelling-viz技能的例子。我使用了与上次相同的Apple Health数据集,让Codex从Google BigQuery数据库中查询数据,然后使用该技能生成可视化。它能够发现关于年度运动时间与消耗卡路里之间的洞察,并推荐图表类型,附带推理和权衡分析。
整个过程不到10分钟,以下是输出结果——以洞察驱动的标题开头,后面跟着简洁的交互式可视化、注意事项和数据来源。我一直在用最近几个每周可视化来测试这个技能,你可以在技能仓库中找到更多可视化示例。
2、我是如何构建它的
现在我们已经看到了输出结果,让我带你了解我是如何构建这个技能的。
第1步:从计划开始
正如我在上一篇文章中分享的,我喜欢在实现之前先与AI制定计划。在这里,我首先描述了我的每周可视化工作流和自动化目标。我们讨论了技术栈、需求以及"好的"输出应该是什么样的。这就引出了我的第一个版本的技能。
好的方面是,你不需要手动创建SKILL.md文件——只需让Claude Code或Codex为你的用例创建一个技能,它就可以为你生成初始版本(它会触发一个技能来创建技能)。
第2步:测试和迭代
然而,第一个版本只实现了我理想可视化工作流的10%——它能够生成可视化,但图表类型往往不够理想,视觉风格不一致,主要结论也没有总是突出显示等等。
剩下的90%需要迭代改进。以下是一些有帮助的策略。
1. 分享我自己的知识
在过去的八年里,我建立了自己的可视化最佳实践和偏好。我希望AI遵循这些模式,而不是每次都发明一种不同的风格。因此,我分享了我的可视化截图以及我的风格指南。AI能够总结出共同的原则并相应地更新技能指令。
2. 研究外部资源
网上有很多关于优秀数据可视化设计的资源。我采取的另一个有用步骤是让AI从知名来源和类似的公共技能中研究更好的可视化策略。这增加了我没有明确记录的视角,使技能更具可扩展性和健壮性。
3. 从测试中学习
测试对于发现改进领域至关重要。我用15个以上的不同数据集测试了这个技能,以观察它的行为以及它的输出与我自己的可视化相比如何。这个过程帮助我提出了具体的更新建议,例如:
- 标准化字体选择和布局* 检查桌面和移动预览以避免标签和注释重叠* 使图表即使没有工具提示也能理解* 始终要求数据来源并在可视化中链接它* ……
你可以在这里找到storytelling-viz技能的最新版本。欢迎试用并告诉我你的感受 :)
3、给数据科学家的要点
我的每周可视化项目只是一个例子,但技能在许多重复性的数据科学工作流中都很有用。当你有一个反复出现、遵循半结构化流程、依赖领域知识且难以用单个提示词处理的任务时,它们尤其有价值。
- 例如,调查指标X的变动。你可能已经知道X的常见驱动因素,所以你总是从按A/B/C细分和检查漏斗上方指标D和E开始。这正是你可以打包成技能的流程,让AI遵循相同的分析手册并为你识别根本原因。
- 另一个例子:假设你计划在区域A运行一个实验,你想检查同一区域内正在运行的其他实验。过去,你会在Slack中搜索关键词,翻阅Google Docs,并打开内部实验平台来查看标记了该区域的实验。现在,你可以将这些常见步骤总结成一个技能,让大语言模型进行全面研究并生成相关实验的报告,包括它们的目标、持续时间、流量、状态和文档。
如果你的工作流由多个独立且可复用的组件组成,你应该将它们拆分成独立的技能。在我的案例中,我创建了两个技能——一个用于生成可视化,另一个用于发布到我的博客。这使得各部分更加模块化,以后更容易在其他工作流中复用。
技能和MCP配合得很好。我在一个命令中使用了BigQuery MCP和可视化技能,它成功基于我在BigQuery中的数据集生成了可视化。MCP帮助模型顺畅地访问外部工具,而技能帮助它为给定任务遵循正确的流程。因此,这种组合很强大且相互补充。
4、结束语
既然我可以自动化80%的每周可视化流程,为什么我还在继续做呢?
当我在2018年首次开始这个习惯时,目标是练习Tableau,那是我的雇主使用的主要BI工具。然而,目的随着时间的推移发生了变化——现在我用这个每周仪式来探索我在工作中永远不会遇到的不同数据集,磨练我的数据直觉和叙事能力,并通过数据的视角看世界。所以对我来说,不在于工具,而在于发现的过程。这就是为什么我计划继续做下去,即使在AI时代。
原文链接:Beyond Prompting: Using Agent Skills in Data Science
汇智网翻译整理,转载请标明出处