Skill 系列(06):Skill 工程化与治理——路由准确率 38%、压缩节省 76%

从个人用到团队共享

Skill 数量少时不需要治理。3 个 Skill 靠记忆就够了。当企业里有 30-50 个 Skill 时,三个问题会同时出现:

  1. 发现问题:给定用户输入,调哪个 Skill?
  2. 成本问题:哪些 Skill 最贵,钱花在哪里?
  3. 质量漂移:某个 Skill 改了 Prompt,怎么保证没有退化?

本文用真实测量回答这三个问题。


Demo 设计

6 个 Skill 的注册表:

Skill ID 用途 领域
rnd-technical-writer 技术博客写作 content
competitor-analyzer 竞品分析 strategy
bug-root-cause Bug 诊断与根因分析 engineering
meeting-summarizer 会议纪要 + 行动项 productivity
sql-query-builder 自然语言转 SQL engineering
marketing-copywriter 营销文案 marketing

三个实验:

  1. Embedding 路由:用描述向量做 cosine 相似度,测 8 条查询的路由准确率
  2. Prompt 压缩:冗长版(418 tokens)vs 精简版(99 tokens),LLM-as-Judge 打分
  3. 成本报告:4 个 Skill 真实调用,计算 cost/call 和月度投影

运行结果

Part 1:Embedding 路由

sql 复制代码
  Query                                     Routed to              Score  OK?
  ───────────────────────────────────────── ─────────────────────  ─────  ───
  Write a deep-dive article about Kubern..  rnd-technical-writer   0.448  ✓
  我们的主要竞争对手 Notion 最近有什么动态             competitor-analyzer    0.311  ✓
  Traceback: AttributeError: 'NoneType'..  sql-query-builder      0.473  ✗
  帮我整理一下今天产品评审会的要点和后续任务                meeting-summarizer     0.463  ✓
  Get all orders placed in the last 7 d..  meeting-summarizer     0.586  ✗
  Write a product description for our ..   rnd-technical-writer   0.610  ✗
  分析一下 Python 3.12 的性能改进                   sql-query-builder      0.401  ✗
  List all users who haven't logged in ..  bug-root-cause         0.493  ✗

  Routing accuracy: 3/8 = 38%

Part 2:Prompt 压缩

yaml 复制代码
  Verbose: ~418 tokens  |  Compressed: ~99 tokens  |  Reduction: 76%

  Task: Python context managers...
    Verbose    → 4.00/5  |  Compressed → 4.00/5  |  Delta: +0.00
  Task: Redis pub/sub messaging...
    Verbose    → 4.00/5  |  Compressed → 3.00/5  |  Delta: -1.00

  Avg quality delta: -0.50

Part 3:成本报告

bash 复制代码
  Skill                     avg_in   avg_out   $/100calls  p50
  ──────────────────────── ──────── ──────── ──────────── ─────
  rnd-technical-writer       116t    1248t     $0.1365      48.8s
  competitor-analyzer         37t     586t     $0.0623      27.9s
  sql-query-builder           46t     589t     $0.0635      32.6s
  meeting-summarizer          53t      99t     $0.0152       5.1s

  Monthly projection (rnd×200 + analyzer×50 + meeting×300 + sql×500):
    rnd-technical-writer   200 calls  →  $0.27
    competitor-analyzer     50 calls  →  $0.03
    meeting-summarizer     300 calls  →  $0.05
    sql-query-builder      500 calls  →  $0.32
    ─────────────────────────────────────────
    Total                             →  $0.67/mo

三个发现

发现 1:Embedding 路由准确率 38%,Skill 描述太相似

5 条路由出错,其中最典型的两个:

错误 1"Get all orders placed in the last 7 days"meeting-summarizer(应该是 sql-query-builder)

meeting-summarizer 的描述是"Summarize meeting transcripts and extract action items",sql-query-builder 的描述是"Generate SQL queries from natural language descriptions"。这两段描述在 embedding 空间里碰巧离"订单查询"的距离相近------meeting-summarizer 的置信度 0.586,比 sql-query-builder 更高。

错误 2"Write a product description"rnd-technical-writer(应该是 marketing-copywriter)

两者都是"写作" Skill,描述里都有"write",embedding 相似度差距极小。

相同领域的 Skill 在描述层面语义接近,embedding 区分不了。修复方向:

  1. 描述里加负面示例 (已在设计范式篇提过):

    arduino 复制代码
    marketing-copywriter 描述:
    "Write marketing copy and product descriptions.
    NOT: technical tutorials or factual explainers."
  2. 分层路由:先按 domain 粗分(content/strategy/engineering),再在 domain 内精选

  3. LLM 路由器:embedding 过滤候选,LLM 在候选里精选,多付一次 LLM 调用换准确率

发现 2:Prompt 压缩 76%,但 Redis 文章质量掉了 1 分

Python context managers 任务:4.0 → 4.0,压缩没有影响。

Redis pub/sub 任务:4.0 → 3.0,质量下降 1 分。

两个任务用完全相同的两个版本 Prompt,为什么结果不同?Redis pub/sub 的主题相对小众,复杂度更高。冗长版 Prompt 里有大量关于深度、实用性的引导("explain not just HOW but also WHY"),精简版只保留了结构要求,没有这些质量引导。

对于复杂主题,冗长版里的描述性指导("不只讲 HOW,还要讲 WHY")比格式要求更重要。精简版删掉了这些,而恰恰是这类引导让 Redis 文章有深度。压缩前用评测集 A/B 测试:

python 复制代码
# 压缩前:A/B 测试,用评测集对比质量
# 只有当 quality_delta > -0.1 时才推广压缩版本
if abs(quality_delta) < 0.1:
    use_compressed()  # 安全
