一、执行摘要
构建 agentic 产品的团队,往往一开始会把 "skills(技能)" 当作一种内部构造:它是可复用指令、工具 schema,以及一点点嵌在每个 agent 内部的胶水代码的混合体。对于少量技能和单个 agent,这种方式可能是可行的,但一旦多个 agent、多个团队以及多个环境需要安全且一致地共享能力,这种方法通常就会崩溃。开放的 Agent Skills 格式(例如一个 SKILL.md 清单文件,再加上可选的脚本/资源)以及 OpenAI API 层面的 "Skills" 概念,都是行业正在标准化"什么是 skill"以及"它应如何被打包"的例子。
这篇文章解释了一种务实的方法:通过 MCP 以一种 modular control-plane pattern(模块化控制平面模式)引入 "skills" 功能(这里的 MCP 被视为用于技能的 "Modular/Message/Management Control Plane",并在本文中简化为 "Modular Control Plane")。在这个模式中,skills 变成一种受治理、可部署的能力,并由中央统一管理(注册表、策略、审计、路由),而 agent 保持相对"轻量"的客户端角色,按需发现和调用 skills。这一模式借鉴了分布式系统中众所周知的 control plane / data plane(控制平面 / 数据平面)分离------例如集群和 service mesh 中的做法。
在 2024--2026 年间,"MCP" 也被广泛用来指代 Model Context Protocol(模型上下文协议,一种通过 client--server 架构和 JSON-RPC 将 AI 应用连接到外部工具/数据的开放协议)。这个协议可以作为本文所描述的模块化控制平面模式中的 "message plane(消息平面)",但即便你使用的是不同的工具传输机制,这里的架构思想依然适用。
通过一个 MCP 控制平面引入 skills 的关键影响包括:
你将获得集中式治理(身份、策略、审批)、一致的审计、更安全的秘密处理,以及在多个 agent 和产品之间更简单的复用------代价则是额外的平台复杂度、新的失效模式,以及必须被明确设计出来的运维负担(发布、SLO、事故响应)。
对于那些不想从零开始构建每一个 control-plane 原语的团队,可以将像 Peta 这样的使能平台作为一种务实的实现选项------这里将其定位为"一条可行路径",而不是唯一要求。
二、概念与思维模型
1、在现代代理系统中,"skills" 的含义
当一个 "skill" 以一种可发现、可版本化、可按需加载的方式封装 procedural knowledge(过程性知识)及其支撑资产时,它才最有用。在 Agent Skills 格式中,一个 skill 是一个目录,其中包含一个 SKILL.md 清单文件(YAML front matter + instructions),以及可选的 scripts/、references/ 和 assets/。
OpenAI 的 "Skills" 概念也类似地将 skills 描述为带有 SKILL.md 清单文件的、可版本化的文件包------其目的在于编码可重复工作流和约定。
从架构上看,有两个区分非常重要:
- Instruction skills(指令型技能):主要是指导信息(如何可靠完成某任务、约束条件、边界情况)。在这里,渐进披露和 prompt/context 效率最重要。
- Action skills(动作型技能,带工具支持):指令 + 一个可执行的 "effect(效果)"(调用 API、运行工作流、修改系统)。在这里,身份、授权、秘密处理、审计和安全控制都变成不可妥协的要求。
2、我们所说的 MCP:作为模块化控制平面
在分布式系统中,control plane 通常承载配置、策略和全局决策,而 data plane 则执行高吞吐的"工作"(请求、工作流、路由)。这种分离广泛存在于基础设施系统和 service mesh 中:control plane 分发配置/策略并收集遥测;data plane 则处理执行路径,并且必须保持高性能和高韧性。
把它应用到 agent skills 上:
- skill data plane:真正执行 skill 逻辑的运行时集合(读取数据、转换数据、调用下游系统)。
- skills control plane:一个集中式层,治理 skill 的发现、可用性、策略、身份、秘密注入、审计,有时还治理部署/生命周期。
核心思想是把 skill 的"治理"从 skill 的"执行"中解耦。这使得无论哪个 agent 调用某个 skill,都可以执行一致的约束。
3、缩写冲突:MCP 模式 vs MCP 协议
在当前生态中,Model Context Protocol(通常也简称 "MCP")是一种开放协议,它标准化了 AI 应用如何连接到外部上下文和工具。它定义了角色(hosts / clients / servers),并使用 JSON-RPC 2.0 消息;它也明确提到自己受到 Language Server Protocol 的启发,后者通过标准化集成方式影响了整个生态。
本文主要将 "MCP" 视为 Modular Control Plane(模块化控制平面)模式。如果团队底层使用的是 MCP 协议,那么映射关系是很直接的:
- Skill runtimes 可以是 MCP servers。
- Agents(或 agent runtimes)可以是 MCP clients。
- 模块化的 "control plane" 可以位于它们之间,充当 gateway / registry / policy layer。
这也与 OpenAI 工具体系越来越把 "remote MCP servers" 视为一等工具扩展机制的趋势相一致。
4、为什么渐进披露是可扩展 skills 的骨架
一个实用的 skills 系统不会在会话开始时就把每个 skill 的完整指令全部加载进上下文。Agent Skills 明确建议使用 "progressive disclosure(渐进披露)":先只加载一个小型目录(名称/描述);只有在 skill 被激活时才加载完整指令;再按需加载其他资源。
这一原则与模块化控制平面高度兼容:控制平面可以提供目录并执行访问门控,而 skill runtime 只在被调用时提供指令/资源------从而同时减少 token 成本和敏感流程的意外暴露。
5、"Peta" 作为一种使能选项处于什么位置
这个模式的一种具体实现方式,是在 agent 与 MCP server 之间运行一个 gateway-and-vault control plane。Peta 把自己描述为这样一种控制平面:位于 AI agent 和工具/API 之间的一层,带有策略执行、服务端凭证注入,以及逐调用审计日志。
与这个模式高度对应的关键要素包括:
- Gateway + managed runtime:Peta Core 被描述为一个受管的 MCP runtime 和 "zero-trust gateway(零信任网关)",负责 server 生命周期(包括 lazy loading / recovery 行为)。
- Policy + access control:Peta Console 被描述为 "policy and audit plane(策略与审计平面)",使用 RBAC/ABAC 控制与审批。
- Human-in-the-loop:Peta Desk 被描述为高风险操作的审批界面,允许 review / approve / deny,同时不暴露原始凭证。
- Secrets handling:Peta Core 的仓库声称秘密在静态时加密(PBKDF2 + AES-GCM),并在执行时服务端注入,且秘密不会进入日志。
本文将这些视为说明性原语:你可以自己实现它们,也可以从别处获取。重要的是能力集合,而不是品牌。
三、MCP 控制平面世界中的 skill 调用生命周期
一个典型的端到端生命周期如下:
1、发现(Discovery)
agent 加载 skill catalog(只加载元数据)。这类似于 Agent Skills 的 "Tier 1" 披露。
2、选择(Selection)
agent 基于描述边界选择 skill;工具可以通过 "tool search" / namespace loading 被延后加载,以保持 token 开销较小。
3、调用(Invocation)
agent 发出一个带结构化参数的 tool call;control plane 在执行之前验证身份和策略。
4、执行(Execution)
skill runtime 执行工作;秘密在服务端注入,而不是被放进 agent prompt 或日志中(这是推荐的安全姿态)。
5、审计与遥测(Audit and telemetry)
每一个 tool call 都变成一个可审计、可追踪的事件流,从而支持运维监控和合规调查。
一个有用的可靠性类比是:许多 control-plane / data-plane 系统都允许 data plane 在 control plane 暂时不可用时,继续使用缓存或 last-known-good configuration(最近一次已知良好的配置)运行。例如在 Kong Gateway 这样的控制平面 / 数据平面产品中,文档明确说明:当 data-plane 节点与 control plane 失联时,它们仍然可以继续代理流量并使用缓存配置。
对于 skills 来说,类似的设计目标应该是:
"如果 registry / policy plane 出现故障,现有 skill 调用应当能够优雅降级,但高风险变更和新部署必须 fail safe。"
四、迁移策略
1、迁移原则:将 "skill packaging" 与 "skill serving" 分离
最平滑的迁移方式,是把 "skill packaging(技能打包)" 当作一条轨道,把 "skill serving / governance(技能提供 / 治理)" 当作另一条轨道:
- Packaging track:标准化"什么是一个 skill"(目录结构、元数据、作用域边界、版本纪律),从而使 skill 可跨 runtime 和产品迁移。
- Serving track:决定 skill 如何变得可调用(本地工具、远程服务、MCP server 或 "virtualized" wrapper),以及调用如何被治理(策略、秘密、审计)。
这种分离降低了风险:你不必为了获得基本的 skill hygiene,就强迫整个组织接受一次"大爆炸式"平台迁移。
2、一个无需代码的分步迁移计划
下面这些步骤,是写给那些今天已经拥有 "agent skills"(内部 prompt 片段、tool wrappers、LangChain 风格工具、自定义插件等),并且希望迁移到一个 MCP 控制平面实现的团队的。
建立 skill 清单与风险分类
先建立一个清单,回答以下问题:
- 今天这个 "skill" 究竟是什么:纯指令型、只读工具型,还是写动作型?
- 它接触哪些系统,它处理哪些数据类别(PII、财务、源代码、凭证)?
- 它如何被触发:显式调用,还是通过描述隐式匹配?
- 它有哪些失效模式:错误输出、部分执行、不安全写入、数据泄露?
这一步本质上是风险管理,而不是架构设计。它对应 AI 风险框架里的 "GOVERN / MAP" 思路:在扩大部署之前,先定义所有权、问责和上下文。
将 skills 规范化为开放包格式
把每个 skill 转换成一个遵循 Agent Skills 结构的目录:
SKILL.md,带有严格的 scope / trigger 描述。- 可选的
references/,存放长篇领域文档。 - 可选的
scripts/,存放可确定、可测试的辅助逻辑。 - 可选的
allowed-toolsfront matter,用于表达该 skill 预先批准了哪些工具(虽然仍属实验性,但作为策略提示很有用)。
即使你的最终形态是 "skills as services(技能即服务)",这种包格式也会成为你的 source-of-truth artifact(唯一可信工件),用于审核、版本管理和评估。
一个实用的编写指南是:Agent Skills 最佳实践强调,skills 应扎根于真实的组织经验(真实约定、边界情况、纠错反馈),而不是通用的 LLM 生成建议。
在改变执行架构之前先引入评估基座
在你改变 runtime 架构之前,先锁定预期行为。
Agent Skills 的评估指南建议,在有和没有 skill 的情况下(或者与上一版本相比)运行结构化评估,以量化该 skill 是否能在各种 prompt 和边界情况下提升可靠性。
在这个阶段,你完全可以在当前 agent runtime 中"本地"测试 skills,但请投资于一个持久的评估工作区布局和基线方法,这样后续架构变化就可以被测量,而不是被争论。
为每个 skill 包上一层稳定的 "tool contract"
在设计文档和 skill 元数据中,用清晰英文定义每个 skill 的 "tool contract",其中包括:
- Inputs and outputs:需要哪些结构化参数,返回什么输出 schema。
- Side effects:它可能对外部系统造成哪些变更。
- Security requirements:需要哪些权限范围,是否需要人工审批,数据保留预期是什么。
- Nonfunctional budgets:延迟目标、成本限制、预期调用量。
OpenAI 的 function/tool calling model 是一个很好的概念锚点:tools 是模型可以选择调用的功能单元;tool calls 是模型发出的结构化请求。
这个 contract 步骤至关重要,因为它让你可以改变实现(local → service → MCP server),而不需要迫使每个 agent 团队重写 prompt 和胶水代码。
为每个 skill 创建一个 MCP 可访问的 serving layer
现在你有两条常见的 "serving" 路径:
路径 A:"Skill as MCP server"
将每个 action skill 实现为一个独立服务(或 MCP server),对外暴露工具。在 Model Context Protocol 中,MCP servers 提供能力;hosts / clients 通过标准化消息来连接和调用工具。
路径 B:"Skill as wrapper over an existing API"
保留你的下游服务不变;创建一个薄适配器来暴露 skill contract。像 Peta 这样的平台声称它们可以把 REST API 转换成 MCP servers,并把 skill package 视为 "namespaced tools(命名空间化工具)",但这里的架构重点只是:适配器可以通过避免立刻重写后端来降低迁移成本。
无论哪条路径,目标都是:agent 不再需要直连每一个下游系统,也不再需要嵌入凭证;它们应该只需要与 control plane / gateway 通信。
逐步引入 control plane
至少,你的 control plane 需要具备:
- 一个 skill registry 和 catalog service(版本、元数据、所有者、环境)。
- 一个 routing layer,将 "skill id + version" 映射到 runtime endpoint。
- 一个 policy engine(RBAC/ABAC)以及 gateway 上的 policy enforcement point。
- 一条 audit log,以及跨 tool call 的 trace correlation。
- Secret management,从而确保凭证始终留在服务端。
Become a Medium member
如果你使用像 Peta 这样的产品,它明确把自己定位为:提供 gateway routing、服务端凭证注入、RBAC/ABAC 策略执行和逐调用审计的一体化栈。
用 dual-run 策略迁移 agents
一种安全的迁移模式是:
- 保留旧的 embedded skill 路径作为 fallback。
- 将一小部分流量(或一小部分用户 / tenant)路由到新的 control plane。
- 用你的评估基座和生产遥测来比较结果。
- 逐步扩大覆盖范围;当新路径达到可靠性和安全目标后,再废弃 embedded skills。
这与 SRE 风格的 rollout thinking 一致:定义 SLO、观察 error budget,并且只有当可靠性站稳后才加速变更。
3、具体示例:迁移一个 "refund & returns(退款与退货)" skill
假设你有一个 customer support agent,其中有一个内部 "Refund Order(订单退款)" skill,它会:
- 从订单服务读取订单详情;
- 校验退款资格;
- 在支付处理器中执行退款;
- 写入一条 case note。
在传统的 embedded 设计中,agent 往往直接持有 tool schemas,并直接调用多个 API。在 MCP 控制平面模型下:
- Skill package: "refund-order" 包含一个
SKILL.md,其中有严格边界("只有在 X 时退款,绝不在 Y 时退款")、一个检查清单和边界情况说明;一个 references 文件保存策略细则;可选的 scripts 处理确定性的计算(如 proration)。 - Serving layer: "Refund Order" 变成一个单一、受治理的 tool contract。runtime 本身可以去调用内部服务和支付 API。
- Control plane: 当退款金额超过阈值时拒绝执行,除非获得人工审批;支付凭证在服务端注入;请求、策略决策、审批和结果都被记录下来。这符合 zero-trust 原则:从不隐式信任,执行最小权限,并在每次请求时评估访问。
- Risk reduction: 你避免了把支付凭证放进 prompt / 日志,并且可以集中管理审计记录------这一点非常重要,因为 tool-backed 的 agent 系统在控制薄弱时,极易受到 prompt injection 和不安全输出处理的影响。
五、权衡、替代方案与决策标准
1、通过 MCP skills control plane 你会获得什么
在多个 agent 之间实现一致治理
与其让每个 agent 内嵌自己的权限逻辑,不如让 gateway 统一执行策略(这正是 service mesh 和 zero-trust 架构中的典型 control-plane 属性)。
更安全的秘密处理与更清晰的合规叙事
将凭证留在服务端,并在执行时注入,可以降低秘密意外出现在 prompt、日志或 trace 中的概率------随着工具表面的扩大,这种风险会越来越大。Peta 的文档和代码仓库强调 "zero credential exposure(零凭证暴露)" 和服务端注入,这很好地说明了一种具体实现模式。
更好的复用,以及更少的 N×M 集成痛苦
像 Model Context Protocol 这样的协议被引入的一个明确目的,就是通过标准化工具连接来减少碎片化集成。control plane 则在此基础上增加了企业级治理,因为"只有协议"往往是不够的。
Token 效率与 skill 可扩展性
渐进披露(catalog → instructions → resources)意味着你可以拥有很多 skills,而不需要在每个 session 都支付完整 token 成本;tool search 还可以把大工具表面的加载延迟到真正需要时。
带审计等级 trace 的运维可观测性
集中式 audit logs,加上 OpenTelemetry 风格的 traces / metrics / logs,使得你可以像对待任何生产系统一样对待 skill execution------可调试、可追责。
2、你需要付出的代价(以及陷阱)
更多活动部件与新的失效模式
一个 control plane 会引入在纯 embedded 模型中不存在的依赖。如果设计不当,control plane 和 data plane 之间的隐藏耦合会造成严重事故;行业复盘已经反复表明,看似隔离的平面之间可能存在微妙依赖(例如 DNS 或 telemetry 层面的耦合)。
策略错误会被集中放大
集中策略很强大,但一个配置错误的规则,也可能阻断大类 skills,或者在大范围内放行不安全行为。这正是为什么 zero-trust 指南强调显式 policy decision point 和持续验证,而不是 "配置一次就不再管它"。
安全面扩大只是转移,而不是消失
把 skills 移到服务端,减少了凭证暴露,但也增加了攻击者去打 tool servers、gateways 和 adapters 的动力。近期关于 MCP server 漏洞的报道表明:如果缺乏加固和输入验证,tool servers 会变成关键攻击面。
工程组织需要变化
你需要更清晰的 ownership boundary:谁拥有 skill contract,谁拥有 policy,谁拥有 runtime SLO。NIST AI RMF 强调,治理与问责结构是可信系统的基础。
3、替代方案以及它们何时更优
传统 embedded skills(内嵌在每个 agent 里)
适合于: 你只有一个 agent、skills 风险低,并且你更看重速度而不是平台严谨性。
代价: 重复、权限逻辑不一致、执行难审计;随着 skills 增多,扩展痛苦上升。
不带 control plane 的 tool calling(直连服务)
适合于: 你已经拥有强 API 治理,并且可以依赖那些 API 本身的标准认证、日志和限流。
代价: agents 仍然经常需要凭证,而且每个 agent 的工具表面管理会变得脆弱;新出现的 agent 安全风险依然存在。
只有 MCP 协议,没有独立治理层
适合于: 你想快速获得互操作性,并且所在环境监管要求较低。
代价: 企业往往需要集中式访问控制、审批和审计轨迹;协议标准化的是消息,而不一定是治理。
在单个平台 runtime 中做 "tool namespace + tool search"
在 OpenAI 生态中,namespace grouping 和 tool search 是明确的方法,用来高效管理大型工具表面。在你真正构建一个完整 control plane 之前,这可以是一个中间地带。
4、选择 MCP control plane 还是 embedded skills 的决策标准
如果你满足以下条件,应当强烈考虑 MCP control plane:
- 多个 agent / 团队共享工具;
- 存在高风险写操作;
- 存在监管 / 合规要求;
- 或者反复发生由于授权和审计不一致而导致的事故。
如果你的 skills 是纯指令型、低风险,并且你缺乏维护平台层的运维能力,那么通常可以暂缓引入 control plane。
六、运行一个 MCP skills control plane
这一部分将 MCP control plane 视为一个真正的生产系统,而不只是一个概念上的改进。
1、运维考量
版本管理与发布纪律
把 skill contract 和 skill package 当作 API 来对待:给它们做版本,定义弃用窗口,并尽可能提供向后兼容。Agent Skills 和 OpenAI Skills 格式本身就假定 skills 是可版本化的 bundle;你的 control plane 应当在路由和策略中明确版本选择。
环境隔离
你的 registry 和 policy system 应当把环境(dev / staging / prod)视为一等维度,因为一个 agent 可以调用 "prod refund" 与只能调用 "staging refund",是本质上不同的能力。Peta 的文档明确提到按 "哪些环境" 定义访问,这是这一原则的一个具体表达。
Control plane 与 skill execution 之间的失败隔离
设计时要假设:临时的 control-plane 故障,不一定要让所有 skill execution 全部停止。许多 CP / DP 系统在断联时会缓存配置并继续运行,Kong Gateway 等 CP / DP 产品中对此有明确文档。把这个思想映射到 skills 上,意味着你可以缓存 catalog,并在某些 read-only 模式下继续执行,而当 policy/auth 无法验证时,拒绝高风险写操作。
Runbooks 与事故响应
如果你使用基于 MCP 协议的 skills,请为以下情况准备 runbook:
- registry 宕机;
- proxy / gateway 饱和;
- approval workflow backlog;
- 下游凭证轮换失败。
Service-mesh 指南强调,应监控 control plane 的配置拒绝情况,并测试策略变更------这些原则同样适用于 skill policy rollout。
2、安全与隐私
把威胁模型锚定在 LLM 特有的失效模式上
OWASP 的 LLM 应用 Top 10 强调了 prompt injection 和 insecure output handling 等风险,而这些都与 tool-backed skills 直接相关。如果模型能够被诱导用攻击者指定的参数去调用一个工具,那么工具层就变成了真正的 enforcement boundary。
在 gateway 上应用 zero-trust 原则
NIST SP 800--207 将 zero trust 概括为 "never trust implicitly(绝不隐式信任)"、持续评估访问并执行最小权限。在 skills 系统中,gateway 正是天然的 policy enforcement point。
秘密绝不能进入 prompt
在早期 agent 系统中,一个反复出现的运维失败就是:凭证泄露到 prompt、日志或 trace 里。一个在服务端注入秘密、并给客户端发短期 token 的 control plane,可以降低这一风险;Peta 明确把 "gateway tokens only(仅网关令牌)" 和服务端注入视为安全保证,其仓库也描述了静态加密与日志中排除秘密的做法。
对高风险 skills 采用 "approval gates"
Human-in-the-loop 审批不只是一个 UX 特性;它更是针对金融或生产影响写操作的一项安全控制。Peta 描述了一个用于高风险操作的审批应用(Desk);无论你是否选择 Peta,这种模式都是:基于策略标签把 skills 标记为 "approval required",并在执行前要求显式审查。
针对 skill artifact 的供应链安全
一旦 skills 成为可部署包,就应该把它们当作软件供应链工件来对待。像 SLSA 这样的框架强调 provenance(来源证明)和可渐进采用的控制措施,以降低篡改风险------当多个团队共同贡献 skills 和 scripts 时,这一点尤其适用。
3、性能与可靠性
延迟预算与冷启动
一个 control plane 会增加 hop(agent → gateway → runtime → downstream),而 skill runtimes 可能还会带来冷启动成本。一些平台通过 warm pools 和 lazy loading 来缓解这一点;Peta 声称这两种行为都属于其 runtime 特性。如果你选择自建,就需要等效机制(池化、缓存、并发限制)。
将 token 效率视为性能维度
对于 LLM 驱动系统来说,"性能" 也包括 token 开销。渐进披露以及 tool search / namespace loading,是控制这一成本并提升响应速度的明确手段。
为优雅降级做设计
理想状态是:在许多部分故障场景下,只读 skills 仍然能够继续工作;而当无法做出策略决策、或审批系统不可用时,写 skills 应该 fail safe。这与 zero-trust 架构对敏感操作"优先严格执行、而不是优先可用性"的思路一致。
4、开发者体验
让 skill 编写与评审显式化
Agent Skills 最佳实践强调:要有清晰边界的描述、连贯的单元划分,并且包含 agent 真正需要的 "gotchas(坑点)" 和验证循环。在 MCP control-plane 世界里,由于更多 agent 会复用同一个 skill,这些编写实践会更有价值。
优先稳定 "contracts",而不是 agent 专用 prompt 魔法
如果 skills 会被多个 agent 调用,那么 skill contract(输入 / 输出与约束)必须稳定且有文档。Tool calling 模式让这一点更清楚:tools 和 tool calls 被明确定义为独立于模型自然语言响应之外的实体。
同时支持本地与云端 discovery
Agent Skills 关于 "adding support" 的指导指出:云托管或沙盒 agent 需要像 API 或远程 registry 这样的 discovery mechanism,而不是文件系统扫描。control plane 天然就会成为 cloud agents 的 registry。
5、测试策略
把测试分为三层:
Skill package testing(指令正确性与边界)
采用 eval-driven iteration,用真实 prompt 和边界情况进行测试,并比较有无 skill 的基线,正如 Agent Skills 评估指南所建议的。
Contract testing(输入 / 输出 / 副作用)
验证 runtime 是否遵守 tool contract,以及授权失败是否一致且可预测。
Policy testing(权限与审批)
测试 RBAC/ABAC 规则和 approval gates 是否行为正确。这一点至关重要,因为集中策略本身就是单点失效点。Peta 的仓库明确把 RBAC/ABAC 和 approvals 视为核心保证;如果你实现类似控制,就必须像测试任何关键系统一样对其进行测试。
6、监控与审计
使用标准可观测性信号,并关联 tool calls
OpenTelemetry 将自己描述为一个面向 traces、metrics 和 logs 的厂商中立框架;其规范定义了遥测如何表示与导出。一个 MCP control plane 应当发出可关联的 telemetry:
agent request → tool call → policy decision → downstream execution
监控 golden signals 并定义 SLO
Google 的 SRE 指南将 latency、traffic、errors 和 saturation 称为 "four golden signals(四大黄金信号)",并建议使用 SLO 和 error budget,而不是坚持 100% 可靠性。对于 skills,应按 skill 类别(只读 vs 写、关键 vs 非关键)定义 SLO,并用 error budget 来决定 rollout 速度。
对高风险 skills 来说,audit trails 不是可选项
一条 audit log 至少需要包含:
- 调用者身份
- tool 名称 / 版本
- policy decision
- approval 状态
- outcome
- 以及足以调查事故的上下文
同时又不能把秘密记录进去。
Peta 的仓库描述了这种 "every tool call is logged(每次工具调用都被记录)" 保证,并强调秘密不会进入日志;即便你不用 Peta,这也应是一个坚实的最低要求。
7、成本与维护
成本从 "agent complexity" 转移为 "platform spend"
Embedded skills 会把成本推到每个 agent 团队:重复的工具 schema、不一致的胶水逻辑、高 token 开销,以及定制监控。MCP control plane 则把这些成本集中到共享基础设施中(gateway、registry、audit storage、approvals),这有可能更高效------但前提是采用范围足够大,值得这类投入。
审计保留与遥测量会成为真实成本驱动项
集中式 tool-call 日志和 trace 会增长得很快。你需要规划 retention tiers、sampling 策略,以及与隐私和合规预期一致的数据最小化。NIST AI RMF 强调生命周期治理和风险管理------把这同样应用到日志与保留决策上。
七、真实世界用例与推荐 rollout 方案
1、MCP control plane 真正擅长的用例
带写操作的企业客服
退款、账户变更、订阅取消:这些都是高风险动作。Control plane 能提供最小权限范围、高风险操作审批,以及审计轨迹。
内部 IT 和 SecOps 副驾驶
能够重置密码、轮换令牌或查询敏感日志的 agent,不应该内嵌凭证,也不应绕过审批流程。集中式策略执行可以阻止因 prompt injection 驱动的滥用。
数据分析与 "受治理的 RAG + action"
那些检索内部数据、运行转换、再发布结果的 skills,会同时受益于渐进披露(保持上下文轻量)和标准 telemetry(便于调试)。
开发者工作流与代码执行工具
那些运行代码、应用 patch 或与 repo 交互的 skills,需要谨慎的 sandboxing 以及可审计的执行边界。MCP 协议生态明确支持工具集成,但一旦工具能够真正修改系统,治理就必不可少。
2、推荐 rollout 方案
一个 rollout 方案应被视为 风险降低 + 可靠性工程,而不是一个普通功能发布。
从 packaging 与 evals 基础开始
把一小组 skills 规范化为开放包格式,并建立 eval 基线(有无 skill 对比)。这一步要在平台变化之前完成,这样你才能正确归因改进效果。
先通过 control plane 试点只读 skills 层
选择那些没有外部副作用的 skills(只读数据检索、总结、格式化)。这样你就能以很低的 blast radius 验证 catalog discovery、routing、telemetry 和 token 效率。
接着引入策略执行与秘密处理
把带凭证的工具放到 gateway 后面,并消除客户端侧凭证。验证 "prompt / 日志中没有秘密",并测试最小权限范围。
为高风险写 skills 加入审批
对不可逆或高影响操作(财务、生产变更)引入 human-in-the-loop。确保审批 UI / workflow 在运维层面可扩展(队列监控、超时、升级)。
通过 namespaces 与 deferred loading 扩展
随着工具表面增长,把 skills 分组到 namespace 中,并/或依赖 tool search,避免一次加载一切。这有助于控制 token 成本,并让 agent 推理保持聚焦。
把 SLO 与 error budget 操作化
按 skill 类别定义 SLO;用 error budget burn 来决定 rollout 节奏。这让平台演进与用户体验对齐,并防止 "feature velocity" 超过可靠性承受能力。
只有当不变量被验证后,才废弃 embedded skills
只有在你能够证明以下几点之后,才废弃旧路径:
- 通过 evals 验证行为等价;
- 生产可靠性满足 SLO;
- 审计 / 安全态势得到改善。
八、结论
通过 MCP 模块化控制平面模式来引入 skills,重点并不在于改变你的 agent 如何"思考",而是在于改变你的组织如何治理和运营 agent 能做的事情。开放的 skill 打包标准(基于 SKILL.md 的 bundle 与渐进披露)让标准化 skill 编写与测试变得更容易;而像 Model Context Protocol 这样的协议生态,则使工具集成更具互操作性。
Control plane 增加了企业迟早都需要的部分:集中式身份、策略执行、审批、永远不会进入 prompt 的秘密,以及经得起事故复盘的审计轨迹。这些收益都是真实的------但前提是你把 control plane 当作生产基础设施来对待,配上 SLO、可观测性和纪律化 rollout 实践。
如果你想加速实现,像 Peta 这样的平台可以提供一个现成的 gateway / vault / policy / audit 栈,用于基于 MCP 的工具执行;如果你选择自建或采用其他平台,同样的架构经验依然适用。