当前位置: 首页 > news >正文

claude skill 官方评测方式解读

基于此文档解读:https://github.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md

以「SQL 解读器」为例,看 Claude 如何全自动构建、测试与优化智能体技能

你描述需求,AI 完成从编码、测试、评估到部署的一切。本文将完整揭示 Claude 如何像一个高效的“技能产品经理+开发工程师”,将一句模糊的想法变成可直接部署的可靠技能。


引言:从想法到成品的“一键”之路

你是否想过,让一个 AI 智能体获得一项新能力(比如“解释 SQL”),不再需要手动编写冗长的提示词、设计复杂的测试用例、反复调试和验证?

本文将以创建一个「SQL 解读器」技能​ 为例,完整展示一种由Claude 主导的全自动化技能开发流程。你只需扮演“产品负责人”,提出想法并回答几个关键问题,剩下的编码、测试、评估、迭代优化,乃至最终的打包,全部交由 Claude 自动调度完成。

核心前提:你全程只需要和 Claude 对话,以及在浏览器里审查结果。所有子智能体、脚本、文件的创建和运行,都是 Claude 自动调度的“后台任务”。


第 1 步:需求沟通 - 从模糊意图到清晰定义

一切始于一句自然语言的需求。

  • 你提出需求

    “帮我做一个技能,我贴 SQL 的时候自动解释含义,顺便指出性能问题”

  • Claude 追问细节(扮演产品经理角色):

    “SQL 主要是 MySQL 还是?性能建议需要具体到列名吗?要不要建测试用例?”

  • 你明确要求

    “MySQL 为主,建议要具体到列名,要测试”

至此,一个清晰的、可执行的“产品需求文档”(PRD)已在 Claude 的“脑中”成型。


第 2 步:蓝图绘制 - 编写技能定义文件 (SKILL.md)

基于清晰的意图,Claude 开始编写技能的“蓝图”和“行为规范”——SKILL.md文件。

文件路径sql-explainer/SKILL.md

--- name: sql-explainer description: | 解释SQL查询语句的含义并分析性能问题。当用户粘贴SQL代码、 询问SQL含义、请求SQL优化建议、或讨论慢查询时使用此技能。 --- ## 你的任务 ### 1. 逐句解释 用“先做什么,再做什么”的叙事方式拆解SQL。 ### 2. 性能分析 检查:SELECT *、全表扫描、JOIN缺索引、子查询可改JOIN、LIKE前缀%索引失效等。 **建议要具体到列名**,比如“建议在 `orders.user_id` 上创建索引”。 ### 3. 输出格式 > **SQL 解释:**(逐句) > **性能建议:**(编号列表)

这个文件定义了技能的触发场景、核心任务和输出标准,是后续所有自动化工作的“宪法”。


第 3 步:质量标尺 - 设计自动化测试用例

没有测试的技能是不可靠的。Claude 随即创建了评估集,用于后续自动化验证技能效果。

文件路径sql-explainer/evals/evals.json

[ { "id": "eval-001", "prompt": "帮我看看这段SQL:\nSELECT * FROM orders o\nLEFT JOIN users u ON o.user_id = u.id\nWHERE o.created_at > '2024-01-01'\nORDER BY o.created_at DESC\nLIMIT 100", "expected_output": "应解释JOIN、WHERE、排序分页;应指出SELECT *问题" }, { "id": "eval-002", "prompt": "这个慢查询怎么优化?\nSELECT u.name, COUNT(o.id) as order_count\nFROM users u\nLEFT JOIN orders o ON u.id = o.user_id\nWHERE o.status IN (\n SELECT status FROM order_status WHERE is_active = 1\n)\nGROUP BY u.name\nHAVING order_count > 5", "expected_output": "应指出子查询可改JOIN、HAVING性能、GROUP BY开销" }, { "id": "eval-003", "prompt": "SELECT name FROM users WHERE name LIKE '%张%' AND age > 0", "expected_output": "应指出LIKE前缀%索引失效、age>0冗余" } ]

Claude 会将此测试集展示给你确认。你只需回复:“OK”,自动化流水线便正式启动。


第 4 步:自动化测试与评估 - Claude 的“独舞”

这是整个流程最核心、最自动化的一步。你无需任何操作,只需等待。Claude 将像一个交响乐指挥,同时调度多个“乐手”(子智能体)协同工作。

4.1 并发执行:启动 6 个子智能体

Claude 利用其Agent工具,在一条指令中一次性并发启动 6 个子智能体,分别针对每个测试用例,运行“携带技能”和“不携带技能”(作为基线)的版本。

Agent(prompt="带着 sql-explainer 技能,回答用户: 'SELECT * FROM orders o LEFT JOIN...'", 输出存到 workspace/iteration-1/eval-001/with_skill/outputs/") Agent(prompt="不带任何技能,回答用户: 'SELECT * FROM orders o LEFT JOIN...'", 输出存到 workspace/iteration-1/eval-001/without_skill/outputs/") Agent(prompt="带着 sql-explainer 技能,回答用户: '这个慢查询怎么优化?SELECT u.name...'", 输出存到 workspace/iteration-1/eval-002/with_skill/outputs/") Agent(prompt="不带任何技能,回答用户: '这个慢查询怎么优化?SELECT u.name...'", 输出存到 workspace/iteration-1/eval-002/without_skill/outputs/") Agent(prompt="带着 sql-explainer 技能,回答用户: 'SELECT name FROM users WHERE name LIKE...'", 输出存到 workspace/iteration-1/eval-003/with_skill/outputs/") Agent(prompt="不带任何技能,回答用户: 'SELECT name FROM users WHERE name LIKE...'", 输出存到 workspace/iteration-1/eval-003/without_skill/outputs/")

4.2 同步工作:为每个测试编写评估标准

在子智能体运行的同时,Claude 也没闲着。它为每个测试用例编写详细的评估断言文件 (eval_metadata.json),明确标出“好答案”应满足哪些具体要点。

示例文件workspace/iteration-1/eval-001/eval_metadata.json

{ "eval_id": "eval-001", "eval_name": "简单JOIN查询解释", "prompt": "帮我看看这段SQL:SELECT * FROM orders o LEFT JOIN...", "assertions": [ {"text": "解释了 LEFT JOIN 的作用"}, {"text": "解释了 WHERE created_at 的过滤逻辑"}, {"text": "解释了 ORDER BY + LIMIT 的分页效果"}, {"text": "指出了 SELECT * 的性能问题"}, {"text": "索引建议具体到了列名"} ] }

4.3 记录性能:抓取执行耗时与资源消耗

每个子智能体运行完毕,Claude 会立即收到系统通知(如耗时、token 使用量),并自动将其记录到对应的timing.json文件中,为后续性能分析提供数据。

示例文件workspace/iteration-1/eval-001/with_skill/timing.json

{"total_tokens": 1523, "duration_ms": 12000}

4.4 综合评估:从评分、聚合到洞察

