跳转到内容

技能注入系统——三层组合模型

学习目标

  • 理解技能注入与技能替换的本质差异
  • 掌握 OMC 的三层技能组合公式
  • 设计自己的技能注入系统
  • 识别技能冲突和组合爆炸问题

前置知识

技能系统的渐进式披露、触发短语设计已在通用知识中介绍:

下文假设你已理解 SKILL.md 结构、渐进式披露和触发短语设计,直接聚焦 OMC 的 行为注入式技能组合模型

项目实践

公式化技能组合

OMC 引入了一个不同于传统技能激活的组合模型。传统技能系统在触发时替换主 Agent 的行为——Skill 的指令覆盖默认系统提示。OMC 的技能则叠加到现有 Agent 行为之上。

组合公式为:

[Execution Skill] + [0-N Enhancement Skills] + [Optional Guarantee Skill]
层级角色示例数量
Execution(执行层)定义主工作流autopilotteamultraworkdefault必选,1 个
Enhancement(增强层)添加额外能力git-master(自动提交)、frontend-ui-ux可选,0 到 N 个
Guarantee(保证层)强制完成约束ralph(不完成不停止)可选,0 或 1 个

实例分析

示例 1ultrawork: refactor API with proper commits

  • 执行层:ultrawork(最大并行执行)
  • 增强层:default(标准构建流程)+ git-master(原子化提交)
  • 保证层:无

示例 2ralph: build a REST API

  • 执行层:default(标准构建流程)
  • 增强层:ultrawork(并行能力注入)
  • 保证层:ralph(不完成不停止)

示例 3/team 3:executor "fix all TypeScript errors"

  • 执行层:team(编队流水线)
  • 增强层:自动路由的 Stage-aware 分发
  • 保证层:可选 ralph 修饰符

技能注入 vs 技能替换

关键差异

  • 传统模式:Skill 触发时,原始系统提示被替换——只有一个 Skill 活跃
  • OMC 模式:Skill 指令叠加到系统提示上——多个 Skill 可同时生效

技能作用域与优先级

OMC 的技能存储分为两级:

目录作用域优先级
.omc/skills/项目级高(覆盖用户级)
~/.omc/skills/用户级低(回退)

项目级技能随 Git 仓库提交和共享,适合团队协作中的统一工作流。

问题与规避

问题 1:技能冲突

当两个 Enhancement Skill 给出矛盾的指令时,OMC 通过优先级排序解决(项目级 > 用户级)。但如果两个同级 Skill 冲突,行为是非确定性的。

规避策略:在 Skill 的 Do_Not_Use_When 中明确列出互斥条件。

问题 2:组合爆炸

随着 Enhancement Skill 数量增加,可能的组合数线性增长。3 个 Execution × N 个 Enhancement × 1 个 Guarantee = 3(N+1) 种可能的组合。

规避策略:OMC 在 omc-reference 中记录了常用组合模式,避免用户随意组合。

问题 3:隐式触发不可见

魔关键词驱动的隐式技能激活可能让用户不知道哪个 Skill 被激活了。

规避策略:通过 <system-reminder> 标签注入激活信息,如 [MAGIC KEYWORD: ralph]

设计取舍

为什么选择注入而非替换?

维度注入模式替换模式
多技能协同支持——多个 Skill 可叠加不支持——一次只能一个 Skill
核心稳定性高——系统提示始终保留低——系统提示被替换
调试难度高——多个 Skill 的叠加效果难以预测低——只有一个 Skill 活跃
上下文消耗高——多个 Skill 指令占用更多上下文低——只有一个 Skill 的指令

OMC 的选择:选择注入模式,牺牲调试简单性和上下文效率,换取多技能协同的灵活性。

参考来源