从 Token 到 Agent:大模型技术栈的演进脉络

摘要

技术清单(按底层→上层、按演进依赖顺序) token → 分词器 → embedding → 上下文窗口 → 提示词工程 → 微调(SFT、LoRA、RLHF)→ function call(工具调用)→ RAG → Skill → MCP...

技术清单(按底层→上层、按演进依赖顺序)

token → 分词器 → embedding → 上下文窗口 → 提示词工程 → 微调(SFT、LoRA、RLHF)→ function call(工具调用)→ RAG → Skill → MCP → Agent

顺序讲解

  1. token 大模型不能直接识别汉字、单词,需要把文本切分成最小处理单元,这个单元就是token。token是所有上层技术的基础,token的总量决定后续很多限制。 基于token,就需要分词器,分词器负责把输入文本切割为token序列,供模型读取。

  2. 上下文窗口 所有发给模型的历史对话、问题、资料,全部转为token后放在一起,这一块存储区域就是上下文窗口。 不足:上下文窗口容量存在上限,超过上限内容会被截断;窗口内的信息只能本次对话临时使用,无法长期保存大量私有文档,也不能让模型自主执行外部操作。为了在不增大窗口、不修改模型权重的前提下,引导模型按指定规则输出,出现了提示词工程。

  3. 提示词工程 通过编写系统提示、任务描述、示例,在上下文里给模型下达约束指令,让模型适配特定任务、输出指定格式。 不足:复杂任务、固定范式任务依靠提示词不稳定,换个问法模型就容易跑偏;大量样本场景下反复写长提示词成本很高。想要让模型把能力固化下来,由此引出微调。

  4. 微调(SFT、LoRA、RLHF) 准备大量输入输出样本,训练修改模型权重,把任务范式、风格、知识偏好固化进模型内部。SFT是监督微调;LoRA是轻量化微调,只训练少量矩阵,降低显存成本;RLHF是基于人类反馈的强化学习,对齐人类偏好。 不足:微调成本高,更新知识需要重新训练,存在灾难性遗忘;无法接入实时数据,不能调用外部程序、接口做计算和查询。模型本身只具备文本生成能力,想要让模型主动调用外部能力,引出function call。

  5. function call(工具调用) 模型输出结构化参数,调用预先写好的外部函数,拿到外部结果再整理回答。 不足:每个模型、每个应用的工具定义、调用协议不统一,每个新工具都要单独适配,无法即插即用;只能调用函数,不方便统一接入文档、数据库这类只读资源。为了把单一的调用函数封装成可复用能力单元,引出Skill。

  6. Skill Skill是封装完成的独立能力单元,包含能力描述、入参定义、执行逻辑,本质是标准化后的function。 不足:Skill没有统一的传输、发现、会话协议,不同AI客户端不能直接共用同一套Skill,数据源和工具分开两套对接方式。为统一资源、工具的接入标准,引出MCP。

  7. MCP(Model Context Protocol,模型上下文协议) 一套开放标准协议,把资源(文档、数据库,对应RAG数据源)、工具(对应Skill)、提示模板统一封装成MCP Server,AI客户端作为Host接入。一份MCP服务可以被所有支持协议的模型直接使用。 在工具调用这条线发展的同时,针对文档查询、知识补充的需求,并行发展出RAG。

  8. RAG(检索增强生成) 先把文档切片、转为embedding向量存入向量库;用户提问时,检索相似文档片段,把片段放进上下文给模型参考生成答案。embedding是RAG的底层依赖,负责文本向量化、相似度比对。 不足:RAG、Skill、MCP都只是单一组件,只能完成单次检索或者单次工具调用,无法自主规划多步骤复杂任务。把这些组件组合、自主调度,引出Agent。

  9. Agent(智能体) 以大模型作为思考中枢,自主进行任务拆解、规划,循环调用RAG检索、Skill/MCP工具,多轮执行直到完成复杂目标。

精简依赖演进线

token→分词器→上下文窗口→提示词工程(不稳定)→微调(固化能力,但不能联网调用工具)→function call(可以调用外部函数,适配麻烦)→Skill(封装函数)→MCP(统一工具与资源接入标准) 同时基于embedding发展出RAG(外挂知识库) 最后:RAG + MCP + Skill + 上下文,共同组成Agent。