SuperClaude Framework /sc:select-tool 命令深度解析:基于复杂度评分的智能 MCP 工具路由
2026/9/20 18:15:47 网站建设 项目流程

SuperClaude Framework /sc:select-tool 命令深度解析:基于复杂度评分的智能 MCP 工具路由

【免费下载链接】SuperClaude_FrameworkA configuration framework that enhances Claude Code with specialized commands, cognitive personas, and development methodologies.项目地址: https://gitcode.com/gh_mirrors/su/SuperClaude_Framework

导读

/sc:select-tool是 SuperClaude Framework(一个增强 Claude Code 的配置框架)中负责MCP 工具智能选择的特殊命令。它的核心价值在于:当开发操作同时可能由多个 MCP 服务器(Serena 与 Morphllm)完成时,通过多维复杂度评分、能力匹配矩阵与阈值路由规则,自动选出性能与准确率最优的工具组合。读完本文,你将掌握 select-tool 的触发条件、评分流程、决策矩阵、降级策略,以及它如何被 refactor、edit、implement、improve 等上层命令自动复用,并能在真实场景中自行判断"何时该用 Serena、何时该用 Morphllm"。

命令定位与设计意图

/sc:select-tool的命令元数据定义在 src/superclaude/commands/select-tool.md 的 YAML frontmatter 中:

元数据字段含义
nameselect-tool命令名,通过/sc:前缀调用
descriptionIntelligent MCP tool selection based on complexity scoring and operation analysis基于复杂度评分与操作分析的工具选择
categoryspecial特殊类别命令(元系统决策类)
complexityhigh命令自身复杂度高
mcp-servers[serena, morphllm]参与路由决策的两个核心 MCP
personas[]不需要激活任何认知角色

从类别与复杂度字段可以看出,这是一个元系统决策命令——它不直接操作文件,而是决定"让哪个工具去操作文件"。这种设计让工具路由逻辑可以独立维护、单独测试,并被其他工作流命令复用。

命令的调用形态为:

/sc:select-tool [operation] [--analyze] [--explain]
  • [operation]:待分析的目标操作描述(自然语言即可);
  • --analyze:输出复杂度评分与匹配分析过程;
  • --explain:解释最终选择依据(rationale)。

触发场景

根据文档,以下四类场景应激活该命令:

  1. 需要在 Serena 与 Morphllm 之间做最优工具选择的操作——例如同时涉及语义修改与批量文本替换的混合任务;
  2. 需要复杂度分析与能力匹配的元系统决策——当操作边界模糊、无法凭直觉判断时;
  3. 需要权衡性能与准确率的工具路由决策——快速批量修改 vs 高精度符号操作是典型对立需求;
  4. 能从智能工具能力评估中获益的操作——尤其是多文件、多语言的大型变更。

结合 src/superclaude/mcp/MCP_Serena.md 与 src/superclaude/mcp/MCP_Morphllm.md 中的能力描述,可以归纳出两个工具的本质分工:Serena 负责"理解代码",Morphllm 负责"批量改写"

五步行为流程

select-tool 的内部决策流程分为五个阶段:

  1. Parse(解析):分析操作类型、作用范围、文件数量与复杂度指标。这里的"复杂度指标"包括操作涉及的符号数量、跨文件依赖、语言与框架要求等(参见 MCP_Serena.md 中"多语言项目需要 LSP 集成""大代码库 >50 文件"等判据);
  2. Score(评分):对各项操作因子应用多维复杂度评分,生成 0~1 之间的复杂度分数;
  3. Match(匹配):将操作需求与 Serena、Morphllm 的能力画像逐项对比;
  4. Select(选择):基于评分矩阵与性能要求(速度 vs 准确率)选出最优工具;
  5. Validate(验证):核实选择准确性,并给出置信度指标。

关键行为要点:

  • 复杂度评分:综合考虑文件数量、操作类型、语言与框架要求;
  • 性能评估:在速度与准确率之间做显式权衡,避免"为了快而牺牲精度"或"为了精度而拖慢批量任务";
  • 决策逻辑矩阵:包含直接映射与基于阈值的路由规则(详见下文"关键决策模式");
  • 能力匹配:Serena 侧重语义操作(semantic operations),Morphllm 侧重模式操作(pattern operations)。

