很多团队在 Claude Code 里同时接触 Skills 与 Custom Commands 后,容易把二者理解成互相替代的两种功能:要么认为 Commands 更直接,要么认为 Skills 更高级。实际使用时,二者解决的问题并不完全相同。Custom Commands 更像显式入口,解决“我现在要让代理执行某个动作”的问题;Skills 更像可复用的能力与知识模块,解决“代理在执行任务时应该掌握哪些流程、规范、工具约束和领域知识”的问题。真正需要判断的不是哪个更强,而是任务是否需要明确触发、是否需要参数化、是否需要沉淀大量知识、是否需要团队统一审计,以及后续维护成本由谁承担。

本文围绕适用边界、判断维度、典型场景、组合方式、团队治理和接入选型展开,最后给出客观的选择原则。需要说明的是,Claude Code 及相关扩展能力仍在演进,不同版本对 Skills、Custom Commands 的目录、触发方式和配置细节可能存在差异,落地时应以实际版本文档和团队验证结果为准。

一、先厘清概念:入口能力与知识能力的差别

Custom Commands 通常表现为可被显式调用的命令模板。用户在对话中通过斜杠命令或约定入口发起任务,命令可以携带参数,例如模块名、分支名、环境名、失败用例编号等。它的价值在于确定性强、可发现、易审计:团队成员知道什么时候该输入什么命令,命令本身也能约定输出格式、工具使用范围和检查步骤。它适合重复动作、固定入口、需要人工确认的高风险操作,以及团队希望统一操作口径的场景。

Skills 更接近可复用的技能包或能力说明。它强调把领域知识、流程步骤、工具使用约束、示例和判断规则组织起来,让代理在匹配任务时加载或引用。它的价值在于知识密度高、复用范围广、能够减少命令模板膨胀。它适合复杂多步骤流程、跨文件的领域规范、需要根据上下文选择步骤的任务,以及希望代理在合适时机自动适配的场景。它的挑战在于触发边界需要治理,调试和审计不如显式命令直观,维护不当容易出现“看起来生效、实际不可控”的问题。

二者的共同点是都把临时对话中的提示、流程和约束沉淀为团队资产。不同点在于,Custom Commands 更偏“入口与动作”,Skills 更偏“知识与能力”。因此,复杂任务常见的最佳实践不是二选一,而是命令作为入口、技能作为内核。

表格一:Skills 与 Custom Commands 的基础对比 +----------------+------------------------------------------+------------------------------------------+----------------------------------+ | 维度 | Skills | Custom Commands | 选择提示 | +----------------+------------------------------------------+------------------------------------------+----------------------------------+ | 核心角色 | 可复用能力、知识、流程和工具约束 | 显式入口、参数化动作、团队约定 | 入口用命令,知识用技能 | +----------------+------------------------------------------+------------------------------------------+----------------------------------+ | 触发方式 | 更依赖任务匹配、上下文或显式引用 | 通常由用户显式调用,入口明确 | 必须人工确认时优先命令 | +----------------+------------------------------------------+------------------------------------------+----------------------------------+ | 参数能力 | 可结合上下文,但入口不一定直观 | 适合参数化,如模块、环境、分支、用例 | 需要传参时优先命令 | +----------------+------------------------------------------+------------------------------------------+----------------------------------+ | 知识承载 | 适合承载大量规范、示例、判断规则 | 适合承载短流程和输出契约 | 知识密度高时优先技能 | +----------------+------------------------------------------+------------------------------------------+----------------------------------+ | 可审计性 | 需要额外日志、触发记录和边界说明 | 入口清晰,较容易审计 | 高风险动作优先命令 | +----------------+------------------------------------------+------------------------------------------+----------------------------------+ | 维护成本 | 影响面较大,需要评审和回归 | 影响面相对局部,但也可能膨胀 | 变更频繁的知识放技能并评审 | +----------------+------------------------------------------+------------------------------------------+----------------------------------+ | 常见风险 | 触发不可控、边界模糊、重复维护 | 命令过长、参数缺失、用户记不住入口 | 用组合模式降低风险 | +----------------+------------------------------------------+------------------------------------------+----------------------------------+

