AI Agent 能力调用方式:Tool、MCP、Skill 到底怎么被调用?

AI 时代程序员必备技能

Claude Code 完整实战,MCP 与子代理工程化落地,让 AI 接管脏活累活

AI Agent 能力调用方式:Tool、MCP、Skill 到底怎么被调用?

在 AI Agent 系统里,ToolMCPSkill 经常被一起讨论。真正容易混淆的地方,不是它们的概念定义,而是:

模型到底是怎么“调用”这些能力的?
Agent 又在中间负责什么?

核心原则可以先记住一句:

模型负责决策,Agent 执行器负责调用外部能力。

也就是说,模型通常并不直接操作文件、数据库、浏览器、Shell 或第三方服务。模型更多是生成一个结构化调用意图,比如“调用哪个工具、传什么参数”。真正执行动作的是 Agent Runtime、Tool Executor、MCP Client 或 Skill Executor。

1. 基础调用链

一个标准 Agent 调用链大致如下:

用户输入
  ↓
Agent 整理上下文、可用工具、系统规则
  ↓
模型判断是否需要调用外部能力
  ↓
模型通过 Function Calling 输出 tool call
  ↓
Agent 校验 tool name 和 arguments
  ↓
Agent 路由到对应执行器
  ↓
执行器调用本地函数、MCP Server、Skill 脚本或 Shell
  ↓
执行结果返回模型
  ↓
模型继续推理或生成最终回答

所以,“模型调用工具”这句话更准确的表达是:

模型生成工具调用请求,Agent 负责执行这个请求。

下面按不同能力来源拆开看。

2. Local Tool:本地 Tool 调用

Local Tool 是最直接的一类工具。它通常注册在 Agent 的 Tool Registry 里,由 Agent 本地执行。

常见能力包括:

  • 文件读取与写入
  • 本地数据库查询
  • HTTP 请求
  • 本地检索服务
  • 浏览器自动化
  • 图片生成
  • Shell 命令封装

调用方式通常是:

模型通过 Function Calling 选择 Local Tool
  ↓
Agent 根据 Tool Registry 找到对应实现
  ↓
Agent 在本地进程或本地服务中执行
  ↓
结果返回模型

例如模型可能输出:

{
  "tool": "read_file",
  "arguments": {
    "path": "package.json"
  }
}

Agent 收到后,不是让模型自己读文件,而是由本地执行器读取文件,再把内容返回给模型。

Local Tool 的特点是:工具实现直接归 Agent 环境管理,调用链短,适合本地能力和内部服务。

3. MCP Tool:远程能力接入

MCP Tool 本质上也是 Tool,只是它的能力来源不是 Agent 本地函数,而是 MCP Server。

MCP,全称是 Model Context Protocol,主要解决的问题是:

外部系统如何以标准方式把能力暴露给 Agent?

调用链通常是:

MCP Server 暴露工具列表和 schema
  ↓
Agent 通过 MCP Client 获取这些工具
  ↓
模型看到 MCP Tool 的 schema
  ↓
模型通过 Function Calling 调用某个 MCP Tool
  ↓
Agent 通过 MCP Client 把请求转发给 MCP Server
  ↓
MCP Server 执行真实操作
  ↓
结果返回 Agent,再返回模型

例如 GitHub、Slack、Notion、Excel、数据库系统都可以通过 MCP 暴露能力。模型看到的仍然是一个个 tool schema,但真正执行发生在远程或外部系统中。

MCP Tool 的特点是:模型仍通过 Function Calling 调用工具,但 Agent 需要通过 MCP Client 转发请求。

4. Skill Tool:企业级 Agent 主流方式

在很多企业级 Agent 系统中,Skill 不只是 SKILL.md 说明书,而是会被注册成标准 Tool。

这类 Skill 通常代表一个业务能力,比如:

  • 生成财务分析报告
  • 查询客户画像
  • 执行订单审核
  • 生成投标文件
  • 调用内部审批流程
  • 完成某个固定业务 SOP

调用链通常是:

业务 Skill 注册为标准 Tool
  ↓
模型通过 Function Calling 调用 Skill Tool
  ↓
Agent 路由到 Skill Executor
  ↓
Skill Executor 执行内部实现
  ↓
内部实现可能是 Python、Docker、RPC、工作流引擎或内部服务
  ↓
执行结果返回模型

这里的关键点是:

Skill 内部怎么实现,对模型是透明的。

模型只知道有一个工具,比如:

{
  "tool": "generate_financial_report",
  "arguments": {
    "company": "A 公司",
    "period": "2026 Q2"
  }
}

至于这个 Skill 内部是跑 Python 脚本、启动 Docker、调用 RPC,还是编排多个服务,模型并不需要知道。

