工具技能能力参考¶
本文档是各 AI 编码工具在代理技能(agent skills)支持方面的权威参考。
用于指导 scripts/lib/transformers/providers.js 中的提供方配置。
最后核验时间:2026-04-28(子代理生态抽查于 2026-06-28;Mistral Vibe 行核验于 2026-07-16;Grok Build 技能行核验于 2026-07-21;Grok Build 钩子 stdin 捕获于 2026-08-24;DeepSeek Harness 行核验于 2026-09-06)
本文档反映的是某一时间点的状态。能力演进很快;在依赖任何"只有 X 支持 Y"的断言之前,请先进行实时核验。特别是,下方的子代理表格列出的是 Impeccable 的发射目标,而非支持生态全貌(见其注释)。
官方文档¶
| 工具 | 文档 URL |
|---|---|
| Claude Code | https://code.claude.com/docs/en/skills |
| Cursor | https://cursor.com/docs/context/skills |
| DeepSeek Harness | https://github.com/deepseek-ai/deepseek-harness |
| Gemini CLI | https://geminicli.com/docs/cli/skills/ |
| Codex CLI | https://developers.openai.com/codex/skills |
| GitHub Copilot (Agents) | https://code.visualstudio.com/docs/copilot/customization/agent-skills |
| Kiro | https://kiro.dev/docs/skills/ |
| OpenCode | https://opencode.ai/docs/skills/ |
| Pi | https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/skills.md |
| Qoder | https://docs.qoder.com/extensions/skills |
| Trae | 待定(尚未找到官方技能文档) |
| Rovo Dev | https://support.atlassian.com/rovo/docs/extend-rovo-dev-cli-with-agent-skills |
| Mistral Vibe | https://docs.mistral.ai/vibe/code/cli/skills |
| Grok Build | https://docs.x.ai/build/features/skills-plugins-marketplaces |
| Hermes Agent | https://hermes-agent.nousresearch.com/docs/ |
| Antigravity | https://antigravity.google/docs/skills |
规范遵循¶
所有工具都在不同程度上遵循 Agent Skills 规范。该规范定义了以下 frontmatter 字段:name、description、license、compatibility、metadata、allowed-tools。
规范之外的提供方特有扩展:user-invocable、argument-hint、disable-model-invocation、allowed-tools(扩展语法)、model、effort、context、agent、hooks、subtask、mcp。
Frontmatter 支持¶
标有 * 的字段为规范标准字段。其余为提供方扩展。
| 字段 | Claude Code | Cursor | Gemini | Codex | Copilot | Grok | Hermes | Kiro | OpenCode | Pi | Qoder | Rovo Dev | Mistral Vibe | Antigravity | DSH |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name* |
是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
description* |
是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
license* |
是 | 是 | 忽略 | 否 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 忽略 |
compatibility* |
是 | 是 | 忽略 | 否 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 忽略 |
metadata* |
是 | 是 | 忽略 | 否 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
allowed-tools* |
是 | 否 | 忽略 | 否 | 否 | 是 | 否 | 否 | 否 | 是 | 是 | 是 | 是 | 是 | 否 |
user-invocable |
是 | 否 | 否 | 否 | 是 | 是 | 否 | 否 | 否 | 否 | 是 | 是 | 是 | 否 | 是 |
argument-hint |
是 | 否 | 否 | 否 | 是 | 是 | 否 | 否 | 否 | 否 | 是 | 是 | 否 | 否 | 否 |
disable-model-invocation |
是 | 是 | 否 | 否 | 是 | 是 | 否 | 否 | 是 | 是 | 待定 | 待定 | 否 | 否 | 是 |
model |
是 | 否 | 否 | 否 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
effort |
是 | 否 | 否 | 否 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
context |
是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
agent |
是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
hooks |
是 | 否 | 否 | 是 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
备注:
- Gemini CLI 仅校验 name 和 description;其他规范字段会被解析但忽略。
- Codex CLI 使用独立的 agents/openai.yaml 伴生文件来管理技能元数据(图标、品牌、MCP 工具、调用控制)。Codex 还会自动发现已安装技能 agents/ 文件夹内捆绑的子代理(TOML 格式),Impeccable 正是通过这种方式分发其资产产出器(asset-producer)。独立的自定义代理仍可放在 .codex/agents/ 或 ~/.codex/agents/ 下,但 Impeccable 不再向这些位置安装任何内容。
- Codex CLI 的钩子(hooks)位于 [features].hooks = true 下(仍处于标记状态),每次更新都需要 /hooks 信任仪式,并且在 Windows 上被禁用。
- Grok Build 与 Claude Code 零配置兼容:它同样读取 .claude/skills/、.claude/settings.json 钩子以及 Claude 插件目录结构。原生路径为 .grok/skills/、.grok/hooks/*.json 和 .grok/agents/。技能 frontmatter 除上述字段外还支持 when-to-use。项目钩子需要 /hooks-trust(或 --trust)。参见 https://docs.x.ai/build/features/skills-plugins-marketplaces 和 https://docs.x.ai/build/features/hooks。
- Hermes Agent 按原样读取 Agent Skills 规范。规范定义的字段(name、description、license、compatibility、metadata)会被解析并存储;工具特有的扩展字段(user-invocable、argument-hint、allowed-tools、disable-model-invocation、model、effort、context、agent、hooks)属于未知键,会被静默忽略。Hermes 没有钩子(hook)机制、没有按技能划分的工具 ACL,也没有与 user-invocable 对应的斜杠命令(技能通过 /skill <name> 加载或自动加载;诸如 /impeccable polish 的子命令直接从技能正文中路由,而非在 frontmatter 中声明)。Hermes 新增了两个规范之外的 frontmatter 字段:platforms:(操作系统过滤;默认 = 全部)和 environments:(基于 kanban、docker、s6 的相关性门控)。未知字段会被静默忽略。
- 根据社区反馈,Kiro 会识别 user-invocable 和 disable-model-invocation,但并未正式记录这两个字段。
- Antigravity 支持 Agent Skills 规范的标准 frontmatter 字段(name、description、license、compatibility、metadata、allowed-tools)。
- OpenCode 1.18.10 在 SKILL.md 上仅识别规范子集(name、description、license、compatibility、metadata)。Claude 风格的扩展字段(user-invocable、argument-hint、allowed-tools、model、agent)会被静默忽略;Impeccable 目前仍会为其他工具生成这些字段,但在 OpenCode 中它们不会生效。如需斜杠命令体验,请使用 commands/<name>.md(参见下方"占位符 / 变量替换");OpenCode 在命令文件中仅认可 description、agent、model、variant、subtask。
- DeepSeek Harness 会解析 Agent Skills frontmatter,并要求提供 name 和 description;它会读取 metadata、user-invocable 和 disable-model-invocation。它不消费的规范字段(license、compatibility、allowed-tools)以及 Claude 风格的扩展字段(argument-hint、model、effort、context、agent、hooks)会被静默忽略。钩子是通过 cordis.yml 配置的进程内插件,而非磁盘上的清单文件,因此没有可供安装的钩子面(hook surface)。子代理是存在的,但由预设配置组合而成,并非磁盘上类似技能的文件格式。已对照文件系统技能提供方进行核验。
- Oh My Pi 支持 Agent Skills 标准 frontmatter 字段以及 disable-model-invocation;其他工具特有的扩展字段会被忽略。
- 所有工具都会静默忽略未知字段。
Impeccable 使用的钩子接口¶
| 工具平台 | 编辑钩子 | 启动钩子 | 清单位置 | 备注 |
|---|---|---|---|---|
| Claude Code | 是(PostToolUse) |
否 | .claude/settings.json |
由 npx impeccable skills install/update 安装的项目级 settings 条目。运行 .claude/skills/impeccable/scripts/hook.mjs。 |
| Codex CLI | 是(PostToolUse) |
否 | .codex/hooks.json |
随 .agents/skills/impeccable 安装内容一同安装的项目级清单。从 git 根目录运行 .agents/skills/impeccable/scripts/hook.mjs。需要常规 /hooks 信任批准。 |
| Cursor | 是(preToolUse) |
否 | .cursor/hooks.json |
随 .cursor/skills/impeccable 一起安装的项目级清单。运行 hook-before-edit.mjs,在坏写入落盘前将其拦截。保存时重新加载;如果钩子未能生效,请重启 Cursor。 |
| Grok Build | 是(PostToolUse) |
否 | .grok/hooks/impeccable.json |
随 .grok/skills/impeccable 一起安装的项目级清单。Claude 兼容的匹配器(Edit\|Write\|MultiEdit)别名指向 Grok 的 search_replace。PostToolUse 会运行扫描并预热会话缓存;Grok 会忽略该 stdout 输出。Stop 中的 additionalContext 是用户可见的传递内容。忽略 Grok 的仅观察 Stop,其 reason: "shutdown"。需要 /hooks-trust 或 --trust。插件安装使用带 ${CLAUDE_PLUGIN_ROOT} 的 plugin/hooks/hooks.json(别名指向 GROK_PLUGIN_ROOT)。 |
| Oh My Pi | 否 | 否 | 不适用 | 运行时钩子使用 pi-extension;没有 hooks.json 清单接口。 |
| 所有其他工具平台 | 否 | 否 | 不适用 | 目前没有文档化的钩子接口。技能和命令仍然会随附发布。 |
技能目录结构¶
| 工具平台 | 原生目录 | 也会读取 |
|---|---|---|
| Claude Code | .claude/skills/ |
- |
| Cursor | .cursor/skills/ |
.agents/skills/、.claude/skills/ |
| DeepSeek Harness | .dsh/skills/(项目)、~/.dsh/skills/(全局;设置 $DSH_HOME 时为 $DSH_HOME/skills) |
.agents/skills/(项目)、~/.agents/skills/(全局) |
| Gemini CLI | .gemini/skills/ |
.agents/skills/ |
| Codex CLI | .agents/skills/(主要) |
- |
| GitHub Copilot | .github/skills/ |
.agents/skills/、.claude/skills/ |
| Kiro | .kiro/skills/ |
- |
| OpenCode | .opencode/skills/ |
.agents/skills/、.claude/skills/ |
| Pi | .pi/skills/(项目)、~/.pi/agent/skills/(全局) |
.agents/skills/ |
| Oh My Pi | .omp/skills/(项目)、~/.omp/agent/skills/(全局) |
.agents/skills/ |
| Qoder | .qoder/skills/ |
~/.qoder/skills/(用户级) |
| Trae China | .trae-cn/skills/ |
待定 |
| Trae International | .trae/skills/ |
待定 |
| Rovo Dev | .rovodev/skills/ |
~/.rovodev/skills/(用户级) |
| Mistral Vibe | .vibe/skills/(项目)、~/.vibe/skills/(全局) |
.agents/skills/(项目)、~/.agents/skills/(全局) |
| Grok Build | .grok/skills/(项目)、~/.grok/skills/(全局) |
.agents/skills/、.claude/skills/、.cursor/skills/(Claude/Cursor 兼容,可配置) |
| Hermes Agent | .hermes/skills/(项目)、~/.hermes/skills/(全局) |
skills.external_dirs 配置(不会自动回退到 .agents/skills/) |
| Antigravity | .agent/skills/(项目)、~/.gemini/config/skills/(全局) |
.agents/skills/(项目)、~/.agents/skills/(全局) |
所有工具平台都支持 {skill-name}/SKILL.md 目录结构,以及可选的 reference/、scripts/ 和 assets/ 子目录。
原生子代理目录结构(Impeccable 的输出目标)¶
范围: 本表展示 Impeccable 向哪些位置输出原生子代理文件,并不是 各工具平台对子代理支持情况的映射。子代理目前已得到广泛支持: Cursor(自动委派 +
/name调用,https://cursor.com/docs/subagents)、 GitHub Copilot 和 Google Antigravity 也提供该能力。Impeccable 只写入 存在稳定且有文档记录的磁盘格式可作为目标位置的原生文件。
| 工具平台 | 原生目录 | 文件格式 |
|---|---|---|
| Claude Code | .claude/agents/(已安装的插件) |
带 YAML frontmatter 的 Markdown |
| Grok Build | .grok/agents/(项目)及插件 agents/ |
带 YAML frontmatter 的 Markdown(与 Claude 兼容) |
| Codex CLI | <skill>/agents/(嵌套,自动发现) |
TOML |
Impeccable 将规范的代理提示词保存在 skill/agents/ 下,并且只为那些具备文档化磁盘子代理格式的工具平台生成提供方原生文件。Claude 从已安装的插件中读取其代理;Grok 从插件包和项目 .grok/agents/ 中读取相同的 Markdown 代理;Codex 会自动发现已安装技能自身 agents/ 文件夹内附带的 TOML,因此常规的技能安装即会携带它,无需额外的 sidecar 文件。
启动 / 权限模型(在构建技能时,这比目录支持更重要):
| 工具平台 | 谁可以启动子代理 |
|---|---|
| Claude Code | 通过编程方式,在技能/代理流程内启动。 |
| Grok Build | 通过编程方式经 spawn_subagent 启动(内置类型以及 .grok/agents/ 下的项目/用户代理)。 |
| Codex CLI | 仅当用户已允许子代理 / 并行工作时;否则技能必须询问一次,然后停止(参见 skill/reference/critique.md 中的 <codex> 门控)。 |
| Cursor | 由代理选择:由代理自动委派,或由用户通过 /name 调用。不能被技能可靠地启动。 |
| 其他 | 各有不同;未经确认前视为不可用,并明确降级。 |
占位符 / 变量替换¶
Claude Code 支持在 SKILL.md 正文中直接进行运行时变量替换:$ARGUMENTS、$0-$N、${CLAUDE_SKILL_DIR}、${CLAUDE_SESSION_ID}。其他工具平台均不支持在技能中进行变量替换。
某些工具平台拥有独立的“自定义命令”系统(与技能不同),并带有各自专属的替换语法:
| 工具平台 | 命令系统 | 替换语法 |
|---|---|---|
| OpenCode | .opencode/commands/(Markdown) |
$ARGUMENTS、$1-$N、!`shell`、@file |
| Gemini CLI | .gemini/commands/ (TOML) |
{{args}}, !{shell}, @{file} |
| Codex CLI | .codex/prompts/ |
$ARGNAME |
我们的构建系统在编译时通过 replacePlaceholders() 处理跨提供商的占位符,包括 {{model}}、{{config_file}}、{{ask_instruction}} 和 {{available_commands}}。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 im/impeccable