资讯动态

SK-001_Skill 的起源与演进:从 Function Calling 到 Agent Skill

发布时间:2026/9/13 16:14:05 来源:尧图企业网站定制
Skill 的起源与演进从 Function Calling 到 Agent Skill2023 年OpenAI 用一个functions参数重新定义了大模型与外部世界的交互方式。两年后“Skill” 成为 AI Agent 系统中最核心的抽象单元。本文梳理从 Function Calling → Plugin → Skill 的完整演进脉络揭示每一次范式跃迁背后的技术动因与设计哲学。一、前言为什么需要理解 Skill 的历史当我们谈论 AI Agent 的 “Skill” 时很容易将其简单理解为 “能调用的函数”。但这种理解会让我们在设计复杂 Agent 系统时陷入困境——函数是无状态的、无边界的、无身份的而 Skill 是有上下文的、有约束的、有自我描述能力的。要理解 Skill 为什么长成今天这个样子我们必须回到它的起点2023 年 6 月OpenAI 发布 Function Calling 的那个夏天。这条演进路线并非线性升级而是一次次对 “大模型如何与外部世界交互” 这个根本问题的重新回答。每一次回答都比上一次更深刻也更接近 Agent 系统的真实需求。二、Function Calling 的诞生让模型动手2.1 问题背景2023 年上半年GPT-4 刚刚发布。尽管它的推理能力令人惊叹但它有一个致命缺陷无法与外部世界交互。它不知道今天的天气无法查询数据库不能发送邮件。所有能力都被锁在了模型参数和上下文窗口里。开发者们尝试了各种 workaround在 prompt 里嵌入 JSON Schema、用正则表达式解析模型输出中的函数调用意图、甚至训练专门的 “调用解析器”。这些方法脆弱、不可靠且缺乏标准化。2.2 Function Calling 的设计2023 年 6 月 13 日OpenAI 在 API 中引入了functions参数。其核心设计极其简洁{model:gpt-4,messages:[{role:user,content:北京今天天气怎么样}],functions:[{name:get_weather,description:获取指定城市的天气信息,parameters:{type:object,properties:{city:{type:string,description:城市名称}},required:[city]}}]}模型的响应不再是自由文本而是一个结构化的函数调用意图{choices:[{message:{role:assistant,function_call:{name:get_weather,arguments:{\city\: \北京\}}}}]}2.3 历史意义Function Calling 解决了三个关键问题意图识别的标准化模型不再需要通过自由文本来 “暗示” 它想调用什么函数而是直接输出结构化的调用意图。参数提取的可靠化JSON Schema 为参数定义了类型和约束大幅降低了参数解析的错误率。人机协作的规范化开发者定义函数模型决定何时调用、如何传参形成了一种清晰的分工模式。但 Function Calling 的局限也很明显它只是 “函数调用”不包含执行逻辑、不包含错误处理、不包含使用约束。开发者需要自己实现调用链、结果回传、重试机制等所有编排逻辑。三、Plugin 生态的兴衰野心与现实3.1 ChatGPT Plugins 的愿景2023 年 3 月OpenAI 发布 ChatGPT Plugins比 Function Calling 还早三个月。Plugins 的野心远大于 Function Calling——它不仅要让模型 “调用函数”还要构建一个开放的生态系统。每个 Plugin 包含一个ai-plugin.json描述文件包含名称、描述、认证方式等一个 OpenAPI 规范定义可用的 API 端点一个人类可读的描述文档# ai-plugin.json 示例schema_version:v1name_for_model:weathername_for_human:Weather Plugindescription_for_model:获取全球城市的天气预报数据description_for_human:获取实时天气信息api:type:openapiurl:https://weather.example.com/openapi.yamlauth:type:none3.2 Plugin 为什么失败了ChatGPT Plugins 在发布时引起了巨大轰动但到 2024 年初OpenAI 逐渐将其边缘化最终在 GPTs 中用 Actions 替代了 Plugins。失败的原因是多方面的发现与安装的摩擦用户需要手动启用 Plugin且无法直观地知道哪个 Plugin 能解决当前问题。这违背了 “AI 应该自动选择工具” 的 Agent 理念。质量参差不齐开放生态带来了大量低质量 Plugin许多只是简单包装了一个 REST API缺乏真正有价值的领域逻辑。缺乏执行上下文Plugin 只定义了 “能做什么”API 端点但没有定义 “怎么做”执行策略、“什么时候做”触发条件、“做到什么程度”成功标准。这些缺失导致模型在使用 Plugin 时经常出现误用。安全模型过于简单Plugin 的认证机制API Key、OAuth无法满足复杂场景下的权限控制需求。3.3 Plugin 留下的遗产尽管 Plugin 生态失败了但它提出了几个重要的设计问题这些问题后来被 Skill 系统回答自描述性工具应该如何描述自己的能力可发现性Agent 如何在运行时发现合适的工具可组合性多个工具如何协同工作安全性如何在赋予能力的同时保持控制四、Skill 的语义升级从 “能做什么” 到 “是什么”4.1 范式转变2024 年下半年到 2025 年随着 Claude、GPT-4o、Gemini 等模型在 Agent 能力上的持续进化一个新的抽象层开始在各个框架中浮现Skill。Skill 不是 Function Calling 的简单升级也不是 Plugin 的改良版。它代表了一种根本性的范式转变维度Function CallingPluginSkill核心抽象函数签名API 端点能力单元描述方式JSON SchemaOpenAPI自然语言 结构化元数据包含内容仅接口定义接口 认证接口 执行 知识 约束调用方式模型决定模型决定模型理解后自主决策执行边界无API 调用完整执行上下文知识传递无无内嵌领域知识自我约束无无明确的能力边界4.2 Skill 的三个关键特征语义丰富性Semantic RichnessSkill 不仅告诉模型 “这个函数接受什么参数”而是通过自然语言描述告诉模型 “这个能力是什么、适用于什么场景、有什么限制”。这种语义密度让模型能够做出更准确的能力选择。执行完整性Execution Completeness一个 Skill 可以包含脚本、配置、依赖声明等完整的执行上下文。模型不需要关心 “如何安装依赖”、“如何处理错误”这些都被封装在 Skill 内部。认知对齐Cognitive AlignmentSkill 的描述方式与人类认知模型对齐。当我们说 “这是一个数据分析 Skill” 时我们传递的不仅是功能信息还有一整套隐含的预期它应该能处理表格数据、生成图表、进行统计分析等。4.3 代表框架Skill 作为核心抽象的代表性框架包括OpenAI Agents SDK2025将 Tools 概念扩展为可组合的能力单元Claude Computer Use MCP2024-2025通过 Model Context Protocol 实现标准化的能力接入LangChain/LangGraph2024-2025从 Chain 到 Tool 到 Agent 的逐步抽象升级OpenClaw Skills2025以 SKILL.md 为核心的自描述式 Skill 系统五、代码示例三种形态的对比5.1 Function Calling 形态# Function Calling纯粹的接口定义importopenai# 定义函数仅接口无实现逻辑描述functions[{name:analyze_csv,description:分析CSV文件并返回统计结果,parameters:{type:object,properties:{file_path:{type:string},columns:{type:array,items:{type:string}},operation:{type:string,enum:[mean,median,std,describe]}},required:[file_path,operation]}}]# 模型返回调用意图responseopenai.chat.completions.create(modelgpt-4,messages[{role:user,content:分析 sales.csv 的平均销售额}],functionsfunctions,function_callauto)# 开发者需要手动处理# 1. 解析 arguments# 2. 验证参数合法性# 3. 执行实际逻辑# 4. 处理异常# 5. 格式化结果回传# 6. 管理调用链多轮对话5.2 Plugin 形态# Plugin 形态API 端点 OpenAPI 规范# openapi.yamlopenapi:3.0.0info:title:Data Analysis Pluginversion:1.0.0paths:/analyze:post:summary:分析数据文件operationId:analyzeDatarequestBody:content:application/json:schema:type:objectproperties:file_url:type:stringdescription:数据文件的URLquery:type:stringdescription:自然语言查询responses:200:description:分析结果content:application/json:schema:type:objectproperties:result:type:stringchart_url:type:string# Plugin 仍然缺乏# - 执行策略失败后怎么办# - 使用约束什么场景下不该用# - 领域知识什么是平均销售额5.3 Skill 形态!-- SKILL.md自描述式 Skill -- # 数据分析 Skill ## 能力描述 这是一个数据分析 Skill能够对 CSV/Excel 文件进行探索性分析、 统计计算和可视化。适用于销售分析、用户行为分析、财务报表分析等场景。 ## 适用场景 - 用户需要对表格数据进行统计分析 - 需要生成数据可视化图表 - 需要发现数据中的趋势和异常 ## 不适用场景 - 实时数据流处理请使用流处理 Skill - 非结构化数据分析请使用NLP 分析 Skill - 数据量超过 1GB请使用大数据分析 Skill ## 使用方式 1. 将数据文件放到工作区 2. 用自然语言描述分析需求 3. Skill 会自动选择合适的分析方法 ## 依赖 - Python 3.10 - pandas, matplotlib, scipy ## 脚本 - analyze.py — 主分析脚本 - visualize.py — 可视化辅助 ## 参考材料 - examples/ — 常见分析场景示例 - patterns/ — 数据分析模式库这三种形态的对比清晰地展示了演进方向从 “告诉模型能调用什么函数” 到 “告诉模型这是一个什么样的能力”。六、演进逻辑总结6.1 技术驱动每次范式跃迁都由技术进步驱动2023 Function CallingGPT-4 的指令遵循能力足够强能够理解结构化的函数定义并输出结构化的调用意图。2023-2024 Plugin模型能力扩展到可以理解 OpenAPI 规范但生态管理和质量控制的挑战暴露了 “开放平台” 模式的局限。2025 Skill模型的上下文理解能力和推理能力进一步提升能够理解自然语言描述的能力边界和使用约束使得 “自描述式 Skill” 成为可能。6.2 需求拉动Agent 系统的复杂度不断提升也拉动了抽象层的升级单次调用 → 多步编排从 “调一个函数” 到 “完成一个任务”需要更丰富的执行上下文。通用工具 → 领域能力从 “获取天气” 到 “进行数据分析”需要内嵌领域知识。开发者控制 → Agent 自治从 “开发者决定调用链” 到 “Agent 自主选择能力”需要更语义化的描述。6.3 设计哲学的演变最深层的变化是设计哲学的演变Function Calling: 模型这里是你可以调用的函数列表。 Plugin: 模型这里是一个开放的工具市场你可以去发现和使用。 Skill: 模型这里是你的能力集合。每个能力都有明确的边界 当你理解用户需求后自主决定使用哪个能力。从 “函数” 到 “能力”从 “调用” 到 “理解”从 “开发者编排” 到 “Agent 自治”——这就是 Skill 的演进逻辑。七、展望Skill 的未来Skill 的演进仍在继续。几个值得关注的方向Skill 的自动生成Agent 能否根据任务需求自动创建新的 SkillSkill 的动态组合多个 Skill 能否在运行时自动编排成工作流Skill 的版本进化Skill 能否从使用反馈中自动优化自身Skill 的安全治理如何在保持灵活性的同时确保安全边界这些问题的答案将定义下一代 AI Agent 系统的架构形态。参考文献OpenAI. “Function calling and other API updates.” OpenAI Blog, June 13, 2023. https://openai.com/index/function-calling-and-other-api-updates/OpenAI. “ChatGPT plugins.” OpenAI Blog, March 23, 2023. https://openai.com/index/chatgpt-plugins/Anthropic. “Model Context Protocol (MCP) Specification.” Anthropic Documentation, 2024. https://modelcontextprotocol.io/Schick, T., et al. “Toolformer: Language Models Can Teach Themselves to Use Tools.” NeurIPS 2023. arXiv:2302.04761.Qin, Y., et al. “ToolLLM: Facilitating Large Language Models to Master 16000 Real-world APIs.” ICLR 2024. arXiv:2307.16789.本系列覆盖AI 大模型基础、Agent 开发、MCP 协议、Skill 开发、RAG、模型微调、部署推理七大方向从入门到实战的全栈内容持续更新中。所有文章的 Markdown 源文件、可运行代码、高清配图已整理成完整资料包。 点赞 ⭐ 关注评论区扣「1」挨个发你领取方式

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价