Skill 越多,系统越聪明?还是越危险?

一个反直觉的真相:能力增长伴随风险增长

在软件工程的大多数领域,"更多能力"通常意味着"更好的系统"。一个数据库支持更多的查询类型,是进步;一个 API 返回更多的字段,是增强;一个框架提供更多的功能,是升级。更多的能力几乎总是与更高的价值正相关。

但在 Agent 系统中,这个直觉被颠覆了。Skill 越多, Agent 确实可能越 " 聪明 "------ 它能处理更多类型的任务,适应更多场景。但与此同时,系统也变得越来越危险。 能力的增长和风险的增长,不是两条独立的曲线,而是紧密耦合的双生子。

这个反直觉的真相,是理解为什么 MCP 的"约束"比"赋能"更重要的关键。如果你只看到 Skill 带来的"聪明",而忽视了 Skill 带来的"危险",你就会成为那个不停往系统里加 Skill、直到系统失控才追悔莫及的开发者。

本章将深入分析:为什么 Skill 越多,系统越危险?危险的来源是什么?有没有办法让"聪明"增长而"危险"不增长?如果不能,我们该如何在两者之间取得平衡?

二、 Skill 如何让 Agent 变得更 " 聪明 "

首先,我们必须承认:更多的 Skill 确实让 Agent 变得更聪明。这种"聪明"体现在以下几个方面:

覆盖更多用户场景

一个只有 5 个 Skill 的客服 Agent,只能处理订单查询、商品查询、退货申请、退款、转人工这 5 种场景。当用户问"我的发票在哪里"时,Agent 只能回答"抱歉,我无法处理这个问题"。

一个有 50 个 Skill 的客服 Agent,可以处理订单、商品、物流、发票、优惠券、会员积分、投诉建议、退换货政策、价格保护、赠品查询......几乎所有用户可能问到的问题。从用户视角看,这个 Agent 显然"更聪明"------它能解决更多问题。

完成更复杂的任务

简单的任务只需要调用一个 Skill。复杂的任务需要调用多个 Skill,并组合它们的结果。

例如,"帮我申请价格保护"这个任务,需要:查询订单价格、查询当前价格、计算差价、检查价格保护政策、创建价格保护申请、发送通知。如果一个 Agent 只有处理单一订单查询的能力,它无法完成这个任务。但如果 Agent 拥有价格保护相关的全套 Skill,它就能独立完成这个复杂任务。

适应更多上下文变化

不同的用户、不同的时间、不同的设备,可能需要不同的处理方式。更多的 Skill 意味着 Agent 有更多的"工具"来适应上下文的变化。

一个只有"发送邮件"能力的 Agent,无论用户是谁、无论邮件内容是什么,都只能发送邮件。但一个拥有"发送邮件""发送短信""发送推送通知""发送站内信"等多种能力的 Agent,可以根据用户的偏好和紧急程度选择最合适的通知方式。

减少人工介入

最终,更多的 Skill 意味着 Agent 可以在更多场景下独立完成任务,而不需要升级到人工客服。这直接降低了运营成本,提高了响应速度。

从这些角度看,"Skill 越多,系统越聪明"是一个正确的判断。但这只是硬币的一面。

三、 Skill 如何让系统变得更 " 危险 "

现在,让我们翻转硬币,看看另一面。为什么更多的 Skill 会让系统变得更危险?

危险一:攻击面扩大

每一个 Skill 都是一个潜在的"攻击入口"。Skill 越多,攻击面越大。

在第五章的数学分析中,我们已经看到:N 个 Skill 意味着 Agent 可以产生 N^T 种调用序列。对于攻击者来说,这意味着 N^T 种潜在的攻击路径。攻击者不需要直接攻破你的系统------他们只需要找到一条"Agent 会执行的、但你不希望它执行"的调用路径。

一个只有 5 个 Skill 的系统,攻击面很小。攻击者可能尝试让 Agent 调用 cancel_order,但其他 4 个 Skill 能造成的破坏有限。一个有 50 个 Skill 的系统,攻击面大得多------delete_user、refund_amount、grant_admin、export_all_data......每一个 Skill 都可能被滥用。

危险二:组合爆炸带来的未知行为

