一张图看懂AI名词们的递进关系
随着AI飞速发展,一天一个样也不为过,同时也涌现出大量新词汇。如果不跟随一下,似乎都会落伍到没法一块和同事聊天了。
但这些名词也并不高大上,更多是AI发展过程中的中间产物,为了解决前一个问题发明出了一个新的名词,也可能随着时间推移,有些名词也就被淘汰掉了。
OK,从 LLM 到 Harness,这些名词不是并列的堆砌,而是逐层解决上一层局限的演进链条。这里按「能力源头 → 沟通 → 知识 → 行动 → 系统」五层,把它们串成一条主线。
一、分层架构图
flowchart TB
subgraph L5["第五层 · 系统侧 —— 编排与工程外壳"]
direction LR
Agent["Agent 智能体<br/>自主循环:观察→思考→调工具→再思考"]
Skill["Skill 技能<br/>可复用能力包,按需加载"]
Harness["Harness 驾驭工程<br/>权限/调度/恢复/多Agent协作"]
Agent --> Skill --> Harness
end
subgraph L4["第四层 · 行动侧 —— 让模型「做事」"]
direction LR
FC["Function Calling 函数调用<br/>输出结构化调用意图"]
MCP["MCP 模型上下文协议<br/>统一「模型↔工具」的标准接口"]
FC --> MCP
end
subgraph L3["第三层 · 知识侧 —— 喂对知识"]
RAG["RAG 检索增强生成<br/>按需检索资料,填进 Context"]
end
subgraph L2["第二层 · 输入侧 —— 如何跟模型沟通"]
direction LR
Prompt["Prompt 提示词<br/>怎么问决定怎么答"]
Context["Context 上下文<br/>单次可见的全部输入(有长度上限)"]
Memory["Memory 记忆<br/>外部持久化,兜底 Context 丢失"]
Prompt --> Context --> Memory
end
subgraph L1["第一层 · 能力源头 —— 模型本身"]
direction LR
LLM["LLM 大语言模型<br/>预测下一个 token"]
Token["Token 词元<br/>最小处理单位,计费/限长按它算"]
LLM --- Token
end
L5 -->|建立在| L4 -->|建立在| L3 -->|建立在| L2 -->|建立在| L1
classDef base fill:#ede9fe,stroke:#8b5cf6,color:#3b2764
classDef comm fill:#e0e7ff,stroke:#6366f1,color:#27306b
classDef know fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
classDef act fill:#d1fae5,stroke:#10b981,color:#0f4c3a
classDef sys fill:#fef3c7,stroke:#f59e0b,color:#7c4a03
class LLM,Token base
class Prompt,Context,Memory comm
class RAG know
class FC,MCP act
class Agent,Skill,Harness sys
每一层都在补上一层的短板——底层的 LLM 只会「续写文本」,它不知道你是谁、记不住上一句、也没法真正「做事」。上面所有名词,本质都是在给它打补丁。
二、逐层拆解
第一层:模型本身(能力的源头)
| 名词 | 中文 | 是什么 |
|---|---|---|
| LLM | 大语言模型 | 一切的地基。一个概率模型,输入文本、预测下一个 token |
| Token | 词元 | LLM 的最小处理单位。文本被切成 token,计费、限长都按它算 |
递进起点:LLM 只会「续写文本」,它不知道你是谁、记不住上一句、也没法真正「做事」。后面所有名词,都是在给它打补丁。
第二层:如何跟模型沟通(输入侧)
| 名词 | 中文 | 解决什么 |
|---|---|---|
| Prompt | 提示词 | 怎么问,决定怎么答。最原始的「编程接口」就是自然语言 |
| Context | 上下文 | 模型单次能「看到」的全部输入(Prompt + 历史 + 资料)。有长度上限(context window) |
| Memory | 记忆 | Context 会随对话被挤爆/清空 → 需要外部存储把关键信息「记下来」,下次再喂回 Context |
递进逻辑:Prompt(一句话)→ 装不下 → 塞进 Context(一个窗口)→ 窗口会满/会丢 → 用 Memory(外部持久化)兜底。
第三层:如何给模型喂对知识(知识侧)
| 名词 | 中文 | 解决什么 |
|---|---|---|
| RAG | 检索增强生成 | 模型不知道你的私有数据/最新信息 → 先「检索」相关资料,再塞进 Context 让它「参考着答」 |
RAG 本质是「Context 的智能填充器」:不把所有资料硬塞,而是按需检索最相关的片段。
第四层:如何让模型「做事」而不只是「说话」(行动侧)
| 名词 | 中文 | 解决什么 |
|---|---|---|
| Function Calling | 函数调用 | 让模型输出「结构化的调用意图」(调哪个函数、传什么参数),由你的代码去真正执行。模型第一次能「触达外部世界」 |
| MCP | 模型上下文协议 | Function Calling 各家实现五花八门 → 用一套标准协议统一「模型 ↔ 工具/数据源」的连接。相当于 AI 世界的 USB-C |
递进逻辑:Function Calling(能调工具了,但每个工具都要单独对接)→ 太碎 → MCP(定标准,一次对接、处处可用)。
第五层:把上面全部编排起来(系统侧)
| 名词 | 中文 | 解决什么 |
|---|---|---|
| Agent | 智能体 | 让模型自主循环:观察→思考→调工具→看结果→再思考…直到完成目标。它把 LLM + Prompt + Context + Memory + Function Calling/MCP + RAG 全都串起来用 |
| Skill | 技能 | 给 Agent 封装的「可复用能力包」——把某类任务的流程、Prompt、工具组合固化下来,按需加载 |
| Harness | 驾驭工程 | 包裹 Agent 的整套「运行时脚手架」:权限控制、循环调度、上下文管理、错误恢复、多 Agent 协作。让 Agent 从「demo」变成「能上生产的系统」 |
递进逻辑:Agent(会自己干活)→ 每次都从头教太累 → Skill(把套路封装成技能)→ 光有 Agent+Skill 还不够稳 → Harness(加一层工程外壳,管住它、驾驭它)。
三、一句话串起整条主线
LLM 用 Token 说话 → 你用 Prompt 在 Context 里跟它沟通 → Memory 帮它记事、RAG 帮它查资料 → Function Calling / MCP 让它能真正动手 → Agent 把这些自主编排成闭环 → Skill 沉淀可复用套路、Harness 提供工程外壳,让它能上生产。
四、同一体系里高频出现的衍生名词
如果要画一张更完整的图,这些值得补上:
- Prompt Engineering / Context Engineering —「提示词工程」正在演进为「上下文工程」(重点从「怎么措辞」转向「怎么组织喂进去的全部信息」)
- Embedding / 向量数据库(Vector DB) — RAG 的底层:把文本转成向量、按相似度检索
- ReAct / Chain-of-Thought(CoT) — Agent 的思考范式(推理+行动交替、思维链)
- Multi-Agent / Orchestration — 多个 Agent 分工协作(subagent、workflow)
- Tool Use — Function Calling 的通称叫法
- Guardrails — 安全护栏,和 Harness 的权限控制同源
- Fine-tuning vs. In-context Learning — 改模型权重 vs. 只靠上下文教它(RAG/Prompt 属后者)
- Agentic Workflow — 介于「固定流程」和「全自主 Agent」之间的编排模式