二、五个判断维度:从触发确定性到维护成本

判断何时使用 Skills、何时使用 Custom Commands,可以先问五个问题。

第一,触发是否必须确定。若某个动作必须在人工确认后执行,例如发布、迁移、回滚、安全审计、生产环境检查,那么应优先设计 Custom Commands。显式命令能让操作者明确知道自己在发起什么,也便于记录谁在什么时间执行了什么。若任务只是希望代理在遇到相关问题时自动参考一套规范,则更适合 Skills。

第二,流程是否多步骤且有条件分支。短线性流程可以写进命令模板,例如“检查当前分支、运行测试、输出失败摘要”。但若流程包含“先判断项目类型,再选择检查清单,再根据失败类型调用不同工具,最后按严重级别汇总”,这种多分支流程更适合放在 Skills 中。命令只负责进入流程和传入参数,具体步骤由技能组织。

第三,知识密度是否高。若命令里需要附加大段编码规范、框架约定、术语表、示例、反例和工具说明,命令会迅速膨胀,用户也难以维护。此时应把知识放进 Skills,把命令压缩成入口。知识密度越高,越应该把“入口”和“知识”分开。

第四,团队是否需要统一协作。Custom Commands 的命名和参数本身就是团队约定,例如 /review、/release-check、/migration、/fix-test。Skills 则适合把团队共用的领域知识复用给多个命令和多个任务。一个团队如果有多个入口都需要同一套安全检查规则,不应在多个命令里复制,而应抽成 Skill。

第五,维护成本由谁承担。命令变更通常影响一个入口,适合小步迭代;技能变更可能影响多个任务,应该经过评审、版本记录和回归测试。若团队没有维护技能的能力,不要为了“看起来先进”而引入复杂 Skills;若团队已经有大量重复提示和规范,则应该把知识沉淀到 Skills 中。

表格二:判断问题与倾向选择 +------------------------------------------+------------------------------+------------------------------+ | 判断问题 | 更倾向 Custom Commands | 更倾向 Skills | +------------------------------------------+------------------------------+------------------------------+ | 是否需要人工明确发起 | 是 | 不一定 | +------------------------------------------+------------------------------+------------------------------+ | 是否需要传参并形成固定输出 | 是 | 可作为补充 | +------------------------------------------+------------------------------+------------------------------+ | 是否包含大量规范、示例和判断规则 | 否 | 是 | +------------------------------------------+------------------------------+------------------------------+ | 是否跨多个任务复用同一套知识 | 低 | 高 | +------------------------------------------+------------------------------+------------------------------+ | 是否属于高风险动作 | 是,优先显式入口 | 需配合入口和权限控制 | +------------------------------------------+------------------------------+------------------------------+ | 是否流程分支多、步骤长 | 命令只做入口 | 适合承载流程 | +------------------------------------------+------------------------------+------------------------------+

三、典型场景:命令做入口,技能做内核

场景一,代码审查。若团队希望每次提交前都执行同一套审查动作,可以设计 /review 命令,参数为分支名或变更范围。命令负责触发、收集 diff、要求输出严重级别和修复建议。具体的审查规则,例如安全基线、错误处理规范、日志规范、测试覆盖要求、框架特有约束,应放入 Skill。这样命令不会因为规则增加而变得臃肿,审查知识也能被其他任务复用。

场景二,发布前检查。发布检查通常包含环境确认、版本号检查、构建产物检查、配置差异检查、回滚方案确认和负责人确认。这里适合用 /release-check 命令作为显式入口,参数为环境名。发布流程、回滚策略、验证标准和异常处理步骤适合放入 Skill。高风险动作必须让操作者明确发起,不能让技能在用户不知情时自动执行。

