简介:本文围绕“Agent Skills的本质是什么”这一高频疑问,将技能包与函数调用、标准化连接协议、检索增强生成(RAG)三类主流方案进行系统对比,从知识类型、载体结构、执行主体、加载机制、成本与可控性等维度拆解差异,并给出典型场景选型建议与落地注意事项,帮助读者快速判断何时用技能、何时用工具、何时用检索。
Agent Skills(智能体技能)近期成为智能体领域的热门概念,但许多开发者看完介绍后仍会产生典型疑问:Skills 是不是又一种工具调用方式?它和函数调用、插件、知识库有什么区别?已经有 RAG 和工具调用了,为什么还需要 Skills?
这些疑问的根源在于:Skills 处于“提示工程、上下文管理、工具生态”三者的交叉地带,边界天然模糊。单独看它的形态(一个装着文档的目录),很难判断它到底新增了什么能力。只有把它与相邻方案放在一起对比,才能看清它解决了什么问题、没有解决什么问题。
因此,本文明确对比以下四类对象:
一句话概括:Skills 的本质是把领域专家经验“文档化、结构化、可按需加载化”的上下文管理方案,而不是新的模型能力接口。
一个示意性的技能文档如下:
# 技能名称:季度经营分析报告> 描述:当用户要求撰写经营分析、业绩复盘类报告时使用## 工作流程1. 与用户确认报告范围、时间窗与核心指标口径2. 调用数据查询工具获取原始数据3. 运行 scripts/clean.py 完成数据清洗4. 按"总览—分项—异常—建议"结构成文## 注意事项- 指标口径以知识库《指标字典》为准- 差异超过 20% 的项目必须在正文说明原因
开发者预先定义函数的名称、描述与参数 schema,模型在对话中输出结构化的调用请求,由应用层执行后将结果回传。它扩展的是模型的能力边界——让模型能够操作外部系统。示意性定义:
{"name": "query_order","description": "查询订单状态","parameters": {"type": "object","properties": {"order_id": { "type": "string" }},"required": ["order_id"]}}
将外部工具、数据源统一包装为遵循同一协议的服务端点,智能体应用作为客户端按标准方式发现与调用。它解决的是接入方式的标准化问题——避免每个工具与每个应用之间重复做点对点集成。
把外部文档切片、向量化并建立索引;查询时先检索相关片段,再注入上下文供模型参考。它补充的是模型知道什么——事实性、陈述性知识。
正因如此,四者并非互斥的竞争关系,而是同一智能体系统中承担不同职责的层次。
这四个问题彼此正交、各管一段,是理解 Skills 本质的钥匙:模型“知道事实、能调工具”之后,仍然可能“不知道这件事的正确流程”,Skills 补的正是最后这块短板。
结构化程度直接决定确定性与可控性:函数调用行为确定、结果可校验;技能文档的遵循程度依赖模型的理解能力,属于“软约束”。
这决定了风险模型不同:工具调用的风险集中在接口权限与副作用控制;Skills 的风险集中在“模型是否正确理解并遵循了指令”,需要靠评测而非类型系统来保障。
启动阶段 → 仅加载各技能的一行描述(极低上下文占用)任务命中 → 加载对应技能的完整指令文档执行需要 → 读取附属脚本、模板、参考资料
渐进式披露是 Skills 在上下文经济性上的核心设计:把占用方式从“常驻”改为“分层按需”,使得挂载大量技能而不显著膨胀基础上下文成为可能。
实践中,技能文档经常“指挥”其他三者:一份技能可以写明“第二步通过连接协议调用数据查询工具,第三步参照知识库的指标口径”。也就是说,在成熟架构中,Skills 往往承担流程编排职责,工具承担执行职责,协议承担接入职责,检索承担知识供给职责。
| 维度 | Agent Skills | 函数调用 | 标准化连接协议 | RAG |
|---|---|---|---|---|
| 解决的问题 | 怎么做(流程与经验) | 能做什么(动作接口) | 如何统一接入 | 知道什么(事实) |
| 知识类型 | 程序性知识 | 能力描述 | 接入规范 | 陈述性知识 |
| 载体 | Markdown 指令文档+可选脚本 | 函数 schema | 协议服务端点 | 向量索引+切片 |
| 执行主体 | 模型(+可选脚本) | 外部应用 | 外部服务 | 无执行 |
| 结构化程度 | 弱(自然语言约束) | 强(类型校验) | 强(协议约束) | 中(语义检索) |
| 上下文占用 | 分层按需加载 | schema 常驻 | 工具列表+调用时 | 检索片段 |
| 行为确定性 | 软约束,受模型能力影响 | 高,结果可校验 | 高 | 取决于检索质量 |
| 开发门槛 | 低(写文档即可) | 中高(编码与部署) | 高(服务化改造) | 中(数据工程) |
| 典型失效模式 | 误触发、步骤被跳过 | 参数错误、误调用 | 连接与鉴权故障 | 检索不准、内容过时 |
| 更适合的任务 | 流程性、规范类任务 | 精确事务操作 | 多工具生态接入 | 事实问答与查询 |
场景一:撰写季度分析报告。 步骤多、规范多,而数据查询工具已经具备。瓶颈在“模型不知道正确的分析框架与口径”——Skills 价值最大,把方法论沉淀为技能文档。
场景二:查订单、发起退款等事务操作。 要求精确、可审计、失败可追责——应走函数调用路径,用结构化参数与确定性执行兜底。
场景三:企业内有十几个内部工具要接入多个智能体应用。 重复集成成本高——先建设统一连接协议层,再让各应用复用。
场景四:客服回答产品参数、制度条款。 知识频繁更新、量大且以事实为主——RAG 更合适,注意知识库治理与更新流程。
场景五:财务月结这类复杂业务。 通常是组合方案:技能定义整体流程与检查清单,函数执行各环节动作,协议统一工具接入,检索补充制度口径。
在百度智能云等平台上构建智能体应用时,同样可以借鉴这一分层思路:把领域经验沉淀为可版本化管理的提示词资产与知识库配置,再与工具调用能力组合,逐步形成“经验资产化”的沉淀机制。
选型时不应问“哪个更好”,而应先定位当前任务的瓶颈:
回到最初的问题——Skills 的本质是什么?它既不是新协议,也不是新的工具接口,而是把专家经验以自然语言文档形式外置、再通过渐进式披露按需注入上下文的知识承载机制。用一句话归纳四者分工:
四个问题正交,四类方案互补。做技术决策时,先诊断瓶颈属于哪一层,再决定引入哪类能力,组合使用才是常态——这比争论“谁会取代谁”更接近问题的真相。