Skip to main content
嗨站  /  Tools 工具组 /  SkillTool:执行 Skills

SkillTool:执行 Skills

SkillTool:执行 Skills

它不是命令别名,而是技能运行时

很多人第一次看到 /commit/verify/update-config 这类 skill,会以为它们只是更长 prompt 的快捷方式。
但从源码看,SkillTool 明显比“文本别名”复杂得多。

它负责的是:

  • 找到 skill 对应的 command
  • 解析参数
  • 处理本地 skill 和 MCP skill
  • 必要时 fork 一个子 Agent 去跑

所以更准确的说法是:

SkillTool 是 Claude Code 的技能执行器。

关键源码

tools/SkillTool/SkillTool.ts

import {
  builtInCommandNames,
  findCommand,
  getCommands,
} from 'src/commands.js'
import { runAgent } from '../AgentTool/runAgent.js'

文件里还有一段很关键:

async function executeForkedSkill(
  command: Command & { type: 'prompt' },
  ...
): Promise<ToolResult<Output>> {
  ...
}

这说明 skill 执行并不总在当前线程内完成,复杂 skill 可以 fork。

调用链

加载图表中…

它还兼容 MCP skills

源码里专门有一段:

async function getAllCommands(context: ToolUseContext): Promise<Command[]> {
  const mcpSkills = context
    .getAppState()
    .mcp.commands.filter(
      cmd => cmd.type === 'prompt' && cmd.loadedFrom === 'mcp',
    )
  ...
}

这说明 SkillTool 并不只执行本地技能,还能把 MCP 侧暴露出来的 prompt skills 统一纳入调度。

一次典型使用路径

  1. 用户输入 /commit
  2. SkillTool 找到这个 skill 的 command
  3. skill prompt 被展开
  4. 必要时 fork 子 Agent 跑完整流程
  5. 结果回到主线程

它和相邻工具的关系

加载图表中…

小结

SkillTool 代表 Claude Code 走向平台化的一步:

它把“技能”从普通 prompt 文本提升成了可被系统调度、可 fork、可统计、可扩展的正式能力单元。

Leave a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注