这种方式适合企业场景,因为它可以把复杂业务流程封装成稳定接口,让模型只负责判断“什么时候用这个 Skill、参数是什么”。

Skill Tool 的特点是:Skill 被工具化,模型通过 Function Calling 直接调用,业务复杂度封装在 Skill Executor 里。

5. Skill + Bash:Code Agent 常见方式

在代码类 Agent 中,Skill 的形态经常不同。它不一定注册成一个独立 Tool,而是作为一组任务说明、脚本和约束存在。

例如一个 Skill 目录里可能有:

SKILL.md
scripts/
templates/
references/

调用链通常是:

Agent 判断任务匹配某个 Skill
  ↓
模型阅读 SKILL.md
  ↓
模型理解 Skill 的用途、流程和约束
  ↓
模型通过 Function Calling 调用 Bash Tool
  ↓
Agent 在本地 Shell 中执行命令
  ↓
命令可能是 python、git、pytest、npm、docker 等
  ↓
结果返回模型

这里不是模型直接调用 “Skill Tool”,而是:

Skill 指导模型怎么做,Bash Tool 负责承接具体执行。

比如某个 PDF Skill 要求“生成后必须渲染检查”,模型读完 SKILL.md 后,可能会调用 Bash Tool 执行:

python render_pdf.py output.pdf

所以在 Code Agent 里,Skill 更像“专业操作手册 + 附带脚本资源”。模型先读懂规则,再通过 Shell、文件工具、测试工具等完成任务。

Skill + Bash 的特点是:Skill 不一定是 Function Calling 目标,而是影响模型如何使用 Bash 和其他 tools。

6. Prompt Skill:早期方案

Prompt Skill 是更早期的一类实现方式。它不依赖标准 Function Calling,而是让模型按照约定在自然语言里输出特殊指令。

例如:

[EXEC] python analyze.py data.csv

或:

Action: run_script
Input: analyze.py data.csv

Agent 再通过正则、状态机或自定义解析器识别这些文本,决定执行什么脚本。

调用链通常是:

模型阅读 Prompt Skill 规则
  ↓
模型在自然语言中输出特殊格式指令
  ↓
Agent 解析这些指令
  ↓
Agent 执行对应脚本或服务
  ↓
结果返回模型

这种方式的问题是,它高度依赖模型输出格式。一旦模型多写、少写、格式错乱,Agent 就可能解析失败。

因此在现代 Agent 系统中,Prompt Skill 正逐渐被 Function Calling、Tool Registry 和结构化调用方式替代。

Prompt Skill 的特点是:实现简单,但鲁棒性较弱,不适合复杂或高可靠场景。

7. 五种方式对比

类型模型调用方式Agent 执行方式典型场景
Local ToolFunction Calling本地函数或本地服务文件、HTTP、数据库、本地检索
MCP ToolFunction CallingMCP Client 转发到 MCP Server第三方服务、外部系统、远程工具
Skill ToolFunction CallingSkill Executor 执行业务封装企业业务流程、标准 SOP
Skill + BashFunction Calling 调用 BashShell 执行脚本或系统命令Code Agent、自动化开发、测试
Prompt Skill自然语言特殊指令正则或状态机解析后执行早期 Agent、轻量原型

从调用层面看,最重要的差异不是名字,而是:

  • 模型是否通过 Function Calling 发起结构化调用
  • Agent 把调用路由到哪里
  • Skill 是作为 Tool 暴露,还是作为上下文规则影响模型
  • 外部能力是本地实现,还是通过 MCP Server 实现

8. 总结

如果从模型和 Agent 的分工看,可以这样理解:

模型:判断要不要调用能力、调用哪个能力、传什么参数
Agent:校验、路由、执行、回传结果
Tool:承接结构化调用
MCP:把远程或外部系统包装成 Tool
Skill Tool:把业务能力包装成 Tool
Skill + Bash:让模型读 Skill 规则后,通过 Bash 执行脚本
Prompt Skill:让模型输出约定文本,由 Agent 解析执行

所以,Tool、MCP、Skill 不应该只按“概念区别”理解,更应该放到 Agent 调用链里看:

Tool 是调用接口,MCP 是外部工具接入协议,Skill 可以是被工具化的业务能力,也可以是指导模型使用工具的方法包。

这也是为什么在不同 Agent 系统里,Skill 的含义会不一样:企业 Agent 更常见的是 Skill Tool,代码 Agent 更常见的是 Skill + Bash,而早期系统里还会看到 Prompt Skill

AI 时代程序员必备技能

Claude Code 完整实战,MCP 与子代理工程化落地,让 AI 接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值