从大模型(LLM)、提示词、Agent 到 MCP 与整套 AI 开发栈 —— 一份从新手到高手的超详细通俗指南
如果你最近被 大模型、提示词、Agent、MCP、RAG、微调 这些词刷屏,却总觉得它们像一盘散沙、不知道彼此是什么关系 —— 这篇文档就是为你写的。
我们用一个贯穿全文的比喻把全部概念串起来:把大语言模型(LLM)想象成一位「读了全网书籍、天赋异禀但刚入职的新同事」。他记性惊人、动笔飞快,却对你公司的业务、你的说话习惯、你真正想要什么一无所知。我们要做的事,就是一步步教他:
这一节先给你一张「概念关系图」。很多人学 AI 学得很痛苦,是因为跳过了这步 —— 还没搞懂模块之间谁包含谁、谁调用谁,就一头扎进代码里。先看地图,再走小路。
如果一台计算机能和你聊得天花乱坠,让你完全分不清对面是人还是机器,那它算不算「智能」?这一节带你从零搞懂 AI 到底是什么、它从哪里来、以及那些高大上的词彼此啥关系。
1950 年,英国数学家 艾伦·图灵(Alan Turing)在论文《计算机器与智能》里提出一个振聋发聩的问题:「机器能思考吗?」。为了避开「思考」这个词说不清的哲学纠缠,他设计了著名的图灵测试(Turing Test):把一个人(裁判)和两台机器隔开,只能通过文字聊天;其中一台是真人,另一台是计算机程序;如果裁判聊了半天竟分不清哪个是真人、哪个是机器,那这台机器就被认为具有了「智能」。
| 类型 | 别名 | 含义 | 生活中的例子 |
|---|---|---|---|
| 弱 AI(Narrow AI) | 专用人工智能 | 只在某一个特定领域出色,不会举一反三 | 语音助手、AlphaGo、人脸识别、推荐算法 |
| 强 AI(General AI / AGI) | 通用人工智能 | 像人一样拥有通用理解、学习、推理能力 | 目前只存在于科幻电影(如《HER》《终结者》) |
AI 的历史像坐过山车:有过狂热的欢呼,也有过被冷落的「寒冬」。
| 时间 | 大事件 | 时代标签 |
|---|---|---|
| 1950 | 图灵发表《计算机器与智能》,提出图灵测试 | AI 思想源头 |
| 1956 | 达特茅斯会议,「人工智能」一词被正式提出,学科诞生 | 符号主义起点 |
| 1958 | 罗森布拉特发明感知机(Perceptron),最早神经网络模型 | 神经网络萌芽 |
| 1969 | 明斯基证明单层感知机连 XOR(异或)都解不了 | 第一次危机伏笔 |
| 1974–1980 | 经费削减,第一次「AI 寒冬」 | 寒冬 Ⅰ |
| 1980–1987 | 专家系统(如 XCON)商业化成功 | 符号主义黄金期 |
| 1986 | 反向传播算法普及,多层网络可训练 | 连接主义复兴 |
| 1987–1993 | 专家系统维护成本高、难扩展,第二次「AI 寒冬」 | 寒冬 Ⅱ |
| 1997 | IBM 深蓝击败国际象棋冠军卡斯帕罗夫 | 机器战胜人类棋手 |
| 2012 | AlexNet 在 ImageNet 大幅领先,错误率骤降 | 深度学习革命起点 |
| 2016 | AlphaGo 击败围棋棋手李世石 | 深度学习登顶博弈 |
| 2017 | Google 论文《Attention Is All You Need》提出 Transformer | 大模型技术基石 |
| 2018–2020 | BERT、GPT 相继问世,GPT-3 参数达 1750 亿 | 预训练模型爆发 |
| 2022.11 | OpenAI 发布 ChatGPT,5 天破百万用户 | 大模型走向大众 |
| 2023.3 | GPT-4 发布,具备多模态与更强推理 | 大模型时代全面到来 |
四个阶段的「进化剧本」:① 符号主义 / 专家系统时代(1956–1980s):把人类知识写成一条条规则,「如果……那么……」;② 机器学习的兴起:与其教规则,不如给数据让他自己找规律;③ 深度学习的突破(2012 起):数据变多、算力变强,深层神经网络爆发;④ 大模型时代(2018 至今):Transformer 让模型高效处理长文本,堆大参数、喂全网文本,「涌现」出惊人能力。
深度学习的核心,是人工神经网络。别被名字吓到,它其实很像一座工厂流水线。
1958 年的感知机是最早的「人工神经元」,工作方式像一个小工人做算术再下判断:
输入 x1, x2 ... xn ← 比如:天气(1)、心情(0)、有没有空(1)
权重 w1, w2 ... wn ← 每个因素的「重要程度」
偏置 b ← 一个基础门槛
计算: z = w1·x1 + w2·x2 + ... + wn·xn + b
输出: y = 判断(z) ← 大于 0 就「去」,否则「不去」
算出来的 z 是连续数字,有时我们只需要「是/否」或「柔和信号」,这时请出激活函数,它像流水线上的一道开关阀门:
Sigmoid:把结果压成 0~1,像「概率开关」(0.8 = 80% 想去);ReLU:简单粗暴,负数变 0、正数保持,像「亏损就不生产,盈利才继续」;Tanh:压成 -1~1,适合需要正负信号的情况。输入层 → [隐藏层1] → [隐藏层2] → ... → 输出层
数据 加工特征 提炼高级特征 最终答案
机器一开始啥也不会,需要一把「尺子」量出它错多远,这把尺子叫损失函数(Loss Function)。最常用的是均方误差 Loss = (1/n) × Σ(预测值 − 真实值)²。
知道错多少后,关键问题是:这一大堆工人里,到底谁该背锅?这就是反向传播(Backpropagation)。它用微积分的「链式法则」从输出层往回算,把总错误分摊到每个权重上:w_new = w_old − 学习率 η × ∂Loss/∂w。
for epoch in range(总轮数): # 反复刷好多遍题
pred = model(题目X) # 学生作答
loss = 损失函数(pred, 标准答案Y) # 老师红笔批改
loss.backward() # 反向传播:倒推每个人的责任
optimizer.step() # 按整改方案更新权重
当模型在没见过的新题(测试集)上也考得不错,我们就说它「学会」了——这叫泛化能力。
| 阶段 | 建议学习内容 | 目标 |
|---|---|---|
| 新手 | 理解 AI/ML/DL 概念、图灵测试、历史脉络 | 建立全局认知,不被名词吓倒 |
| 入门 | Python、NumPy、看懂一段神经网络代码 | 能跑通一个简单模型 |
| 进阶 | 反向传播数学、激活/损失函数、过拟合与正则化 | 能调参、诊断模型问题 |
| 高手 | Transformer、注意力、预训练与微调、Prompt 工程 | 能上手大模型、做应用落地 |
如果把传统程序比作「按菜谱炒菜的厨师」,那么大语言模型更像一位「读了全网书籍、靠语感即兴发挥的超级实习生」。你给它一句话,它就能顺着语感,一个字一个字把回答「续写」出来。这一节把支撑这位实习生的核心技术一次讲透。
大语言模型,本质是一个「超级下一个词预测器」:给定一段文字,它预测「接下来最可能出现的词是什么」,把预测出的词接在末尾,再预测下一个,如此循环,便生成了文章、代码或对话。它的「大」,首先体现在参数规模上——内部有以亿计、甚至千亿计的「旋钮」(参数),训练就是拧动这些旋钮让预测越来越准。
| 参数量级 | 典型代表 | 部署场景 |
|---|---|---|
| 0.5B ~ 7B | 手机端小模型(如 Qwen2.5-3B) | 手机、本地电脑 |
| 13B ~ 70B | Llama-3-70B | 单/多张显卡 |
| 100B ~ 千亿级 | GPT-3(175B)、DeepSeek-V3(671B) | 云端超算集群 |
模型并不「直接读字」。文字要先被切碎成 Token(词元)——这是模型能理解的最小信息块。英文里一个 Token 约 = 4 个字母或 0.75 个单词;中文里一个汉字通常对应 1~2 个 Token。同样一段话,英文比中文「省 Token」,这直接影响 API 计费。
2017 年之前,模型多用 RNN「逐字阅读」,有两个致命缺点:记不住长句子(读到句尾早忘了句首),且无法并行。2017 年 Google 论文《Attention Is All You Need》提出 Transformer,用「注意力」彻底取代循环结构。
当你读「那只猫追着老鼠跑,它跳上了桌子」时,大脑会自动把「它」和「猫」关联得最紧——因为你判断「跳」更可能属于猫。这种「读一句话时,眼睛在不同词上停留的轻重」,就是注意力。模型用数学实现这个「轻重分配」,关键角色是三个向量:Q、K、V。
计算过程(「查字典 + 加权关注」):① 用我的 Q 去和每个词的 K 比对(点积),算出「匹配度」→ 注意力分数;② 用 softmax 归一化成一组加起来等于 1 的「注意力权重」;③ 用这些权重对各个词的 V 做加权求和,得到融合后的新表示。
Attention(Q,K,V) = softmax( Q·Kᵀ / √d_k ) · V
Q·Kᵀ :Query 和每个 Key 的「匹配度打分」
√d_k :缩放因子,防维度太大时点积数值爆炸
softmax() :把分数变成概率分布(总和=1 的注意力比例)
乘 V 再求和:按比例「混合」各词信息,得到融合上下文的新特征
一个「翻译官」容易看偏,于是模型派出多个翻译官(多个头)同时从语法、语义、指代等不同角度读同一句话,最后把笔记拼起来——让模型「立体地」理解句子。
# 注意力机制(伪代码示意)
for 每个词 i:
scores = [ Q_i · K_j for 每个词 j ] # 算「亲密度」
weights = softmax(scores / sqrt(d_k)) # 变成关注权重
output_i = sum(weights[j] * V_j) # 加权融合信息
上下文窗口是模型「一次性能看到的最大 Token 数」,可理解为它的工作台面大小。早期只有 2K、4K,聊几句就「忘了开头」;如今主流已达 128K、200K,甚至百万级 Token(约一次性读完整本长篇小说)。超过窗口,模型会「遗忘」最早内容(或截断/摘要)。处理超长文档要懂得分段、摘要或用超长窗口模型。
| 阶段 | 名字 | 比喻 | 做了什么 |
|---|---|---|---|
| ① | 预训练 Pretraining | 读万卷书(通识课) | 用 TB 级网页/书籍/代码做自监督学习,任务是「预测下一个 Token」。算力消耗最大(占 99% 成本),产出「博学但不会聊天」的基础模型 |
| ② | 有监督微调 SFT | 岗前培训 | 用人工编写的「指令—优质回答」配对数据,教模型听懂人话、用对话格式回答 |
| ③ | RLHF / DPO | 老员工随时纠偏 | 用人类偏好把它调教得更安全、有用、听话。RLHF 训练「奖励模型」给回答打分再用强化学习(PPO)优化;DPO 直接拿「好答案 vs 坏答案」成对数据训练,跳过奖励模型,更稳定,已成主流 |
| 参数 | 含义 | 调大 / 调小效果 | 生动比喻 |
|---|---|---|---|
| temperature 温度 | 输出随机性 | 高=发散有创意、易跑题;低=稳定聚焦 | 「火候」:大火随意发挥,小火稳扎稳打 |
| top-k | 只从概率最高前 k 个词里选 | 小=保守;大=更开放 | 只从「前 k 名候选人」里挑 |
| top-p 核采样 | 按累积概率 p 动态截断候选 | 小=集中;大=更多样 | 只从「装了 p 概率的候选碗」里舀 |
| max_tokens | 最多生成多少 Token | 限制回答长度 | 给文章设「字数上限」 |
top-k 与 top-p 常二选一配合使用。2020 年 OpenAI 提出 Scaling Law:模型的损失(预测误差)随 参数规模 N、训练数据量 D、算力 C 增长,呈可预测的幂律下降。翻译:在合理范围内,模型越大、数据越多、算力越足,就越聪明。这直接催生了「堆参数、堆数据、堆 GPU」的军备竞赛。
| 家族 | 出品方 | 代表模型 | 核心特点 |
|---|---|---|---|
| GPT | OpenAI | GPT-4o、o1、o3 | 多模态全能;o 系列为「推理模型」擅长复杂逻辑;生态最成熟 |
| Claude | Anthropic | Claude 3.5 / 3.7 Sonnet | 长文本、代码能力、安全对齐著称;3.7 首创「混合推理」双模式 |
| Gemini | Gemini 2.0 / 2.5 Pro | 原生多模态 + 超长上下文(百万 Token 级);整合搜索生态 | |
| Llama | Meta | Llama 3.1 / 3.3(最高 405B) | 开源开放标杆,可自由微调部署 |
| Qwen 通义千问 | 阿里巴巴 | Qwen2.5 / Qwen3(0.5B~72B) | 全球最大开源模型族群之一,中英文均衡、工具调用强 |
| DeepSeek 深度求索 | 深度求索 | DeepSeek-V3、R1 | V3 用 MoE 混合专家(约 671B 总参、每次仅激活约 37B),极致性价比;R1 是强推理模型 |
把大模型比作一位「天赋异禀但刚入职的新同事」——他读过万卷书、动笔飞快,却对你真正想要什么一无所知。你递一张潦草便利贴,他可能跑偏;你给他一份清晰 SOP,他就能交出满分答卷。提示词工程,就是写给这位超级新同事的操作说明书。
提示词是你输入给大模型的全部指令与上下文,包括:任务描述、背景信息、示例、输出格式。模型本身不会「主动理解你的潜台词」。你写得越精确,他干得越漂亮。提示词工程是一门研究「如何用最少的词,撬动模型最大能力的艺术与工程」。
帮我写点关于减肥的内容。
请为一位 30 岁、久坐办公、想三个月内减掉 5 公斤的女性,
写一篇 300 字左右的微信公众号推文开头。语气亲切有共鸣,
避免说教,并给出一个可立刻执行的动作建议。
一段针对久坐上班族女性、有场景共鸣(如「下午三点肚子咕咕叫」)、并以「今晚饭后散步 20 分钟」收尾的亲切短文。
你是一位有 10 年经验的儿科医生,擅长用家长能听懂的话解释病情。
请用通俗比喻,向一位焦虑的新手妈妈解释「幼儿发烧 38.5℃ 是否需要立刻去医院」。
预期:以医生口吻、用「发烧像身体里的警报演习」比喻,给出分层判断标准(精神状态、持续时间、伴随症状),并安抚家长情绪。
请把下列用户评论分类为「正面 / 负面 / 中性」。
示例:
「物流太快了,包装也精致!」 → 正面
「一般般,没什么惊喜。」 → 中性
现在分类:
「客服半天不回消息,太失望了。」
预期:负面(并可附简短理由)。
请一步步思考,再给出最终答案。
问题:一个水池,进水管每小时进 6 吨,出水管每小时出 4 吨,
空池同时打开两管,多少小时能装满 40 吨?
预期:分步展示「净流入 = 6−4 = 2 吨/小时」「40 ÷ 2 = 20 小时」,最终答案 20 小时。
请用 Markdown 表格输出,对比 iPhone 15 与 15 Pro 的差别,
列包括:价格、屏幕、摄像头、材质、适合人群。
预期:一张整齐的三列表格,而非大段文字。
Zero-shot:不给例子直接下指令;Few-shot:给几个示范再让模型照做(适合固定格式或风格)。
将中文成语翻译为英文 idiom:
「守株待兔」 → "wait for gains without pains"
「画蛇添足」 → "gild the lily"
「亡羊补牢」 → ?
预期:"lock the stable after the horse is stolen",因为示例已建立「意译 + 英文习语」模式。
在问题后加一句 「让我们一步步思考」,模型会显式推理,准确率大幅提升,尤其在数学、逻辑题上。
小明有 3 个苹果,妈妈又给了他篮子里苹果数两倍的苹果,
之后他吃了 4 个,现在有几个?让我们一步步思考。
预期:① 原有 3 个;② 妈妈给 3×2=6 个,共 9 个;③ 吃 4 个,剩 5 个。答案:5 个。
让模型用多种不同思路多次作答,再投票取多数答案。比单次 CoT 更稳,适合高 stakes 决策。实践中可由程序调用模型 5~10 次取众数。
ReAct 让模型交替进行 Reasoning(思考)与 Acting(调用工具/搜索),像边想边查资料的人类。
你具备搜索和计算器工具。请回答:「2024 年某明星电影票房比 2023 年高多少?」
格式:
思考:我需要先查两年的票房数据。
行动:search(该明星 2023 票房)
观察:[结果]
思考:再查 2024。
行动:search(2024 票房)
观察:[结果]
思考:相减即可。
答案:xxx。
请从下面简历文本中抽取信息,仅输出 JSON,不要多余解释。
字段:name, years_of_experience, skills(数组), education。
文本:「张伟,5 年 Python 开发经验,精通 Django、FastAPI,
本科毕业于浙江大学计算机系。」
{
"name": "张伟",
"years_of_experience": 5,
"skills": ["Python", "Django", "FastAPI"],
"education": "浙江大学 计算机系 本科"
}
系统提示词是「贴在工位上的公司守则」,定义模型的身份、边界与默认行为,优先级高于用户对话。
你是「小助手」,一家健身 App 的客服 AI。
- 只回答健身、营养、课程相关问题;
- 不提供医疗诊断;
- 语气鼓励、简短,每次回复不超过 80 字;
- 遇到超范围问题,礼貌引导回主题。
即使用户问「帮我写代码」,模型也会按守则拒绝并引导回健身话题,保证产品行为稳定可控。
| 技巧 | 一句话作用 | 适用场景 |
|---|---|---|
| 具体指令 | 说清要什么 | 所有任务 |
| 角色设定 | 激活专业人格 | 专业/风格化输出 |
| 示例 Few-shot | 照葫芦画瓢 | 固定格式、特殊风格 |
| 分步思考 | 降低犯错率 | 数学、逻辑、规划 |
| 限定格式 | 规范交付物 | 报告、表格 |
| CoT | 显式推理 | 复杂推理 |
| Self-Consistency | 多路投票 | 高准确率需求 |
| ReAct | 边想边查 | 需实时数据 |
| JSON 输出 | 对接程序 | 自动化流水线 |
| System Prompt | 定规矩 | 产品级应用 |
| 坑 | 表现 | 调试方法 |
|---|---|---|
| 歧义 Ambiguity | 「总结一下」不知指摘要、列要点还是翻译 | 用「动词 + 量化指标」重写,如「用 3 条要点总结,每条不超 20 字」 |
| 幻觉 Hallucination | 一本正经编造假数据、假引用 | 要求「不确定就说不知道」;关键事实加「请标注来源」;用 RAG 喂真实资料 |
| 上下文污染 | 前面错误指令/闲聊污染后续回答 | 定期开新会话;用清晰分隔符(如 ###)切分任务块 |
| 长度失控 | 模型停不下来,写满 token 上限 | 明确「不超过 XX 字」;加「说完要点即停止」;用 stop 参数截断 |
当提示词变多,别再每次手敲——把它当代码资产管理:① 模板化用变量占位符,如 你是一位{role},请就{topic}写{length}字文章;② 版本管理存进 Git,记录每次改动效果(A/B 对比);③ 分层结构:System 层(身份/边界)+ Context 层(动态资料)+ Task 层(具体指令)+ Format 层(输出约束);④ 评测闭环准备测试用例,量化准确率/格式合规率,每次改提示词都跑回归;⑤ 工具化用 LangChain 把提示词封装成可复用函数。
如果把大模型比作「满腹经纶但只能动嘴的百科全书」,那么 AI Agent 就是「会自己想办法把活干完的实习生」。这一节带你一步步看懂 Agent 怎么「从聊天到干活」。
你问聊天机器人「明天北京天气怎么样」,它大概率尴尬地说「我无法获取实时信息」——因为它只会聊天,不会行动。Agent 的不同在于:它不仅能想,还能做。它背后连着各种「手脚」——能查天气的 API、能下单的网站、能写文件的代码、能发邮件的工具。你给一个目标,它会自己拆解、自己调用工具、自己检查结果,直到把活干完。
| 维度 | 单纯的 LLM(聊天机器人) | AI Agent(智能体) |
|---|---|---|
| 核心能力 | 生成文本、回答问题 | 规划 + 记忆 + 工具调用,自主完成任务 |
| 是否主动行动 | 否,等你提问 | 是,主动循环执行 |
| 能否获取实时信息 | 不能(训练数据截止) | 能(通过工具/API) |
| 工作模式 | 一问一答 | 目标驱动的多步闭环 |
Agent 怎么「动起来」?最经典的设计是 ReAct(Reason + Act),核心是一个永不停歇的循环:思考(Thought)→ 行动(Action)→ 观察(Observation)→ 再思考……。
【目标】订机票 + 查天气 + 写行程单
┌─ 循环开始 ──────────────────────────────┐
│ Thought: 我需要先查清下周一上海天气。 │
│ Action : call_tool(get_weather,"上海,下周一")│
│ Observation: 上海下周一 多云转小雨,18-23℃ │
│ Thought: 天气有小雨,建议带伞。查机票。 │
│ Action : call_tool(search_flight,北京→上海,下周一)│
│ Observation: 国航 CA1858 08:00-10:20 ¥1280 │
│ Thought: 选定 CA1858。生成行程单并发送。 │
│ Action : call_tool(write_doc,"行程单内容") │
│ Observation: 文档已生成 │
│ Action : call_tool(send_email,"行程单.pdf") │
│ Observation: 邮件已发送至 boss@company.com │
└─ 循环结束(任务完成)────────────────────┘
# 伪代码:Agent 的「心跳」
while not task_done:
thought = llm.reason(history, goal) # 思考:下一步干啥
action, args = llm.decide_tool(thought) # 决定用哪个工具
observation = execute(action, args) # 行动:执行工具
history.append(thought, action, observation)# 观察:记到记忆里
task_done = check_finish(observation) # 完成?
新手实习生「干完就交」,高手会回头检查。反思机制:① Agent 先产出初稿;② 让 LLM 自己(或另一个评审 Agent)当「考官」挑毛病:「这航班太早老板起得来吗?」「行程单漏了酒店!」;③ Agent 根据批评修订,再反思、再修订,直到通过。
短期记忆存在上下文窗口(Context Window)里,就是当前对话 + ReAct 循环历史,容量有限(受 token 上限约束),像实习生桌面那张便签纸。 长期记忆存到外部存储,最常见实现是向量数据库(Vector DB):把历史对话、用户资料、知识文档做 Embedding(向量化)存进向量库(Pinecone、Milvus、Chroma),需要时用语义检索(RAG)把最相关几条「捞」回短期记忆。
用户说:「我平时主要用 Python 和 SQL。」
↓ Embedding
[0.21, -0.83, 0.45, ...] → 存入向量数据库(长期记忆)
↓ 下次需要时,语义检索
Agent:「记得您擅长 Python/SQL,这份脚本我用 Python 写。」
这种「记在硬盘上、用时再翻」的机制,让 Agent 能跨会话记住你的偏好,越用越懂你。
复杂任务让单个 Agent 硬扛容易顾此失彼,于是有多智能体(Multi-Agent)协作,把任务分给不同「角色」的 Agent 各司其职。
researcher = Agent(role="市场研究员", goal="搜集竞品数据", tools=[web_search])
writer = Agent(role="报告撰写员", goal="把数据写成报告", tools=[write_doc])
crew = Crew(agents=[researcher, writer], tasks=[调研任务, 写作任务])
crew.kickoff() # 研究员先干,干完交给撰写员
┌─────────┐ 提需求 ┌─────────┐ 给代码 ┌─────────┐
│ UserProxy│ ───────→ │ Assistant│ ──────→ │ Critic │
└─────────┘ ←─────── └─────────┘ ←─────── └─────────┘
确认/运行 修改建议 挑错反馈
应用场景:个人助理(订票、排日程、整理邮件、写周报);编程助手(读代码库、修 Bug、写测试,如 Devin、Cursor);数据分析(连数据库跑 SQL、出图表、写洞察);客服运营(7×24 应答、自动工单);研究调研(批量搜资料、综述生成)。
在 USB-C 统一接口出现前,每买一个新电器几乎都躺着一根「专属」的线。大模型与外部世界连接的现状,几乎一模一样——直到 MCP 出现,终结了「每个电器单独定制插头」的乱接线时代。
今天,一个 AI 助手想调用本地文件、查数据库、发 Slack、搜网页、读 GitHub,传统做法是:每对接一个能力,工程师就要为这个特定应用、这个特定模型,手写一套专属「适配器」代码。于是出现著名的 M×N 集成噩梦——M 个大模型 × N 个外部工具 = M×N 套互不相通的对接程序。换一个模型或加一个数据源,几乎都要推倒重来。
更麻烦的是,LLM 本身「活在训练数据里」,**天生无法直接访问实时数据**:本地文档、公司内网数据库、最新天气、刚发生的邮件……都像孤岛。没有标准化桥梁,AI 只能「闭门造车」。MCP 要给 AI 应用打造一个统一的「USB-C 接口」。
MCP(Model Context Protocol,模型上下文协议)由 Anthropic 于 2024 年 11 月开源提出,是一个连接 AI 应用与外部系统(数据源、工具、工作流)的开放标准。官方比喻非常贴切:
MCP 就像 AI 应用的 USB-C 端口。正如 USB-C 提供了一种把设备连到各种外设的标准化方式,MCP 也提供了一种把 AI 模型连到不同数据源和工具的标准化方式。
它的技术内核是:基于 JSON-RPC 2.0 进行消息编码,与具体传输方式解耦(transport-agnostic)。换句话说,它只规定「大家怎么说话」(统一对话语法),不规定「通过什么线路说话」。它的野心,是成为 AI 时代的「HTTP 协议」。
| 角色 | 是什么 | 举例 | 职责 |
|---|---|---|---|
| Host 宿主 | 发起连接的 AI 应用 | Claude 桌面端、VS Code、Cursor、ChatGPT | 承载用户交互,运行 LLM,管理一个或多个 Client |
| Client 客户端 | 内嵌在 Host 内的连接器 | Host 里的 MCP 连接器 | 与某一个 Server 保持 1:1 连接,负责协议通信(万能翻译官) |
| Server 服务端 | 提供能力的程序 | 文件系统、数据库、GitHub 的 MCP 服务 | 向 Client 提供上下文、工具、提示模板 |
| 原语 | 本质 | 谁触发 | 典型例子 |
|---|---|---|---|
| Resources 资源 | 类文件、可读取的「数据」 | 客户端/用户选择 | 文件内容、数据库记录、API 响应、日志 |
| Tools 工具 | 可被 LLM 调用的「函数」(需用户批准) | LLM 自主决定 | 读文件、发邮件、执行 SQL、调 API |
| Prompts 提示 | 预写好的任务模板 | 用户主动选用 | 「总结这份文档」「按模板写周报」 |
// Resources:用 URI 唯一标识一段可读取的数据
{ "uri": "file:///notes.txt", "name": "我的笔记", "mimeType": "text/plain" }
// Tools:用 JSON Schema 描述入参的函数
{ "name": "read_file", "description": "读取指定文件",
"inputSchema": { "type": "object", "properties": { "path": { "type": "string" } } } }
// Prompts:带参数的预置模板
{ "name": "summarize", "description": "总结文档",
"arguments": [ { "name": "topic", "required": true } ] }
tools/list 让客户端发现可用工具,通过 tools/call 真正执行——而且它可能修改外部状态(真删了文件、发了邮件)。因此 MCP 强调调用工具必须经过用户明确授权。进阶还有 Sampling(采样):Server 反过来可通过 Client 请求 LLM 帮它「动脑」,整个过程仍受用户审核控制。MCP 消息全部用 JSON-RPC 2.0 编码、UTF-8 传输。协议定义了两种标准传输机制:
| 传输方式 | 适用场景 | 工作方式 |
|---|---|---|
| stdio | 本地 Server | Host 把 Server 当子进程拉起,stdin 写、stdout 读,换行分隔 |
| Streamable HTTP | 远程/多客户端 | 单一 HTTP 端点(如 /mcp),POST 发请求、GET 开 SSE 流收消息,支持会话 ID 与断线重连 |
Mcp-Session-Id 会话管理、用 Last-Event-ID 断线重放,并强制校验 Origin 头防 DNS 重绑定。简单记:本地玩用 stdio(插线直连),上云用 Streamable HTTP(带会话的双向网络通道)。这是最容易混淆的一点,用「接口 vs 实现」视角理清:
| 维度 | MCP(协议) | Function Calling(函数调用) | 传统 API |
|---|---|---|---|
| 定位 | 跨平台开放标准(像 USB / HTTP) | 厂商私有实现 | 点对点接口(定制专线) |
| 提出方 | Anthropic(开放社区共建) | OpenAI 等大模型厂商自带 | 各公司自行定义 |
| 跨模型性 | 支持多模型、多工具混用 | 通常绑定单一模型生态 | 与模型无关,但需手写对接 |
| 通信格式 | 统一 JSON-RPC 2.0 | 厂商自定义 JSON | REST/gRPC 等,无 LLM 感知 |
| 服务发现 | 动态注册,自动列出工具 | 静态配置,需手动声明 | 无标准自动发现 |
最直观的理解,是看一个文件系统 MCP Server:装好它,AI 助手就能「阅读」你电脑上的文档。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/documents"]
}
}
}
const server = new McpServer({ name: "filesystem", version: "1.0.0" });
server.registerTool(
"read_file",
{ description: "读取指定路径的文本文件", inputSchema: { path: z.string() } },
async ({ path }) => {
const content = await fs.readFile(path, "utf-8");
return { content: [{ type: "text", text: content }] };
}
);
server.connect(new StdioServerTransport());
// ① Client 初始化握手
{ "jsonrpc": "2.0", "id": 1, "method": "initialize",
"params": { "protocolVersion": "2025-03-26", "clientInfo": { "name": "my-agent" } } }
// ② Client 列出可用工具
{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }
// ③ LLM 决定调用 read_file,Client 发出调用
{ "jsonrpc": "2.0", "id": 3, "method": "tools/call",
"params": { "name": "read_file", "arguments": { "path": "/Users/me/documents/notes.txt" } } }
// ④ Server 执行后返回结果
{ "jsonrpc": "2.0", "id": 3, "result": { "content": [ { "type": "text", "text": "(文件内容)" } ] } }
用户体验层面:你问「帮我看看 notes.txt 里写了什么」→ LLM 选中 read_file → Client 经 MCP Server 真实读取文件 → 结果回传 LLM → 自然语言回答你。注意:真正读文件的动作发生在你电脑本地,密钥与文件都不出本机。
mcp.so 之类的注册目录,开发者即插即用。把大模型比作天赋异禀、记性时好时坏的「超级实习生」,那么 AI 应用开发,本质上就是教这位实习生更好地工作:给他查资料的权限(RAG)、做岗前培训(微调)、配一套协作流程(框架),再把工位布置得又稳又快(部署与优化),最后装上「绩效考评系统」(评估与可观测性)。
你参加考试,题目内容很可能不在脑子里。最聪明的办法是:先翻书查资料,再把资料整理成答案写上去。这就是 RAG(Retrieval-Augmented Generation,检索增强生成)的核心——「先查资料,再回答」。与之相对,模型「硬背」所有知识来答题像「闭卷考试」,容易张冠李戴(幻觉)。RAG 通过引入外部知识库,让模型「手边有书」,大幅降低幻觉、并让答案可溯源。
离线建库(把书整理好):① 切分 Chunking:把长文档切成小片段(像把厚书拆成一叠便利贴);② 向量化 Embedding:用嵌入模型把每段文本变成一串数字向量(给每张便利贴贴「语义指纹」);③ 入库 Store:向量存进向量数据库并建立索引。
在线问答(开卷答题):④ 检索 Retrieve:把问题也向量化,去库里找最相似的几段(Top-K);⑤ 拼接 Augment:把检索到的资料和问题拼成带上下文的 Prompt;⑥ 生成 Generate:交给大模型生成最终答案。
# 离线建库
chunks = split_document(raw_text, chunk_size=500) # 1. 切分
vectors = embed_model.encode(chunks) # 2. 向量化
vector_db.insert(chunks, vectors) # 3. 入库
# 在线问答
query_vec = embed_model.encode(user_question) # 4. 问题向量化
top_chunks = vector_db.search(query_vec, top_k=3) # 4. 检索最相关3段
prompt = f"根据以下资料回答问题:\n{top_chunks}\n\n问题:{user_question}" # 5. 拼接
answer = llm.generate(prompt) # 6. 生成
| 数据库 | 定位 | 适合场景 | 特点 |
|---|---|---|---|
| Milvus | 工业级分布式向量库 | 海量数据、生产环境 | 可水平扩展,性能强,部署略复杂 |
| Chroma | 轻量级嵌入式向量库 | 原型验证、本地开发 | 开箱即用,Python 友好 |
| pgvector | PostgreSQL 向量插件 | 已有 PG 业务的团队 | 复用现有数据库,无需引入新组件 |
比喻:RAG 是「给实习生一本手册让他现查现用」,而微调是把特定知识、语气、能力直接「训进」模型脑子——像岗前培训,让他变成某领域熟手,下次不用翻书也能答对。
传统全量微调(Full Fine-tuning)要更新所有参数,成本高、显存大、容易「忘本」(灾难性遗忘)。于是发明 PEFT(Parameter-Efficient Fine-Tuning):只训练一小部分参数,冻结主体,四两拨千斤。
| 维度 | 用 RAG | 用微调 |
|---|---|---|
| 知识更新频率 | 高(每天变)✅ | 低(相对稳定) |
| 是否需要溯源引用 | 需要✅ | 不太需要 |
| 改变「语气/风格/格式」 | 较难 | 擅长✅ |
| 数据规模 | 海量文档库✅ | 中等标注数据 |
| 成本与周期 | 低、快✅ | 高、慢 |
| 典型场景 | 企业知识库问答、客服 | 特定口吻写作、垂直领域理解 |
| 框架 | 一句话定位 | 适用场景 |
|---|---|---|
| LangChain | 「瑞士军刀」式全能编排框架 | 通用 LLM 应用、Agent、链式调用、工具集成 |
| LlamaIndex | 「数据接入专家」 | 以 RAG 为核心,强于把各种数据源接入并索引 |
| CrewAI | 「角色扮演团队」协作框架 | 多 Agent 分工协作(分析师+写手+审核) |
| AutoGen | 「多智能体对话」框架(微软) | 多 Agent 通过对话自动完成任务、代码生成 |
GGUF(CPU/边缘友好)、AWQ、GPTQ。ollama run llama3 就能在笔记本起一个模型,适合开发调试、隐私场景。把 Prompt 当「代码」管理:做 A/B 测试对比不同模板效果;建立「回归测试集」,Prompt 一改就跑一遍,防止越改越差。
成本监控:记录每次调用的 token 数、延迟、费用,按用户/功能拆解,及时发现「烧钱大户」。可观测性工具如 LangSmith、Langfuse、Phoenix,可追踪每次请求的完整链路(检索了哪些文档、走了哪条链路、花了多少钱),出问题快速定位。
| 阶段 | 学习内容 | 目标 |
|---|---|---|
| 🟢 初级(入门筑基) | 理解大模型/Tensor/Prompt 概念;会用 ChatGPT/Claude;掌握基础提示词;跑通一个 API 调用;了解 RAG 是什么 | 建立认知,不被名词吓倒 |
| 🔵 中级(能搭应用) | 完整实现 RAG;熟练用 LangChain/LlamaIndex;会用 Chroma/pgvector;掌握 CoT、结构化输出;能用 Ollama 本地跑模型 | 能独立搭一个 AI 应用 |
| 🟣 高级(工程化与生产) | 实践 LoRA/QLoRA,知何时 RAG 何时微调;vLLM 部署、量化;建评估体系;接入可观测性;多 Agent 协作 | 能上线稳定服务 |
| 🔴 专家(体系架构与前瞻) | 设计企业级 AI 平台(高可用、多模型路由、fallback);检索召回优化(混合检索、Rerank);主导垂直大模型训练与对齐;把控安全合规;跟踪前沿做选型 | 能做架构与决策 |
走到这里,你已经掌握了从基础到全栈的知识骨架。最后这一节把视野拉到当下,看看这个领域正在往哪走。以下内容综合了官方文档与中文技术社区(腾讯云、阿里云、CSDN、掘金等 2024–2025 年资料)的共识。
2024 年 11 月 Anthropic 开源 MCP,2025 年 3 月 OpenAI 宣布支持,Google、Microsoft、Cursor、ChatGPT 等相继入伙,MCP 已从提案成长为事实上的行业「通用语」。社区涌现文件系统、GitHub、Slack、PostgreSQL、Brave 搜索、Google Drive 等大量预置 Server,并出现 mcp.so 这类注册目录。协议重心正从「能连上」转向「安全授权、远程多租户、Agent 间标准化协作」。
| 术语 | 英文 | 一句话解释 |
|---|---|---|
| 人工智能 | AI | 让机器表现智能行为的宏大领域 |
| 机器学习 | ML | 不写死规则,让机器从数据中自动学习规律 |
| 深度学习 | DL | 用多层神经网络自动学习复杂特征 |
| 大语言模型 | LLM | 超大规模预训练出来的语言类深度模型 |
| Transformer | Transformer | 用自注意力机制替代循环结构的现代模型架构基石 |
| 自注意力 | Self-Attention | 模型读一句话时,自动分配「该关注哪些词、关注多重」 |
| 词元 | Token | 模型能理解的最小文本块,计费与长度的基本单位 |
| 上下文窗口 | Context Window | 模型一次性能「看到」的最大 Token 数 |
| 预训练 | Pretraining | 用海量文本「读万卷书」,吸收语言与通识 |
| 有监督微调 | SFT | 用「指令—回答」配对数据,教模型好好聊天 |
| 人类反馈强化学习 | RLHF / DPO | 用人类偏好把模型调教得更安全、有用、听话 |
| 缩放定律 | Scaling Law | 模型越大、数据越多、算力越足,越聪明的幂律规律 |
| 提示词 | Prompt | 你输入给模型的所有指令与上下文(操作说明书) |
| 思维链 | CoT | 让模型「一步步思考」再给答案,提升推理准确率 |
| 智能体 | Agent | 会规划、有记忆、能调用工具的「能干的实习生」 |
| ReAct | ReAct | 思考—行动—观察的循环驱动框架 |
| 模型上下文协议 | MCP | 连接 AI 与外部工具/数据的开放标准(AI 的 USB-C) |
| 检索增强生成 | RAG | 先查资料再回答(开卷考试) |
| 向量数据库 | Vector DB | 存文本向量、支撑语义检索与长期记忆的数据库 |
| 参数高效微调 | LoRA / QLoRA / PEFT | 只训练少量参数,低成本把能力训进模型 |
| 量化 | Quantization | 压缩模型权重精度,省显存提速度 |
本文由 AI 技术科普团队基于公开资料综合创作,各节事实交叉核对自以下权威来源(含官方文档与中文技术社区):
本知识库为学习型内容,技术细节随版本迭代可能变化,请结合官方最新文档实践。祝你从「被 AI 惊艳的用户」成长为「能驾驭 AI 的高手」🚀