即使每个 Skill 本身是安全的,Skill 的组合也可能产生不安全的"涌现行为"。

一个经典的例子:Skill A 读取用户输入并执行系统命令(比如在一个安全的沙箱中)。Skill B 可以修改环境变量。单独看,这两个 Skill 都是安全的------Skill A 只能在沙箱中执行命令,Skill B 只能修改环境变量。但组合起来:Agent 先调用 Skill B 修改环境变量,绕过沙箱限制,然后调用 Skill A 执行危险命令。这个组合行为不是任何开发者"设计"的,而是 Agent"即兴"创造出来的。

这就是"组合爆炸"的危险。当你拥有 50 个 Skill 时,两两组合有 1225 种可能,三三组合有 19600 种可能,四四组合有 230300 种可能......你不可能测试所有的组合,也不可能预测所有组合的涌现行为。而 Agent 会在运行时"发现"那些你从未测试过的组合。

危险三:权限膨胀

在传统的权限模型中,权限是"静态授予"的------用户 A 有权限 P,用户 B 没有权限 P。这种模型是稳定的、可预测的。

但在 Agent 系统中,权限是"动态组合"的。Agent 可能通过调用 Skill A 获得一些信息,再调用 Skill B 处理这些信息,最终实现一个它本不该被允许的操作。

一个具体的例子:Agent 没有"读取用户隐私数据"的权限。但它有"读取用户公开信息"的权限和"关联分析"的能力。通过组合这两个能力,Agent 可能从公开信息中推断出隐私数据。这不是传统意义上的"权限绕过",而是"权限组合"------单独看每个 Skill 都没有违反权限策略,但组合起来却达到了违规的效果。

Skill 越多,这种"权限组合"的可能性就越多。你无法通过给每个 Skill 单独分配权限来解决这个问题,因为问题出在组合层面,而不是单个 Skill 层面。

危险四:错误传播和放大

在第五章中,我们讨论了概率性决策。当 Agent 调用多个 Skill 时,错误会沿着调用链传播和放大。

假设每个 Skill 调用的成功率是 99%。这是一个很高的成功率。但如果一个任务需要调用 10 个 Skill,整体成功率是 0.99^10 ≈ 90.4%。如果任务需要调用 20 个 Skill,成功率下降到 0.99^20 ≈ 81.8%。如果每个 Skill 的成功率是 95%(这在真实系统中更常见),20 个 Skill 的整体成功率只有 0.95^20 ≈ 35.8%。

更糟糕的是,错误不是独立的。一个 Skill 的错误可能导致后续 Skill 的级联错误。Skill A 返回了错误的数据,Skill B 基于这个错误数据做出错误决策,Skill C 执行了错误操作------错误被放大了。

Skill 越多,调用链越长,错误传播和放大的风险就越大。

危险五:维护成本的指数增长

最后,Skill 越多,系统的维护成本不是线性增长,而是指数级增长。

每个 Skill 都有自己依赖的外部服务、API 版本、认证方式、数据格式。当这些依赖发生变化时,你需要更新对应的 Skill。当你有 10 个 Skill 时,这是可控的。当你有 100 个 Skill 时,这变成了一个全职团队的工作。

更关键的是,Skill 之间的隐式依赖使得变更影响范围难以评估。修改 Skill A 可能影响所有与 A 组合使用的其他 Skill。你无法通过静态分析找到这些影响,因为组合关系是 Agent 在运行时动态创造的。

四、聪明 vs 危险:两条曲线的交点

现在,我们可以画出两条曲线:

  • 聪明曲线:随着 Skill 数量增加,Agent 的"聪明程度"也在增加,但增速逐渐放缓。从 0 到 10 个 Skill,聪明程度提升很快;从 10 到 50 个 Skill,聪明程度继续提升,但每个新增 Skill 带来的边际收益在递减;从 50 到 100 个 Skill,聪明程度的提升越来越小,因为大多数常见场景已经被覆盖了。
  • 危险曲线:随着 Skill 数量增加,系统的"危险程度"不仅增加,而且增速越来越快。从 0 到 10 个 Skill,危险程度增长相对平缓;从 10 到 50 个 Skill,危险程度开始加速增长;从 50 到 100 个 Skill,危险程度呈指数级上升。

