跳过正文
  1. 所有文章/

理解 AI 的八个层次:LLM、Token、Agent 和它们之间的联系

·4048 字·9 分钟·
Aaron
作者
Aaron
I only know that I know nothing.
目录

前言
#

前段时间系统性地梳理了一遍 AI 相关的技术概念,发现很多东西之前只是零散地接触过,真要把它们之间的依赖关系说清楚,还真得花点功夫。整理完之后最大的感受是:这些概念不是孤立存在的,而是一层一层堆叠起来的,每一层都在补上一层的短板。这篇文章是我梳理过程的记录,试着从最底层一路往上捋,把整条链路串通。

LLM:一切的起点
#

LLM 全称 Large Language Model,大语言模型,通常简称大模型。目前主流的大模型都基于 Transformer 架构1,这套架构最早由 Google 团队在 2017 年的论文 Attention Is All You Need 中提出。有意思的是,Google 虽然点燃了火种,但真正把它引爆的却是 OpenAI:2022 年底 GPT-3.5 横空出世,几个月后 GPT-4 发布,直接把 AI 能力的天花板拉到了新高度。到今天,GPT 家族仍然是行业标杆之一,不过 Claude、Gemini 等后来者也在各自擅长的领域强势竞争。

大模型的工作原理其实很朴素:本质上就是一个文字接龙游戏。你给它一段输入,它预测下一个概率最高的词,然后把这个词追加到输入里,再预测下一个,如此循环,直到输出一个特殊的结束标识符。

这也是为什么你在 ChatGPT 里看到回答总是一个字一个字地蹦出来,不是因为网速慢,而是它的工作机制就是逐词生成。

Token:大模型的最小处理单元
#

前面说大模型做「文字接龙」,但这个说法其实是个简化。大模型本质上是庞大的数学函数,内部全是矩阵运算,它只认识数字,不认识文字。人和模型之间需要一个翻译层,这个翻译层就是 Tokenizer。

Tokenizer 的工作分两步:

  1. 切分:把输入文本拆成最小的片段,每个片段就是一个 Token
  2. 映射:把每个 Token 映射到一个数字(Token ID),因为模型只认数字

比如一句话「今天天气真好」,Tokenizer 可能会把它切成「今天」「天气」「真」「好」四个 Token,再各自映射成不同的数字。模型输出的数字,也会经过反向映射还原成文字。

但 Token 不等于我们日常理解的「词」。比如「人工智能」可能被切成「人工」和「智能」两个 Token,英文的「unbelievable」可能被切成「un」「believ」「able」三段。某些特殊字符甚至需要更多 Token 才能表示。Token 是模型在训练过程中自己学会的一套切分规则,跟自然语言的词并没有严格的对应关系。

粗略估算,一个 Token 大约等于 0.75 个英文单词,或者 1.5 到 2 个汉字。40 万 Token 大概就是 60 到 80 万汉字2

Context 与 Context Window
#

你可能好奇过:大模型为什么能「记住」你之前说的话?它又没有真正的记忆。

秘密在于:每次你发消息时,背后的程序会把之前的完整对话历史连同你的新问题一起发给模型。模型每次看到的都是全部内容,所以它才知道之前发生了什么。

这就引出了 Context(上下文)的概念。它代表大模型每次处理任务时接收到的信息总和,包括用户问题、对话历史、系统指令、工具列表等。你可以把它理解为大模型的临时记忆体。

那这个记忆体能有多大?这就是 Context Window(上下文窗口)的范畴了。它规定了 Context 能容纳的最大 Token 数量。目前主流大模型的 Context Window 已经相当可观:GPT-5.4 是 105 万 Token,Gemini 3.1 Pro 和 Claude Opus 4.6 都是 100 万 Token。100 万 Token 约等于 150 万汉字,整个《哈利波特》全集都能装下。

不过 Context Window 不是万能的。假如你有一份上千页的产品手册想让大模型据此回答用户问题,把全文塞进去虽然技术上可行,但成本会失控。这种场景更适合用 RAG(Retrieval-Augmented Generation)技术3,先从手册中检索出与用户问题最匹配的片段,只把这些片段发给模型,既不受 Context Window 限制,成本也低得多。

Prompt:给模型的指令
#

Prompt(提示词)就是你给大模型的具体问题或指令。「帮我写一首诗」就是一个 Prompt。听起来简单,但 Prompt 的写法直接决定了输出质量。说「帮我写一首诗」,模型可能给你古诗、现代诗甚至打油诗,因为它不知道你具体想要什么。改成「写一首五言绝句,主题是秋天的落叶,风格悲凉一些」,效果就好得多。

这就是所谓 Prompt Engineering(提示词工程)。这个领域曾经很火,现在提的人不多了,一是因为门槛低(本质就是把话说清楚),二是因为模型越来越聪明,即使提示词含糊也能大致猜到你的意图。

Prompt 分两种:

  • User Prompt(用户提示词):你在对话框里直接输入的内容
  • System Prompt(系统提示词):开发者在后台配置的人设和行为规则,用户看不到,但会持续影响模型的行为

举个例子。你在做一个客服机器人,不希望它随便承诺补偿或退款。于是在 System Prompt 里写「你是某电商平台的售后客服,遇到用户投诉时,先安抚情绪,再了解具体问题,不得自行承诺退款或赔偿,需要升级处理的引导用户填写工单」。用户输入「我收到的商品碎了,我要退款」,模型就会回答「很抱歉给您带来不好的体验,能拍一张破损照片发给我吗?确认情况后我会帮您尽快处理」而不是直接说「好的,马上退」。

Tool:让模型感知外部世界
#

大模型有一个明显的短板:它无法感知外界环境。问它「今天北京天气怎么样」,它会老老实实告诉你「我无法获取实时信息」,因为它的知识停留在训练数据截止的那一刻。

