Communitygithub.com

1arley/ornn

智能体技能:审计、安全、用户体验与代码质量

ornn 是什么?

1arley/ornn 是一个面向 AI 智能体的技能路由器,专门用于在审计、安全、用户体验和代码质量等任务中,智能地选择最必要且最经济的技能组合。该工具的核心价值在于避免盲目堆砌技能,而是通过结构化的打分机制(基于触发器、领域匹配、风险等级、信号要求、组合奖励、重叠惩罚和成本惩罚)来精确匹配合适的技能集,从而平衡覆盖质量与推理成本。它支持在 Claude Code、Cursor 等具备技能路由能力的 AI 智能体平台上使用,通过脚本 `scripts/router.py` 和配置文件 `catalog/skills.yaml` 实现确定性路由决策。用户需要遵循 12 步调查流程,从理解任务、分类风险与领域,到匹配候选项、应用风险下限、打分、预算约束、排序,最终生成标准化的路由输出报告,确保决策过程可追溯、可复现。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add 1arley/ornn

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

技能路由器

目标

选择能够推翻相关假设的最精简技能集合。不要追求表面覆盖的最大化。

路由器是一个调度层,而非审计器。确定性实现位于 scripts/router.py 中;全局关系、触发器、成本和重叠关系仅存在于 catalog/skills.yaml 中。

使用时机

  • 在开始非平凡的审计或审查时。
  • 当任务混合了多个领域(例如安全 + 可靠性)。
  • 当需要证明某项技能被选中或被排除的理由时。
  • 避免在执行昂贵工作之前发生技能爆炸。
  • 组合: 调度到技能;不直接产生发现。

平凡且可逆的任务可以选择零个技能。

思维模型

将路由视为一个最小集合问题:

相关假设
        ↓
能够推翻它们的最小透镜
        ↓
缺失的验证角色(如果有)
        ↓
当额外的技能仅重复覆盖范围时停止

决策使用来自目录的结构化元数据:

trigger_match(触发器匹配)
+ domain_match(领域匹配)
+ risk_unlock(风险解锁)
+ required_signal(所需信号)
+ composition_bonus(组合奖励)
- overlap_penalty(重叠惩罚)
- cost_penalty(成本惩罚)

这不是机器学习。评分使决策可追溯且可重复。

技能预算

风险正常预算
trivial 平凡的0–1
medium 中等的1–2
high 高的2–4
critical 关键的3–6

超过预算需要提供具体的新覆盖范围或确认理由。

按角色排序

generator(生成器) → investigator(调查器) → verifier(验证器) → reviewer(审查器) → researcher(研究员)

当外部不确定性是主要问题时,研究可以排在第一位。

调查流程

  1. 理解 — 重新表述任务和上下文;包括事实,而不仅仅是标题。
  2. 分类风险 — trivial(平凡),medium(中等),high(高)或 critical(关键)。
  3. 分类领域 — audit(审计),security(安全),reliability(可靠性),product(产品),frontend(前端)或 research(研究)。
  4. 读取目录 — 使用 catalog/skills.yaml;不要手动复制关系。
  5. 匹配触发器 — 根据词汇证据或所需信号选择候选技能。
  6. 应用风险下限 — 丢弃未达到 risk_floor 的技能。
  7. 评分 — 应用领域、成本、组合和重叠因素。
  8. 强制预算 — 保留评分最高且边际收益最大的候选技能。
  9. 按角色排序 — 先提出假设,再进行调查和验证。
  10. 报告接近命中 — 最多三个看似合理但被排除的候选技能。
  11. 路由研究 — 指出是否需要 research-router。
  12. 验证 — 更改后执行 python3 scripts/eval.py route --router v2 --check。

要问的问题

  • 任务需要推翻什么假设?
  • 是否存在资金、奖励、所有权、权限或共享状态?
  • 哪个技能能生成假设,哪个能确认机制?
  • 这个技能是添加了一个新视角,还是仅仅重复了其他技能?
  • 该技能的 risk_floor 是否真正达到?
  • 覆盖范围的增加是否证明推理/研究成本是值得的?
  • 任务需要外部来源还是可以在项目内部解决?
  • 如果一个候选技能被排除,它是真正的接近命中,还是仅仅是关键词噪音?

攻击模式

路由不足

关键任务 → 一个宽泛的生成器 → 没有验证器

攻击:查找显式机制(重试、并发、所有权、部分失败),并检查是否有技能能够确认它们。

路由过度

一个匹配的词 → 所有相邻技能

攻击:移除每个技能,并询问是否丢失了任何假设或确认能力。如果没有任何改变,则该技能是冗余的。

模糊语言

UI 反馈中的“状态” ≠ 共享状态一致性
文案中的“访问” ≠ 授权
日常任务中的“研究” ≠ 完整的研究工作流

攻击:使用上下文和所需信号,而不是孤立的词语。

负面上下文

“无权限,无共享状态”

攻击:被否定的术语不应激活安全/可靠性技能。

预算压力

高风险任务的 7 个合理技能(预算上限为 4)

攻击:只保留评分最高的技能和那些添加了不同角色/视角的技能;其余的移至“接近命中”。

证据要求

当路由决策包含以下内容时,它是有依据的:

  • 已分析的任务和上下文;
  • 风险以及主导类别;
  • 按顺序选择的技能;
  • 每个选择的角色、评分和触发器/信号;
  • 已使用的预算;
  • 最多三个接近命中;
  • 研究决策;
  • 当路由被更改时的确定性评估结果。

初始门槛:

routing_precision(路由精度) >= 90%
routing_recall(路由召回率) >= 90%
critical_skill_recall(关键技能召回率) = 100%
trivial selected(平凡技能选择数) <= 1

假阳性

  • 出于“安全考虑”选择所有相关技能。
  • 仅因为类别匹配就提升某个技能,而没有触发器或信号。
  • 将 composes_with 关系视为强制依赖。
  • 忽略 overlaps_with 并重复相同的覆盖范围。
  • 在所有情况下都将 useful 技能视为强制性的。
  • 将否定的上下文(no permissions)用作正面信号。
  • 列出所有被拒绝的技能;只有真正的接近命中才重要。
  • 在此文件中重复目录中的全局表。

输出格式

## Skill Router — Dispatch(技能路由器 — 调度)

**Task(任务):** <任务 + 相关事实>
**Dominant category(主导类别):** <audit | security | reliability | product | frontend | research>
**Risk(风险):** <trivial | medium | high | critical>
**Budget(预算):** <最小值–最大值;已选择 N 个>

### Selected(已选择)
1. `<skill>` — role(角色):`<role>`;score(评分):`<score>`;evidence(证据):`<trigger/signal>`
2. ...

### Near misses(接近命中)
- `<skill>` — <为什么看似相关以及为什么被排除>
- 不超过 3 个

### Research routing(研究路由)
<none | proportional | full; 来源/技能(如需要)>

### Budget justification(预算理由)
<仅在超出预算时填写;否则“within budget”(在预算内)>

执行器运行所选技能并单独整合发现。路由不将假设提升为发现,也不选择置信度。

相关技能