场景三,数据库迁移。数据库迁移属于高风险任务,必须使用显式命令,例如 /migration。命令负责要求用户提供迁移目标、环境、审批信息和回滚计划。迁移规范、命名规则、字段变更检查、回滚模板和审批约束应放入 Skill。命令本身不应包含过多知识,否则一旦规范变化,命令维护会非常困难。

场景四,新人问答与架构说明。新人经常询问“这个模块为什么这样设计”“某条链路的数据如何流转”“某个配置项影响哪些服务”。这类任务知识密度高、触发不固定,更适合用 Skills 承载项目知识、术语表和架构说明。可以保留 /explain-module 作为显式入口,方便新人主动提问,但核心知识放在技能中。

场景五,测试修复。测试失败修复通常需要读取失败日志、定位相关代码、判断是产品缺陷还是测试预期问题、补充测试或修改实现、再次运行验证。可以用 /fix-test 命令传入失败用例编号或测试文件,具体调试步骤、mock 规范、测试数据约束和断言规范放入 Skill。命令保证入口明确,技能保证流程可复用。

场景六,文档生成。文档生成需要统一模板、术语、示例风格和链接规范。可以用 /doc 命令传入模块名或接口名,技能负责文档结构、术语表、示例格式和检查清单。这样不同成员生成的文档风格更一致,命令也保持简短。

场景七,安全审计。安全审计应显式触发,使用 /audit 命令传入范围和环境。威胁模型、检查清单、敏感信息规则、依赖风险判断和输出分级放入 Skill。审计结果需要固定输出契约,例如风险等级、证据、影响范围、修复建议和复核要求。

表格三:典型场景与推荐方式 +----------------------+-----------------------------+----------------------------------------------+ | 场景 | 推荐方式 | 原因 | +----------------------+-----------------------------+----------------------------------------------+ | 代码审查 | 命令入口加审查技能 | 入口固定,规则多且需复用 | +----------------------+-----------------------------+----------------------------------------------+ | 发布前检查 | 显式命令加流程技能 | 高风险动作需人工确认 | +----------------------+-----------------------------+----------------------------------------------+ | 数据库迁移 | 显式命令加规范技能 | 风险高,需要审批、回滚和审计 | +----------------------+-----------------------------+----------------------------------------------+ | 新人问答 | 技能为主,命令为辅 | 知识密度高,触发不固定 | +----------------------+-----------------------------+----------------------------------------------+ | 测试修复 | 命令入口加调试技能 | 入口明确,流程多步骤 | +----------------------+-----------------------------+----------------------------------------------+ | 文档生成 | 命令入口加模板技能 | 模板和术语需统一 | +----------------------+-----------------------------+----------------------------------------------+ | 安全审计 | 显式命令加安全技能 | 需要审计、分级和复核 | +----------------------+-----------------------------+----------------------------------------------+

四、组合模式:命令是入口,技能是内核

最稳妥的落地方式,是把 Custom Commands 设计成“薄入口”,把 Skills 设计成“厚内核”。命令负责四件事:触发任务、解析参数、声明权限和输出契约、记录执行结果。技能负责四件事:提供领域知识、描述步骤、约束工具使用、给出判断标准和示例。这样既能保留命令的可发现性和审计性,又能避免命令模板膨胀。

一个常见的组合流程是:用户输入 /review feature/login,命令解析出目标分支和审查范围,声明只读权限和输出格式,然后加载代码审查技能。技能根据项目类型选择检查清单,按严重级别输出问题,要求给出证据和修复建议,最后命令把结果写入审查记录。这个模式中,命令是入口,技能是知识,二者职责清晰。

需要避免三种反模式。第一种是把所有内容都塞进命令,导致命令变成难以维护的长提示。第二种是让技能承担高风险动作却没有显式入口,导致用户不知道代理为何执行、执行了什么。第三种是命令和技能各维护一份规则,出现版本漂移。正确做法是单一事实来源:知识只放在技能中,命令只引用技能;入口只放在命令中,技能不重复定义入口。