这两条曲线必然有一个交点。在交点之前,增加 Skill 是"净收益"------聪明程度的提升大于危险程度的增加。在交点之后,增加 Skill 变成"净损失"------危险程度的增加超过了聪明程度的提升。

这个交点在哪里?

这个问题没有标准答案,因为它取决于系统的具体设计、安全要求、业务场景。但可以确定的是:在没有****MCP 这样的协议层和控制平面的情况下,这个交点出现得非常早。 可能在你拥有 20-30 个 Skill 的时候,危险程度就已经超过了聪明程度。

这就是为什么很多 Agent 系统在 Demo 阶段(5-10 个 Skill)看起来很棒,但在规模化阶段(20-50 个 Skill)迅速崩溃。他们跨过了那个交点,但没有人意识到。

五、有没有办法让 " 聪明 " 增长而 " 危险 " 不增长?

这是一个关键问题。如果"聪明"和"危险"是不可解耦的,那么 Agent 系统的规模化就会有一个天然的上限。任何系统最终都会达到那个交点,然后崩溃。

好消息是:" 聪明 " " 危险 " 是可以被解耦的,但解耦需要基础设施。

传统方法的失败

传统的解耦方法是"在 Skill 层面做文章"------让 Skill 更安全、更健壮、更可控。比如:给每个 Skill 加上权限检查、输入验证、审计日志。这种方法有一定效果,但它面临两个根本问题:

第一,每个****Skill 都要重复实现这些安全机制 ,导致代码重复和遗漏风险。当你有 100 个 Skill 时,你不可能保证每个 Skill 都正确实现了所有安全机制。

第二,安全问题出在组合层面,而不是单个****Skill 层面 。即使每个 Skill 都是"绝对安全"的,它们的组合仍可能产生不安全的涌现行为。你无法通过加固单个 Skill 来解决组合问题。

MCP 的解耦方案

MCP 提供了一种不同的解耦方案:不在****Skill 层面做文章,而是在 Agent Skill 之间插入一个协议层和控制平面。

在这个方案中:

  • Skill 可以专注于"怎么做"------实现具体的业务逻辑。Skill 不需要关心安全、权限、审计、审批。
  • 控制平面(如 Peta)负责"谁能做、什么时候做、怎么做才算安全"------统一处理凭证管理、权限校验、审计日志、人工审批。

这种解耦的效果是:你可以不断增加****Skill (提升 " 聪明 " ),同时通过控制平面来控制 " 危险 " 的增长速度。 控制平面不会让"危险"停止增长------组合爆炸和涌现行为仍然存在------但它会将"危险"的增长曲线从"指数级"拉平为"线性级"。

具体来说,MCP 控制平面通过以下机制控制危险增长:

  1. 统一的权限策略:在控制平面定义"哪些 Agent 可以调用哪些 Skill,在什么条件下",而不是在每个 Skill 里实现。这消除了"遗漏权限检查"的风险。
  2. 运行时注入凭证:Skill 永远看不到真实凭证,Agent 只获得短期令牌。即使 Skill 被攻破,密钥也不会泄露。
  3. 完整的审计日志:每一次 Skill 调用都被记录。当出现问题时,可以快速追溯"发生了什么、是谁做的、怎么发生的"。
  4. 人工审批:高风险 Skill 需要人工确认才能执行。这为"涌现行为"提供了最后一道防线------即使 Agent 产生了一个从未测试过的调用组合,如果它触发了一个高风险 Skill,人工可以拦截它。
  5. 调用链追踪:控制平面记录完整的调用链,使得 Agent 的"组合行为"变得可观测、可分析、可优化。

六、 Skill 设计原则:在聪明和危险之间取得平衡

除了依赖 MCP 控制平面,Skill 本身的设计也会影响"聪明 vs 危险"的平衡。以下是几条核心原则:

原则一: Skill 应该有明确的 " 副作用标签 "

每个 Skill 应该声明它的副作用类型:只读、写操作、高危操作、不可逆操作。MCP 控制平面可以根据这些标签自动应用不同的策略------只读 Skill 不需要审批,高危 Skill 需要双重审批。