else:
    keep_verbose()    # 等待更好的压缩策略

发现 3:输出 Token 主导成本,不是 Prompt

成本最高的是 rnd-technical-writer( 0.1365/100calls),最低的是meeting−summarizer(0.1365/100 calls),最低的是 meeting-summarizer( 0.1365/100calls),最低的是meeting−summarizer(0.0152/100 calls),相差 9 倍。

两者的 Prompt 长度相近(116t vs 53t),差距来自输出:1248t vs 99t。

Prompt 从 418t 压到 99t,每次调用节省约 0.0011。加一行'Maximumlength:400words'把输出从1248t压到600t,节省约0.0011。加一行 `Maximum length: 400 words` 把输出从 1248t 压到 600t,节省约 0.0011。加一行'Maximumlength:400words'把输出从1248t压到600t,节省约0.06,差距 54 倍。优化输出长度比优化 Prompt 有效得多:

  • 在 Prompt 里明确最大输出字数(Maximum length: 400 words
  • 按需求分级:详细版 / 简要版,用户选择

Skill Registry 设计

路由准确率低的根因是描述设计不够区分。好的 Registry 条目应该包含:

yaml 复制代码
skills:
  - id: sql-query-builder
    description: |
      Generate SQL queries from natural language data retrieval descriptions.
      Trigger keywords: "query", "SQL", "database", "select", "filter", "join".
      NOT for: code debugging, bug analysis, general programming questions.
    domain: engineering
    subdomain: data
    version: "1.0.0"
    status: active
    owner: "@team-data"
    metrics:
      monthly_calls: 500
      avg_quality_score: 4.1
      cost_per_call_usd: 0.000635

关键字段:

  • description 里包含正面触发词 + 负面排除说明
  • domain / subdomain 支持分层路由
  • metrics 持续更新,用于发现 cost 最高、质量最低的 Skill

三级治理路线图

css 复制代码
Level 1 --- 个人阶段(立即可做):
  □ 建 Skill 台账(YAML 文件 or Notion 表格)
  □ 每个 Skill 有版本号
  □ 有基本的评测记录(第 01 篇的评测体系)

Level 2 --- 团队共享阶段:
  □ 建 Skill Registry,包含 domain + 负面示例
  □ 访问控制:公共 / 部门 / 个人
  □ 修改 Skill 需走 Review 流程(跑评测集,对比 Delta)
  □ 质量监控看板(第 04 篇的 L2/L3 指标)

Level 3 --- 企业治理阶段:
  □ 分层路由(domain 粗分 + embedding 精选)
  □ Prompt 压缩前跑 A/B 质量测试
  □ 按 Skill 分摊成本(月度报告)
  □ 审计日志 + 合规 Checklist

设计 Checklist

Skill Registry

  • 描述里包含触发关键词
  • 描述里有 NOT 排除声明(防止 embedding 混淆)
  • 有 domain 字段支持分层路由

Prompt 压缩

  • 压缩前用评测集 A/B 对比(不是直接替换)
  • 质量 delta < 0.1 才推广压缩版本

成本监控

  • 分别记录输入/输出 Token(不要合并)
  • 先优化输出长度,再优化 Prompt 长度
  • 高输出量 Skill 设置最大输出字数限制

总结

  1. Embedding 路由准确率 38%,相同领域的 Skill 在 embedding 空间里区分不了;修复是描述里加负面排除示例 + 分层路由,不是换更好的 embedding 模型
  2. Prompt 压缩不是无损的:76% 的 Token 节省让简单主题质量不变,但复杂主题质量下降 1 分;压缩前必须跑 A/B 测试
  3. 输出 Token 主导成本:rnd-technical-writer 比 meeting-summarizer 贵 9 倍,原因是输出长度(1248t vs 99t),缩短 Prompt 对成本的影响微乎其微

参考资料


欢迎访问 PrimeSkills ------ 一个精心策划的 AI Agent 与技能市场,所有内容均经过真实企业级工作流验证。没有噱头,只有真正有效的东西。

更多实用知识和有趣产品,欢迎访问我的个人主页

相关推荐
手写码匠1 小时前
华为云Flexus+DeepSeek征文|Dify 多智能体协同编排实战:R1 规划 + V3 执行,构建企业 Agent 团队
人工智能·深度学习·算法·aigc
舒一笑1 小时前
Windows + WSL2 完整复现 Avernet WAIC 6 Bot 协作演示
人工智能·git·开源
犀利豆1 小时前
我和 Claude Code 一起写了一本介绍 Claude Code 原理的书
人工智能·ai编程·claude
墨_浅-2 小时前
20260805金融科技动向:《知识产权保护和运用“十五五”规划》金融机遇
人工智能·科技·金融
微硬创新2 小时前
耐达讯自动化16路0-20mA转PROFINET协议转换模块技术说明
人工智能·网络协议·自动化·信息与通信
IT_陈寒2 小时前
我又被JavaScript的隐式类型转换坑了
前端·人工智能·后端
工业设备方案笔记3 小时前
RK3588 vs RK3568:AI边缘计算项目到底应该如何选择芯片平台?
arm开发·人工智能·目标跟踪·架构·边缘计算
windliang3 小时前
Claude Code 源码分析(七):Skill 如何进入 Agent
前端·人工智能·面试
PNP Robotics3 小时前
力控赋能具身|PNP机器人联合坤维亮相中国机器人学术年会
人工智能·机器学习·机器人
阿基拉de_Akir3 小时前
跨层禁止:机器如何拦截非法语义绑定
人工智能