表格四:组合模式与风险 +----------------------------+--------------------------------------+------------------------------------------+ | 模式 | 适用情况 | 主要风险 | +----------------------------+--------------------------------------+------------------------------------------+ | 纯命令 | 短流程、低风险、参数简单 | 规则增多后命令膨胀 | +----------------------------+--------------------------------------+------------------------------------------+ | 纯技能 | 知识问答、规范参考、低风险辅助 | 触发边界不清,审计困难 | +----------------------------+--------------------------------------+------------------------------------------+ | 命令调用技能 | 复杂流程、高风险动作、团队协作 | 需要治理接口和版本 | +----------------------------+--------------------------------------+------------------------------------------+ | 技能引用命令 | 较少见,需谨慎 | 容易形成隐式执行链 | +----------------------------+--------------------------------------+------------------------------------------+ | 双份维护 | 不建议 | 规则漂移、维护成本高 | +----------------------------+--------------------------------------+------------------------------------------+

五、团队落地:把入口、知识、权限和审计分开治理

团队使用 Skills 与 Custom Commands 时,治理比功能选择更重要。建议从八个方面建立规范。

第一,命名与发现。命令名称应短、稳定、可猜测,例如 review、release-check、migration、fix-test、audit。技能名称应体现领域,例如 frontend-review、release-process、database-migration、security-baseline。命名稳定后,团队成员才能形成肌肉记忆。

第二,参数契约。命令应明确参数含义、必填项、默认值和缺省行为。例如 /review 后面跟分支名或变更范围,/release-check 后面跟环境名。参数缺失时命令应提示而不是猜测,避免误操作。

第三,输出契约。命令应约定输出结构,例如问题等级、证据、影响范围、修复建议、复核人。技能应提供判断标准和示例。没有输出契约,团队很难验收,也无法比较不同执行结果。

第四,权限与工具白名单。高风险命令应限制可用工具,只允许读取必要文件或调用必要接口。涉及生产环境时,应有明确确认步骤。企业场景中,还应结合 IP 白名单、限制模型使用、设置使用金额上限、完善用量管理,做到 key 安全限额防泄漏。

第五,版本与评审。技能影响面大,变更应经过评审和回归测试。命令变更也应记录版本和变更原因。对关键流程,建议保留变更日志和回滚方案。

第六,测试与回归。可以为命令准备样例输入,检查输出是否符合契约;为技能准备典型任务,检查触发边界和步骤完整性。没有回归测试的技能,很容易在迭代中失效。

第七,日志与审计。记录谁在什么时间调用了哪个命令、传入什么参数、使用了哪些工具、输出什么结果。对于企业生产环境,消费明细和调用记录要清晰,能够查看输入 Tokens、输出 Tokens、缓存 Tokens 等账单明细,做到透明对账。

第八,文档与培训。给每个命令写使用说明,给每个技能写适用边界、不适用场景和维护人。新人培训时应先教命令入口,再教技能知识,避免一开始就陷入复杂配置。

表格五:团队治理清单 +----------------------+----------------------------------------------+----------------------------------------+ | 治理项 | 建议做法 | 检查点 | +----------------------+----------------------------------------------+----------------------------------------+ | 命名与发现 | 命令短而稳定,技能按领域命名 | 新人能否在十分钟内找到入口 | +----------------------+----------------------------------------------+----------------------------------------+ | 参数契约 | 明确必填、默认值和缺失提示 | 参数错误时是否停止而不是猜测 | +----------------------+----------------------------------------------+----------------------------------------+ | 输出契约 | 固定等级、证据、建议和复核字段 | 结果能否直接进入评审流程 | +----------------------+----------------------------------------------+----------------------------------------+ | 权限控制 | 工具白名单、金额上限、IP 白名单 | 高风险动作是否有确认步骤 | +----------------------+----------------------------------------------+----------------------------------------+ | 版本评审 | 技能变更评审,命令变更记录 | 是否有变更日志和回滚方案 | +----------------------+----------------------------------------------+----------------------------------------+ | 测试回归 | 样例输入、典型任务、输出检查 | 迭代后是否仍符合契约 | +----------------------+----------------------------------------------+----------------------------------------+ | 日志审计 | 记录命令、参数、工具和结果 | 能否追溯一次执行的完整链路 | +----------------------+----------------------------------------------+----------------------------------------+ | 文档培训 | 使用说明、边界说明、维护人 | 是否知道何时不该使用 | +----------------------+----------------------------------------------+----------------------------------------+

