agents24 PluginEval `/eval` 命令实战:用静态分析与 LLM 评审双引擎评估 Skill 质量并计算综合评分

发布时间:2026/11/4 22:30:22

agents24 PluginEval `/eval` 命令实战:用静态分析与 LLM 评审双引擎评估 Skill 质量并计算综合评分 agents24 PluginEval/eval命令实战用静态分析与 LLM 评审双引擎评估 Skill 质量并计算综合评分【免费下载链接】agentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity项目地址: https://gitcode.com/GitHub_Trending/agents24/agents本文基于 plugins/plugin-eval/commands/eval.md 展开讲解 agents24多 Harness Agent 插件市场中 PluginEval 评测框架的/eval斜杠命令如何对一个插件或 Skill 目录跑完「静态分析Layer 1 LLM JudgeLayer 2」两层评估并按逐维度混合权重合成 0–100 的综合分。读完你可以掌握/eval path与/eval path --depth quick两种用法、四层评分的计算公式含静态:评审权重与 10 个维度权重、反模式惩罚与徽章判定逻辑并了解这些规则在 EvalEngine 源码中的具体实现。/eval 是什么PluginEval 的交互式评分入口PluginEval 是 agents24 仓库中用于回答「这个插件或 Skill 质量如何」的三层质量评估框架静态分析、LLM Judge、Monte Carlo 模拟完整参考文档见 docs/plugin-eval.md插件级说明见 plugins/plugin-eval/README.md。/eval是该框架面向 Claude Code 用户的斜杠命令其 frontmatter 定义如下description: Evaluate a plugin or skill for quality argument-hint: path [--depth quick|standard]即它接收一个插件/Skill 目录路径可选--depth参数在quick与standard两档之间切换/eval path — evaluate at standard depth (static LLM judge) /eval path --depth quick — static analysis only (instant)standard默认跑完整两层——Layer 1 静态分析 Layer 2 LLM Judge约 30 秒4 次 LLM 调用quick只做确定性静态分析瞬间返回无 LLM 调用、零成本适合编写 Skill 时的快速反馈。对应的 CLI 底座是plugin-eval score命令由 Typer 实现见 plugins/plugin-eval/src/plugin_eval/cli.py因此/eval的每一步都可以用命令行手动复现。流程 Step 1运行 Layer 1 静态分析无论选择哪种深度第一步都是执行静态分析cd ${CLAUDE_PLUGIN_ROOT} uv run plugin-eval score {argument} --depth quick --output json其中${CLAUDE_PLUGIN_ROOT}是 Claude Code 插件根目录环境变量{argument}即/eval命令传入的path。执行后需要解析 JSON 输出中的三个关键字段composite.score— 综合评分composite.dimensions— 10 个维度的逐项得分layers[0].anti_patterns— 检测到的反模式列表每多一个反模式综合分会被乘性惩罚。静态层本身是确定性的 2 秒完成。从源码看静态分析器 layers/static.py 对解析后的 SKILL.md 运行一组结构性子检查frontmatter 质量、编排接线、渐进式披露、结构完整性、Token 效率、生态一致性并附带跨 Harness 可移植性检查与反模式检测。一个值得注意的实现细节在 CLI 侧cli.py 中的_detect_target会先探测目标类型——目录含SKILL.md判为 skill含.claude-plugin/判为 plugin。对 plugin 级目录评测只会跑静态层Judge/Monte Carlo 需要逐 Skill 评估且无论请求什么深度置信标签都会降级为 Estimated见 cli.py#L56-L66 的警告输出。所以要拿到完整的 standard 评估路径应指向具体的 Skill 目录。流程 Step 2Layer 2 LLM Judge非 quick 深度时若未指定--depth quick命令会派发eval-judge子 Agent 做语义评审。调度提示词固定为Evaluate the skill at: {resolved_path} Read the SKILL.md file and any references/ files, then score it on all 4 dimensions. Return your scores as JSON.eval-judge Agent 使用 Sonnet 模型、仅挂载Read, Grep, Glob工具读入 SKILL.md 与references/文件后用锚定式评分细则anchored rubrics全部锚点见 references/rubrics.md对 4 个维度打分返回结构如下{ triggering_accuracy: {score: 0.0, reasoning: ...}, orchestration_fitness: {score: 0.0, reasoning: ...}, output_quality: {score: 0.0, reasoning: ...}, scope_calibration: {score: 0.0, reasoning: ...} }四个维度的评审方法各不相同摘自 eval-judge.md维度评审方法triggering_accuracy生成 10 个心理测试 prompt5 个应触发、5 个不应触发按 precision/recall 计算 F1orchestration_fitness按 5 档锚定细则评估 Skill 是否为「纯 Worker」而非编排者output_quality模拟 3 个真实任务评估指令能否引导产出正确、完整的输出scope_calibration按 5 档锚定细则评估范围是否恰当过薄/过窄/略偏/恰当/完美校准每个维度得分都在 0.0–1.0 之间。Judge 层是非确定性的这也是为什么后续要引入权重混合而非单靠某一层。流程 Step 3合成最终分数权重混合的核心这是/eval最关键的计算步骤规则与 EvalEngine 源码 完全一致。quick 深度直接采用 Layer 1 结果跳过混合。standard 深度对每个维度按「静态:评审」的混合权重Static:Judge融合两层得分维度Static : Judgetriggering_accuracy0.375 : 0.625orchestration_fitness0.125 : 0.875output_quality0.0 : 1.0仅 Judgescope_calibration0.353 : 0.647progressive_disclosure1.0 : 0.0仅静态token_efficiency0.8 : 0.2robustness0.0 : 1.0仅 Judgestructural_completeness0.9 : 0.1code_template_quality0.3 : 0.7ecosystem_coherence0.85 : 0.15然后按维度权重加权求和维度权重triggering0.25orchestration0.20output0.15scope0.12disclosure0.10efficiency0.06robustness0.05structural0.03code_quality0.02coherence0.02最终公式Final sum(weight * blended_score) * 100 * anti_pattern_penalty其中anti_pattern_penalty为反模式乘性惩罚公式是max(0.5, 1.0 − 0.05 × 反模式数量)——每多一个反模式扣分 5%最低打到 50%。源码印证上表并非独立常量而是 engine.py 中LAYER_BLENDS在 standard 深度下的归一化结果。源码里全量三层权重例如triggering_accuracy为static 0.15 / judge 0.25 / monte_carlo 0.60当 deep 层缺席时_blend_layer_scores 会把权重重新归一化到实际存在的层0.15/(0.150.25)0.375、0.25/0.400.625正好对上命令文档中的 0.375:0.625。同样地scope_calibration的0.30/(0.300.55)0.353、0.55/0.850.647也是如此推导。这个归一化机制保证了跳过 Monte Carlo 层不会人为压低分数——对每个维度只除以「可用层权重之和」。维度权重常量DIMENSION_WEIGHTS合计恰为 1.0综合分在 _assemble_composite 中计算并夹取到[0, 100]未被任何层覆盖的维度得分为负哨兵值 -1.0不参与加权、其权重被重归一。流程 Step 4呈现结果与徽章判定/eval最终按如下模板汇报与 CLI 的 Markdown 报告格式对齐## Overall Score: {score}/100 {badge} ## Layer Breakdown | Layer | Score | |-------|-------| ## Dimension Scores | Dimension | Weight | Score | Grade | |-----------|--------|-------|-------| ## Anti-Patterns Detected ## Recommendations报告中的 {badge} 按以下阈值授予徽章分数线Platinum≥ 90Gold≥ 80Silver≥ 70Bronze≥ 60源码中该逻辑位于 models.py 的Badge.from_scores依次检查 (90, 1600)、(80, 1500)、(70, 1400)、(60, 1300) 四档分数/Elo 阈值当 Elo 数据不可用时如/eval的 standard 深度未计算 Elo只按综合分判定——这正是命令文档只列出分数阈值的原因。每个维度分数还会经 _score_to_grade 换算为 A…F 的字母等级97 为 A93 为 A90 为 A-80–82 为 B-60–62 为 D-低于 60 为 F。建议Recommendations部分应聚焦最低分维度和已检出的反模式方法论 Skill evaluation-methodology 还给出了按权重排序的改分优先级表——权重 0.25 的triggering_accuracy每小时修复带来的分数提升超过所有低权重维度之和。深度档位与置信标签/eval只暴露 quick/standard 两档但底层 Depth 枚举 定义了四档理解全貌有助于选择评测方式深度运行层置信标签耗时成本quick静态Estimated 2s免费standard静态 JudgeAssessed~30s4 次 LLM 调用deep静态 Judge Monte Carlo (50 次)Certified~3 min~54 次调用thorough静态 Judge Monte Carlo (100 次)Certified~6 min~104 次调用从 engine.py 的 evaluate_skill 可以看到调度顺序Layer 1 永远运行standard及以上深度加载 JudgeAnalyzerdeep/thorough再加载 MonteCarloAnalyzer且 Judge 与 Monte Carlo 在同一个asyncio.run中并发执行。完整的三层认证流程由/certify命令commands/certify.md承担。相关命令与 CLI 对照CLIClaude Code 命令说明plugin-eval score/eval评分本文主角支持--depth/--output/--thresholdplugin-eval certify/certify三层完整认证并发徽章plugin-eval compare/compare两个 Skill 的逐维度对比plugin-eval init—构建 Elo 排名语料库score命令的常用选项默认值取自 cli.py 与 docs/plugin-eval.md选项默认说明--depthstandardquick/standard/deep/thorough--outputmarkdownjson/markdown/html--verbosefalse详细输出--concurrency4最大并发 LLM 调用数1–20--threshold无最低分门槛低于则退出码为 1--threshold配合退出码cli.py#L91-L96 中composite.score threshold时return 1可直接作为 CI 质量门禁例如uv run plugin-eval score path/to/skill --depth quick --output json --threshold 70。运行前提与局限依赖管理使用 uv在 plugins/plugin-eval 下执行uv sync安装静态层核心依赖standard 深度依赖claude-agent-sdkuv sync --extra llmJudge 层若不可用或某维度无法测量CLI 会在 stderr 打印警告综合分由剩余层计算cli.py#L80-L89置信度相应下降plugin 目录级评估仅静态层可用要跑 Judge 请把路径指向单个 Skill 目录行为可回归验证/eval涉及的权重、徽章、CLI 行为在 tests/ 中有对应覆盖如 test_engine.py、test_cli.py、test_static.py可执行uv run pytest复验。小结/eval把「写 SKILL.md 的人」和「评测框架」之间的沟通压缩成一条命令静态层保证结构合规与反模式清零Judge 层用锚定细则补足语义判断而 standard 深度下 0.375:0.625、0.353:0.647 这类混合权重正是全量三层权重按可用层归一化的产物——这一机制由 engine.py 中的LAYER_BLENDS与_blend_layer_scores实现保证了无论跑 quick 还是 standard分数口径一致、可比。【免费下载链接】agentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity项目地址: https://gitcode.com/GitHub_Trending/agents24/agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/5 1:38:52