当所有 6 个子智能体都运行完毕后,Claude 启动评估阶段。

  1. 启动 Grader 智能体评分:调用专门的评分智能体,根据eval_metadata.json中的断言,为每个运行结果 (response.md) 进行打分,生成grading.json

    with_skill 评分示例​ (workspace/iteration-1/eval-001/with_skill/grading.json):

    { "expectations": [ {"text": "解释了 LEFT JOIN 的作用", "passed": true, "evidence": "提到'通过LEFT JOIN关联users表'"}, {"text": "指出了 SELECT * 的性能问题", "passed": true, "evidence": "建议改为具体列名"} ] }

    without_skill 评分示例​ (workspace/iteration-1/eval-001/without_skill/grading.json):

    { "expectations": [ {"text": "解释了 LEFT JOIN 的作用", "passed": true, "evidence": "提了一句'做了JOIN'但很笼统"}, {"text": "指出了 SELECT * 的性能问题", "passed": false, "evidence": "未提及"} ] }
  2. 聚合数据,生成 Benchmark 报告:Claude 运行聚合脚本,汇总所有打分和性能数据,生成一份全面的 benchmark 报告。

    执行命令

    python -m scripts.aggregate_benchmark workspace/iteration-1 --skill-name sql-explainer

    生成的结构化报告​ (workspace/iteration-1/benchmark.json):

    { "skill_name": "sql-explainer", "configurations": [ { "name": "with_skill", "pass_rate": {"mean": 0.917, "std": 0.083}, "duration_ms": {"mean": 11200, "std": 1500}, "total_tokens": {"mean": 1450, "std": 200} }, { "name": "without_skill", "pass_rate": {"mean": 0.417, "std": 0.167}, "duration_ms": {"mean": 7800, "std": 1200}, "total_tokens": {"mean": 920, "std": 150} } ], "per_eval": [ {"eval_id": "eval-001", "with_skill": "5/5", "without_skill": "2/5"}, {"eval_id": "eval-002", "with_skill": "4/4", "without_skill": "2/4"}, {"eval_id": "eval-003", "with_skill": "2/3", "without_skill": "1/3"} ] }

    生成的人类可读报告​ (workspace/iteration-1/benchmark.md):

    Configuration

    Pass Rate

    Avg Time

    Avg Tokens

    with_skill

    91.7%

    11.2s ±1.5s

    1450 ±200

    without_skill

    41.7%

    7.8s ±1.2s

    920 ±150

    Delta

    +50.0%

    +3.4s

    +530

  3. 分析师审查,定位问题:Claude 会自动分析报告,找出潜在问题。例如,从上面数据可以看出:

    • 技能效果显著(通过率提升 50%)。

    • eval-003的 with_skill 丢了1分(预期3分,实得2分)。

    • 耗时增加 3.4 秒是获得高质量输出的合理代价。

  4. 启动可视化浏览器:Claude 启动一个本地 Web 服务,在浏览器中打开一个交互式看板,让你能直观地审查每个测试用例的详细输出、打分和对比。

    执行命令

    nohup python eval-viewer/generate_review.py \ workspace/iteration-1 \ --skill-name "sql-explainer" \ --benchmark workspace/iteration-1/benchmark.json \ > /dev/null 2>&1 &

第 5 步:人工审查与反馈

现在,轮到你出场了。你在浏览器查看器中轻松浏览报告。

  • 你看到eval-001eval-002表现完美。

  • 但在eval-003的详情页,你发现with_skill 版本的分析结果漏掉了“指出age > 0是冗余条件”​ 这一条。

于是,你在查看器的反馈框中写下:

“应该指出age > 0是冗余条件”

点击Submit All Reviews,这条反馈被自动保存到workspace/iteration-1/feedback.json


第 6 步:自动迭代 - 根据反馈改进技能

Claude 读取feedback.json文件,发现针对eval-003的反馈。它不会只做简单的“打补丁”,而是进行泛化思考,更新技能的“宪法” (SKILL.md):

“性能分析”​ 部分增加一条通用规则:

  • 冗余条件:检查 WHERE 子句中逻辑上永远为真的条件(例如,正数列> 0、定义为 NOT NULL 的列IS NOT NULL)。应指出这类条件不影响查询结果,但可能导致不必要的计算,有时也暗示了逻辑错误。


第 7 步:自动重跑 - 验证改进效果

Claude 自动开启第二轮迭代,完全重复第 4 步的流程,但:

  1. 使用更新后的SKILL.md

  2. 所有结果保存到新目录workspace/iteration-2/

  3. 在启动浏览器查看器时,会带上参数--previous-workspace workspace/iteration-1,使新页面能展示与上一轮的对比(如通过率变化、耗时变化)。

这次运行后,eval-003的所有断言全部通过。你在查看器中没有留下任何新反馈——这意味着技能已达到预期标准,迭代自动终止。


第 8 步:打包交付

技能已通过所有测试并完成优化,Claude 执行最后的打包命令:

python -m scripts.package_skill sql-explainer/

产出一个名为sql-explainer.skill的技能包文件。你可以将其放入~/.claude/skills/目录,即可在你的 Claude 环境中使用这个全新的「SQL 解读器」技能了。


总结:人机协作的新范式

回顾整个流程,你(人类)和 Claude(AI)的分工如下:

你(人类)所做的

Claude(AI)所做的一切

1. 描述初始需求、回答关键追问

编写技能蓝图 (SKILL.md)、设计测试集 (evals.json)

2. 确认测试用例 (OK)

并发启动子智能体、编写评估标准、记录性能、启动评分、聚合报告、启动可视化看板

3. 在浏览器中审查结果、提供关键反馈

读取反馈、泛化改进技能 (SKILL.md)、自动重跑测试、生成对比报告、最终打包技能包

你只做了 3 件高价值的事:提出想法、确认方向、在关键点上给出反馈。而 Claude 承担了从设计、编码、测试、评估、迭代到部署的所有工程性工作。

这种模式将人类从繁琐的、重复的工程劳动中解放出来,专注于最擅长的定义问题、判断质量和把握方向。而 AI 则像一个不知疲倦、高度协同的“全能工程师”,将想法快速、可靠地转化为可交付的产品。

这或许就是人机协作开发 AI 智能体及其能力的未来图景。

http://www.jsqmd.com/news/588230/

相关文章:

  • 实战演练,在快马平台部署一个openclaw多agent电商客服系统
  • 什么是AIDV(AI定义汽车)?
  • 01-第1章-概述与快速开始
  • 超表面实现光学衍射神经网络:从数字识别到Matlab与CST实践
  • 3大核心模块深度解析:如何用ComfyUI-Crystools实现AI绘画工作流的智能监控与优化
  • 2026年食品科学论文降AI工具推荐:成分分析和检测方法部分
  • 北京白发护理机构推荐?黑奥秘北京本地门店覆盖,提供便捷专业服务 - 美业信息观察
  • AI Agent框架选型:多渠道接入真的值吗?OpenClaw、LangChain、AutoGPT、CrewAI的取舍分析
  • CloudFront 跨域问题(CORS)的几种解决方式
  • AKTools实战指南:如何构建跨语言的金融数据API服务
  • 我的第一个commit
  • 学生党自动排版 AI 润色论文权威工具推荐(小白必备)
  • AIGC检测和论文查重同时超标怎么解决:两种问题的处理优先级分析
  • 在线支付系列(三):Stripe 信用卡——一件跨境商品的卡支付之旅
  • 还在为百度网盘限速而烦恼?这款开源直链解析工具让你告别蜗牛下载!
  • 微信聊天记录解密完全指南:从数据困境到自主掌控
  • 本地AI聊天、交互助手(写给小白的LLM工具选型系列:第三篇)
  • 2026年市面上水泥罐公司,砂浆罐/卧式储油罐/地埋式油罐/热油罐/不锈钢储罐/滤油罐/化工原料罐,水泥罐生产厂家有哪些 - 品牌推荐师
  • 互联网大厂Java面试实录:从Spring微服务到AI Agent全流程场景深度解析
  • 7、Ansible之Playbook高级用法
  • 2025届最火的五大AI辅助论文神器实际效果
  • 如何判断提取的RNA是否可用?
  • TEI Inference Toolkit - 工业级Embedding/NLI /Reranking服务调用最佳实践
  • 在线支付系列(一):一笔订单触发的支付之旅
  • 大模型转型指南:小白程序员轻松入门,高薪收藏必备!
  • Literal
  • 在线支付系列(四):PayPal——一位海外买家的安全支付之旅
  • 星光护航 家校同行 多方联合点亮4·2世界孤独症日公益之光
  • 通过微软账号登录Windows远程桌面
  • AD转换