跳转至

能力承载面选择

在判断某项能力应放在规则、技能、MCP 服务器还是普通 CLI/API 工作流中时,将此作为路由指南。

ECC 并不将这些承载面视为可互换。目标是将每项能力放入最窄的承载面,同时保持正确性、控制 Token 成本,并避免带来不必要的运行时或供应链拖累。

简短版本

  • rules/ 用于确定性的、始终生效的约束,当路径或事件匹配时应被注入。
  • skills/ 用于按需工作流、更丰富的操作手册,以及 Token 开销较大、仅在相关时加载的指导。
  • MCP 用于交互式结构化能力,这类能力受益于跨会话或客户端的长生命周期工具/资源承载面。
  • 本地 CLI 或仓库脚本用于简单的确定性操作,这类操作不需要持久化服务器。
  • 技能内部的直接 API 调用用于狭窄的远程操作,此时完整的 MCP 服务器会比问题本身更重。

决策顺序

按顺序提出以下问题:

  1. 是否每次路径或事件匹配时都应发生,且不涉及模型判断?
  2. 使用 rule。
  3. 这是否主要是操作手册、工作流或建议层,且只应在任务实际需要时加载?
  4. 使用 skill。
  5. 该能力是否需要结构化的交互式工具/资源接口,供多个运行框架或客户端反复调用?
  6. 使用 MCP。
  7. 它是否是一个简单的本地操作,可以以脚本形式运行,而无需保持服务器存活?
  8. 使用本地 CLI 入口点或仓库脚本,必要时再用技能包装它。
  9. 它是否只是更大工作流中的一个狭窄远程集成步骤?
  10. 从技能或脚本中直接调用外部 API。

按承载面指南

Rules

将规则用于:

  • 路径范围内的编码不变量
  • 安全底线和权限约束
  • 应始终适用的运行框架/运行时约束
  • 不应依赖模型自由裁量的确定性提醒

不要将规则用于:

  • 会膨胀每次匹配编辑的大型操作手册
  • 可选工作流
  • 昂贵且只在部分时间重要的领域上下文

Skills

将技能用于:

  • 多步骤工作流
  • 判断密集型指导
  • 昂贵到只能按需加载的领域操作手册
  • 跨脚本、API、MCP 工具和相邻技能的编排

不要将技能用作真正需要确定性路由的静态不变量的堆放地。

MCP

当能力受益于以下情况时,使用 MCP:

  • 结构化的工具输入/输出
  • 可复用的资源或 Prompt
  • 跨客户端的重复使用
  • 应跨 Claude Code、Codex、Cursor、OpenCode 及相关运行框架工作的稳定接口
  • 长生命周期服务器进程值得其运维开销

在以下情况下避免使用 MCP:

  • 任务是一次性本地命令
  • 服务器唯一要做的事情是执行一次 shell 命令
  • 服务器带来的安装/运行时负担超过产品价值

CLI / 仓库脚本

在以下情况下优先使用本地脚本或 CLI:

  • 操作是确定性的
  • 启动成本低
  • 工作流主要是本地的
  • 暴露持久化工具/资源承载面没有好处

这通常是以下场景的正确选择:

  • lint/test/build 包装器
  • 本地转换
  • 小型安装器
  • 每次调用运行一次的内容生成

直接 API 调用

在以下情况下,优先在现有技能或脚本内部使用直接 API 调用:

  • 集成范围狭窄
  • 远程操作是更大工作流的一部分
  • 你尚不需要可复用的传输承载面

如果同一远程集成变得核心、重复且多客户端,那就是将其升级为 MCP 承载面的信号。

成本与可靠性偏好

当两个选项都可行时:

  • 优先选择更小的运行时承载面
  • 优先选择更低的 Token 开销
  • 优先选择外部活动部件更少的路径
  • 优先选择 ECC 原生打包,而不是引入另一个第三方依赖

除非该能力明显值得其维护、安全和安装负担,否则不要将外部插件或包依赖规范化为一等 ECC 承载面。

仓库策略

从外部仓库引入想法时:

  • 复制底层想法,而不是外部依赖
  • 将其重新打包为 ECC 原生规则、技能、脚本或 MCP 承载面
  • 如果功能已为 ECC 实质性扩展或重塑,请重命名它
  • 除非该依赖是有意为之、经过审计且对工作流至关重要,否则避免发布要求用户安装无关第三方包的说明

示例

  • 一个应始终适用于 api/** 编辑的后端认证不变量:
  • rule
  • 更深入的 API 设计和分页操作手册:
  • skill
  • 跨多个运行框架使用的可复用远程搜索承载面:
  • MCP
  • 一次性仓库分析器,读取本地文件并写入报告:
  • 本地 CLI 或脚本,可选地由 skill 包装
  • 更广泛客户运营工作流中的单个计费门户会话创建步骤:
  • 工作流内部的直接 API 调用

实用经验法则

如果你不确定,请从小处开始:

  • 从 rule 开始处理确定性不变量
  • 从 skill 开始处理指导/工作流
  • 从脚本开始处理一次性执行
  • 只有当结构化服务器边界明显物有所值时,才将其提升为 MCP

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC