
1、前言 —— 你敲了一行字然后魔法发生了你打开 Claude Code敲了一行字帮我修一下这个 BugHello.cs 的构造函数参数好像写错了。回车。几秒钟后它找到了问题给出了修复方案。你端着咖啡感觉自己是科幻电影里的主角。但你知道刚才那几秒钟里背后到底发生了什么吗你的 Claude Code 对着 API 狂轰滥炸发了1、2、3、4 、n次请求。它不是魔法师——它是一个强迫症患者反复做着一件极其无聊的事一个 while 循环。如果你对 AI 领域稍有接触一定被下面这些名词轰炸过LLM、Prompt、Context、Memory、Agent、MCP、Skill、RAG、LangChain、Workflow……它们到底是什么为什么每年都有一堆新概念冒出来这些名词之间到底是什么关系这篇文章的目标很简单带你拆开 AI Agent 这个黑盒用最直白的人话讲清楚每个概念的来龙去脉。不堆砌术语不讲正确的废话。每一个概念我都会告诉你它解决的是什么问题、为什么会出现、以及它和其他概念的关系。剧透一句所谓智能体就是所有不需要智能的部分拼在一起给中间那个真正需要智能的 LLM 打工。所有的花活最终都是在帮我们更高效地往 Prompt 里塞信息。2、你管这叫智能它只是在猜下一个字先说一个反直觉的事实大语言模型Large Language Model简称 LLM做的事情本质上就是文字接龙。你输入魏杨杨真的它预测下一个字最可能是帅。拼上去变成魏杨杨真的帅再预测下一个字……就这么一个字一个字往下接。从头到尾底层逻辑没变过给我上文我给你下一个字。那你肯定想问如果它只会猜字为什么它能写代码、做翻译、跟你聊哲学答案是当模型的参数量大到一定程度百亿、千亿级别猜字这个看似愚蠢的行为突然涌现出了理解能力。就像一个小孩学了足够多的词语搭配之后突然能组织出有逻辑的句子了。这种从量变到质变的飞跃AI 圈叫它涌现Emergence。为了跟之前的小模型做区分人们在前面加了个大字——大语言模型Large Language Model这就是 LLM 这个词的由来。所以每次你看到 AI 妙语连珠请记住它只是在不断地猜下一个字。只不过它猜得太准了准到你不觉得它在猜。Claude Code 能写出完整的 .NET Controller不是因为它懂编程——而是因为它见过太多 Controller 代码知道在这个上下文里下一个 Token 大概率是 ActionResult。但这有一个致命缺陷LLM 的知识停留在训练截止的那一天。你问它今天深圳天气怎么样要么告诉你不知道要么胡编一个数字还煞有介事地说根据最新气象数据……。这个问题会引出我们后面要讲的所有概念。3、Prompt、Context、Memory —— 这些热词其实是你自己发明的假设你有一个 LLM我们叫它小L你是老板。每次你给这个员工布置任务这个任务文本就叫Prompt提示词。比如把这段话翻译成英文。很快你发现 Prompt 可以拆成两部分背景信息 具体指令。我是一名.NET程序员擅长什么技术、技术团队怎么样是背景信息翻译这段话是具体指令。你给背景信息起了个名字叫Context上下文。恭喜你已经创造了第二个 AI 热词。但真正的问题来了小L只能一问一答。你追问刚才说的那个方案能再详细一点吗它说什么方案我不记得了。因为每一次对话都是独立的一问一答结束就结束了。聪明的你想到一个办法每次沟通前把之前所有的对话历史全部塞进 Context 里面。这样虽然每次对小L来说仍然是一问但这一问里面已经包含了完整的对话脉络。你给这个跨轮次的 Context 起了个新名字叫Memory记忆。第四个词诞生。但 Memory 会越滚越大。当你跟小L聊了三十轮之后整个对话历史可能已经有几万字——超出了 LLM 能处理的上下文窗口。于是你又想了一个办法让 LLM 自己把之前的对话总结成几百字的摘要用摘要代替原文塞进 Memory。这就是Memory Compression记忆压缩。你看你用三个概念——Prompt、Context、Memory——把一个原本只会一问一答的智障包装成了能跟你多轮深入讨论的智能助手。牛马员工养成。Claude Code 启动时自动读取 CLAUDE.md 文件本质就是在初始化 Context。你每次跟它对话的完整历史就是它的 Memory。当你看到上下文即将超出正在总结那个提示时就是 Memory Compression 在工作。4、Agent —— 不是智能体是打工体有了 Prompt/Context/Memory小L现在已经能跟你聊天了。但它只能说不能做。你问今天天气怎么样——它不会上网。你让它帮我改一下这个文件——它没有操作文件系统的能力。LLM 是一个纯粹的文本处理器任何非文本的交互它都做不到。你的第一个本能反应是自己当传话筒。小L说我需要知道天气数据你就去网上查查完喂给它。它说我应该修改第 42 行你就去编辑器里改。但很快就崩溃了——到底谁是牛马于是你把上网查资料读文件执行命令这些逻辑写成一套程序让程序自动在 LLM 和外部世界之间传话。在外人看来你还是输入一个问题就拿到了答案但中间多了一个帮你干活的神秘程序。这个程序看起来好像拥有智能——它甚至能操作工具你激动地给它起了个高级名字Agent智能体。但说真的早期的一些 Agent 简单到什么程度呢核心逻辑就是如果 LLM 返回的文本里包含 search: 关键词就把后面的内容当搜索词调一下搜索 API把结果拼回去。——就这。从现在的视角回看这简直是名词诈骗。我给 Agent 一个诚实的定义Agent 就是所有不需要智能的部分拼在一起给中间那个真正需要智能的 LLM 打工。LLM 不会读文件Agent 帮它读。LLM 不会联网Agent 帮它搜。LLM 不会执行命令Agent 帮它跑。Agent 本身没有任何智能——它只是一个调度器永远在问 LLM接下来干什么5、拆开黑盒 —— Agent 的肚子里只有一个 while(true)上面讲得很好听但口说无凭。我们上抓包工具实打实地看一次。设置一个简单任务有两个 C# 文件Hello.cs 和 User.cs。Hello.cs 里调用了 User 的构造函数但参数个数传错了。让 Claude Code 帮我们找到这个 Bug。任务简单到你可能觉得 Claude Code 一步就能定位。现实是——它发了 1234 次 API 请求。第 1 轮Agent 把三样东西打包发给 LLM(1)、你的问题帮我找到 Bug (2)、一长串系统提示词告诉 LLM你是一个编程专家你要找出并修复用户的代码问题 (3)、17 个可用工具的清单和用法说明读文件、写文件、搜索文件、联网搜索……。LLM 收到这一大坨信息后并不直接告诉你 Bug 在哪。相反——它开了一个检查单返回一条 JSON调用 Read 工具读取 Hello.cs。第 2 轮Agent 乖乖执行读取 Hello.cs 的完整内容。然后把历史记录你的原始问题 LLM 上轮开的检查单 刚才读到的文件内容整包发给 LLM。LLM 看完说光看 Hello.cs 不够搜一下所有引用了 User 的文件。第 3 轮Agent 执行搜索把找到的文件列表发回去。LLM 说读取 User.cs。第 4 轮Agent 读取 User.cs连同 Hello.cs 的内容和所有历史一起发给 LLM。这次 LLM 终于看到了完整的两个文件——Hello.cs 给 User 构造函数传了 2 个参数但 User 的构造函数只定义了 1 个参数。这就是 Bug。建议修改方案是……看懂了吗这个模式可以无限循环收集上下文 → 发给 LLM → LLM 不说答案而是开下一步检查单 → Agent 执行检查 → 结果塞回上下文 → 再发给 LLM → 循环……直到 LLM 最终给出答案为止。这就像医生问诊你说头疼→医生开 CT→你做完 CT 拿结果回来→医生看 CT 结果开血检→你做完血检回来→医生终于确诊。Agent 就是那个永远在问下一步该做什么的程序。6、Claude Code 源码级拆解 —— Agent 循环只占 5% 的代码上面说的是 Agent 的核心循环逻辑。但如果去看 Claude Code 的源代码一期泄露了约 50 万行 TypeScript你会发现一件有趣的事核心循环本身只占了大约 5% 的代码。剩下 95% 全是在解决循环跑起来之后怎么保证它不跑偏的问题。一、权限系统7 层纵深防御。这不是一个简单的允许/拒绝开关而是七层层层递进的防线第 1 层全局禁止列表硬编码的危险操作如 rm -rf第 2 层目录边界禁止操作项目目录外的文件第 3 层只读自动放行Read、Grep、Glob 静默通过不打扰用户第 4 层安全模式白名单git commit、dotnet build 这些明确安全命令自动放行第 5 层 ML 分类器这是最精妙的部分。一个独立的轻量模型从海量真实用户交互日志中学习用户批准了哪些命令、拒绝了哪些命令能在命令执行前评估风险等级第 6 层会话级用户授权当前会话中你明确允许的操作模式第 7 层高风险显式确认删库、强制推送等操作必须你亲手点击确认。任何一层都能独立阻止一个操作。更厉害的是Anthropic 可以通过远程特性开关Statsig feature flags一键关闭全球所有用户的绕过权限模式如果某个权限模式出了问题不需要客户端更新瞬间就能完成全球范围的紧急响应。还有拒绝追踪熔断机制连续 3 次或累计 20 次工具拒绝会自动降级到手动确认模式。二、上下文管理系统5 层压缩流水线。上下文窗口是有上限的约 20 万 TokenAgent 循环跑了成百上千次之后上下文会爆。Claude Code 的解决方案是一套从便宜到昂贵的 5 层压缩策略①每消息大小上限Budget Reduction零成本②裁剪不相关历史Snip③运行时微压缩Microcompact清除过时工具结果但保留缓存命中④上下文折叠Context Collapse把历史块归档为元数据占位符不销毁数据⑤自动总结重写Auto-Compact让 LLM 把整个原始历史总结成结构化的 Markdown 快照——这是最后手段因为要花 API 费用。这套流水线的哲学是先用便宜的本地操作实在不行再花 API 钱做重写总结。而且 Auto-Compact 有熔断——连续 3 次失败就停止重试真实数据中曾出现 1279 个会话连续失败 50 次浪费了大量 API 调用。压缩完成后还会重新注入最多 5 个关键文件每个最多 5K Token和 Skill 指令最多 25K Token确保模型不丢失关键上下文。三、扩展机制4 级递进。Hooks零上下文成本27 种事件类型可以拦截工具调用和会话生命周期→ Skills/CLAUDE.md低成本项目级知识注入层级式系统→用户→项目→本地→ Plugins中等成本10 种组件类型的可安装包→ MCP Servers高成本7 种传输类型外部工具即插即用。四、子 Agent 编排3 种协作拓扑。Subagent 简单委托帮我搜一下 XXX、Team/Swarm 协作模式LeaderWorker 自主认领任务、Coordinator 编排模式研究→综合→实现→验证四阶段流水线。子 Agent 可以跑在 Git Worktree 隔离环境里——每个子任务拥有独立的文件系统副本做完合并结果失败的直接丢弃。这是一种优雅的隔离设计。五、工具执行系统并发感知。不是等 LLM 返回完整响应才开始执行——流式执行器StreamingToolExecutor在 tool_use 块到达时就立刻开始执行。并发安全的工具Read、Grep、Glob并行执行互斥的工具Bash、Write、Edit串行执行以避免竞态条件。光 Bash 工具就拆分成了 18 个文件做 8 层安全检查。六、会话持久化追加写入不复原权限。Session 用 JSONL 追加写每条事件人类可读、版本可控。但关键设计——权限数据跨会话不复原。每次新会话信任从零开始重建。子 Agent 的完整对话记录保存在隔离的侧链 JSONL 文件中只有摘要返回主会话。七、终端 UIReact Ink。用 React 组件渲染终端 ANSI 序列——流式输出、Diff 高亮、多区域布局、进度动画。状态管理用 Zustand 风格的 Store。7、Agent 安全 —— 当你的 AI 可以 rm -rf 的时候前面提到权限系统这里展开讲一下——因为这可能是 Agent 架构中最被低估的部分。Agent 有操作文件系统、执行命令、访问网络的能力。如果没有任何安全机制用户一句帮我清理一下临时文件Agent 可能执行了 rm -rf /。这不是开玩笑在生产环境中Agent 的安全架构直接决定了你是用 AI 提效还是在系统里埋了一颗定时炸弹。Claude Code 的安全设计哲学有三个关键词Deny-First否决优先、Graduated Trust渐进信任、Defense in Depth纵深防御。否决优先的意思是宁可错误地阻止一个安全操作也绝不能错误地放行一个危险操作。渐进信任的意思是Agent 一开始什么都不能做随着用户逐步授权能力边界逐步扩大——而不是一上来就给它 root 权限。纵深防御我们已经讲过了——7 层独立防线任何一层都能拦截。信任是分级的——从 plan只能读不能改到 default大部分操作需审批到 acceptEdits接受编辑自动放行到 autoML 分类器自动判定到 dontAsk 到 bypassPermissions完全信任。这不是非黑即白的二元开关而是一个信任光谱。你可以在不同项目、不同场景下选择不同的信任级别。8、RAG 检索增强生成 —— 与其让 LLM 胡编不如给它翻书说完了 Agent我们再回来解决 LLM 本身的一个核心问题——幻觉Hallucination。你问 LLM公司上个季度的销售额是多少它不知道但它会编一个数字而且编得理直气壮。更可怕的是——有时候编的数字刚好落在合理范围内你不查证根本不会怀疑。在企业场景这是致命的。解决方案很朴素在问 LLM 之前先查一下相关资料把查到的内容作为参考资料一起塞进 Prompt。这就是 RAGRetrieval Augmented Generation检索增强生成。为什么叫这个名字因为它的流程就是三步——先检索Retrieval用检索结果增强AugmentedPrompt再让 LLM 生成Generation回答。但是传统的关键词搜索在这里有个硬伤销售额搜不到营收怎么做红烧肉匹配不到如何烹饪红烧肉。于是有了向量搜索Vector Search用 AI 把文字转成一串数字Embedding 向量语义越相近的文字向量之间的距离就越近。你搜怎么做红烧肉系统找到如何烹饪红烧肉的向量距离只有 0.08——哪怕表层一个关键词都没对上。文档分块Chunking是 RAG 中最关键的工程决策之一。块太大——检索精度下降LLM 收到一堆噪音。块太小——信息碎片化丢失上下文。2025-2026 年的研究趋势非常清晰第一代固定 Token 数切块已经被淘汰——无视语义边界一刀切在句子中间。第二代递归分块是当前主流——按段落、句子层级递归拆分保留文档结构。第三代语义分块正在兴起——先把所有句子 Embedding再根据语义相似度找自然边界Max-Min 算法决定是否将下一句加入当前块。最前沿的第四代查询自适应分块——根据用户查询动态决定块的大小和抽象层级用强化学习训练一个 Planner 来预判最优分块策略SmartChunkICLR 2026。一个反直觉的研究发现通用检索模型Nomic、E5、BGE-M3在大多数场景下优于领域专用模型如 SciBERT。化学领域的系统研究测试了 25 种分块配置 × 48 种嵌入模型的组合结果通用模型普遍胜出。还有几个见效快的高级技术值得了解Contextual Retrieval 在索引时为每块加一段 LLM 生成的文档级上下文描述可以减少约 49% 的检索失败ColBERT 做逐 Token 嵌入而非逐块嵌入用 MaxSim 评分实现更细粒度的匹配RAPTOR 构建层级摘要树叶子节点是原文块父节点是 LLM 生成的摘要对大局观类查询效果极好。生产环境的 RAG 流水线通常不止一步文档摄入 → 智能分块 → 元数据增强 → 向量嵌入 → 存入向量数据库Milvus / PGVector / SQL Server 向量索引→ 查询时向量化 →混合检索向量语义匹配 关键词精确匹配互补→ 重排序Cross-Encoder 对候选结果精细打分→ 拼进 Prompt → 发给 LLM。理解了 RAG你就明白了为什么企业知识库问答、智能客服、合同审查这些场景离不开它。因为你不敢用没有 RAG 的 LLM 去回答业务问题——你分不清它哪句是真的哪句是编的。9、MCP 模型上下文协议 —— AI 界的USB-C 接口标准好现在你理解了 Agent 的基本原理LLM 说我要调某某工具Agent 就去调。但这里有一个工程上的大问题最开始的实现方式是把每个工具的集成逻辑硬编码在 Agent 主程序里。这导致了著名的M × N 集成地狱N 个 AI 模型要对接 M 个外部工具总共需要 N × M 套定制集成。5 个模型 × 10 个工具 50 套集成。每加一个工具每个模型都得写一遍集成代码。每换一个模型所有工具的集成方式可能都不一样。这就像每台手机都有一个自己独特的充电口——你出门得背一包线。MCPModel Context Protocol模型上下文协议就是 AI 界为了解决这个问题而生的USB-C 标准。MCP 由 Anthropic 于 2024 年 11 月开源发布。到 2026 年 3 月月下载量已达 9700 万次80% 以上的世界 500 强企业在部署 AI Agent。OpenAI、Google、Microsoft、AWS 全部加入支持。2025 年 12 月Anthropic 将 MCP 捐赠给了 Linux 基金会旗下的 Agentic AI Foundation与 Block 和 OpenAI 联合创立。MCP 已经不再是一个厂商标准而是行业标准。MCP 的架构设计非常简洁——三个角色、三个原语、四步通信。三个角色Host主机—— 用户直接面对的 AI 应用。Claude Desktop 是 HostCursor 是 Host你自己写的 ChatBot 也是 Host。Host 负责管理连接、编排调用、执行安全策略。Client客户端—— 嵌入在 Host 内部的协议组件。每个 Client 和一个 MCP Server 保持 1:1 的有状态连接。一个 Host 可以同时跑多个 Client每个连不同的 Server。Client 负责 JSON-RPC 序列化、能力协商和路由。Server服务器—— 一个轻量级进程把外部系统文件系统、数据库、REST API、SaaS 平台如 GitHub / Slack / Salesforce的能力包装成标准化的工具暴露给 AI 模型。推荐一个 Server 只管一个职责边界。三个原语PrimitivesTools工具—— 模型控制的可执行操作。每个 Tool 用 JSON Schema 定义输入输出。LLM 根据用户请求和工具描述决定何时、如何调用。例如查询数据库创建 Jira 工单发邮件调天气 API。Resources资源—— 应用/用户控制的只读上下文数据。通过 URI 标识如 config://weather/settings。Host 决定何时将这些数据暴露给模型的上下文窗口。例如文件内容、数据库记录、API 响应、配置数据。Prompts提示模板—— 用户控制的可复用提示词模板。对多步骤工作流代码审查、数据查询编码结构化的交互模式。用户可以选择触发。四步通信流程①能力协商——Client 和 Server 握手交换支持的特性②工具发现——Client 发送 tools/listServer 返回可用工具清单和参数 Schema③工具调用——LLM 决定调某个工具Client 发送 tools/callServer 执行并将结果返回给模型④人工审批——破坏性操作需要用户显式确认才能执行。传输方式本地用 stdioHost 把 Server 当作子进程启动通过标准输入输出通信远程用 HTTPSSEServer-Sent Events 流式传输2026 年的方向是走向无状态的 Streamable HTTPSEP-1442让 MCP 也能适应云原生架构。一个必须澄清的问题MCP 和 API 是什么关系它们解决的是完全不同的问题。API 是LLM 和你的程序怎么通信——是对话通道。MCP 是Agent 和外部工具怎么通信——是工具集成标准。打比方API 是服务员厨房间传菜MCP 是 USB 标准设备间通信。两个维度不在一个层次上比较。MCP 能取代 LangChain 吗不能。LangChain 帮你编排多步骤 AI 流程先干什么后干什么MCP 帮你标准化工具接口怎么发现和调用工具。它们处理的是不同层次的问题。你可以用 LangChain 编排一个流程流程中的某个步骤去调用一个 MCP 工具——它们是配合关系不是替代关系。关于安全MCP 是传输协议不是安全模型。独立的渗透测试研究2025 年 4 月发现了多个潜在风险恶意工具注册冒充合法工具名、通过 Resources 中的恶意数据操纵工具选择Prompt 注入变种、OAuth Token 明文存储在配置文件中、很多实现在默认状态下没有认证机制。生产环境最佳实践MCP Server 部署在 VPC 内绝不暴露公网强制 OAuth 2.1 认证每个 Server 单独控制权限 RBAC代码审查社区 Server结构化审计日志。关于未来简单通用的工具文件读写、联网搜索会逐步内建到 Agent 框架里不再需要独立的 MCP Server。但专业化的、垂直领域的工具会长期以 MCP 服务的形式存在。2026 年 1 月还发布了 MCP Apps 扩展——Server 可以返回交互式 UIHTML/JS在沙盒 iframe 中渲染通过 postMessage 做双向 JSON-RPC 通信。还有实验性的 tasks 原语允许 Server 立即返回持久句柄而后台继续执行长耗时任务场景。10、Skill —— 给 Agent 装上肌肉记忆用过 Claude Code 的人都会注意到一个文件——CLAUDE.md。你在里面写项目背景、代码规范、常用命令、注意事项……Claude Code 每次启动自动去读。很多人觉得这就是一个配置文件但它背后的概念要深远得多——这就是 Skill技能的最朴素形态。让我用一个场景说明 Skill 要解决什么痛点你的团队每周都要执行客户需求分析这个任务。流程是固定的——从客户原始邮件中提取行业、预算范围、功能需求、技术约束、交付周期五个维度的信息输出成固定格式的需求文档。没有 Skill 的时候你每次从零开始写 Prompt。你是产品经理……请从以下客户邮件中提取五大维度信息……输出格式如下……注意如果客户没有提到预算要用待确认标注……一段提示词七八百字拿起来就烦。更要命的是——Token 是烧钱的。每次重复同样的背景说明这些 Token 就是白白消耗的。如果你的团队每天执行 10 次这个任务光背景说明一个月就能烧掉几百万 Token。有了 Skill 之后你把整套流程封装成一个标准模块。里面有固定的 Prompt 模板你是产品经理……那一段、数据提取逻辑五个维度的提取规则、输出格式规范需求文档的 Markdown 模板、常见边缘情况的处理指南。以后每次触发客户需求分析Agent 自动加载这套标准作业程序按部就班执行。你不用再费口舌——Agent 已经知道你是谁、做什么、怎么做、什么格式输出。Skill 的价值是双重叠加的——省时间 省钱。省时间是因为高频任务一键启动不需要每次都做新人培训。省钱是因为省下来的 Token 日积月累是一笔不小的开支——一段每次重复 800 字的背景说明一天 10 次一个月 30 天就是 24 万字的 Token 消耗。这只是一个Skill。如果你有 5 个高频 Skill月省的 Token 就是百万级别。Skill 和 MCP 的区别是什么这是最容易混淆的地方。MCP 是工具接口的标准化——解决Agent 怎么调用外部工具。Skill 是工作流程的封装——解决Agent 怎么高效完成某类任务。执行一个 Skill 的过程中可以去调 MCP 工具——它们互不冲突反而互补。Skill 和 SubAgent 的区别Skill 是流程模板——定义了一类任务的标准作业程序Agent 在执行任务时加载它。SubAgent 是隔离执行——把子任务独立到一个干净的上下文中执行结果只返回摘要给主 Agent。Skill 解决的是效率成本质量SubAgent 解决的是上下文污染任务隔离。关于 Skill 的未来我认为 Skill 本身也是中间产物。将来你可能只需要用自然语言描述一次工作流程Agent 自动把它固化为 Skill。做了几次同类型的任务后Agent 自己就能总结出 Skill 模板。但不管形式怎么变固化高频流程以提效降本这个需求是永恒的——人懒得重复AI 也不应该重复。11、API —— 你以为是高科技其实就是个服务员API 这个词——Application Programming Interface应用程序接口——听上去硬核得要命。但我给你翻译成人话服务员。你去餐厅跟服务员说来一份红烧肉。服务员把需求传给厨房厨房做好了服务员端回来。在整个过程中你不知道厨房用的是什么锅、什么火候、厨师是哪里人。你只需要会跟服务员说话。你的工具嘴巴和厨房的实现做菜通过服务员解耦了。AI、API 一模一样。你用 Claude Code工具端想调 GPT-4模型端中间需要一个服务员传话。你把 OpenAI API Key 填进去工具就能通过这个通道去调对应的模型。你把 API Key 换成 DeepSeek 的同样的工具就去调 DeepSeek。工具是工具模型是模型中间的连接靠 API。理解这一点你就理解了为什么 Agent 可以不绑死在单一模型上。这也是为什么出现了那么多一键切换底层模型的工具——原理很简单对上层暴露统一的调用接口对下层适配不同模型的 API 格式。不是什么高深的技术但确实非常实用。一个常见的坑Prompt Caching提示缓存是最被低估的成本优化手段。缓存的 Token 价格可能只有非缓存的十分之一。但缓存的命中条件是——请求的前缀必须完全匹配。如果你每次把动态内容如对话历史放在静态内容如系统提示词前面缓存就命不中。正确的做法是把不变的指令和工具定义放前面把变化的对话内容放后面。这个简单的顺序调整能让你的 API 成本大幅下降。12、LangChain / Workflow / Skill —— 三代流程编排的演化假设你要让 AI 帮你完成一个固定多步骤任务从英文 PDF 提取内容 → 翻译成中文 → 保存成 Markdown。怎么让 Agent 跑完整个链条答案的变化恰恰映射了三代技术的演化第一代LangChain —— 纯代码编排。每一步用代码显式串起来调 PDF 解析库 → 调翻译 API → 调文件写入。极度稳定结果可预期。但改任何一个步骤都要改代码、重新部署。对不懂编程的人完全没门。第二代Workflow —— 低代码拖拽。在页面上画流程图每个节点是一个操作节点之间拖线连接。比 LangChain 好修改——不用动代码拖几下就行。非技术人员也能上手。但它仍然应对不了文件格式组合爆炸——PDF、Word、HTML、PPT 的组合太多不可能每种画一套流程图。第三代Skill —— Agent 自主选择 固化模板。提前把各种转换脚本放在目录里写一个说明文件描述整体流程。Agent 接到任务后根据实际文件格式自己决定用哪个脚本。既保留了 Agent 的灵活性不用为每种格式组合写死流程又通过固化关键步骤保证了可靠性翻译和保存的脚本是写死的不会跑偏。这个演化揭示了一条清晰的光谱越往左越僵硬但越稳定越往右越灵活但越不可控。LangChain 在最左——纯代码结果可预期但毫无灵活性。纯 Agent 在最右——完全放飞它可以为了一个简单任务自己写几百行代码还跑出奇怪的异常。Skill 在正中间——既有固化流程的可控性又有 Agent 自主选择脚本的灵活性。对于绝大多数生产环境Skill 是当前最佳平衡点。值得注意的是2026 年 Agent 框架的共识也印证了这一点AgentLLM 驱动的控制流和 Workflow开发者定义的确定性控制流是两个互补的模式不应该互相替代。对于步骤固定、不需要推理判断的任务——Workflow。对于需要根据中间结果动态调整策略的任务——Agent。强行用 Agent 跑一个流程固定的任务相当于雇了一个博士去拧螺丝——又贵又不靠谱。13、.NET 开发者如何落地这一套看完这么多概念你可能想问我是写 .NET 的这些跟我的日常开发有什么关系关系很大——AI 不是要替代你现有的架构而是增强它。下面这张图展示了一个融合 AI 能力的 .NET 生产级微服务架构全景。从外到内来看这张图接入层Vue3、Mobile App、Blazor 等前端通过 CDN DNS 到达 API GatewayOcelot 或 YARP网关统一处理限流、认证、路由、日志。WAF 防火墙挡住常见攻击。负载均衡层Nginx 或 K8S Ingress 将请求分发到下游服务实例支持轮询、最少连接、IP Hash 等策略。配合健康检查自动踢掉故障节点。微服务层K8S 集群 Docker 容器每个服务独立部署为一个 Docker 容器由 K8S 编排调度。用户服务、订单服务、商品服务、支付服务、通知服务——标准的业务微服务拆分。此外还有AI Agent 推理服务基于 Semantic Kernel处理开放式推理和工具调用→数据分析服务ML.NET 做机器学习预测→搜索服务Elasticsearch 全文搜索 向量语义搜索的混合搜索→定时任务服务Quartz.NET 处理后台 Job→日志监控服务Serilog OpenTelemetry Prometheus 采集全链路追踪。消息队列层RabbitMQ / Kafka服务间异步解耦的核心。支付成功后发消息 → 订单服务更新状态 → 通知服务发邮件——这些不应该是同步调用链。消息队列提供削峰填谷、事件驱动、最终一致性保障还有死信队列处理失败消息。缓存层Redis Cluster热点数据缓存、AI 推理结果缓存避免重复调用 LLM 烧钱、Session 存储、分布式锁。Redis 是降本的核心——AI 的一次推理结果存进 Redis下次同样的查询直接从缓存返Token 钱就省了。服务治理Consul / K8S Service Discovery服务发现、配置中心、健康检查、熔断降级、链路追踪。微服务数量一多没有治理就是灾难。数据层SQL Server 主从 MySQL 分析库 ES MongoDBSQL Server 主库处理所有写操作通过主从复制将数据同步到两个只读从库——读请求在从库上负载均衡实现读写分离。新版 SQL Server 原生支持向量索引直接在库里做 AI 语义搜索不需要额外部署向量数据库。MySQL 作为分析库存储报表和数据仓库查询。Elasticsearch 提供全文语义混合搜索。MongoDB 存储日志和非结构化数据。基础设施层K8S DevOpsDocker 容器化所有服务Kubernetes 编排调度和自动伸缩。Harbor 私仓管理镜像。GitLab CI/CD 自动化构建、测试、部署。Prometheus Grafana 监控告警可视化。ELK Stack 日志收集分析。Istio 服务网格处理东西向流量。HashiCorp Vault 管理密钥。AI 能力不是某一层的专属——它贯穿全栈。接入层用 AI 做智能限流和异常检测服务层用 Agent 做自主推理和工具调用消息层用 AI 做内容审核和智能路由数据层用向量搜索和 RAG 知识检索运维层用 AIOps 做故障预测和自愈。AI 是增强每一层的能力而不是推翻重建。但是——不要为了追 AI 的热闹把简单问题复杂化。大多数 CRUD 系统三层架构足够。AI 的高射炮应该打真正有复杂度的地方海量文档的知识检索、非结构化数据的智能提取、需要推理判断的异常检测、自然语言驱动的高级查询。14、总结 —— 剥开所有的包装纸里面只有一坨工程代码用最直白的语言一次性把所有的概念串在一起LLM大语言模型—— 心脏。它只会文字接龙。但当参数大到千亿级别接龙接出了智能。Prompt提示词—— 你跟 LLM 说的一切。包含背景、指令、格式要求。Context上下文—— Prompt 里的背景信息。我是一名.NET程序员就是 Context。Memory记忆—— 跨轮次的 Context。把之前的聊天记录塞进下一轮让 LLM 假装记得你。Agent智能体—— 身体。一个 while(true) 循环——收集信息→发 LLM→解析指令→执行工具→重复。LLM 不会读文件Agent 帮它。Agent 自身没有智能它只是 LLM 的手和脚。Agent 的核心秘密不是循环本身是循环之外的那 95%。7 层权限防御、5 层上下文压缩、并发感知的工具执行器、4 级扩展机制、3 种子 Agent 协作拓扑——这些基础设施才是区分Demo和生产级的关键。RAG检索增强生成—— 外挂知识库。先查资料再回答。让 LLM 说的话有据可查。2026 年共识——固定大小分块已死语义分块和查询自适应分块是趋势。通用检索模型往往优于领域专用模型。混合检索向量关键词是标配。MCP模型上下文协议—— 神经系统。Agent 和外部工具之间的 USB-C 接口标准。三个角色Host、Client、Server、三个原语Tools、Resources、Prompts、四步通信。2026 年月下载 9700 万由 Linux 基金会治理。MCP 不是安全模型——生产环境强制认证权限控制审计日志。Skill技能—— 肌肉记忆。高频任务的标准作业程序。省时间不用每次新人培训省钱Token 复用。实习生变老员工的秘诀。API应用程序接口—— 血管。就是一个服务员——帮你把话传给厨房LLM再把菜端回来。LangChain / Workflow / Skill / Agent —— 流程灵活性光谱。从左到右越来越灵活、越来越不可控。Skill 在中间是当前生产环境最佳平衡点。如果要给所有概念一个终极概括这些技术的共同本质就是在不断地、更高效地往 Prompt 里面塞信息。RAG 是从知识库里检索信息塞进去。Skill 是把标准化流程信息塞进去。MCP 是把外部工具返回的结果塞进去。Memory 是把历史对话信息塞进去。所有的花活最终的目的地都是同一条——把那条 Prompt 变长、变丰富、变精准。因为 LLM 只能从 Prompt 里看到世界。Prompt 里有什么它就知道什么。Prompt 里没有的它要么不知道要么胡编。真正需要智能的始终只有 LLM 本身。其余的一切都是工程。PASS如果你想成为一个成功的人那么请为自己加油让积极打败消极让高尚打败鄙陋让真诚打败虚伪让宽容打败褊狭让快乐打败忧郁让勤奋打败懒惰让坚强打败脆弱只要你愿意你完全可以做最好的自己。