Skip to content

Instantly share code, notes, and snippets.

@acmerfight
Last active July 12, 2026 01:20
Show Gist options
  • Select an option

  • Save acmerfight/13fe4c78f0658a2010b91507c9c945df to your computer and use it in GitHub Desktop.

Select an option

Save acmerfight/13fe4c78f0658a2010b91507c9c945df to your computer and use it in GitHub Desktop.
Keel 的技能系统:一个可治理、可度量的 Agent Skill 运行时——与业界对比(基于事实,附来源)

Keel 的技能系统:一个可治理、可度量的 Agent Skill 运行时

在 issue #430 落地之后,Keel 的技能系统在业界处于什么位置——只讲事实,附来源,并诚实区分「已交付」与「计划中」。


说明:这份文档是什么

本文描述的是 Keel 在公开设计(issue #430)中已承诺的技能运行时,以及 Keel 当前已交付的部分。它不声称下面每一项能力都已经合并。

  • 当前已交付: 项目级 .agents/skills/<name>/SKILL.md、严格校验、惰性纯文本加载(加载时不执行任何代码)、通过 --skill / /skill 显式绑定、按会话持久化。
  • 已承诺的设计(issue #430,以垂直 PR 分片交付): 元数据目录、按需模型激活、多作用域 + 冲突安全的身份标识、权限/原子性/安全契约、固定版本安装、路由与边际价值评测。

计划中的能力会标注 (计划中),其余均为已上线。

Keel 是一个从零构建的 AI 编码 agent,只优化一件事:同一模型下、可度量的 per-task 执行质量——而不是功能广度。技能系统就是围绕这个目标设计的,不为逐项对齐竞品。


一句话定位

  • 通用层(格式、渐进披露、显式 + 模型激活、多作用域、目录预算):与第一梯队持平。
  • 治理、安全、可度量(技能只承载知识、绝不承载权限;目录/正文原子性;冲突 fail-closed;可复现 resume;把路由质量做成受回归守护的 eval 指标):领先业界——这一层没有别家把它做成契约。
  • 生态与高级执行(marketplace、网络效应、sub-agent/forked 执行):v1 有意不参与竞争。

一句话:大多数工具把技能做成一份「能力清单」;Keel 在把技能做成一个可度量、按证据启用、且在结构上无法给自己提权的运行时。


背景:什么是 Agent Skills

一个技能就是一个包含 SKILL.md 的文件夹——YAML frontmatter(namedescription,可选打包 scripts/references/assets/)加上 Markdown 指令正文。Anthropic 在 2025 年 10 月提出该格式,并于 2025 年 12 月在 agentskills.io 发布为开放标准。

其核心思想是渐进披露:路由时上下文里只放每个技能的 name + description;正文只在技能被选中时加载;打包资源只在需要时加载。这让上百个技能在 token 上仍然可负担。

该格式已被生态广泛采用(Claude Code、OpenAI Codex、Gemini CLI 等)。Keel 读取同一套标准格式,因此技能是可移植的。

来源:Anthropic — Equipping agents with Agent Skills · 开放规范 · Simon Willison 的分析


业界对比

下表基于各主流 agent 的公开文档行为与 Keel 的已承诺设计:

维度 业界(Claude Code、Codex、Kimi、opencode、Pi) Keel(已交付 + 计划中)
SKILL.md 开放格式 有(严格校验)
渐进披露
显式调用 有(--skill/skill$skill
模型自动激活 (计划中)
多作用域(repo/user/system) (计划中)
目录 token 预算 有(如上下文的 1–2%) 有,且由 eval 校准 (计划中)
技能无法扩大工具权限 不一,多数非硬契约 硬不变量 (计划中)
加载时零代码执行 业界不保证 保证(已交付)
目录/正文原子性(读不到正文就绝不登目录) 未一致强制 强制 (计划中)
命名冲突 fail-closed 常见 last-wins / 静默优先级 fail-closed,列出候选 (计划中)
可复现 resume(快照 + digest) 常静默重读被改动的文件 快照 + changed_on_disk 信号 (计划中)
把技能路由做成受回归守护的 eval 无人交付 (计划中)
Marketplace / 网络效应 部分有(插件市场、远程拉取) v1 不做
sub-agent / forked 技能执行 部分有 v1 不做

Keel 持平的部分

在已承诺设计落地后,Keel 在通用层追平第一梯队:开放 SKILL.md 格式、渐进披露、显式与模型两种激活、repo/user/system 作用域、带预算的目录。按开放标准编写的技能能在 Keel 里用,Keel 的技能也遵循同一标准。

这是入场券——必要,但不是 Keel 想赢的地方。


Keel 领先的部分:治理、安全、可度量

以下都是生态里有据可查的薄弱点。Keel 的设计把每一条都变成显式契约。

1. 技能承载知识,不承载权限。 技能可以建议一次工具调用,但绝不能授予、预批或绕过它。有效权限永远等于当前会话策略——技能无法扩大它,allowed-tools 只能收窄工具集,绝不能扩大。

为什么重要:安全研究发现相当比例的公开技能带有安全缺陷(多份独立审计给出 26–37% 的区间),OWASP 也新增了「Agentic Skills Top 10」。一个被广泛报道的具体漏洞是加载时执行——某些 agent 会在模型或其护栏看到技能之前就运行技能里内嵌的 shell,于是「克隆一个仓库」就足以触发。Keel 在加载时不运行任何东西;技能自带的脚本只经由 Keel 常规的工具审批路径执行。 来源:Datadog Security Labs · Cloud Security Alliance · SkillSpector(同行评审的发布前管控)

2. 目录与正文原子;降级要响亮。 读不到并校验通过技能的确切正文,就绝不把它登入目录。当目录超出 token 预算时,Keel 会(在 doctorkeel skills、机器可读报告里)报告被省略了哪些,而不是静默丢弃。这正对两个已被报道的失败模式:目录元数据与挂载正文不一致,以及技能因某个未公开的预算而悄悄消失。 来源:claude-code #26254(元数据已注册,正文未挂载) · 静默按预算丢弃的分析

3. 冲突 fail-closed。 若某个非限定技能名在多个作用域间有歧义,Keel 会拒绝并列出限定候选,而不是静默挑一个。业界相关失败:递归发现会注册嵌套技能,制造嘈杂、含糊的路由。 来源:codex #22275(递归注册嵌套技能)

4. resume 可复现。 resume 或 fork 出的会话,从它记录的已激活正文 + 内容 digest 继续,而不是从文件此刻恰好的内容继续。若文件在磁盘上变了,Keel 会给出 changed_on_disk 信号,而不是在任务中途悄悄换掉指令。

5. 路由质量是测出来的,不是断言的。 这是差异化所在。描述驱动的自动激活在业界并不可靠:一项 650 次试验的研究发现,默认技能描述的激活率大约在 37–77%,只有命令式描述才接近可靠激活。没有任何主流 agent 为技能交付 per-task 质量套件,于是团队只能靠感觉调描述。

Keel 已经交付了 keel eval——一个确定性的 per-task 评测框架。技能设计把激活 precision/recall 与**「有技能 vs. 无技能」的成对任务结果**做成带回归门的 eval 指标。一个技能只有在相对无技能基线可度量地提升成功率、减少人工干预或改善效率时,才会被启用为模型可自动激活。

这有当下研究支撑,而非拍脑袋:

  • SkillsBench:curated 技能在 7 个 agent-模型配置上把平均通过率提升 +16.2 个百分点——但 2–3 个技能的聚焦组合提升最大(+18.6pp),4 个以上只有 +5.9pp,而「大而全」的文档反而倒退(−2.9pp)。多不等于好。
  • SWE-Skills-Bench:多数被评测的公开技能没有带来提升,有些还让结果倒退——装上一个技能不等于从中受益。
  • Skill Coverage:「技能被加载了」不是质量信号,约束层面的行为覆盖率才是。

这个说法的诚实边界: eval 基础设施让 Keel 能测量并防止路由回归,它并不会在同一模型上魔法般比别的 agent 路由得更准——~50% 的激活难题是整个业界共享的模型/描述层问题。Keel 的优势在于:它是唯一把这个问题变得可见且可设门槛的,而这恰好对齐它的执行质量目标。


Keel 不参与竞争的部分(v1)

明确写出来,因为一份藏着短板的宣传文档不叫「基于事实」:

  • 没有 marketplace 或网络效应。 别家有插件市场和远程技能仓库,已经有大量现成技能。Keel v1 只支持 Git 固定版本安装(不可变 commit SHA + 内容 digest + 审计记录)——出处更干净,但没有生态先发优势。技能系统一半的价值来自「已经有多少好技能可装」,这一点 Keel 从零起步。
  • 没有 sub-agent / forked 技能执行。 在隔离的 sub-agent 上下文里跑技能,需要一个 sub-agent 运行时——那是独立且更晚的能力。v1 明确非目标。
  • 没有 per-skill 的 model/effort 选择、路径条件激活、嵌套子技能、目录 token 别名压缩这些个别竞品提供的特性。它们是低优先、无硬前置依赖的后续项,等真实需求出现再做。
  • 不隐式扫描其他工具的技能目录。 Keel 不会静默加载 .claude / .codex 技能目录(安全选择),因此不像那些会自动导入的工具那样「开箱兼容别人的技能库」。

结论

在 issue #430 落地之后,Keel 的技能系统位置清晰:

  • 通用能力: 与第一梯队持平。
  • 治理、安全、可复现、可度量: 业界最强——因为 Keel 把生态里有据可查的失败模式(加载时执行、目录静默漂移、含糊冲突、未度量的路由)都当成硬性设计约束。
  • 生态与高级执行: 第二梯队,出于主动取舍。

这个取舍本身就是重点。Keel 不追求技能最多或功能最全,它追求的是一个你可以信任的技能运行时:不会提权、不会静默失败、且只有在数据说它有用时才启用一个技能。


参考来源

格式与概念:Anthropic Agent Skills · 开放规范 · Willison 激活可靠性:650 次试验的激活研究 · 路由深度剖析 安全:Datadog Security Labs · Cloud Security Alliance · SkillSpector 可度量的价值:SkillsBench · SWE-Skills-Bench · Skill Coverage · Agent Workflow Memory 业界失败模式:claude-code #26254 · codex #22275 · 按预算丢弃的分析 Keel 设计:issue #430

对比基于截至 2026 年 7 月的公开文档行为与已发表研究。竞品行为会随时间变化,请对照当前来源核实。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment