[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"consumer-news-detail-864":3,"consumer-news-interaction-864":41,"consumer-news-related-864":44},{"detail":4,"item":36},{"card":5,"schemaVersion":23,"fields":24,"content":30},{"id":6,"kind":7,"targetType":8,"targetId":9,"subtype":7,"typeLabel":10,"title":11,"subtitle":12,"summary":13,"coverUrl":14,"badgeText":15,"href":16,"sourceName":12,"meta":17,"metrics":20,"tags":21,"resolved":22},"NEWS_ARTICLE:864","news","NEWS_ARTICLE",864,"资讯","阿里开源：skill-up，一款Agent Skill 评测工具！","博客园","2026 年走到现在，Agent Skill 已经成了 AI 领域的标配。 把个人经验沉淀成 SKILL.md，把团队最佳实践封装成可复用的技能包，这些都已经是很常规的操作了。最近在社区上看到有篇文章问了一个特别扎心的问题。 「一个 Skill 的『好坏』，到底由谁定义？评判它的标准又是什么？」 这","https:\u002F\u002Fimage.kjdaohang.com\u002Fimg\u002F20260831105634380.png","","\u002Fnews\u002F864",[18,19],"2026","人工智能",{},[19],true,"consumer-content-detail-v1",{"sourceName":12,"authorName":25,"categoryName":19,"summary":13,"description":13,"publishTime":26,"updateTime":27,"sourceUrl":28,"language":29},"狂师","2026-09-01T17:19","2026-09-02T20:37:50","https:\u002F\u002Fwww.cnblogs.com\u002Fjinjiangongzuoshi\u002Fp\u002F22794596","中文",{"format":31,"policy":32,"normalized":22,"html":33,"text":34,"wordCount":35,"hasBody":22},"HTML","NEWS_CONTENT_V1","\u003Cp>2026 年走到现在，Agent Skill 已经成了 AI 领域的标配。\u003C\u002Fp>\n\u003Cp>把个人经验沉淀成 SKILL.md，把团队最佳实践封装成可复用的技能包，这些都已经是很常规的操作了。最近在社区上看到有篇文章问了一个特别扎心的问题。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>「一个 Skill 的『好坏』，到底由谁定义？评判它的标准又是什么？」\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>这个问题我是真的感同身受。\u003C\u002Fp>\n\u003Cp>我自己陆陆续续沉淀了 上百 个自研的 Agent Skill，光AI测试领域的skill，都沉淀了好几十个，从需求拆解、用例生成，到接口解析、脚本生成、失败诊断、报告产出，流水线编排，串起了接口和 UI 自动化的完整流程。\u003C\u002Fp>\n\u003Cp>但每次迭代更新一个 Skill，我心里都在打鼓。\u003C\u002Fp>\n\u003Cp>改了几行提示词，行为有没有变？跑一遍 demo 没报错，就敢发出去吗？下个版本还会好吗？\u003C\u002Fp>\n\u003Cp>在测试领域，有一项铁规，绝不会允许一个没有用例、没有回归、没有质量门禁的系统直接上线。但到了 Skill 这件事上，几乎所有人都在裸奔。写完跑两下，感觉没问题，发布。\u003C\u002Fp>\n\u003Cp>原因也不复杂。Skill 的本质是提示词工程，SKILL.md 改一个字，行为就可能漂移。而官方的评测指南（agentskills.io 上的 evaluating-skills）虽然描述了正确的循环，写真实用例、带着和不带 Skill 各跑一遍、给输出评分、汇总结果、迭代改进，但整套流程全靠手工，没有工具化，坚持不了几轮。\u003C\u002Fp>\n\u003Cp>直到我看到了阿里开源的这个项目。\u003C\u002Fp>\n\u003Ch2>skill-up，一款Agent Skill 评测工具\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>skill-up\u003C\u002Fstrong>，阿里开源，用一句话来概括就是：The evaluation and evolution tool for Agent Skills，一款Agent Skill 的评测工具。Go 语言写的，开源两个月，更新的很活跃。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fimage.kjdaohang.com\u002Fimg\u002F20260831105634380.png?w=720&amp;quality=65&amp;strip=all\" alt=\"\">\u003C\u002Fp>\n\u003Cp>它干的事，用测试人的话说，就是\u003Cstrong>把软件测试那套方法论，完整地平移到了 Skill 上。\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>你可以用它验证 Skill 在真实 Agent Engine（如 Claude Code、Codex、Qoder CLI）中的功能 正确性，把失败转化为有针对性的修复，并在本地或 CI 中持续回归。\u003C\u002Fp>\n\u003Cp>先看它给一个 Skill 项目规定的标准结构。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>my-skill\u002F\n  SKILL.md                        # Skill 定义文档，被测对象\n  evals\u002F\n    eval.yaml                     # 评测入口配置（必须）\n    cases\u002F                        # 用例目录\n      basic-success.yaml          # 每个文件是一个用例\n      edge-case-null.yaml\n      regression-001.yaml\n    fixtures\u002F                     # 测试资源（可选）\n      repos\u002F                      # 仓库模板\n        sample-project\u002F\n      diffs\u002F                      # 补丁文件\n        null-check.patch\n      scripts\u002F                    # 评估脚本\n        check-output.sh\n      mcp\u002F                        # MCP 工具配置\n        github.json\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>眼熟吗？这就是一个标准的测试工程目录。\u003C\u002Fp>\n\u003Cp>\u003Ccode>cases\u002F\u003C\u002Fcode> 是你的测试用例集，\u003Ccode>fixtures\u002F\u003C\u002Fcode> 是你的测试数据和脚手架，\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>eval.yaml\u003C\u002Fcode>&#xa0;是评测的全局配置，定义了「在什么环境中、用什么 Engine、怎么评估」。\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>比如：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>schema_version: v1alpha1\n\nenvironment:\n  type: none\n\nengine:\n  name: claude_code\n  model:\n    provider: anthropic\n    name: claude-sonnet-4-8\n\ncases:\n  files:\n    - evals\u002Fcases\u002Fmy-test.yaml\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>工作原理\u003C\u002Fh3>\n\u003Cp>skill-up 将 Agent Skill 的\u003Cstrong>评测\u003C\u002Fstrong>与\u003Cstrong>演进\u003C\u002Fstrong>合为一个闭环：通过声明式 YAML 评测、隔离的多引擎运行、灵活的 Judge 和结构化报告，让质量可度量；再由 skill-upper 把失败转化为改进，自动修复或补充 eval 用例，并与你持续重跑和迭代。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fimage.kjdaohang.com\u002Fimg\u002F20260831105929888.png?w=720&amp;quality=65&amp;strip=all\" alt=\"\">\u003C\u002Fp>\n\u003Cp>同一套流程既可在本地运行，也可接入 CI；同时兼容 Anthropic&#xa0;\u003Ccode>evals.json\u003C\u002Fcode>&#xa0;导入，并输出 JSON、JUnit 和 HTML 报告。\u003C\u002Fp>\n\u003Ch3>三种「断言」，对应测试的三种校验方式\u003C\u002Fh3>\n\u003Cp>评测一个 Skill 的输出对不对，skill-up 支持三种 judge（判定器）。\u003C\u002Fp>\n\u003Ctable>\n \u003Cthead>\n  \u003Ctr>\n   \u003Cth>判定方式\u003C\u002Fth>\n   \u003Cth>说明\u003C\u002Fth>\n   \u003Cth>测试人对应的概念\u003C\u002Fth>\n  \u003C\u002Ftr>\n \u003C\u002Fthead>\n \u003Ctbody>\n  \u003Ctr>\n   \u003Ctd>rule_based\u003C\u002Ftd>\n   \u003Ctd>规则匹配，文件是否存在、内容是否包含关键字\u003C\u002Ftd>\n   \u003Ctd>精确断言\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>script\u003C\u002Ftd>\n   \u003Ctd>跑自定义脚本，校验产物结构、跑语法检查\u003C\u002Ftd>\n   \u003Ctd>脚本校验\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>agent_judge\u003C\u002Ftd>\n   \u003Ctd>用另一个模型当裁判，按标准给输出打分\u003C\u002Ftd>\n   \u003Ctd>LLM-as-a-Judge\u003C\u002Ftd>\n  \u003C\u002Ftr>\n \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>注意第三个。agent_judge 就是我们在大模型评测里反复讲的 LLM-as-a-Judge，\u003Cstrong>用模型评模型的输出\u003C\u002Fstrong>，这在 Agent 评测体系里已经是标配手段了，现在直接内置到了 Skill 测试工具里。\u003C\u002Fp>\n\u003Cp>在cases中，每个&#xa0;\u003Ccode>.yaml\u003C\u002Fcode>&#xa0;文件定义一个评测用例，包含「发什么 prompt」和「怎么验证结果」。\u003C\u002Fp>\n\u003Ch4>单轮对话\u003C\u002Fh4>\n\u003Cp>大多数场景使用单轮 prompt 即可：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>id: find-null-bug\ntitle: 应该识别出空指针 bug\ndescription: 验证 Skill 能在代码审查中发现 null 解引用问题\n\ninput:\n  prompt: |\n    Review the current diff and report findings.\n\ncontext:\n  repo_fixture: evals\u002Ffixtures\u002Frepos\u002Fnull-check-bug    # 加载仓库模板\n  git:\n    init: true\n    checkout: main\n    apply_diff: evals\u002Ffixtures\u002Fdiffs\u002Fnull-check.patch   # 应用补丁\n\nconstraints:\n  timeout_seconds: 180\n  max_turns: 8\n\nexpect:                           # 基本门槛检查\n  must_contain:\n    - \"null\"\n    - \"bug\"\n  must_not_contain:\n    - \"LGTM\"\n  exit_code: 0\n\njudge:                            # 质量评估\n  type: rule_based\n  success:\n    - output_contains:\n        all: [\"null\", \"bug\"]\n    - exit_code: 0\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>多轮对话\u003C\u002Fh4>\n\u003Cp>当评测需要多次顺序交互时（例如迭代优化、阶段门控工作流、澄清循环），使用&#xa0;\u003Ccode>input.turns\u003C\u002Fcode>&#xa0;代替&#xa0;\u003Ccode>input.prompt\u003C\u002Fcode>。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>input:\n  turns:\n    - role: user\n      content: \"用 Go 实现一个二分查找函数。\"\n      post_condition:\n        must_contain_all: [\"func\", \"binary\"]\n        on_fail: fail\n    - role: user\n      content: \"为刚才写的函数添加单元测试。\"\n      post_condition:\n        must_contain_any: [\"Test\", \"t.Run\", \"testing\"]\n        on_fail: fail\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>把 skill-up 的概念翻译成测试行话\u003C\u002Fh2>\n\u003Cp>看完文档我列了张翻译表，你会发现这门工具几乎没有学习成本。\u003C\u002Fp>\n\u003Ctable>\n \u003Cthead>\n  \u003Ctr>\n   \u003Cth>skill-up 里的概念\u003C\u002Fth>\n   \u003Cth>软件测试里的概念\u003C\u002Fth>\n  \u003C\u002Ftr>\n \u003C\u002Fthead>\n \u003Ctbody>\n  \u003Ctr>\n   \u003Ctd>eval case\u003C\u002Ftd>\n   \u003Ctd>测试用例\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>fixtures\u003C\u002Ftd>\n   \u003Ctd>测试夹具 \u002F 测试数据\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>judge\u003C\u002Ftd>\n   \u003Ctd>断言体系\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>--baseline\u003C\u002Ftd>\n   \u003Ctd>基线对比\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>regression case\u003C\u002Ftd>\n   \u003Ctd>回归用例\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>--iteration 多轮运行\u003C\u002Ftd>\n   \u003Ctd>多轮次测试\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>JUnit XML \u002F HTML 报告\u003C\u002Ftd>\n   \u003Ctd>测试报告\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>CI 支持\u003C\u002Ftd>\n   \u003Ctd>持续集成\u003C\u002Ftd>\n  \u003C\u002Ftr>\n \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Cstrong>这不是巧合。\u003C\u002Fstrong>Skill 评测面对的问题，非确定性输出怎么断言、怎么防止改动引入退化、怎么让质量评估可重复，就是我们在大模型测试里趟过的路。skill-up 只是把这些答案工程化成了 CLI。\u003C\u002Fp>\n\u003Cp>所以我想说一句可能有点武断的判断。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Agent Skill 的质量保障，天生就该是测试人的主场。\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>写 Skill 的人很多是开发和算法背景，他们擅长把功能做出来。但「怎么证明它是对的、怎么保证它下次还对」，这是测试工程师吃了几十年饭的本事。\u003C\u002Fp>\n\u003Ch2>快速上手\u003C\u002Fh2>\n\u003Ch3>方式一，装 skill-upper（推荐）\u003C\u002Fh3>\n\u003Cp>skill-up 仓库里自带了一个叫 \u003Cstrong>skill-upper\u003C\u002Fstrong> 的 Agent Skill，装完之后你用自然语言对话就能驱动整个评测流程。\u003C\u002Fp>\n\u003Cpre>\u003Ccode># Claude Code 全局安装\nnpx skills add https:\u002F\u002Fgithub.com\u002Falibaba\u002Fskill-up\u002Ftree\u002Fmain\u002Fskills\u002Fskill-upper -g -a claude-code -y\n\n# Codex 全局安装\nnpx skills add https:\u002F\u002Fgithub.com\u002Falibaba\u002Fskill-up\u002Ftree\u002Fmain\u002Fskills\u002Fskill-upper -g -a codex -y\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>安装这个 Skill 前不需要先安装&#xa0;\u003Ccode>skill-up\u003C\u002Fcode>。\u003Ccode>skill-upper\u003C\u002Fcode>&#xa0;在运行时会检查&#xa0;\u003Ccode>skill-up\u003C\u002Fcode>&#xa0;命令是否可用；如果缺失，它会引导 Agent 完成安装。\u003C\u002Fp>\n\u003Cp>装好后在 Claude Code 里打开你的 Skill 项目，直接说。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Use skill-upper to evaluate this Skill.\nRead SKILL.md, identify its most important behaviors, create realistic eval\ncases with appropriate judges, validate the configuration, and run skill-up.\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>它会自己读你的 SKILL.md、识别核心行为、生成评测用例、跑完评测、给你一份失败分析。\u003C\u002Fp>\n\u003Ch3>方式二，命令行直接装\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Falibaba\u002Fskill-up\u002Fmain\u002Finstall.sh | bash\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>常用的几个命令。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>skill-up run                          # 跑全部用例\nskill-up run --engine codex           # 指定引擎和模型\nskill-up run --baseline               # 开基线对比\nskill-up run --parallelism 4          # 控制并行数\nskill-up run --auto                   # 自动识别 Anthropic 的 evals.json\nskill-up report --format html         # 生成 HTML 报告\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>报告产物很齐全，grading.json、benchmark 对比、JUnit XML、HTML，直接可以挂进 CI 当质量门禁。\u003C\u002Fp>\n\u003Ch3>用 Skill 测 Skill\u003C\u002Fh3>\n\u003Cp>整个项目里我觉得最妙的是 skill-upper 这个套娃结构。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>skill-upper 本身就是一个 Agent Skill，它的职责是给别的 Skill 做测试。\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>完整的循环是这样的。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>对话生成评测用例\n  ↓\nskill-up 运行评测，产出结构化报告\n  ↓\nskill-upper 逐条读失败用例\n  ↓\n判断是 Skill 错了还是用例错了\n  ├─ Skill 错 → 修 SKILL.md 和配套文件\n  └─ 用例错 → 修 eval case 和判定器\n  ↓\n把修好的 bug 沉淀成回归用例\n  ↓\n再跑，再迭代，直到重要行为全部通过\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>官方管这个叫 Eval-to-Evolution Loop，评测到进化的循环。翻译过来就是\u003Cstrong>测试左移加上持续回归的 Agent 版本\u003C\u002Fstrong>。报告变成修复，修复变成回归用例，每一轮迭代都让 Skill 和它的评测集一起变强。\u003C\u002Fp>\n\u003Cp>这个思路跟我在《AI 测试实战系列》里反复强调的「bad case 回流」完全是一回事，只不过它把整个循环自动化了。\u003C\u002Fp>\n\u003Ch3>创建并运行第一组评测\u003C\u002Fh3>\n\u003Cp>在 AI Agent 中打开目标 Skill 项目。目标项目至少应包含：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>my-skill\u002F\n  SKILL.md\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>然后直接给 Agent 一个明确任务：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>使用 skill-upper 给这个 Skill 添加评测。\n添加这个评测用例：\n- 输入：写一个 hello world 的程序。\n- 评测：是否包含 hello 和 world 打印。\n\n然后运行 skill-up 完成校验和评测。\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Agent 应该会生成类似结构：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>my-skill\u002F\n  SKILL.md\n  evals\u002F\n    eval.yaml\n    cases\u002F\n      basic.yaml\nmy-skill-workspace\u002F\n  iteration-1\u002F\n    result.json\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>当&#xa0;\u003Ccode>evals\u002Feval.yaml\u003C\u002Fcode>&#xa0;位于包含&#xa0;\u003Ccode>SKILL.md\u003C\u002Fcode>&#xa0;的目录下时，\u003Ccode>skill-up\u003C\u002Fcode>&#xa0;会在运行时 自动安装这个本地 Skill，通常不需要在&#xa0;\u003Ccode>eval.yaml\u003C\u002Fcode>&#xa0;里手动写 Skill 路径。\u003C\u002Fp>\n\u003Ch3>诊断、修复并持续迭代\u003C\u002Fh3>\n\u003Cp>首次运行后，不必手工逐条解读报告，可以继续与 Agent 对话：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>使用 skill-upper 检查最近一次 skill-up 的评测结果。\n逐项诊断失败，修复 SKILL.md 或配套文件；如果评测覆盖不足，\n补充或改进 eval 用例，然后重新运行 skill-up。\n持续迭代直到评测通过，或说明仍然受阻的原因。\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>skill-upper 会根据 skill-up 的结构化结果驱动下一次修改。每轮迭代都会让 Skill 实现和 eval 评测集保持同步，使修复沉淀为回归保障，而不是一次性补丁。\u003C\u002Fp>\n\u003Ch2>我的几条建议\u003C\u002Fh2>\n\u003Cp>最后讲讲我对这事的判断，给三类同学三个具体的动作。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>1、有自己的 Skill 的，立刻建评测集\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>如果你像我一样囤了一堆自研 Skill，别再靠「跑一遍 demo 没报错」的玄学发布。给核心 Skill 配上 10-20 条真实场景的 eval case，接进 CI，每次改动自动回归。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2、团队里有 Skill 资产的，把质量门禁立起来\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>很多团队现在把内部规范、运维流程都封装成 Skill 分发。这些 Skill 一旦出错，影响的是整个团队的效率。谁来做质量把关？这事不该由写 Skill 的人自己说了算，\u003Cstrong>既当运动员又当裁判，是测试里的大忌。\u003C\u002Fstrong>测试同学主动把 Skill 评测体系搭起来，这就是新阵地。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3、还没写 Skill 的，评测思路照样值钱\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>就算你不写 Skill，skill-up 的整套评测设计，从用例怎么设计、非确定性输出怎么判定，到多引擎怎么对比、报告怎么结构化，就是一份现成的 Agent 评测方法论参考。做 AI 测试的同学把它拆开看一遍，比读十篇概念文章有用。\u003C\u002Fp>\n\u003Ch2>写在最后\u003C\u002Fh2>\n\u003Cp>我一直有个观点，AI 时代测试岗的价值不会消失，只会换地方。\u003C\u002Fp>\n\u003Cp>以前我们测函数、测接口、测页面，现在多了测模型、测 Agent、测 Skill。\u003Cstrong>被测对象一直在变，「怎么证明它是对的」这个问题永远在。\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>工具在变，方法论是通的。你在软件测试里攒下的每一分功力，在 Agent Skill 这个新战场上都作数。\u003C\u002Fp>\n\u003Cp>skill-up 的地址放这了。\u003C\u002Fp>\n\u003Cp>👉 GitHub，\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falibaba\u002Fskill-up\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">https:\u002F\u002Fgithub.com\u002Falibaba\u002Fskill-up\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>👉 用户手册（中文），\u003Ca href=\"https:\u002F\u002Falibaba.github.io\u002Fskill-up\u002Fzh\u002F\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">https:\u002F\u002Falibaba.github.io\u002Fskill-up\u002Fzh\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>觉得有用帮忙点个 Star，也欢迎转给团队里管 Skill 资产的同学。\u003C\u002Fp>\n\u003Chr>\n\u003Cp>我是狂师，公众号长期分享 AI 测试提效实战。最近我做了一个重大决定，将AI测试开发学习路线开源了：\u003Ccode>https:\u002F\u002Fgithub.com\u002Fzhoujinjian\u002Fai-testing-guide\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fimage.kjdaohang.com\u002Fimg\u002F20260831112008836.png?w=720&amp;quality=65&amp;strip=all\" alt=\"\">\u003C\u002Fp>\n\u003Cp>并且与开源项目同步配套上线了一款免费在线学习网站👉：\u003Ccode>https:\u002F\u002Fai.testfather.cn\u002F\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fimage.kjdaohang.com\u002Fimg\u002F20260831112219917.png?w=720&amp;quality=65&amp;strip=all\" alt=\"\">\u003C\u002Fp>\n\u003Cp>放心食用，觉得有用，就帮忙点个Star吧 ⭐\u003C\u002Fp>","2026 年走到现在，Agent Skill 已经成了 AI 领域的标配。 把个人经验沉淀成 SKILL.md，把团队最佳实践封装成可复用的技能包，这些都已经是很常规的操作了。最近在社区上看到有篇文章问了一个特别扎心的问题。 「一个 Skill 的『好坏』，到底由谁定义？评判它的标准又是什么？」 这个问题我是真的感同身受。 我自己陆陆续续沉淀了 上百 个自研的 Agent Skill，光AI测试领域的skill，都沉淀了好几十个，从需求拆解、用例生成，到接口解析、脚本生成、失败诊断、报告产出，流水线编排，串起了接口和 UI 自动化的完整流程。 但每次迭代更新一个 Skill，我心里都在打鼓。 改了几行提示词，行为有没有变？跑一遍 demo 没报错，就敢发出去吗？下个版本还会好吗？ 在测试领域，有一项铁规，绝不会允许一个没有用例、没有回归、没有质量门禁的系统直接上线。但到了 Skill 这件事上，几乎所有人都在裸奔。写完跑两下，感觉没问题，发布。 原因也不复杂。Skill 的本质是提示词工程，SKILL.md 改一个字，行为就可能漂移。而官方的评测指南（agentskills.io 上的 evaluating-skills）虽然描述了正确的循环，写真实用例、带着和不带 Skill 各跑一遍、给输出评分、汇总结果、迭代改进，但整套流程全靠手工，没有工具化，坚持不了几轮。 直到我看到了阿里开源的这个项目。 skill-up，一款Agent Skill 评测工具 skill-up，阿里开源，用一句话来概括就是：The evaluation and evolution tool for Agent Skills，一款Agent Skill 的评测工具。Go 语言写的，开源两个月，更新的很活跃。 它干的事，用测试人的话说，就是把软件测试那套方法论，完整地平移到了 Skill 上。 你可以用它验证 Skill 在真实 Agent Engine（如 Claude Code、Codex、Qoder CLI）中的功能 正确性，把失败转化为有针对性的修复，并在本地或 CI 中持续回归。 先看它给一个 Skill 项目规定的标准结构。 my-skill\u002F SKILL.md # Skill 定义文档，被测对象 evals\u002F eval.yaml # 评测入口配置（必须） cases\u002F # 用例目录 basic-success.yaml # 每个文件是一个用例 edge-case-null.yaml regression-001.yaml fixtures\u002F # 测试资源（可选） repos\u002F # 仓库模板 sample-project\u002F diffs\u002F # 补丁文件 null-check.patch scripts\u002F # 评估脚本 check-output.sh mcp\u002F # MCP 工具配置 github.json 眼熟吗？这就是一个标准的测试工程目录。 cases\u002F 是你的测试用例集，fixtures\u002F 是你的测试数据和脚手架， eval.yaml 是评测的全局配置，定义了「在什么环境中、用什么 Engine、怎么评估」。 比如： schema_version: v1alpha1 environment: type: none engine: name: claude_code model: provider: anthropic name: claude-sonnet-4-8 cases: files: - evals\u002Fcases\u002Fmy-test.yaml 工作原理 skill-up 将 Agent Skill 的评测与演进合为一个闭环：通过声明式 YAML 评测、隔离的多引擎运行、灵活的 Judge 和结构化报告，让质量可度量；再由 skill-upper 把失败转化为改进，自动修复或补充 eval 用例，并与你持续重跑和迭代。 同一套流程既可在本地运行，也可接入 CI；同时兼容 Anthropic evals.json 导入，并输出 JSON、JUnit 和 HTML 报告。 三种「断言」，对应测试的三种校验方式 评测一个 Skill 的输出对不对，skill-up 支持三种 judge（判定器）。 判定方式 说明 测试人对应的概念 rule_based 规则匹配，文件是否存在、内容是否包含关键字 精确断言 script 跑自定义脚本，校验产物结构、跑语法检查 脚本校验 agent_judge 用另一个模型当裁判，按标准给输出打分 LLM-as-a-Judge 注意第三个。agent_judge 就是我们在大模型评测里反复讲的 LLM-as-a-Judge，用模型评模型的输出，这在 Agent 评测体系里已经是标配手段了，现在直接内置到了 Skill 测试工具里。 在cases中，每个 .yaml 文件定义一个评测用例，包含「发什么 prompt」和「怎么验证结果」。 单轮对话 大多数场景使用单轮 prompt 即可： id: find-null-bug title: 应该识别出空指针 bug description: 验证 Skill 能在代码审查中发现 null 解引用问题 input: prompt: | Review the current diff and report findings. context: repo_fixture: evals\u002Ffixtures\u002Frepos\u002Fnull-check-bug # 加载仓库模板 git: init: true checkout: main apply_diff: evals\u002Ffixtures\u002Fdiffs\u002Fnull-check.patch # 应用补丁 constraints: timeout_seconds: 180 max_turns: 8 expect: # 基本门槛检查 must_contain: - \"null\" - \"bug\" must_not_contain: - \"LGTM\" exit_code: 0 judge: # 质量评估 type: rule_based success: - output_contains: all: [\"null\", \"bug\"] - exit_code: 0 多轮对话 当评测需要多次顺序交互时（例如迭代优化、阶段门控工作流、澄清循环），使用 input.turns 代替 input.prompt。 input: turns: - role: user content: \"用 Go 实现一个二分查找函数。\" post_condition: must_contain_all: [\"func\", \"binary\"] on_fail: fail - role: user content: \"为刚才写的函数添加单元测试。\" post_condition: must_contain_any: [\"Test\", \"t.Run\", \"testing\"] on_fail: fail 把 skill-up 的概念翻译成测试行话 看完文档我列了张翻译表，你会发现这门工具几乎没有学习成本。 skill-up 里的概念 软件测试里的概念 eval case 测试用例 fixtures 测试夹具 \u002F 测试数据 judge 断言体系 --baseline 基线对比 regression case 回归用例 --iteration 多轮运行 多轮次测试 JUnit XML \u002F HTML 报告 测试报告 CI 支持 持续集成 这不是巧合。Skill 评测面对的问题，非确定性输出怎么断言、怎么防止改动引入退化、怎么让质量评估可重复，就是我们在大模型测试里趟过的路。skill-up 只是把这些答案工程化成了 CLI。 所以我想说一句可能有点武断的判断。 Agent Skill 的质量保障，天生就该是测试人的主场。 写 Skill 的人很多是开发和算法背景，他们擅长把功能做出来。但「怎么证明它是对的、怎么保证它下次还对」，这是测试工程师吃了几十年饭的本事。 快速上手 方式一，装 skill-upper（推荐） skill-up 仓库里自带了一个叫 skill-upper 的 Agent Skill，装完之后你用自然语言对话就能驱动整个评测流程。 # Claude Code 全局安装 npx skills add https:\u002F\u002Fgithub.com\u002Falibaba\u002Fskill-up\u002Ftree\u002Fmain\u002Fskills\u002Fskill-upper -g -a claude-code -y # Codex 全局安装 npx skills add https:\u002F\u002Fgithub.com\u002Falibaba\u002Fskill-up\u002Ftree\u002Fmain\u002Fskills\u002Fskill-upper -g -a codex -y 安装这个 Skill 前不需要先安装 skill-up。skill-upper 在运行时会检查 skill-up 命令是否可用；如果缺失，它会引导 Agent 完成安装。 装好后在 Claude Code 里打开你的 Skill 项目，直接说。 Use skill-upper to evaluate this Skill. Read SKILL.md, identify its most important behaviors, create realistic eval cases with appropriate judges, validate the configuration, and run skill-up. 它会自己读你的 SKILL.md、识别核心行为、生成评测用例、跑完评测、给你一份失败分析。 方式二，命令行直接装 curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Falibaba\u002Fskill-up\u002Fmain\u002Finstall.sh | bash 常用的几个命令。 skill-up run # 跑全部用例 skill-up run --engine codex # 指定引擎和模型 skill-up run --baseline # 开基线对比 skill-up run --parallelism 4 # 控制并行数 skill-up run --auto # 自动识别 Anthropic 的 evals.json skill-up report --format html # 生成 HTML 报告 报告产物很齐全，grading.json、benchmark 对比、JUnit XML、HTML，直接可以挂进 CI 当质量门禁。 用 Skill 测 Skill 整个项目里我觉得最妙的是 skill-upper 这个套娃结构。 skill-upper 本身就是一个 Agent Skill，它的职责是给别的 Skill 做测试。 完整的循环是这样的。 对话生成评测用例 ↓ skill-up 运行评测，产出结构化报告 ↓ skill-upper 逐条读失败用例 ↓ 判断是 Skill 错了还是用例错了 ├─ Skill 错 → 修 SKILL.md 和配套文件 └─ 用例错 → 修 eval case 和判定器 ↓ 把修好的 bug 沉淀成回归用例 ↓ 再跑，再迭代，直到重要行为全部通过 官方管这个叫 Eval-to-Evolution Loop，评测到进化的循环。翻译过来就是测试左移加上持续回归的 Agent 版本。报告变成修复，修复变成回归用例，每一轮迭代都让 Skill 和它的评测集一起变强。 这个思路跟我在《AI 测试实战系列》里反复强调的「bad case 回流」完全是一回事，只不过它把整个循环自动化了。 创建并运行第一组评测 在 AI Agent 中打开目标 Skill 项目。目标项目至少应包含： my-skill\u002F SKILL.md 然后直接给 Agent 一个明确任务： 使用 skill-upper 给这个 Skill 添加评测。 添加这个评测用例： - 输入：写一个 hello world 的程序。 - 评测：是否包含 hello 和 world 打印。 然后运行 skill-up 完成校验和评测。 Agent 应该会生成类似结构： my-skill\u002F SKILL.md evals\u002F eval.yaml cases\u002F basic.yaml my-skill-workspace\u002F iteration-1\u002F result.json 当 evals\u002Feval.yaml 位于包含 SKILL.md 的目录下时，skill-up 会在运行时 自动安装这个本地 Skill，通常不需要在 eval.yaml 里手动写 Skill 路径。 诊断、修复并持续迭代 首次运行后，不必手工逐条解读报告，可以继续与 Agent 对话： 使用 skill-upper 检查最近一次 skill-up 的评测结果。 逐项诊断失败，修复 SKILL.md 或配套文件；如果评测覆盖不足， 补充或改进 eval 用例，然后重新运行 skill-up。 持续迭代直到评测通过，或说明仍然受阻的原因。 skill-upper 会根据 skill-up 的结构化结果驱动下一次修改。每轮迭代都会让 Skill 实现和 eval 评测集保持同步，使修复沉淀为回归保障，而不是一次性补丁。 我的几条建议 最后讲讲我对这事的判断，给三类同学三个具体的动作。 1、有自己的 Skill 的，立刻建评测集 如果你像我一样囤了一堆自研 Skill，别再靠「跑一遍 demo 没报错」的玄学发布。给核心 Skill 配上 10-20 条真实场景的 eval case，接进 CI，每次改动自动回归。 2、团队里有 Skill 资产的，把质量门禁立起来 很多团队现在把内部规范、运维流程都封装成 Skill 分发。这些 Skill 一旦出错，影响的是整个团队的效率。谁来做质量把关？这事不该由写 Skill 的人自己说了算，既当运动员又当裁判，是测试里的大忌。测试同学主动把 Skill 评测体系搭起来，这就是新阵地。 3、还没写 Skill 的，评测思路照样值钱 就算你不写 Skill，skill-up 的整套评测设计，从用例怎么设计、非确定性输出怎么判定，到多引擎怎么对比、报告怎么结构化，就是一份现成的 Agent 评测方法论参考。做 AI 测试的同学把它拆开看一遍，比读十篇概念文章有用。 写在最后 我一直有个观点，AI 时代测试岗的价值不会消失，只会换地方。 以前我们测函数、测接口、测页面，现在多了测模型、测 Agent、测 Skill。被测对象一直在变，「怎么证明它是对的」这个问题永远在。 工具在变，方法论是通的。你在软件测试里攒下的每一分功力，在 Agent Skill 这个新战场上都作数。 skill-up 的地址放这了。 👉 GitHub，https:\u002F\u002Fgithub.com\u002Falibaba\u002Fskill-up 👉 用户手册（中文），https:\u002F\u002Falibaba.github.io\u002Fskill-up\u002Fzh\u002F 觉得有用帮忙点个 Star，也欢迎转给团队里管 Skill 资产的同学。 我是狂师，公众号长期分享 AI 测试提效实战。最近我做了一个重大决定，将AI测试开发学习路线开源了：https:\u002F\u002Fgithub.com\u002Fzhoujinjian\u002Fai-testing-guide 并且与开源项目同步配套上线了一款免费在线学习网站👉：https:\u002F\u002Fai.testfather.cn\u002F 放心食用，觉得有用，就帮忙点个Star吧 ⭐",5852,{"id":6,"kind":7,"title":11,"summary":13,"image":14,"href":16,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":40},"2026 · 人工智能","#2563eb","16 \u002F 10",[19],{"targetType":8,"targetId":9,"likedByMe":42,"likeCount":43,"commentCount":43,"contentLikeCount":43,"contentCommentCount":43,"sourceLikeCount":43,"sourceCommentCount":43},false,0,[45,52,59,66,72,78,85,92],{"id":46,"kind":7,"title":47,"summary":48,"image":49,"href":50,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":51},"NEWS_ARTICLE:827","MHS 三部曲（下）：谁允许 AI 行动？——权力、合规与中国厂商的答卷","我们总在等待一个像 ChatGPT 那样的机器人时刻。但具身智能真正的拐点，也许先发生在更不起眼的地方：一台陌生设备，第一次能把自己的能力、状态和边界完整告诉 AI；一个 Agent，第一次能把试出来的经验固化成可验证、可复用的机器技能。","https:\u002F\u002Fimg2024.cnblogs.com\u002Fblog\u002F510\u002F202608\u002F510-20260830153745229-1536981088.jpg","\u002Fnews\u002F827",[19],{"id":53,"kind":7,"title":54,"summary":55,"image":56,"href":57,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":58},"NEWS_ARTICLE:835","体验向量数据库 qdrant","作者:张富春(ahfuzhang)，转载时请注明作者和引用链接，谢谢！ cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 背景 为了早点搞懂公司的百万行 C# 的祖传代码，我想在缺乏文档、缺乏帮手的情况下，先建立一个 企业知识库 来快速帮我理清头绪。 一开始，我是打算以 weav","https:\u002F\u002Fimg2022.cnblogs.com\u002Fblog\u002F1457949\u002F202202\u002F1457949-20220216153819145-1193738712.png","\u002Fnews\u002F835",[19],{"id":60,"kind":7,"title":61,"summary":62,"image":63,"href":64,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":65},"NEWS_ARTICLE:853","为什么团队用了 AI 之后，测试质量反而下降了！","一、AI 提效之后，往往先崩的是质量 前两天刷到一篇同行的复盘。 「AI 提效半年后，我们的测试团队规模反而更大了」 用AI 提效半年，人数不降，反而变更多了？ 这位老哥是认真做过团队实践的，观察写得很扎实。提测质量肉眼可见地下滑，需求做漏了，单位时间里测试捞出来的 bug 反而变多，最后测试团队加","https:\u002F\u002Fimage.kjdaohang.com\u002Fimg\u002F20260831223910845.png","\u002Fnews\u002F853",[19],{"id":67,"kind":7,"title":68,"summary":69,"image":15,"href":70,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":71},"NEWS_ARTICLE:856","AI生产力：从效率到工作流重构","当初学专业的笔记还在吗？相信大部分人都没保留，而能力在不断积累和更新，关注和思考的角度在变化，在AI蒸馏我们的同时。也可以用AI的能力，去蒸馏一下魔幻的职场。","\u002Fnews\u002F856",[19],{"id":73,"kind":7,"title":74,"summary":75,"image":15,"href":76,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":77},"NEWS_ARTICLE:861","个体看衰AI，企业加速转型","信息化数字化智能化，十年前的说法在逐步兑现。最后回到一个灵魂拷问：当业务运营更加高效。组织间的协作更加流畅，企业究竟想去拓宽市场，还是手起刀落降低成本？","\u002Fnews\u002F861",[19],{"id":79,"kind":7,"title":80,"summary":81,"image":82,"href":83,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":84},"NEWS_ARTICLE:868","DeepSeekHarness-MCP-Manager 一款DSH超好用的MCP管理跟Skills管理插件","链接：https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager 设置 → MCP 管理&#160;管理项目级与全局&#160;cordis.patch.yml&#160;中的&#160;@deepseek-ai\u002Fdsh-mcp-client&#160;","https:\u002F\u002Fcamo.githubusercontent.com\u002F5d48b15e4e45c30746d4410bd5dd51552b20ed0294e6703d220931a8377c3ff8\u002F68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f40787878797a2f6473682d6d63702d6d616e616765723f6c6f676f3d6e706d26636f6c6f723d636233383337","\u002Fnews\u002F868",[19],{"id":86,"kind":7,"title":87,"summary":88,"image":89,"href":90,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":91},"NEWS_ARTICLE:871","\"AgentOPSD: Recursive Self-Distillation for Agentic Reinforcement Learning\" 论文笔记","清华、浙大与美团 LongCat 团队合作的 AgentOPSD，目前挂在 Arxiv 26.08 上，做的是长程多轮 Agentic RL 里的回合级信用分配。可验证奖励的 RL 只在整条轨迹结束时给一个稀疏的 0\u002F1 信号，GRPO 这类方法把轨迹级优势均匀广播到每个 token，无法把成败真正","https:\u002F\u002Fimg2024.cnblogs.com\u002Fblog\u002F3614753\u002F202609\u002F3614753-20260901141154042-339903878.png","\u002Fnews\u002F871",[19],{"id":93,"kind":7,"title":94,"summary":95,"image":49,"href":96,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":97},"NEWS_ARTICLE:880","MHS 三部曲（中）：8 小时集成、六种被拦截的故障，和一次教科书级的翻车","四个案例合起来说明三件事：接入与编排成本可以数量级下降（CMU\u002FJanelia），闭环试错和跨设备补救是真的（CMU\u002FTetsuwan），但物理直觉仍是硬伤（Genentech），安全必须长在模型之外。","\u002Fnews\u002F880",[19]]