像理解一位超级助理一样理解 AI:LLM、Token、Context、Prompt、Agent、Tools、Memory 七大核心概念通俗详解
本文用一个贯穿全文的比喻——“CEO 与超级助理”,带你一次性搞懂 AI 领域最常听到的七个概念:LLM、Token、Context、Prompt、Agent、Tools、Memory。全文无晦涩公式,适合零基础入门,也适合用来面试前突击梳理概念。
前言
刚接触 AI 的时候,最让人头疼的往往不是代码,而是满屏的英文缩写:LLM、Token、Context Window、Prompt、Agent、Tools、Memory……每个词单独搜都能搜出一堆文章,但它们之间到底是什么关系?
其实这些概念完全可以串成一条线来理解。本文用一个比喻开场:
想象你是一家跨国公司的 CEO(用户),手下有一位超级助理(LLM)。这位助理读过公司图书馆里所有的书(训练数据),但有个特点:他的记忆力很差,一次只能记住一张 A4 纸上写的内容(Context),而且他看不懂整段文字,只能看懂一种叫"词素"的密码文字(Token)。你会经常给他布置任务,任务的内容就是 Prompt,他会按照你的指令去完成一天的工作。
记住这个比喻,下面七个概念就都挂在这条故事线上。
一、LLM(大语言模型)——"超级助理"的大脑
通俗解释: LLM 就是一个庞大的、经过海量文本训练的概率预测机器。它的核心能力不是"思考",而是根据上文,预测下一个最可能出现的文字。
技术定义: 基于 Transformer 架构的深度学习模型,通过海量语料训练,掌握语言规律和世界知识。
举例说明
当你对 LLM 说"A 三哥长得怎么样",它不会"想"起下一句,而是通过计算海量数据中的概率分布得出:
- "特别"的概率是 98.7%,"很"是 50%,“一般"是 0.5%,于是选择"特别”;
- 而"特别"的下一个词是:"帅"的概率 90.5%,"普通"是 30%,“丑"是 0.1%,于是选择"帅”;
- 最后拼接成语句:“特别帅”。
这就是 LLM 的本质:一个字一个字地"猜"出下一个最可能出现的词。理解这一点,是理解后面所有概念的基础。
二、Token(词元)——助理看的"密码文字"
通俗解释: LLM 看不懂汉字或英文单词,它只认识 Token。Token 是模型处理文本的最小基本单元。它可以是一个完整的词(如 “Apple”),也可以是一个词的部分(如 “App” + “le”),甚至是一个字母或一个标点符号。
技术定义: 文本被切分后的数字化表示(索引 ID),是模型计费和上下文长度的计量单位。
这里要区分两个容易混淆的概念:
| 概念 | 说明 | 面向对象 |
|---|---|---|
| Token | 文本被切分后的字符串片段 | 给人看的文本碎片 |
| tokenId | 每个 Token 在词表(Vocabulary)中对应的唯一整数索引 | 给机器看的数字编号 |
LLM 内部只做数学运算(向量加减乘除),不做文字处理,所以真正参与运算的是 tokenId。
举例说明
用户输入"苹果"时,内部流程是:
- 分词器(Tokenizer) 先把"苹果"切分为
["苹"]和["果"]两个 Token; - 词表(Vocabulary) 里规定:“苹” 的 tokenId = 24583,“果” 的 tokenId = 10247;
- 模型实际运算时,输入的是
[24583, 10247]这两个数字,而不是汉字"苹果"; - 模型输出时,吐出的是数字
[9981, 3302, ...],再通过词表反查回文字,显示给你看。
一句话总结:你输入的是文字,模型算的是数字,最后再翻译回文字。 这也是为什么各大平台都按 Token 数量计费。
三、Context(上下文)——助理眼前那张"A4 纸"的容量
通俗解释: Context 就是助理当前能看到的"短期记忆"窗口。这张"A4 纸"有固定大小(比如能写 4000 个字)。你和助理的所有对话(你的提问 + 他的回答),都必须写在这张纸上。如果对话太长,超过纸的边界,最早写上去的内容就会被"挤出去",助理就"忘记"了开头的话。
技术定义: 模型在生成下一个 Token 时,所能参考的最大输入序列长度(即 Prompt + 历史对话 + 当前生成内容的总 Token 数)。
由于 Context 像一个滑动的视窗,我们通常用 Context Window(上下文窗口) 来表示它。当对话超过这个总数时,最早的 tokenId 会被直接丢弃(截断),模型就"失忆"了。
两种窗口的直观对比
- Window = 4,096 tokens(如早期 GPT-3.5):你上传一篇 3000 字的新闻稿(约 4000 tokens)问问题,刚好塞满。但如果接着问第二句,开头的内容就会被挤出去,模型会忘记最初的内容。
- Window = 1,000,000 tokens(如 Google Gemini 1.5):你可以一次性上传《三体》三部曲全集(约 90 万字),然后问"罗辑一共说了几句’面壁者’?“,模型能准确回答,因为整本书都在办公桌面上,它随时可以"回头看”。
举例说明
- Context = 4K(4000 Token):你上传一篇 5000 字的小说让助理总结,他会拒绝,因为小说超出了 A4 纸容量。
- Context = 1M(百万 Token,如 Gemini 或 Kimi):这张 A4 纸变成了一个大仓库。你可以一次性把《三体》三部曲扔进去,然后问他:"罗辑一共出现过几次?"他都能回答,因为整本书都在他的 Context 窗口内。
理解 Context Window 有两个实用价值:一是明白为什么长对话中 AI 会"忘事";二是明白为什么把重要信息放在 Prompt 开头或结尾效果更好(中间内容更容易被忽略,即"Lost in the Middle"现象)。
四、Prompt(提示词)——你写给助理的"工作指令便签"
通俗解释: Prompt 就是你输入给 LLM 的那段话,它是你和模型沟通的唯一桥梁。同样的模型,给一个模糊的 Prompt(“写个方案”),和给一个详细的 Prompt(“以项目经理口吻,为预算 50 万的 IT 项目写一份 3 页的启动方案,包含风险点”),得到的结果天差地别。
技术定义: 用户输入的、用于引导 LLM 生成特定输出的初始文本序列。它分为两类:
- System Prompt:公司章程或人设底座。设定模型在整个对话中的身份、语气、规则、限制。它写在 Context 的最前面,权重极高,模型每轮回答都会优先参考它。用户无法绕过,由开发者预设。比如你的助理有行政助理、财务助理、商务助理等不同角色。
- User Prompt:你今天交办的任务,即当前这一轮具体想让模型干什么。每轮都可以变,由用户输入。
举例说明
- System Prompt(固定人设):“你是一位只教心算的严厉小学数学老师,回答任何计算题都必须用口算思路讲解,绝不允许列竖式,绝不允许使用计算器,必须把计算过程说出来。”
- User Prompt(本轮):“137 × 59 等于多少?”
模型实际收到的完整 Context = [System Prompt 内容] + [User Prompt 内容]。
模型回答(受 System 制约):“哎哟,这题还用想?130 乘 60 是 7800,减去 130 再减 59,7611 嘛。别在本老师面前掏草稿纸,丢人。”
如果没有 System Prompt,模型会直接回答:“137 × 59 = 8083。”
这就是为什么同一个底层模型,套上不同的 System Prompt,就能变成客服、翻译、程序员等完全不同角色的原因。
五、Agent(智能体)——助理手里的"遥控器"和"工具箱"
通俗解释: 单纯的 LLM 只会"动嘴"(输出文字),而 Agent 是"动手"的 LLM。它被赋予了一套工具(Tools),并且能自主规划(Plan)如何完成复杂任务。它不再只是"预测下一句话",而是"为了达成目标,自己决定先查资料、再写代码、最后发邮件"。
技术定义: 基于 LLM 作为核心控制器,能够调用外部工具(如搜索引擎、计算器、API、数据库)并执行多步任务规划以达成特定目标的自主系统。
举例说明
- 纯 LLM:你问"明天北京天气怎么样?"它会回答:“很抱歉,我的知识截止到 2024 年,无法查询实时天气。”(因为它只会动嘴)
- Agent 模式:你问同样的问题,Agent 会自动规划:
- 调用"联网搜索工具"查询北京天气预报;
- 调用"计算器工具"把华氏度换算成摄氏度;
- 调用"邮件发送工具",把结果自动发送到你指定的邮箱;
- 最后在对话框回复你:“已查好,并发至您的邮箱。”
从"回答问题"到"完成任务",这就是 LLM 到 Agent 的质变。
六、Tools(工具)——超级助理的"手、脚和工具箱"
通俗解释: Tools 就是给 LLM 这个"超级助理"配备的外部工具箱。单纯的 LLM 只会"动嘴",但配上 Tools 后,它就能"动手"——查资料、算算术、发邮件、订机票、操作数据库。Tools 的本质是 LLM 与外部世界交互的桥梁,让模型从"理论家"变成"实干家"。
技术定义: Tools 是一组预先定义好的函数(Function),每个函数封装了一个外部能力(如搜索、计算、API 调用、数据库查询等)。Agent 通过输出结构化的函数调用指令(而非自然语言),由外部系统执行后,将执行结果追加回 Context,供 LLM 生成最终回答。
举例说明:一次工具调用的完整流程
假设已定义了一个工具函数 get_weather,功能是通过 API 联网查询天气。用户问"明天北京天气怎么样?"
第一步:LLM(第一次)——决定调用工具
LLM 收到问题后,发现自己没有实时天气数据,于是自主决策:"这个问题需要实时数据,我有个叫 get_weather 的工具,应该用它。"于是 LLM 输出工具调用指令(而不是直接回答)。
第二步:工具执行——获取真实数据
外部系统拿到指令后执行函数,通过 API 查询北京天气,把真实数据返回给系统。
第三步:LLM(第二次)——基于工具结果生成回答
系统把工具返回的真实天气数据拼接到 Context 中,LLM 再次生成:
“北京明天多云转晴,气温 18 到 28 度,北风 3-4 级,基本不会下雨,适合出门。”
注意这个流程里 LLM 被调用了两次:第一次决定"用不用工具、用哪个",第二次基于工具结果生成最终回答。
七、Memory(记忆)——超级助理的"笔记本和档案柜"
通俗解释: Memory 就是让 LLM 这个"超级助理"记住过去聊过什么的能力。单纯的 LLM 每次对话都是"失忆"的——Context Window 有限,上一轮聊的内容,换个会话就忘光了。Memory 给助理配了一个笔记本(短期记忆)和档案柜(长期记忆),让它能记住你的名字、你之前提过的需求、甚至你上个月交代过的事情。
技术定义: Memory 是 Agent 系统中跨对话轮次或跨会话存储、检索和引用历史信息的机制。它分为两类:
- 短期记忆(Short-term Memory):在当前 Context Window 内的对话历史,随窗口滑动而丢失。
- 长期记忆(Long-term Memory):存储在外部向量数据库或键值存储中的历史信息,可跨会话持久化。
三个场景看懂记忆的差异
场景一:没有 Memory(纯 LLM + Context Window)
第一轮对话,用户说"我叫张三,我喜欢吃辣的",LLM 回复"好的张三,我记住了"。但第二轮是新会话,用户问"推荐一家餐厅",LLM 却问"请问您有什么口味偏好?"——因为它完全不记得张三和吃辣的事。原因:新会话的 Context Window 里没有第一轮的历史记录。
场景二:有短期记忆(同一会话内)
在同一个会话内,用户先说"我叫张三,我喜欢吃辣的",紧接着问"推荐一家餐厅",LLM 能回答:"张三,既然您喜欢吃辣的,我推荐您去’川味轩’。"原因:两轮对话都在同一个 Context Window 内,历史记录被保留。
但局限性也很明显:如果聊了 100 轮,Context Window 被撑满(比如满了 32K tokens),最早的信息(“我叫张三”)会被挤出去,LLM 再次忘记。
场景三:有长期记忆(外部存储,跨会话持久化)
会话 A 中,用户说"我叫张三,我喜欢吃辣的,我住在北京朝阳区"。Agent 系统把这句话提取关键信息,存到向量数据库中。三天后的会话 B(全新会话),用户问"推荐一家附近的川菜馆",Agent 先检索长期记忆,查到张三住在朝阳区、喜欢吃辣,再把检索到的记忆注入 Context Window。LLM 结合记忆回答:“张三,您住在朝阳区又爱吃辣,我推荐’朝阳大悦城-眉州东坡’。”
核心机制:关键信息存到外部数据库,每次对话开始时自动检索并塞回 Context。这样即使 Context Window 有限,重要信息也永远不会丢。
八、综合案例:一个"智慧农业助手 Agent"的完整工作流
概念都讲完了,下面用一个完整案例把七个概念串起来。假设你用 API 开发了一个"智慧农业助手 Agent":
(1)设置 System Prompt(固定,永久贴在 Context 最前面)
“你是一位资深的植保专家,说话风格像老农技站站长,朴实、直接。回答必须引用具体的农业技术规程或农谚,语气要接地气。绝不允许直接推荐具体农药品牌,只能推荐有效成分或防治方法。”
(2)用户输入 User Prompt(本轮具体任务)
“我家玉米地里发现很多虫子,叶片被咬得全是洞,怎么办?”
(3)系统把 System + User 拼接成完整 Context
- System Prompt 长度 ≈ 80 tokens
- User Prompt 长度 ≈ 30 tokens
- 总长度假设为 110 tokens,远小于 Context Window(32K),完整容纳,没有被截断。
(4)分词器将中文转为 Token,每个 Token 对应唯一的 tokenId
| 文字 | Token(人类可读) | tokenId(机器实际运算的数字) |
|---|---|---|
| 玉 | [玉] | 24583 |
| 米 | [米] | 10247 |
| 地 | [地] | 33401 |
| 虫 | [虫] | 8832 |
| … | … | … |
模型内部实际处理的是一串整数数组 [24583, 10247, 33401, 8832, ...],而不是汉字本身。给用户看的文字只是"翻译"出来的结果。
(5)Agent 内部开始规划
Agent 的"大脑"(LLM)拿到 Context 后,不是直接回答,而是自主决策:
- 思考路径:“用户问的是玉米虫害,但我不知道具体是什么虫、什么时期、当地气候如何,直接回答容易出错。”
- 决策:先调用 Tools(工具)获取外部信息,再综合回答。
(6)Agent 调用 Tool(工具)
Agent 决定调用联网搜索工具,自动构造查询词:
search("玉米 虫害 叶片 蛀洞 防治 技术规程")
搜索引擎返回约 800 字的结果,内容包括:“玉米主要虫害包括玉米螟、黏虫、棉铃虫……防治适期为喇叭口期,推荐使用含氯虫苯甲酰胺或苏云金杆菌(Bt)的有效成分……”
关键点:这 800 字被追加进 Context Window,此时总 Token 数 = 110 + 约 1000 = 1110 tokens,仍然远小于 32K 的窗口限制,全部内容都在"桌面"上,模型随时可以回头看。
(7)LLM 结合 System Prompt 的限制,生成最终回答
“哎呀,你这是玉米螟咬的,老话讲’喇叭口期防一遍,穗期再防保丰产’。按 NY/T 1234-202X 玉米病虫害防治技术规程,喇叭口期用含氯虫苯甲酰胺或 Bt(苏云金杆菌)的药剂就行。具体哪个牌子你自己去农资店看,我这不能给你指定,得按当地经销商的实际货源来。”
(8)检查:回答是否完全遵守了 System Prompt
| System 要求 | 回答里是否满足 |
|---|---|
| 语气朴实、像老站长 | “哎呀”“老话讲”“你自己去农资店看” |
| 引用农谚 | “喇叭口期防一遍,穗期再防保丰产” |
| 引用技术规程 | “按 NY/T 1234-202X……” |
| 不推荐具体品牌 | 只推荐有效成分,明确说"不给你指定" |
可以看到,一条回答的背后,是 Prompt 定规则、Token 做运算、Context 装信息、Agent 做规划、Tools 拿数据,五个概念协同工作的结果。
九、总结:一张图看懂七者的关系
| 概念 | 比喻 | 一句话定义 |
|---|---|---|
| LLM | 超级助理的大脑 | 基于海量语料训练、按概率预测下一个词的模型 |
| Token | 助理看的密码文字 | 模型处理文本的最小单元,计费与长度的计量单位 |
| Context | 助理眼前的 A4 纸 | 模型一次能参考的最大输入序列长度 |
| Prompt | 工作指令便签 | 引导模型生成特定输出的输入文本(分 System / User 两类) |
| Agent | 会动手的助理 | 能自主规划、调用工具完成多步任务的 LLM 系统 |
| Tools | 手脚和工具箱 | 封装外部能力的预定义函数,让模型能"动手" |
| Memory | 笔记本和档案柜 | 跨轮次/跨会话存储和检索历史信息的机制 |
用一句话串起来:
你通过 Prompt 向 LLM 下达指令,指令和对话被切成 Token 装进 Context,LLM 在此基础上预测输出;当 LLM 被赋予 Tools、规划和 Memory,它就升级成了能真正办事的 Agent。
希望这篇"超级助理"式的讲解能帮你打通这些概念的任督二脉。如果觉得有用,欢迎点赞收藏,评论区聊聊你最想深入了解哪个概念~
本文为学习笔记整理。如文中有不严谨之处,欢迎评论区指正交流。

353

被折叠的 条评论
为什么被折叠?