openARTmini多任务协同:数字识别与智能寻迹融合实践

简介:本资源是面向电子设计竞赛(电赛)参赛者与嵌入式AI初学者的OpenARTmini数字识别与寻迹融合实战方案,聚焦视觉感知与自主导航协同实现,解决小车类智能体在复杂光照、多角度条件下的高精度数字识别(98.7%…

2026/11/5 4:51:40

CANN/ge LLM-DataDist C++专题

专题 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好…

2026/11/5 13:25:11

基于ADS122U04IPWR与STM32F427ZI的工业测温方案设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 13:20:10

Dubbo服务下线实时告警:基于ZooKeeper Watch的轻量级监控方案

简介:这是一套面向Java分布式系统运维与开发人员的Dubbo服务高可用监控解决方案,聚焦于Provider异常下线的实时感知与告警响应。资源通过Zookeeper监听机制实现服务状态变更捕获,结合邮件通知模块,在不侵入原有Dubbo代码的前提下&…

2026/11/5 13:20:10

SSM超市管理系统源码解析:从分层架构到本地部署与业务修改

简介:这份资源是面向高校计算机专业学生与Java初学者的一套SSM框架课程设计完整项目,围绕超市管理场景,帮助读者完成从框架整合到业务模块落地的实战练习,适合作为毕业设计或课程作业的参考方案。压缩包共792个文件,约…

2026/11/5 13:20:10

SSM超市管理系统实战:从课设跑通到二次开发全解析

简介:这份资源是面向高校计算机相关专业学生与Java入门开发者的SSM课程设计参考项目,围绕超市管理场景,解决商品、库存、销售等业务模块从设计到落地的实践需求,适合作为课程作业、毕业设计原型或SSM框架练手案例。压缩包共792个文…

2026/11/5 13:15:07

PIPE4.3.0安装排错:JDK版本、JAVA_HOME与Petri验证

简介:PIPE 4.3.0 是一款基于 Petri 网的图形化建模与仿真软件,面向软件工程、系统分析与教学实验场景,帮助读者完成并发、同步与竞争等系统行为的建模、动态仿真及性质分析。压缩包共 2391 个文件,约 28.43MB,包含大量…

2026/11/5 13:15:07

用栈实现队列:双栈结构与工程实践

1. 栈与队列的相爱相杀第一次看到这个题目时,我正坐在星巴克啃着牛角包。用栈实现队列?这就像用筷子喝汤——不是不行,但总觉得哪里怪怪的。栈和队列这对数据结构里的欢喜冤家,一个后进先出(LIFO)&#xff…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