MCP 集成:两条能力路线的分工

select-tool 的路由对象是仓库中两个已配置好的 MCP 服务器,其启动配置分别位于:

  • src/superclaude/mcp/configs/serena.json:通过uvx --from git+https://github.com/oraios/serena serena start-mcp-server --context ide-assistant启动,以ide-assistant上下文模式运行;
  • src/superclaude/mcp/configs/morphllm.json:通过npx @morph-llm/morph-fast-apply /home/启动,并支持MORPH_API_KEY环境变量与ALL_TOOLS=true配置。

Serena:语义操作与项目记忆

Serena 的定位是语义代码理解,核心能力包括:

  • 符号级操作:函数/类重命名、提取、移动,且带依赖追踪;
  • 项目级代码导航与探索(LSP 集成);
  • 会话生命周期管理:/sc:load/sc:save、项目激活;
  • 内存驱动开发工作流与跨会话学习;
  • 大代码库(>50 文件、复杂架构)的架构理解。

文档中给出的判断示例:"rename getUserData function everywhere" → Serena,因为这是需要依赖追踪的符号操作。

Morphllm:模式编辑与批量转换

Morphllm 的定位是基于模式的代码编辑引擎,核心能力包括:

  • 多文件编辑中保持一致模式(框架升级、风格指南执行、代码清理);
  • 跨文件批量文本替换;
  • 自然语言编辑指令 + 明确作用域;
  • 令牌优化:Fast Apply 场景下效率提升 30–50%。

文档中给出的判断示例:"update all console.log to logger" → Morphllm,因为这是纯模式替换、速度优先。

协作而非对立

两个 MCP 的官方推荐协作方式是:Serena 分析语义上下文 → Morphllm 执行精确编辑;Sequential MCP 也可以参与其中,先制定编辑策略再由 Morphllm 系统化应用(见 MCP_Serena.md 与 MCP_Morphllm.md 的 "Works Best With" 小节)。select-tool 正是这种协作编排的自动决策器。

工具协调:选择前后的配套能力

select-tool 并非孤军作战,它与 Claude Code 原生工具及系统命令协同:

  • get_current_config:系统配置分析,用于评估当前可用的工具能力(选择前确认"有哪些工具可用");
  • execute_sketched_edit:操作测试与校验,用于验证选择准确性(选择后试运行编辑草稿);
  • Read / Grep:操作上下文分析,识别复杂度因子(如统计文件数量、查找符号引用);
  • 集成点:refactor、edit、implement、improve 等命令会自动复用这套选择逻辑。

例如 src/superclaude/commands/implement.md 中,实现流程会根据技术栈自动激活不同 MCP(Context7 提供框架文档、Magic 生成 UI 组件、Sequential 编排多步实现),而 src/superclaude/commands/improve.md 的改进流程同样依赖工具协调完成安全重构——这些上层命令在遇到"符号 vs 模式"的分叉时,底层就会走到 select-tool 的决策逻辑上。

关键决策模式

select-tool 的核心是一套可解释、可验证的决策规则:

1. 直接映射(Direct Mapping)

操作类型路由目标依据
符号操作(重命名、提取、移动)Serena需要依赖追踪与 LSP 语义理解
模式编辑(批量替换、风格执行)Morphllm模式匹配与批量操作能力
内存操作(保存上下文、发现记录)Serena项目上下文与跨会话持久化

2. 复杂度阈值(Complexity Thresholds)

Score > 0.6 → Serena(语义优先) Score < 0.4 → Morphllm(模式/速度优先) 0.4 ~ 0.6 → 基于功能特征判断(feature-based)

该阈值的合理性在能力文档中得到印证:Serena 适合">50 文件、复杂架构"的代码库(MCP_Serena.md),而 Morphllm 适合"<10 文件、简单到中等复杂度的直接变换"(MCP_Morphllm.md)。中间地带则进一步看操作特征:以语义为主选 Serena,以模式为主选 Morphllm。

3. 性能权衡(Performance Trade-offs)

  • 速度要求→ Morphllm:批量场景下 Fast Apply 的令牌效率优势(30–50%)直接转化为执行速度;
  • 准确率要求→ Serena:符号操作依赖追踪能避免漏改、误改。