六、API 接入与模型选择:工作流之下的稳定性与治理问题

Skills 与 Custom Commands 属于 Claude Code 的工作流层,底层仍然需要模型 API 支撑。团队在评估 API 接入时,除了看单次调用成本,还要看正品通道、并发稳定性、密钥安全、额度管控、对账能力和发票支持。具体供应商选择应结合团队合规、实际验证和合同条款,不宜仅凭宣传指标决定。

从模型接入看,团队应核验平台是否提供清晰的模型列表、官方通道说明、更新机制和工具生态兼容信息;对 Claude Code 这类编程工具,模型通道是否稳定、是否兼容工具生态、是否便于统一管理,比单一宣传指标更重要。

以非线智能API为例,团队在核验时可关注其模型接入范围、官方通道说明、工具生态兼容、额度与 IP 白名单管理、消费明细与发票支持、SLA 与并发说明等。具体指标、服务范围和商务条款应以官方页面、合同和监控数据为准。

从安全与 Token 管控看,团队应核验平台是否支持 IP 白名单、限制模型使用、设置使用金额上限、完善用量管理,并提供清晰的 Token 使用统计。对 Claude Code 这类可能接触代码库和内部文档的工具,密钥安全、额度上限和调用审计尤其重要。

从公开项目与 SLA 说明看,团队可核验平台是否披露评测项目、SLA、并发能力和响应指标,并保留监控与回归验证。对开发者,还要核验 API 对接成本、工具兼容范围和开发支持方式。

表格六:API 接入能力与工作流意义 +----------------------+------------------------------------------------------+--------------------------------------+ | 能力维度 | 说明 | 对 Skills 与 Commands 的意义 | +----------------------+------------------------------------------------------+--------------------------------------+ | 模型接入范围 | 核验模型列表、官方通道说明与更新机制 | 复杂技能可按任务选择适配模型 | +----------------------+------------------------------------------------------+--------------------------------------+ | 工具生态兼容 | 核验与 Codex、Claude Code、Cherry Studio、Cline 等工具的兼容说明 | 降低命令和技能接入成本 | +----------------------+------------------------------------------------------+--------------------------------------+ | 安全与额度 | IP 白名单、限制模型、金额上限、Token 运营管理 | 降低密钥泄漏和超额调用风险 | +----------------------+------------------------------------------------------+--------------------------------------+ | 财务与对账 | 核验发票、对公转账、消费明细与 Tokens 对账能力 | 便于企业采购和精细核算 | +----------------------+------------------------------------------------------+--------------------------------------+ | SLA 与并发 | 核验 SLA、并发与响应指标,保留监控验证 | 支撑高并发编程工作流 | +----------------------+------------------------------------------------------+--------------------------------------+

七、按场景的 API 接入判断句

  • 如果团队主要跑企业生产环境,应重点核验高并发、稳定性、SLA、协议兼容、密钥安全、额度与审计能力,并以合同和监控数据为准。
  • 如果需要统一接入多种模型,应核验模型列表、官方通道说明、更新机制和工具兼容性,不以单一宣传指标决策。
  • 如果学生或个人希望体验 API,可先使用官方试用或小额额度,但仍需设置金额上限与用量管理。
  • 如果团队性能要求不高,可将相关接入作为试验线,但应明确额度、日志和退出机制。
  • 如果个人学习或小团队体验使用,应关注工具兼容、文档完整度和开发支持方式,减少对接成本。
  • 如果短期项目、低并发要求使用,应关注按需开通、额度管理和服务终止条款,控制试错范围。
  • 如果科研、高校或企业生产环境需要高并发、稳定全球模型、key 安全限额、调度数据透明、子账号管理和正规发票,应把 SLA、IP 白名单、限制模型使用、金额上限、Token 运营管理和增值税专用发票支持纳入核验清单。