Tool(工具)就是用来弥补这个短板的。Tool 本质上就是一个函数,给它输入,它就给你输出。比如一个天气查询工具,接收城市和日期参数,内部调用气象局接口,返回天气信息。

关键在于:大模型无法自己调用工具。它唯一的能力就是输出文本。所以整个流程需要一个中间角色(通常称为平台)来串联:

  1. 用户的问题和可用工具列表一起发给模型
  2. 模型分析后输出一条工具调用指令(包含工具名称和参数)
  3. 平台收到指令,实际调用对应的工具函数
  4. 工具返回结果,平台把结果转发给模型
  5. 模型把结果整理成自然语言回复给用户

每个角色各司其职:模型负责选择工具归纳总结,工具负责执行具体操作,平台负责串联整个流程

MCP:统一工具接入标准
#

Tool 解决了能力问题,但带来了一个新的工程问题:接入标准不统一。

给 ChatGPT 做工具接入,你得按 OpenAI 的规范写一套代码;给 Claude 做接入,按 Anthropic 的规范再写一套;给 Gemini 做接入,又得按 Google 的规范写第三套。同一个工具要写三遍,因为每家的接入格式都不一样。

MCP(Model Context Protocol,模型上下文协议)4就是为了解决这个问题而生的。它定义了一套统一的工具接入标准,开发者只需按 MCP 规范开发一次,工具就能被所有支持 MCP 的平台使用。类比一下,就像所有手机都统一用 Type-C 充电口,配件厂商不用再为每种手机单独做适配了。

Agent:自主规划的智能体
#

有了 Tool 和 MCP,大模型已经能做不少事了。但面对更复杂的需求,单次工具调用就不够用了。

比如用户说:「我下午要出门跑步,帮我看看适不适合。」这需要调用多次工具,而且后续调用依赖前一步的结果:先定位获取经纬度,再用经纬度查天气和空气质量,拿到结果后根据多项指标综合判断是否适合户外运动。整个过程需要模型一步步思考当前状态、决定下一步做什么。

这种能够自主规划、自主调用工具、持续工作直到完成任务的系统,就是 Agent。目前市面上的 Claude Code、Codex、Gemini CLI 等产品,本质上都是 Agent。它们的构建模式各有不同,比较经典的有 ReAct、Plan and Execute 等5

Agent Skill:给 Agent 的操作手册
#

Agent 听起来已经很强大了,但在高频使用中你会发现一个痛点:个性化规则每次都得重复输入。

举个例子。你希望 Agent 做你的健身顾问,每次运动前帮你评估身体状况和当天的运动条件。你有自己的一套偏好:膝盖不好的时候不做深蹲、空气质量指数超过 150 改室内运动、温度超过 35 度减量、运动后必须提醒拉伸。而且你希望输出格式固定:先一个综合评分,再列具体建议。

如果没有额外设定,Agent 虽然会查数据,但不知道你的身体状况和运动偏好,给出的建议大概率很泛泛。于是你每次提问时都得附上一大段要求,复制粘贴,非常反人类。

Agent Skill 就是解决这个问题的。它本质上是你提前写好的一份说明文档(Markdown 格式),告诉 Agent 在特定场景下应该怎么做事。分为两层:

  • 元数据层:相当于封面,标明这个 Skill 的名称和描述(比如名称 Fitness Advisor,描述「运动前综合评估并给出建议」)
  • 指令层:具体的操作规则,包括目标、执行步骤、判断规则、输出格式和示例

定义好之后存到指定位置。以 Claude Code 为例,放在 ~/.claude/skills/ 目录下,文件夹名必须和 Skill 名称一致,里面的文件必须命名为 SKILL.md

运行时,Agent 启动时会加载所有 Skill 的元数据。当用户问题与某个 Skill 的描述相关时,Agent 才会读取该 Skill 的完整指令层,然后按照里面的规则执行。这种渐进式披露机制(只在需要时才加载完整内容)能有效节省 Token6

全景回顾
#

把这些概念串起来,整个 AI 技术栈的层次关系就清晰了:

概念 定位 解决的问题
LLM 基座 文本生成的基础能力
Token 数据单元 人与模型之间的文字/数字转换
Context 记忆体 让模型拥有临时记忆
Prompt 指令 告诉模型做什么、怎么做
Tool 能力扩展 让模型感知和影响外部环境
MCP 协议标准 统一工具接入格式,避免重复开发
Agent 自主系统 多步规划和工具调用,完成复杂任务
Agent Skill 定制化 让 Agent 按你的规则和格式做事

每一层都建立在前一层的基础上,解决前一层遗留的问题。理解了这个层次关系,再看 Claude Code、Codex、OpenClaw 这些产品,你会发现它们的本质都是在这个框架下运作的。技术名词再多,底层逻辑是相通的。


  1. Transformer 架构的细节不是本文的重点,想深入了解可以阅读原论文 Attention Is All You Need。 ↩︎

  2. 不同模型的 Tokenizer 实现不同,Token 与文字的对应比例会有差异,这里的数字是大致估算。 ↩︎

  3. RAG 的核心思路是「先检索,再生成」,通过向量相似度匹配找到最相关的文档片段,只把这些片段作为 Context 发给模型。 ↩︎

  4. MCP 由 Anthropic 在 2024 年底发布,目前已经被多个平台和工具采纳。 ↩︎

  5. 关于 Agent 构建模式的详细拆解,包括 ReAct 和 Plan and Execute 的运行流程,可以参考相关专题文章。 ↩︎

  6. Agent Skill 还有运行代码、引用外部资源等高级功能,这里只介绍了最核心的用法。 ↩︎