原则二: Skill 应该尽可能 " " " 单一 "

小 Skill 更容易被复用,也更容易被审计。一个大而全的 Skill(比如 process_user_request)是黑箱,你不知道它内部做了什么。小而单一的 Skill(比如 update_user_email)行为透明,风险可控。

原则三: Skill 不应该包含决策逻辑

Skill 应该是"确定的"------给定相同的输入,总是执行相同的操作。如果 Skill 内部包含决策逻辑(比如"如果 A 则做 X,如果 B 则做 Y"),那么 Agent 的行为就变得更难预测。决策应该由 Agent 做出,Skill 只负责执行。

原则四: Skill 应该有清晰的输入输出 Schema

清晰的 Schema 不仅是接口规范,也是安全边界。控制平面可以根据 Schema 进行输入验证和输出脱敏,防止 Agent 传入恶意参数或泄露敏感数据。

七、小结:聪明与危险的平衡,是 Agent 工程的核心命题

本章的核心观点可以总结如下:

  1. Skill 越多, Agent 越聪明,但也越危险。 这是 Agent 系统的内在矛盾,不是某个实现的问题。
  2. " 聪明曲线 " " 危险曲线 " 必然有一个交点。 在交点之前,增加 Skill 是净收益;在交点之后,增加 Skill是净损失。
  3. 在没有 MCP 的情况下,这个交点出现得非常早------可能在你拥有 20-30 个 Skill 的时候,危险就已经超过了聪明。
  4. MCP 控制平面不能消除 " 危险 " ,但可以将 " 危险 " 的增长曲线从指数级拉平为线性级,从而推迟交点的出现,甚至让交点变得无关紧要。
  5. Skill 本身的设计也影响平衡------明确的副作用标签、小且单一的职责、不含决策逻辑、清晰的输入输出Schema,都是好的 Skill 设计原则。

这个命题的核心是:你无法通过**"** 不加 Skill" 来避免危险 ------ 那样你的 Agent 就不够聪明,没有商业价值。你也无法通过 " 随便加 Skill" 来追求聪明 ------ 那样你的系统会迅速失控。真正的工程挑战是:在聪明和危险之间找到平衡,并通过 MCP 这样的基础设施来扩展这个平衡点。

在下一章,我们将进入一个更实际的讨论:OpenClaw + Skill + Agent :为什么 " 能跑 " 不等于 " 能上线 " 这个讨论将把我们之前建立的概念(Agent、Skill、Tool、MCP、OpenClaw、复杂度、风险)串联起来,指向一个具体的结论:生产级的 Agent 系统需要协议层和控制平面,这不是可选项,而是必选项。

相关推荐
研究点啥好呢5 分钟前
途游游戏AI产品经理面试题精选:10道高频考题+答案解析
人工智能·游戏·产品经理
KG_LLM图谱增强大模型9 分钟前
从数据孤岛到知识融合:用友大型本体模型LOM如何赋能企业知识管理和智能决策
人工智能·知识图谱
码以致用9 分钟前
用 DeepAgents 自动分析表格数据,一键生成图表与报告
人工智能·ai编程
码上掘金14 分钟前
基于深度学习的行人计数与人群密度分析系统设计与实现
人工智能·深度学习
北京软秦科技有限公司18 分钟前
灌封胶耐候测试报告为何更依赖“AI报告审核”?IACheck如何提升长期环境可靠性判断精度
人工智能
程序员果子22 分钟前
Agent设计手册:四层架构、工程约束、框架选型
人工智能·agent·智能体·agent框架
2401_8322981025 分钟前
SaaS 到 Agent-as-a-Service——OpenClaw 生态爆发,开启企业数字化新时代
人工智能
AI产品测评官33 分钟前
2026年AI招聘架构深潜:多Agent协同如何打造主动出击智能体代表?
人工智能·架构
captain_AIouo37 分钟前
Captain AI:全阶段适配不同规模OZON商家
大数据·人工智能·经验分享·aigc
HyperAI超神经1 小时前
在线教程丨支持600+语言,小米开源OmniVoice:仅需3-10秒参考音频实现语音克隆
人工智能·音频识别·语音生成