首页 / 资讯中心 / 文章详情

upskill如何让技能从“不及格“变“优秀“:评测-精炼闭环与失败归因机制实现原理深挖

upskill如何让技能从“不及格“变“优秀“:评测-精炼闭环与失败归因机制实现原理深挖 ★ FEATURED ARTICLE
【免费下载链接】upskillGenerate and evaluate agent skills for code agents like Claude Code, Open Code, OpenAI Codex项目地址https://gitcode.com/gh_mirrors/ups/upskill点击查看免费下载upskill 是一款面向 Claude Code、Open Code、OpenAI Codex 等编码 Agent 的技能skill生成与评测工具。它的核心竞争力在于一套自动运转的评测-精炼闭环先让教师模型写出技能文档再用确定性验证器打分、定位失败原因最后把失败案例喂回模型重写直到技能从不及格提升到优秀。本文带你看懂这套闭环的完整实现原理以及失败归因机制是如何工作的。一、先搞懂 upskill 的三个模型角色upskill 用教师-学生思路组织整个流程昂贵的教师模型如sonnet负责写技能和精炼便宜的学生模型如haiku负责在评测中实际执行任务。源码中预置了三类 Agent 角色定义分别对应三个环节角色卡片文件职责技能生成器skill_gen.md根据任务描述写出完整 SKILL.md测试生成器test_gen.md生成 3-5 个结构化测试用例评测器evaluator.md在给定技能下真实执行测试用例这三个卡片统一放在 agent_cards/ 目录模型槽位由 model_resolution.py 解析后注入保证谁写技能、谁写测试、谁来考试互不混淆。二、闭环第一步首稿技能与自动生成的考题运行upskill generate write good git commit messages后流程在 generate.py 中展开写技能把任务描述包装成 prompt由技能生成模型输出一份带 YAML frontmatter 的SKILL.md出考题generate_tests 用内置的TEST_GENERATION_PROMPT让测试生成模型产出 3-5 个测试用例每个用例包含input考题和expected期望输出的关键断言串。关键点测试生成要求输出为结构化 JSONTestCaseSuite并会统计期望断言少于 2 个的低质量用例并给出警告从源头保证考题可验证。三、闭环第二步基线对照把不及格量化不及格在 upskill 里不是一句主观评价而是一个可计算的指标。evaluate.py 中的 evaluate_skill 会对同一批测试跑两个阶段with-skill给 Agent 注入技能文档后执行baseline不注入技能裸跑一次。两组结果汇总进EvalResults核心判断逻辑在 models.pyskill_lift with_skill_success_rate - baseline_success_rate技能带来的成功率提升is_beneficial的判定规则是——成功率提升超过 5%或者成功率不降且 token 节省超过 20%才算技能有净收益。baseline ████████████░░░░░░░░ 60% with skill ████████████████████ 100% (40%)打分不靠大模型感觉靠确定性验证器测试是否通过由 verifiers.py 中的确定性验证器裁定而不是让模型自评。验证器共五种类型类型检查内容contains输出文本是否包含指定关键词file_exists工作区是否生成了预期文件file_contains预期文件是否包含指定内容command在工作区执行 shell 命令退出码为 0 即通过validator调用 validators/ 中注册的自定义校验函数所有断言逐条累计assertions_passed / assertions_total形成精确到每条用例的通过统计。这意味着一次评测的结果是可复现、可追溯的——每个测试的原始产物stdout、stderr、workspace都会落盘到runs/批次目录。四、失败归因机制分清没考好和没考过这是闭环中最精妙的部分。cli.py 在每轮评测后会做两层归因第一层区分基础设施故障 vs 技能本身失败。_raise_on_execution_errors 会扫描两个阶段的TestResult凡是error字段非空比如 fast-agent 进程退出码非零、产物缺失说明是执行环境问题直接抛出 CLI 错误终止流程而不是错误地归罪于技能写得不好。第二层为真正的技能失败提取病因。当确认是技能没教好之后get_failure_descriptions 会把每个失败用例压缩成一条结构化描述Input: 考题原文 | Error: 执行错误 如有 | Output: 实际输出前200字 如有 | Expected: 期望断言这条病历同时包含输入、实际行为、期望行为三个维度正是大模型做精准修正所需的最小完整上下文。五、闭环第三步精炼循环与高原检测提前刹车拿到失败描述后_run_generate_refinement_loop 驱动整个再考-再改循环每轮做四件事在当前模型上重新评测attempt N若is_beneficial为真 → 打印绿色 OK立即破环成功若两次相邻轮次成功率变化小于 5% → 判定Plateaued, stopping进入高原期改不动了提前止损否则调用 refine_skill把技能原文 最多 3 条失败描述交给生成模型要求输出完整的新版SKILL.md。迭代上限由配置项max_refine_attempts控制upskill.config.yaml 默认 2 轮避免无限烧 token。注意精炼只取failures[:3]条——失败样本少而精模型才能聚焦最典型的短板而不是被噪声带偏。最终成果落盘为 SKILL.md兼容 Claude Code 的技能规范同时skill_meta.json里记录了test_pass_rate等元数据方便后续upskill runs画趋势图对比基线与技能版表现。六、动手调优关键配置与命令速查想调整这套闭环的行为只需改几个地方max_refine_attempts: 2—— 精炼轮数上限难题可加到 3~4executor: local | jobs—— 评测执行后端jobs会把评测任务提交到 Hugging Face Jobs 远程执行见 hf_jobs.pymax_parallel: 5—— 单阶段并发评测数控制 API 压力skill_generation_model/eval_model/test_gen_model—— 三个模型槽位可独立配置实现教师写、学生考。常用命令组合# 生成 自动评测精炼教师模型写学生模型考 upskill generate write git commits --model sonnet --eval-model haiku # 对已有技能做基线对照评测 upskill eval ./skills/my-skill/ # 多模型、多轮 benchmark进入基准模式自动关闭基线对比 upskill eval ./skills/my-skill/ -m haiku -m sonnet --runs 5 # 查看历史评测曲线 upskill runs总结upskill 把技能好不好从玄学变成了工程问题基线对照量化收益、确定性验证器保证公正、失败归因区分环境问题与能力问题、精炼循环带高原检测避免无效迭代。四者串联成一个自收敛闭环让 Agent 技能从不及格稳定走向优秀。如果你想深入源码核心路径就是 evaluate.py、generate.py 和 cli.py 中的精炼循环配合 models.py 的EvalResults指标定义可以快速掌握全部实现细节。赞分享【免费下载链接】upskillGenerate and evaluate agent skills for code agents like Claude Code, Open Code, OpenAI Codex项目地址https://gitcode.com/gh_mirrors/ups/upskill点击查看免费下载相关推荐如何从 Claude Code 历史自动挖掘技能提案:upskill 脚本 propose-skills.sh 原理与实操完整指南如何从 Claude Code 历史自动挖掘技能提案:upskill 脚本 propose skills.sh 原理与实操完整指南 upskill 是一个为 C解锁UI-TARS桌面版开启AI驱动的智能自动化新时代解锁UI TARS桌面版开启AI驱动的智能自动化新时代 在当今快速发展的AI技术浪潮中开发者们面临着一个共同的挑战如何将先进的视觉语言模型与日常桌面操作无人工智能大模型AI Agent自主智能体多模态GUI自动化浏览器控制桌面应用mlx-community/GLM-5.2-4bit终极4位量化大模型在Mac上实现高效文本生成mlx community/GLM 5.2 4bit终极4位量化大模型在Mac上实现高效文本生成 想要在Mac设备上运行大型语言模型却担心性能问题 今基础模型大模型模型量化NLP文本生成创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站