0

0

从 MCP 到 SKILL:关于 Agent 扩展机制的思考

聖光之護

聖光之護

发布时间:2026-01-16 18:18:10

|

489人浏览过

|

来源于php中文网

原创

从 mcp 到 skill:关于 agent 扩展机制的思考

转自:https://www.php.cn/link/41a548283ac8c823620920d740f0f0d4)

去年 MCP 引发广泛关注,许多人曾乐观地认为:只要把各类工具全部接入,AI Agent 就能“真正活起来”,仿佛拥有了手脚,具备执行任意任务的能力。

若将 LLM 比作大脑(即核心智能引擎),那么 tool call / function call 就如同赋予它操控四肢的能力:模型负责生成参数,代码负责执行动作,再将结果反馈回模型继续推理。

MCP(Model Context Protocol)正是将这一能力抽象为一套“标准化接口”:过去各服务往往各自提供 SDK + API,开发者为 Agent 封装工具时,需反复处理语言适配、依赖管理、身份认证、响应格式转换等问题,工程复杂度呈指数级增长;而 MCP 的价值,正在于将“工具接入”这件事系统化、规范化。

因此,当时最主流的预期顺理成章:只要 MCP 工具生态足够丰富,Agent 就能拥有无限延展的操作能力,理论上无所不能。

但现实很快给出了回应——接连撞上两堵高墙。

第一堵墙:容量限制(上下文长度瓶颈)

每个工具的定义本身需嵌入系统 prompt 或等价的工具上下文区域;工具数量越多,占用的上下文空间越大,留给实际任务推理的空间就越小。实践中已出现明显约束:部分 AI 编程助手最多仅支持配置 100 个 tools,而单个 GitHub 相关的 MCP 接口就可能涵盖 50 余项功能。你希望把整个世界都连进来,可大脑的“工作台面”就这么大。

第二堵墙:任务闭环障碍(组合性与状态管理)

多数 MCP 调用结果会被直接拼入上下文。短内容尚可接受,长输出则引发两类问题:要么导致上下文迅速膨胀,触发截断;要么因长度超限而丢失关键尾部信息。

我在开发 holon 项目时就遭遇过典型困境:让 AI 处理 PR 的 review comments,一旦评论数量较多,直接回填上下文极易被截断,最终修复总是遗漏。后来反而回归更“朴素”的方案——改用 GitHub CLI 先拉取评论并写入本地文件,再借助 grepjq 或轻量脚本完成筛选与聚合,仅将提炼后的摘要送回上下文供模型继续决策。

这个过程让我重新意识到一个常被忽略的基础事实:上下文更适合承载决策信号与推理线索,而非充当数据暂存层。文件系统、数据库、对象存储等外部介质,天然支持分页读取、随机寻址与多次访问,更适合承载中间状态。当任务涉及反复查阅、局部提取或增量处理时,将数据外置,往往比强行塞入上下文更稳健、更可持续。

Spell.tools
Spell.tools

高颜值AI内容营销创作工具

下载

由此看来,MCP 所暴露的局限,并非全然源于协议设计本身,而更多来自一种惯性使用方式——我们常常不自觉地把它当作“向上下文中灌数据”的管道,而非“将能力嵌入工作流”的连接器。

也正是在这样的反思背景下,SKILL 这一范式逐渐进入视野。

若 SKILL 仅表现为纯文本结构,它更像是对 prompt 分层组织的一种优化;但一旦与命令行工具、脚本逻辑深度结合,它便不再只是提示词技巧,而演化为一种面向具体场景的工作流封装:同一类任务所涉及的步骤顺序、产出物类型、工具链组合、异常重试策略、标准输出格式,都被打包整合在一起。普通用户或许不清楚 MCP 是什么,但他能立刻理解:“这个技能可以帮我自动整理评论并逐条修复问题”。

从实现角度看,这类似于——过去靠“胶水代码”粘合多个工具,如今则用“自然语言指令 + LLM + Bash/脚本”来完成同样目标。这种转变也正推动 Prompt Engineering 向 Skill Engineering 演进。灵活性显著提升,但相较高度标准化的扩展路径,SKILL 仍面临诸多待解难题。

安全性首当其冲。Bash 与脚本类工具原本主要面向开发者,使用者通常具备一定风险识别意识;但当 Agent + SKILL 普及至大众用户后,安全挑战将急剧放大。“靠提醒用户谨慎操作”显然失效,Agent 运行环境必须提供更强的沙箱隔离能力,包括资源访问控制、进程权限限制与执行行为审计等。

标准化则是另一大瓶颈。SKILL 天然按任务场景聚合,也因此更深度绑定运行环境:目录结构如何约定?中间产物存放路径是否统一?状态如何持久化与复用?跨设备、跨平台时能否无缝迁移?若这些问题缺乏共识与规范,SKILL 很难脱离特定系统成为通用能力模块,容易沦为私有插件。

回到 MCP,我并不认为 SKILL 的兴起意味着它的退场。相反,二者更宜形成协同分工:

MCP 负责“能力接入的标准化”,SKILL 负责“工作流编排与状态外置”。前者支撑能力规模化引入,后者保障任务稳定闭环。

MCP 并非必须由 Agent 直接调用并原样回填上下文;它完全可以被 SKILL 中的脚本调用,使执行结果首先落盘为可定位对象(如文件、句柄或资源标识符),再仅将摘要与索引信息反馈给模型。如此一来,上下文便回归其本质优势位——专注做判断、做推理、做权衡,而非被迫承担缓存职责。

MCP 与 SKILL 均处于发展早期,代表了 Agent 插件机制演进的不同阶段。当 Agent 开始承接真实世界的复杂任务时,真正关键的问题已不再是“有没有能力”,而是——上下文、状态与执行边界,该如何被合理划分与妥善安放

相关专题

更多
mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

180

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

278

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

253

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

121

2025.08.07

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1019

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

63

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

412

2025.12.29

function是什么
function是什么

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果。本专题为大家提供function是什么的相关的文章、下载、课程内容,供大家免费下载体验。

476

2023.08.04

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

2

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.7万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号