本文面向有一定技术背景的开发者,系统梳理LLM生态中最关键的工程概念——不是科普扫盲,而是建立可落地的技术认知框架。
一、为什么工程师需要重建AI认知
很多工程师在接触大模型时,会陷入两种极端:要么把LLM当成一个"黑盒API",只会调用不懂原理;要么过度深入数学推导,忽略了工程视角下真正重要的设计决策。
本文尝试打通这两者——以工程师能直接用上的方式,讲清楚LLM技术栈从底层机制到上层应用的12个核心概念。
二、底层机制层:模型是怎么"运转"的
1. Token:一切的起点
Token是LLM处理文本的基本单位。理解Token对工程师极为重要,原因有三:
成本计算:几乎所有商业API都按Token计费。一个典型的工程规律是:
- 英文约4个字符 ≈ 1 Token
- 中文约1.5~2个汉字 ≈ 1 Token
- 代码的Token密度高于自然语言
上下文限制:模型的上下文窗口(Context Window)本质上是"可处理的最大Token数"。当前主流模型:
| 模型 | 上下文窗口 | 工程含义 |
|---|---|---|
| GPT-4o | 128K Token | 约30万汉字 |
| Claude Sonnet | 200K Token | 约50万汉字 |
| Gemini 2.5 Pro | 1M Token | 约250万汉字 |
推理延迟:输出Token数直接决定推理延迟。工程优化中,控制输出长度与控制上下文长度同等重要。
踩坑提示:Token计数与字符数不等,生产环境务必用tiktoken等工具精确计算,避免超出限制导致截断。
2. Transformer架构:你不需要推导,但需要理解这3点
Transformer是几乎所有主流LLM的基础架构,工程师需要了解的核心特性:
注意力机制的计算复杂度:标准Self-Attention的计算复杂度是O(n²),n为序列长度。这意味着上下文窗口越大,推理成本增长是平方级的——这是为什么大上下文窗口的推理成本远高于小上下文的根本原因。
KV Cache:Transformer推理时会缓存Key-Value矩阵,避免重复计算。这是LLM推理引擎(vLLM、TensorRT-LLM)最核心的优化点之一。理解KV Cache有助于你理解:为什么同样的输入,流式输出比批量输出更快?为什么prefill阶段和decode阶段的延迟特性完全不同?
位置编码与长上下文支持:原始Transformer的位置编码限制了对长文本的泛化能力。RoPE(旋转位置编码)、ALiBi等改进方案是当前长上下文模型的核心技术,直接影响模型在处理长文档时的准确性衰减曲线。
3. 大语言模型(LLM)的工程本质
从工程角度看,LLM做的事情是:在给定上下文的条件下,预测下一个Token的概率分布。
这个定义决定了LLM的两个根本特性:
- 它不是数据库,而是概率分布估计器——所以它会"幻觉",因为它选择的是"最可能"的词,不是"最准确"的词
- 它的输出是采样结果——Temperature、Top-p、Top-k等参数控制的是采样策略,影响输出的随机性与多样性
三、交互设计层:怎么"指挥"模型
4. Prompt工程:从"会用"到"用好"
Prompt不只是"你发给AI的那句话",在工程上它是一个结构化的输入设计问题。
生产级Prompt的基本结构:
[System Prompt]
你是一个专注于代码审查的工程师助手。
规则:
- 只关注性能问题和安全漏洞
- 输出格式:JSON数组,每项包含{line, severity, description, suggestion}
[Few-shot示例]
输入:...
输出:[{"line": 23, "severity": "high", ...}]
[用户输入]
请审查以下代码:
{code}
关键工程实践:
- 指令与示例分离:System Prompt写约束,Few-shot示例写格式
- 格式强约束:要求JSON/XML输出比自然语言输出更易解析和验证
- 负向约束:明确告诉模型"不要做什么",比只告诉它"要做什么"更有效
5. Context Engineering:比Prompt更重要的工程问题
Context Engineering关心的是:送入模型的上下文窗口里,应该放什么、怎么放、放多少。
这是2025年后LLM工程领域最重要的话题之一。核心挑战:
Lost-in-the-middle问题:研究表明,LLM对上下文中间部分的注意力显著弱于开头和结尾。如果你把关键信息塞在长文档的中间,模型可能直接忽略它。
信息密度优化:不是"给越多越好"。无关信息不仅占用Token预算,还会干扰模型的注意力分配,降低输出质量。
动态上下文构建:生产级应用通常需要根据查询动态组装上下文:
上下文 = 系统指令 + 相关文档检索结果 + 近期对话历史 + 当前用户输入
6. Memory架构:跨会话的工程挑战
LLM天然没有跨会话记忆——每次请求都是无状态的。工程上实现"记忆"有三种主要方案:
方案对比:
| 方案 | 实现方式 | 适用场景 | 局限 |
|---|---|---|---|
| 完整历史注入 | 每次把所有历史拼入上下文 | 短对话 | 随历史增长消耗Token |
| 摘要压缩 | 定期压缩旧对话为摘要 | 中等长度对话 | 摘要可能丢失细节 |
| 向量检索记忆 | 向量化存储,按需检索 | 长期记忆系统 | 架构复杂度高 |
四、能力扩展层:让模型"干活"
7. Tool Calling(工具调用):赋予模型"手脚"
Tool Calling是让LLM真正可用于生产的关键机制。模型本身不执行工具,而是输出"应该调用哪个工具、传什么参数"的结构化指令,由宿主程序实际执行。
工程流程:
用户输入 → 模型生成tool_call JSON → 宿主执行工具 → 结果回传模型 → 最终回答
关键设计决策:
- 工具描述质量:工具的name和description直接影响模型能否正确选择工具
- 并行工具调用:GPT-4和Claude都支持在一次输出中调用多个工具,合理利用可大幅降低延迟
- 工具输出截断:工具返回的结果要控制长度,避免超出上下文窗口
8. RAG(检索增强生成):解决"幻觉"的工程方案
RAG的核心思路:把"记忆"外化为检索系统,让模型基于检索到的文档回答,而不是凭空生成。
标准RAG架构:
查询 → 向量嵌入 → 向量数据库检索 → Top-K文档 → 拼入上下文 → 模型生成
工程优化方向:
- Hybrid Search:向量检索 + BM25关键词检索混合,比单纯向量检索准确率更高
- Reranking:用交叉编码器对检索结果二次排序,过滤不相关内容
- Chunk策略:文档切分大小直接影响检索精度,通常512~1024 Token per chunk是起点
- HyDE(假设文档嵌入):先让模型生成假设答案,用假设答案的向量去检索,比直接用问题向量效果更好
9. MCP(模型上下文协议):AI工具生态的标准化
MCP是Anthropic于2024年底发布的开放协议,定义了模型与外部工具/资源交互的标准接口。
从工程角度,MCP解决的核心问题是:过去每个AI应用都需要自己实现工具集成,MCP把这个接口标准化,使得:
- 工具提供方只需实现一次MCP Server
- 所有支持MCP的客户端(Claude、Cursor等)都能直接使用
MCP架构:
MCP Client(AI应用)↔ MCP Protocol ↔ MCP Server(工具提供方)
├── GitHub MCP Server
├── PostgreSQL MCP Server
└── 自定义业务MCP Server
五、系统设计层:从"调API"到"建系统"
10. Agent架构:自主任务执行的工程设计
Agent是能够自主规划并执行多步骤任务的AI系统。从工程角度,Agent需要解决:
核心循环(ReAct模式):
while not done:
thought = llm.think(observation, goal)
action = llm.decide_action(thought)
observation = execute(action)
工程挑战:
- 状态管理:长任务中如何持久化和恢复状态
- 错误恢复:工具调用失败时的重试和降级策略
- 死循环检测:防止Agent在某个步骤无限循环
- 成本控制:每步都调用LLM,成本会快速累积
实用建议:
- 给Agent设置最大步骤数上限(如50步)
- 关键操作前增加人工确认节点(Human-in-the-loop)
- 使用结构化日志记录每步的思考过程,便于调试
11. Prompt Engineering → Context Engineering → Harness Engineering
这是LLM工程实践的三个层次,代表了理解的深度递进:
Prompt Engineering(入门):关注如何写出高质量的单次提示词。核心技巧:角色设定、思维链(CoT)、少样本示例(Few-shot)、输出格式约束。
Context Engineering(进阶):关注如何管理整个上下文窗口。核心问题:信息放置顺序、动态内容注入、长度预算分配。
Harness Engineering(高级):关注如何设计人机协作系统的整体架构。核心问题:哪些决策交给AI、哪些需要人工确认、如何评估输出质量、如何持续优化。
这三个层次的关系是递进包含的:好的Harness Engineering必然包含好的Context Engineering,而好的Context Engineering也离不开扎实的Prompt Engineering基础。
12. AI Coding与Vibe Coding:工程范式的转变
AI Coding的工程价值不仅是"让AI帮你写代码",而是重新分配认知负载:
- 人负责:架构决策、业务逻辑、需求澄清、代码审查
- AI负责:样板代码生成、API查找、测试用例编写、文档生成
Vibe Coding(Andrej Karpathy, 2025)描述的是一种更进一步的范式:你描述意图和期望效果,AI处理实现细节。关键是建立快速的验证-迭代循环:
意图描述 → AI生成 → 快速验证 → 反馈调整 → 再生成
对于工程师而言,Vibe Coding最大的挑战不是让AI生成代码,而是如何快速、准确地验证AI生成代码的正确性——这反而需要更深的技术理解,而不是更浅。
总结:建立LLM工程的系统视角
Token & Transformer(底层机制)
↓
Prompt / Context / Memory(交互设计)
↓
Tool Calling / RAG / MCP(能力扩展)
↓
Agent / Harness(系统设计)
↓
AI Coding(工程范式)
这12个概念构成了当前LLM工程实践的核心骨架。每一层都有大量值得深挖的工程细节,但理解它们之间的关系和边界,是从"会用大模型"到"会用大模型构建系统"的必经之路。
如果你在实际工程中遇到了具体问题,欢迎在评论区交流。下篇文章计划深入讲解RAG的生产级优化实践。