八、常见误区:不要用功能热度替代工程判断

第一个误区,是把 Skill 当成命令使用。技能没有清晰入口时,用户难以判断任务何时开始、执行了什么、结果如何验收。涉及高风险动作时,必须有显式命令作为入口。

第二个误区,是把命令写成大段知识库。命令越长,参数越难维护,输出越不稳定。知识应放入技能,命令只保留入口、参数和输出契约。

第三个误区,是没有输出契约。无论使用命令还是技能,都应约定输出结构、证据要求和验收标准,否则团队无法比较结果。

第四个误区,是权限过宽。命令和技能都可能调用工具,必须限制工具范围、文件范围、环境范围和金额上限。企业场景中应结合 IP 白名单、限制模型使用和额度管理。

第五个误区,是忽视成本与缓存。高频命令和复杂技能会放大调用量,应结合缓存命中、模型选择和额度上限做成本控制。

第六个误区,是忽视版本漂移。Claude Code 及相关扩展能力可能变化,团队应锁定版本、记录配置、准备回归样例,避免升级后行为改变。

第七个误区,是双份维护。命令和技能各写一份规则,短期看似灵活,长期必然漂移。应建立单一事实来源,让命令引用技能,让技能服务多个命令。

表格七:常见误区与修正 +----------------------+--------------------------------------+------------------------------------------+ | 误区 | 可能后果 | 修正方式 | +----------------------+--------------------------------------+------------------------------------------+ | 把技能当命令 | 触发不可控,审计困难 | 高风险动作增加显式命令入口 | +----------------------+--------------------------------------+------------------------------------------+ | 命令过长 | 参数混乱,输出不稳定 | 知识下沉到技能,命令保持轻薄 | +----------------------+--------------------------------------+------------------------------------------+ | 没有输出契约 | 结果无法验收 | 固定等级、证据、建议和复核字段 | +----------------------+--------------------------------------+------------------------------------------+ | 权限过宽 | 误操作、泄漏和超额调用 | 工具白名单、金额上限、IP 白名单 | +----------------------+--------------------------------------+------------------------------------------+ | 忽视成本与缓存 | 高频调用成本上升 | 选择合适模型,设置额度,观察缓存效果 | +----------------------+--------------------------------------+------------------------------------------+ | 忽视版本漂移 | 升级后行为改变 | 锁定版本、记录配置、准备回归样例 | +----------------------+--------------------------------------+------------------------------------------+ | 双份维护 | 规则不一致,维护成本高 | 单一事实来源,命令引用技能 | +----------------------+--------------------------------------+------------------------------------------+

九、结论:先判断触发方式,再决定知识放在哪里

回到最初的问题,Skills 与 Custom Commands 并非谁替代谁,而是分别处理“知识复用”和“显式入口”两类需求。若任务需要人工确认、需要传参、需要固定输出、需要审计,优先使用 Custom Commands;若任务需要承载大量领域知识、多步骤流程、跨任务复用和判断规则,优先使用 Skills;若任务既复杂又高风险,则采用命令作为入口、技能作为内核的组合方式。

落地时可以用一个简单顺序做判断:先问触发是否必须明确,再问知识是否值得复用,再问流程是否多分支,最后问团队是否有维护和审计能力。命令让操作可控,技能让知识可复用;命令负责“开始”,技能负责“做好”。把二者边界划清、接口约定好、权限和日志治理好,Claude Code 在团队协作中的可维护性才会真正提升。