Agent Skills 调研总结

39 阅读4分钟

agent skills plant

Agent Skills 调研总结

skills vs mcp

skills 会干掉 mcp 吗?之前这个问题已经回复过,不能替代!

MCP 解决的是工具的连接问题,让工具发现和调用的标准化。 而 Skills 是一种轻量级的定义提示词的开放标准,可在 Skills.md 中定义专业知识和工作流,通过渐进式披露实现 Agent 更省更准的选择工具

官方提到 Skills 的 3 个优势:

  • Self-documenting: 容易理解和维护,可以当作代码进行 review 和迭代优化;
  • Extensible: 扩展性强,支持从简单的文本指令到可执行代码、资源和模板不等。
  • Portable: Skills 只是目录和文件,容易本地化编辑,版本控制和分享。

Skills 的核心价值不仅仅是 省准,还有一个关键点是 Context Window Management(上下文窗口管理)。 如果把所有工具的 definition 全部塞进 system prompt,上下文会爆炸且模型容易出现幻觉。 Skills 实际上充当了一个 RouterIndex 的角色,只有当 Agent 决定进入某个步骤时,才加载相关的 Prompts 和 Tools 定义。

skill-script vs mcp-tool

skill-script最大的风险是 rm -rf / 或者读取敏感配置,MCP 协议本身包含了一层权限确认(User-in-the-loop),这在协议层面上比裸跑 Script 多了一层安全保障。

如果把 skill 里面调用本地的 script 换成远程 mcp tool,

  1. 不会导致 agent 的轮次变多:当模型说要调用工具时,agent 调用 tool,并把 tool 的调用结果,发送给模型,让模型观察并决定下一步操作。
  2. 好处是 agent 调度的节点不用去管执行的安全性和稳定性,mcp 提供可靠的服务。
  3. 缺点是多了网络延迟和数据序列化和反序列化的过程,会导致延迟变长,但是看情况,没有大数据量这个 IO 延迟不会很大。

结合 github 上开源的 planning-with-files 这个 skills 来说明,这个 skills 核心是通过 3 个文件(task-plan.md,findings.md,progress.md) 来实践 ReAct;

  1. planning-with-files 的底层是 manus 一样的调度逻辑,但是没有体现 manus 大量 tool 集成的复杂度。
  2. manus 是面向多用户的通用智能体,有很多 sass 的工程化细节;
  3. manas 对任务执行环境支持沙盒隔离,我觉得这很适合使用本地化 script 的 skills,对不同的场景(幻灯片制作,开发应用,创建网站,设计),提供不同的容器环境(docker image),搭配不同的 skills 即可实现。

File as State 这其实是回归了 Unix 哲学。对于 Agent 来说,维护一个 progress.md 比维护复杂的内存变量更直观,也更容易被 LLM 理解和 自我修正。 但是工程化落地要考虑安全性,对于企业来说,未来理想的架构可能是 sandbox(skills + script) / skills + mcp

skill with mcp

一个示范的 skills 定义

---
name: skill名称
description: 简要描述这个skill的功能和使用场景

---

# skill名称

## 描述
描述这个skill的作用。

## 使用场景
描述触发这个skill的条件。

## 指令
清晰的分步说明,告诉agent具体怎么做。

## 示例 (可选)
输入/输出示例,展示预期效果。

已有的 mcp 生态 配合 skills 的使用:

  1. 在 skills 的 instruction 中,在某个步骤写明调用具体的 mcp-tool,模型负责生成调用参数;
  2. 通过 supergateway 可以将 stdio 的本地 mcp 服务暴露为 sse 接口提供远程访问,有的 tool(比如 git,bash,file,browser)的能力很复杂,通常是 高带宽/密集 IO 操作,通常是直接在操作系统执行。这个时候可以使用 supergateway 部署,使用网络协议简化调用;

比如 CodeReview 的场景,就适合使用 skills 结合本地 mcp 执行,

  1. 拉取代码:调用 mcp-tool:fetch_merge_request 获取完整信息
  2. 分析项目架构:analyze_repository,生成架构文档
  3. 比较差异:调用 mcp-tool:fetch_merge_request_diff 获取 commit diff
  4. 分析本次提交:analyze_commit,生成 review comment
  5. 提交审核意见:调用 mcp-tool:add_merge_request_comment 提交 review comment

其中 2 个 analyze 任务在本地执行更适合,因为 agent 需要使用 bash 脚本来检索大量的文件来分析项目代码。 指令可使用 skill-reference 中定义的编码规范来约束 review 建议。

skill 产品落地

  1. claude code 最先支持 skills,可以 git clone 导入 skill 到本地目录;
  2. cursor skills,支持从 从 GitHub 安装
  3. 国内的 trae ide 也已经支持 skill,支持创建/导入 SKILL.md,提供界面交互式编辑,不过没有提及 script,assets 等关联资源的定义。

总结

从上而下看 Prompt,Skills,Memory,MCP 这些都属于 Context Engineering 的范畴,爆火的 Skills 是工程化实践过程中的产物。 一个强大的 Agent 既需要 Skills 来封装领域知识和工作流程,也需要 MCP 来提供安全、可扩展的原子能力,并通过容器化技术将两者高效、安全地粘合在一起。