4. 降级策略(Fallback Strategy)

Serena → Morphllm → 原生工具(Native tools)

当目标 MCP 不可用(未安装、启动失败、API Key 缺失等)时,沿此链路逐级降级,最终退回 Claude Code 的原生 Read/Edit 工具,保证操作始终可执行。Morphllm 配置中的MORPH_API_KEY环境变量(morphllm.json)为空字符串即为典型的"配置存在但待填充"状态,此时降级策略就尤为重要。

实战示例

示例一:跨 10 个文件的复杂重构

/sc:select-tool "rename function across 10 files" --analyze # Analysis: High complexity (multi-file, symbol operations) # Selection: Serena MCP (LSP capabilities, semantic understanding)

解析阶段识别出"多文件 + 符号操作"两个高复杂度因子;评分阶段复杂度高于 0.6;匹配阶段命中 Serena 的 LSP 能力画像(参见 MCP_Serena.md 中"重命名函数需要依赖追踪"示例)。

示例二:基于模式的批量编辑

/sc:select-tool "update console.log to logger.info across project" --explain # Analysis: Pattern-based transformation, speed priority # Selection: Morphllm MCP (pattern matching, bulk operations)

操作被识别为纯模式替换,属于 <0.4 低复杂度区间,且速度优先——Morphllm 的批量替换与令牌压缩能力(30–50% 效率提升,见 MCP_Morphllm.md)是明确的最优解。

示例三:内存管理操作

/sc:select-tool "save project context and discoveries" # Direct mapping: Memory operations → Serena MCP # Rationale: Project context and cross-session persistence

此例未落入评分区间,而是直接命中直接映射规则:内存/会话操作固定路由到 Serena,因为只有它具备跨会话持久化与项目记忆能力(对应/sc:save/sc:load的会话生命周期管理,见 MCP_Serena.md)。

边界约束

会做的(Will)

  • 分析操作并提供 Serena 与 Morphllm 之间的最优工具选择;
  • 基于文件数量、操作类型与需求应用复杂度评分;
  • 提供亚 100ms 决策时间>95% 选择准确率的性能保证。

注意:上述 "sub-100ms decision time" 与 ">95% selection accuracy" 是文档中声明的设计目标(见 select-tool.md 的 Boundaries 小节),属于命令规格承诺而非仓库实测数据,实际效果取决于运行环境。

不会做的(Will Not)

  • 不覆盖用户的显式工具指定:当用户已明确表达工具偏好时,尊重用户选择而非强行路由;
  • 不做无依据选择:没有经过复杂度分析与能力匹配,就不输出选择结论;
  • 不为便利牺牲性能:不允许为了操作上的省事而违背性能要求(例如为了省事把高准确率需求丢给 Morphllm)。

与框架其他能力的联动

select-tool 的价值在框架层面进一步放大:

  • 它是 src/superclaude/commands/sc.md 所定义的/sc:命令命名空间中的一员,所有命令统一通过/sc:command [args...]形态调用;
  • 安装方式与其他命令一致:运行superclaude install安装/更新命令后,重启 Claude Code 即可生效(见 sc.md 底部的安装提示);
  • 与 implement(implement.md)、improve(improve.md)等流程命令的"自动选择逻辑"集成,使工具路由成为开发工作流的隐形基础设施——开发者无需每次手动判断该用哪个 MCP,交给评分矩阵即可。

小结

/sc:select-tool将"工具选择"这一元决策从开发者的心智负担中剥离,固化为可解释、可测试、可降级的规则系统:Parse → Score → Match → Select → Validate五步流程保证决策可追踪;直接映射、复杂度阈值、性能权衡与降级链路四条规则保证决策可预测;Serena(语义/记忆)与 Morphllm(模式/速度)的分工协作保证决策可用。当你面对"符号操作 vs 模式编辑"或"准确率 vs 速度"的抉择时,用/sc:select-tool "你的操作" --explain即可获得带依据的工具路由建议。

【免费下载链接】SuperClaude_FrameworkA configuration framework that enhances Claude Code with specialized commands, cognitive personas, and development methodologies.项目地址: https://gitcode.com/gh_mirrors/su/SuperClaude_Framework

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询