目录
Function Call是啥?
Function Call工作原理
Function Call解决了什么问题?
Function Call 与 Agent
MCP是啥?
Function Call集成困境
MCP的诞生
MCP 的工作方式
Skills是啥?
Skills的工作方式
Skills的价值
Function Call是啥?
编程里的 function call = 代码调用函数;大模型领域 Function Call(也常叫 Tool Call)是大模型主动识别用户意图,然后去调用外部工具 / 函数,拿到结果再整合回答的能力。
2023年6月OpenAI正式发布Function Call。从此以后, LLM 不仅能生成文字,还能告诉外部程序【我想调用某个函数,参数是这些】。
举例来说:
在没有 Function Call 之前,LLM 就像一个只记得菜单的店员。你问他:“店里还有草莓蛋糕吗?” 他只能凭旧印象回答:“我们店售卖草莓蛋糕。”
有了 Function Call 之后,这个店员学会了查看后厨实时库存。你问他,他就查询库存系统(调用库存 API),拿到实时数据后告诉你:“草莓蛋糕今天已经售罄,芒果蛋糕还有 2 份。”
Function Call工作原理
Function Call的工作流程可以分为四步。
1、定义函数。开发者预先告诉LLM有哪些可用的工具/函数(用JSON格式描述函数名字、功能、参数),例如,下面是一个get_weather函数,接收参数为城市名称,返回天气信息。
{
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的实时天气",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称,比如:上海"
}
},
"required": ["city"]
}
}
}
]
}
2、模型判断。用户提问后,LLM会分析【要不要调用函数?调用哪些函数?】
例如:用户问:“南京今天多少度?”模型识别:这个问题需要实时天气,我自己知识库没有,需要调用get_weather,生成一段结构化 JSON。
{
"tool_calls": [
{
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\": \"南京\"}"
}
}
]
}
3、函数执行。后端代码捕捉到上面的JSON,调用真实函数/API【get_weather("南京")】,拿到结果[26℃,晴]
注意!JSON 是模型输出,但是执行函数的是你的后端代码,不是模型!
4、生成结果。后端代码把拿到的真实温度数据传给LLM,有了真实数据支撑后,LLM就会用自然语言回复你:“南京今天 26 度,天气晴朗。”
Function Call解决了什么问题?
第一是何时调用、调用哪个工具的意图判断。LLM能够读懂用户自然语言,自主推理是否需要启用外部工具,以及选择对应的工具,无需开发者手写大量复杂的条件分支判断代码。
第二是提取并生成结构化入参。模型可以从用户口语化提问里,自动解析出工具所需要的结构化参数。例如用户说 “帮我查一下南京后天的天气”,LLM 能自动提取出city=南京 和 data=后天。
两项能力结合,让 LLM 不再仅仅是单纯的文本生成聊天机器人,而是可以理解用户意图、驱动外部系统运行的决策引擎。
可以说,Function Call 就是 Agent 能力的最底层技术基础,没有 Function Call,Agent 就无法调用工具,也就没法真正【干活】。
Function Call 与 Agent
Function Call:是 “单次调用工具” 的基础能力。它负责两件事:LLM要不要调用工具、提取参数并输出结构化指令,完成单轮工具调用。只有单次决策,没有任务规划、多轮思考循环。
Agent:是一套完整的自主任务执行框架。它可以拆解复杂目标、多次连续调用 Function Call,根据工具返回结果调整下一步计划,直到任务完成。
因此,Function Call 是 Agent 的原子操作,而 Agent 是对 Function Call 的高级编排。Agent 在完成一项复杂任务时,可能需要连续发起十几次 Function Call。
MCP是啥?
Function Call集成困境
Function Call 使LLM具备调用工具的能力。不过随着 Agent 能力愈发强大,需要接入的工具和服务越来越多,一个新的难题随之浮现:工具集成的成本过高、流程繁琐。
在 MCP 之前,每一款 AI 应用(N 个,如 ChatGPT、Claude、Cursor)对接每一个外部数据源 / 工具(M 个,如数据库、飞书、GitHub、本地文件),都需要单独编写定制化连接器,总开发与维护成本是N×M的量级,重复劳动严重,系统扩展性极差。且不同 AI 厂商都有私有的插件 / 工具体系(如 OpenAI 插件、Claude 原生工具、VS Code 扩展),彼此标准不兼容,一个工具无法跨多个 AI 平台复用,开发者需要多套适配方案。
MCP的诞生
2024 年 7 月,Anthropic 工程师受限于 Claude 无法直接调用外部工具,只能手动将模型回复复制到代码编辑器,工作效率低下。团队由此启动统一连接协议的设计,打通模型与外部系统。
MCP (模型上下文协议)的解决方案是将复杂的网状集成,简化为线性的连接模式。工具提供方只需按照 MCP 标准实现一次“服务端”,任何支持 MCP 的 AI 应用都能直接连接并使用它。这就像为 AI 世界建立了一个通用的“USB-C 接口”,实现了即插即用
MCP 的工作方式
MCP 基于 JSON-RPC 2.0 通信标准,采用主机 - 客户端 - 服务器三层架构,通过三类核心原语实现能力交互。
主机(Host):即 AI 应用本身(如 Claude Desktop、Cursor),是用户直接使用的载体。负责创建和管理客户端、执行安全策略、处理用户授权、聚合多源上下文、协调模型推理。
客户端(Client):Host为每个 MCP 服务器创建的独立连接实例,与Server一一对应。负责协议协商、消息双向路由、会话维护、订阅管理,在Host与Server之间起到桥梁作用。
服务器(Server):外部能力与数据的提供方(如数据库、企业 OA、GitHub、本地文件系统),按照 MCP 标准对外暴露自身的能力,供 AI 模型调用。
整个流程就是:用户在 AI 应用中提问 → AI 应用(Host)通过 MCP Client 发现有哪些可用工具 → AI 决定调用某个工具→ MCP Client 向对应的 MCP Server 发送请求 → Server 执行操作返回结果 → AI 基于结果生成回答。
Skills是啥?
借助 Function Call 和 MCP,Agent 已经具备调用工具的能力,但它尚且无法合理运用工具来落地解决实际业务问题。而 Skills 正是用来补齐这一环的。Skill(技能)相当于一份面向 AI Agent 的工作手册与操作说明书:其本质是结构化提示词(Prompt),并不会提升大模型本身的基础能力,而是通过注入标准化业务流程与领域知识,让通用人工智能精准完成各类特定任务。
Skills通常以SKILL.md文件的形式存在,里面用 YAML 写元数据(名字、描述),用 Markdown 写具体的操作步骤、规则,还可以附带脚本和参考文档。你可以把它理解为一份即插即用的“专业操作手册”,喂给 AI 后,它就能按照手册里的流程干活了。下面是具体的行为指令,用自然语言写成。
---
name: Code_Review_Expert
description: 当用户要求进行代码审查时,自动触发此技能。
triggers:
- "帮我 review 一下这段代码"
- "代码审查"
---# 身份设定
你是一个拥有 10 年开发经验的资深后端架构师,你极其看重代码的可读性、性能和安全性。# 审查工作流
当你进行代码审查时,你必须严格按照以下步骤进行排查:
1. 看结构:检查代码是否符合单一职责原则,有没有超过 100 行的超长方法。
2. 查漏洞:重点检查是否存在 SQL 注入风险、越权访问风险或空指针异常风险。
3. 审性能:是否有在 for 循环里查数据库的愚蠢操作?是否有流对象没有及时 close 释放?
4. 给方案:你绝对不能只挑毛病,必须针对每个问题给出具体的修改建议,并且附带优化后的代码片段。# 输出规范
语气要专业、极其直接,不要说废话。直接输出一份 Markdown 格式的审查报告,分点列出问题和修改方案。
Skills的工作方式
Skill 的运行依托 Agent 的核心架构,遵循 “注册 - 匹配 - 执行 - 反馈” 的完整流程,并且与 MCP 等底层工具协议深度协同。
1、技能注册与动态发现。Agent 启动时加载本地技能库,或从远程企业技能仓库动态拉取可用 Skill;每个 Skill 的元数据会注册到 Agent 的能力目录中,规划器可通过语义检索快速匹配。
2、任务分解与技能匹配。当用户下达复杂任务时,Agent 的规划模块(Planner)会优先复用已有能力:拆解任务目标,识别任务类型与核心诉求;在技能库中检索是否有现成 Skill 可以直接覆盖该任务;匹配成功则直接调用对应 Skill;无匹配时,再拆解为原子工具调用。 这一机制大幅降低了大模型的规划压力,避免每次从零设计执行步骤。
3、技能执行与内部编排。Skill 被触发后,会按照预设工作流,依次调用依赖的 MCP 工具、子技能和外部资源。
4、结果返回与记忆同步。Skill 执行完成后,将结构化的最终结果返回给 Agent 主流程;执行过程中的关键中间状态、产出数据会写入 Agent 的工作记忆,支撑后续任务推理。
MCP 为 Skill 提供了标准化的底层原子能力接入。一个 Skill 可以跨服务器组合调用多个 MCP 工具与资源,比如 “生成月度经营分析报告” 这个 Skill,可以同时调用数据库 MCP 的查询工具、飞书 MCP 的文件读取工具、邮件 MCP 的发送工具 ——MCP 统一了底层连接标准,Skill 只需聚焦业务逻辑本身。
Skills的价值
Skills 的核心价值在于将专业知识和最佳实践编码成可复用的模块。
企业可以将内部标准业务流程封装成 Skill,形成企业级技能库,把零散的业务经验沉淀为可复用的 AI 能力资产。
Skill 内部流程是确定的,不需要每一步都等待大模型决策,执行时延显著降低。