七个概念一张表:Function Calling、MCP、Skill、Tool、Harness、RAG、微调

4 阅读1分钟

七个概念一张表:Function Calling、MCP、Skill、Tool、Harness、RAG、微调

Function Calling(函数调用)、MCP、Skill、Tool、Harness、RAG、微调——这七个词经常在同一段话里出现,但没几个人能说清谁管谁。

它们不是七个并列的技术,而是三个层次上的七种角色。

这张表就是用来一次性对齐的。

一、三个问题,七个概念

与其背定义,不如用三个可回答的问题,把任何一个新名词定位下来。

问题一:它改不改模型文件? 改,就是微调,没有第二个答案。不改,进下一题。答不上来,通常说明还没分清"配置"和"训练":一个改文件,一个改权重。

问题二:它管表达意图,还是管连接工具? 管表达,是 Function Calling。管连接,是 MCP。两个都答不清,多半是把"工具怎么连上"和"模型怎么开口"当成了一件事。

问题三:它管流程,还是管知识? 管流程,是 Skill。管知识,是 RAG。如果它管的是"把这些东西怎么组织起来",那是 Harness。答不清,说明需求还停在"帮我干这件事"这一句,没拆到步骤、资料和先后顺序。

三个问题问完,位置基本就定了。Tool 是例外,只负责被调用。

二、一张表填完

概念解决什么问题在哪一层改不改模型文件
Function Calling模型怎么表达"我要调谁"模型侧表达层不改
MCP工具怎么被发现、怎么复用工具侧接入层不改
Skill这件事按什么步骤干业务封装层不改
Tool一个可被调用的具体能力宿主侧执行单元不改
Harness模型外面那一圈怎么组织编排层不改
RAG知识从哪来、怎么按需注入知识注入手段不改
微调怎么把行为写进参数训练层改

Tool 这一行采用本文口径——它与 Skill 的边界常被含糊带过。定义:Tool 是一个可被模型请求调用、由宿主真正执行的函数、接口或命令;Skill 则是用这些 Tool 完成一件事的流程。

配七个反例:

概念一句话反例
Function Calling以为模型真的执行了工具
MCP以为 MCP 会替模型调工具
Skill以为 Skill 是高级 Prompt
Tool把 Tool 当成 Skill
Harness以为 Harness 只是一堆工具
RAG以为 RAG 就是上下文工程全部
微调以为微调能灌进大量新知识

表里还有两个位置要说明。MCP 的协议横跨内外:Client 在 Harness 里,Server 在世界里;RAG 也一样,切分与注入在 Harness 里,向量库和语料在外面。所以"在哪一层"指的是主导角色,不是全部物理位置。

三、三条判定线

表是结果,判定线才是能迁移的方法。

线一:按位置分。 表达归 Function Calling,连接归 MCP,流程归 Skill,编排归 Harness。这条线回答"它在流水线上站哪一环"。

边界在于:位置只说明它站哪一环,不说明它能不能单独存在。Function Calling 可以没有 MCP 照样工作;MCP 的价值是复用,不是表达。

线二:按对象分。 知识走 RAG(外部注入)或继续预训练(内部注入),行为走微调,流程走 Skill。这条线回答"它想改变的是信息还是行为"。

注意知识这一格有两个入口,最容易漏:微调改不了"知道什么",继续预训练可以,但它要动参数,成本高得多。

取舍只看两条:要不要动参数、能不能等一轮训练。只改行为又要频繁迭代,走上下文;行为稳定且长期不变,才值得动微调。

线三:按形态分。 内容资产(SKILL.md、工具 schema)和运行时机制(加载、校验、执行)是两回事。同一个概念常常一半是内容、一半是机制:Skill 的文件是内容,把它发现和注入的那套机制属于 Harness。

边界在更新方式:内容资产改一次是改文件,运行时机制改一次是改代码。同一个名词落在哪边,决定你更新它要不要发版。

遇到新名词时,按这三条过一次:

  1. 它改不改模型文件;
  2. 它站在表达、连接、流程、编排的哪一环;
  3. 它是内容资产,还是运行时机制。

三条都答得出来,这个概念就不会再和别的混在一起。

四、三组高频混淆

混淆都发生在"看起来在做同一件事"的地方。

Function Calling 与 MCP。 一个负责"说",一个负责"接"。用了 MCP 之后,Function Calling 并没有消失,它仍在底层把模型的意图翻译成结构化调用。插座通了,手还在。

小实验:把同一个工具先直连、再经 MCP 接入。直连能跑通,说明缺的从来不是表达,是复用。

Skill 与 Tool。 Tool 是一个可调用的能力,Skill 是一套用这些能力的流程。同一个 Tool 可以被十个 Skill 调用;同一个 Skill 也可以调十个 Tool。它们不是同一层的替代关系,是零件和工序的关系。

小实验:删掉流程,只留工具。还能完成任务的是 Tool;任务散了,说明真正起作用的是 Skill 那套步骤。

Skill 与微调。 两者都能让模型"按规矩办事",但改的位置完全不同。

Skill微调
改什么上下文里的内容模型参数
更新方式热更新,改文件即生效冷更新,要重训
能否共享能,跨宿主复用难,带领域偏向
适用条件具体、常迭代的流程确定、长期不变的行为

有人会问:既然两者都能实现同一个业务决策,为什么不能混着说?因为代价不同。Skill 改一次是改一份文档,微调改一次是重训一轮。混淆它们,选型时就会拿最贵的工具去干最便宜的活。

小实验:把同一套规则只写进上下文跑一遍。规则生效就不用重训;只有上下文压不住、且长期不变,才轮到微调。

结尾

概念不是用来背的,是用来定位的。三个问题问完,任何一个新名词都能被放进这张表。

补一句最容易记错的:模型只输出调用意图,真正跑工具的是宿主。