
1. 从一份日报标题说起Agent 与 LLM 技术圈正在发生什么看到“Agent / LLM 技术精选日报”这个标题很多人的第一反应是又是一份信息聚合。但如果你真的在一线做 Agent 开发、RAG 系统落地或者 LLM 应用架构就会知道这类日报的价值不在于“汇总”而在于它暴露了当下技术社区真正在讨论什么、卡在哪里、哪些方向开始收敛。2026 年这个时间节点上Agent 和 LLM 领域已经过了“能不能跑通”的阶段进入了“怎么跑得稳、跑得省、跑得安全”的深水区。这份日报涉及的关键词非常密集Agent、LLM、RAG、GraphRAG、MCP。它们不是孤立的概念而是一条正在成型的工程链路。LLM 是底座模型Agent 是在模型之上构建的自主决策与执行单元RAG 是给 Agent 提供外部知识的手段GraphRAG 是 RAG 在复杂关系推理上的进化形态MCP 则是让 Agent 与外部工具、数据源、服务之间实现标准化连接的基础协议。理解这五者之间的关系比单独搞懂任何一个都重要。这篇文章适合三类人看第一类是想从传统后端或前端转向 AI 应用开发的工程师你需要知道这个领域现在实际在用什么、怎么用第二类是在团队里负责技术选型的架构师你需要判断哪些技术值得投入、哪些还在早期第三类是已经在做 Agent 或 RAG 的开发者你想看看别人踩过哪些坑、有没有更优解。我会尽量把每个技术点讲透同时给出可以直接参考的实操思路和参数建议。2. Agent 与 LLM 的工程化落地从概念到可运行系统2.1 Agent 到底是什么别再把它当成“更聪明的聊天机器人”很多人第一次接触 Agent 时会把它理解成“能调用工具的 ChatGPT”。这个理解不算错但太浅了。Agent 的核心不在于“能调工具”而在于它具备一个闭环感知当前状态、规划下一步动作、执行动作、观察结果、根据结果调整策略直到任务完成或达到终止条件。这个闭环里LLM 扮演的是“决策大脑”的角色但真正让 Agent 跑起来的是外围的编排逻辑、状态管理、工具接口和错误处理。我见过不少团队一开始用 LangChain 或类似框架搭了一个 ReAct 风格的 Agentdemo 跑得很漂亮一旦接入真实业务就崩。原因往往不是模型不够强而是 Agent 的“记忆”和“状态”没有设计好。比如用户问了一个多轮才能完成的任务Agent 在第一轮调了一个 API 拿到了数据第二轮却忘了这个数据的存在又重新调了一遍。这不是模型的问题是 Agent 架构里缺少持久化的会话状态和中间结果存储。一个可落地的 Agent 架构通常包含这几个部分任务解析层把用户输入拆成可执行的子任务、规划层决定先做什么后做什么、工具调用层实际执行 API、数据库查询、文件操作等、记忆层短期对话记忆加长期知识存储、以及监控与回滚层出错了怎么办。LLM 在其中的角色是动态的有时候是规划器有时候是执行器有时候是结果校验器。把 LLM 当成一个固定角色的组件来用往往会限制 Agent 的能力上限。2.2 LLM 选型不要只看榜单要看你的任务类型Open LLM Leaderboard 这类公开榜单每个月都在更新但榜单排名和实际业务表现之间的相关性远没有很多人想象的那么高。我自己的经验是选模型之前先把你最核心的三到五个任务拿出来做一个小规模的评测集然后让候选模型在这个评测集上跑一遍。榜单上的 MMLU、GSM8K 分数只能说明模型在通用推理上的大致水平但你的任务可能是“从合同里抽取特定条款并判断风险等级”这种任务对模型的要求和通用榜单完全不是一回事。2026 年这个时间点开源模型和闭源模型之间的差距在进一步缩小但在某些特定能力上仍然有明显分化。比如长上下文理解、多语言混合推理、结构化输出稳定性不同模型的表现差异很大。如果你的 Agent 需要频繁输出 JSON 格式的工具调用参数那结构化输出的稳定性就是第一优先级而不是模型的“智商”有多高。我试过用同一个 prompt 让三个不同模型输出工具调用参数其中一个模型在 100 次调用里失败了 7 次另外两个各失败 1 次。这 6 个百分点的差距在生产环境里就是能不能上线的区别。还有一个容易被忽略的点是 token 成本。LLM 的 token 机制可以用一个简单的类比来理解Key 是“我是谁”Query 是“我在找什么”Value 是“我能提供什么”。在 Agent 场景里每一轮对话、每一次工具调用、每一段 RAG 检索结果都会消耗 token。一个设计不好的 Agent可能在一个简单任务上消耗掉几万 token而优化之后只需要几千。这不是模型的问题是 Agent 的上下文管理策略问题。2.3 Agent 并发扛不住问题往往出在架构而不是模型“AI Agent 怎么扛并发”是最近被问得最多的问题之一。很多人以为并发瓶颈在 LLM 的推理速度上但实际上大部分 Agent 系统的并发瓶颈在工具调用和状态管理上。LLM 的推理确实有延迟但如果你用的是流式输出加异步调用单次推理的延迟可以被掩盖。真正卡住的是当 100 个 Agent 同时要调用同一个数据库、同一个外部 API、或者同一个文件系统时这些资源的竞争和排队才是瓶颈。我做过一个测试用同一个 Agent 框架分别用同步阻塞和异步非阻塞的方式调用外部 API在 50 并发下的吞吐量差了将近 8 倍。同步方式下每个 Agent 调用 API 时都在等CPU 和内存都闲着异步方式下Agent 在等 API 返回时可以继续处理其他任务。这个差距不是模型能弥补的是架构层面的问题。另一个常见的并发坑是 Agent 的“记忆”存储。如果每个 Agent 的会话状态都放在内存里那水平扩展时就会遇到状态不一致的问题。比较稳妥的做法是把会话状态放到 Redis 或类似的共享存储里Agent 实例本身无状态化。这样加机器就能线性提升并发能力而不是加机器之后发现状态同步成了新瓶颈。3. RAG 与 GraphRAG知识库不是“存进去就能用”3.1 RAG 的瓶颈到底在哪里检索质量决定一切RAG 的全称是 Retrieval-Augmented Generation检索增强生成。很多人把注意力放在“生成”上觉得只要模型够强RAG 效果就不会差。但实际做下来RAG 的瓶颈几乎全在“检索”上。检索不到正确的知识片段再强的模型也只能胡编。检索到了但排序不对模型会被无关信息干扰。检索到了也排序对了但片段被切得七零八落模型拼不出完整答案。我见过一个典型的失败案例一个团队把产品文档直接按固定长度切块每块 500 字然后存进向量数据库。用户问“这个功能在哪些版本里支持”检索出来的片段全是功能描述但没有版本信息因为版本信息在文档的另一个章节里被切到了不同的块。模型拿到这些片段后只能根据片段内容猜测结果给出了错误答案。这不是模型的问题是切块策略的问题。RAG 的检索质量取决于三个环节文档解析、切块策略、向量化模型。文档解析要把 PDF、Word、HTML 等各种格式转成干净的文本表格、图片、代码块要特殊处理。切块策略要根据文档结构来定不能一刀切。向量化模型要选和你的语言、领域匹配的中文任务用英文为主的向量模型效果会打折扣。3.2 RAG 知识库能存图片吗多模态 RAG 的现实做法“RAG 知识库能存储图片嘛”这个问题答案是能但做法和纯文本 RAG 完全不同。纯文本 RAG 是把文本向量化后存进向量数据库检索时用文本相似度匹配。图片不能直接向量化需要先转成文本描述或者用多模态向量模型。目前比较成熟的做法有两种。第一种是用多模态模型比如 CLIP 或类似架构把图片和文本映射到同一个向量空间这样可以用文本查图片也可以用图片查文本。第二种是用视觉语言模型给每张图片生成一段文字描述然后把描述文本存进普通的文本 RAG 流程。第一种做法检索精度更高但需要额外的多模态向量模型和向量数据库支持。第二种做法实现简单但描述的质量取决于视觉语言模型的能力可能会丢失图片中的细节信息。我自己的经验是如果图片主要是图表、流程图、界面截图这类结构化内容用视觉语言模型生成描述再走文本 RAG 就够了。如果图片是照片、设计稿这类非结构化内容多模态向量检索的效果会明显更好。但不管哪种做法图片的存储和文本的存储要分开管理检索时再根据类型做融合排序。3.3 GraphRAG当 RAG 遇到“关系推理”就力不从心普通 RAG 擅长的是“找相似片段”但它不擅长“找关系”。比如用户问“A 公司的 CEO 之前在哪家公司任职那家公司和 B 公司有什么业务往来”这种问题需要跨多个实体、多条关系进行推理。普通 RAG 检索出来的片段可能只包含 A 公司 CEO 的信息但不包含他之前任职的公司更不包含那家公司和 B 公司的关系。GraphRAG 就是为了解决这类问题而出现的。GraphRAG 的核心思路是先把文档中的实体和关系抽取出来构建一个知识图谱然后在图谱上进行检索和推理。检索时不是找相似文本片段而是找相关的实体和关系路径。这样就能回答需要多跳推理的问题。但 GraphRAG 的代价也很明显构建图谱需要额外的实体抽取和关系抽取步骤成本比普通 RAG 高不少。而且图谱的质量高度依赖抽取模型的准确性抽取错了后面全错。我个人的判断是如果你的业务问题主要是“找文档”“找答案”普通 RAG 加好的切块和重排序就够了。如果你的业务问题涉及大量实体关系推理比如供应链分析、金融风控、医疗诊断辅助那 GraphRAG 值得投入。但不要为了用 GraphRAG 而用 GraphRAG先确认你的问题真的需要关系推理。3.4 RAG 实战中的几个关键参数做 RAG 实战时有几个参数几乎决定了系统的上限。第一个是切块大小chunk size。切块太大检索时容易引入无关信息切块太小可能丢失上下文。我的经验是技术文档用 300 到 500 字法律合同用 500 到 800 字对话记录用 200 到 300 字。但这只是起点实际要根据检索效果调。第二个是重叠长度overlap。相邻块之间要有一定的重叠避免关键信息刚好被切在边界上。重叠长度一般是切块大小的 10% 到 20%。第三个是检索返回的块数top-k。返回太少可能漏掉关键信息返回太多会引入噪声。一般从 5 开始调根据效果增减。第四个是重排序rerank。先用向量检索召回一批候选再用重排序模型精排这个两步走的效果通常比单步检索好很多。4. MCP 协议Agent 与外部世界连接的标准化尝试4.1 MCP 是什么不是硬件协议是软件层的接口标准“MCP 是软件协议还是硬件协议”这个问题说明很多人第一次听到 MCP 时容易望文生义。MCP 全称是 Model Context Protocol是一个软件层的协议用来标准化 LLM 应用和外部工具、数据源之间的连接方式。你可以把它理解成“AI 世界的 USB 接口”以前每个 Agent 要调用一个工具就得写一套专门的适配代码有了 MCP工具提供方按照 MCP 规范暴露接口Agent 按照 MCP 规范调用接口双方不用再为每个组合单独适配。MCP 的核心价值在于解耦。在没有 MCP 之前LangChain 有自己的工具接口AutoGPT 有自己的工具接口每个框架都不一样。工具开发者要支持多个框架就得写多套适配。Agent 开发者要接入多个工具也得写多套适配。MCP 出现后工具只需要实现一次 MCP 服务端所有支持 MCP 的 Agent 框架都能直接调用。这大大降低了生态的碎片化程度。4.2 MCP 的实际接入从配置到调试的完整流程接入 MCP 的过程并不复杂但有几个关键步骤容易出错。第一步是确认你的 Agent 框架是否支持 MCP 客户端。目前主流的 Agent 框架和开发工具都在陆续加入 MCP 支持但支持程度不一。有的只支持工具调用有的还支持资源读取和提示模板。第二步是配置 MCP 服务端。MCP 服务端可以是一个本地进程也可以是一个远程服务。本地进程通常通过标准输入输出通信远程服务通过 HTTP 或 WebSocket 通信。第三步是调试。MCP 的调试比普通 API 调试要麻烦一些因为中间多了一层协议转换。我常用的做法是先用 MCP 官方提供的调试工具单独测试服务端确认服务端能正常响应工具列表和工具调用请求然后再接入 Agent 框架。如果直接接入框架调试出错了很难判断是服务端的问题还是框架的问题。有一个容易踩的坑是权限和授权。MCP 服务端可能会访问敏感资源比如文件系统、数据库、外部 API。在配置时要明确哪些工具需要授权、授权范围是什么。我见过一个案例一个 MCP 服务端暴露了文件读取工具但没有限制读取路径结果 Agent 可以读取系统任意文件。这不是 MCP 的问题是服务端实现的问题但接入时必须检查。4.3 MCP 与 Agent 安全工具调用是把双刃剑Agent 安全是最近被讨论得越来越多的话题。Agent 能调用工具意味着它能执行实际操作比如发邮件、改数据库、调用支付接口。如果 Agent 被恶意输入诱导或者工具权限配置不当就可能造成实际损失。AgentPoison 这类研究就是在探讨如何通过污染 Agent 的记忆或知识库来影响 Agent 的行为。MCP 在安全方面能做的事情是提供标准化的权限声明和调用审计。MCP 服务端可以声明每个工具需要的权限Agent 框架可以在调用前检查权限调用后记录审计日志。但 MCP 本身不解决所有安全问题它只是提供了一个更好的基础设施。真正的安全还需要在 Agent 的规划层加约束比如限制 Agent 只能调用白名单内的工具、限制单次会话的工具调用次数、对敏感操作加人工确认。我自己的做法是把 Agent 的工具分成三类。第一类是只读工具比如查询数据库、读取文件这类工具可以放开调用。第二类是低风险写入工具比如创建草稿、添加标签这类工具可以调用但要有频率限制。第三类是高风险管理工具比如删除数据、发送邮件、执行支付这类工具必须加人工确认或者二次验证。这个分类策略比单纯依赖 MCP 的权限声明更可靠。5. 常见问题与排查技巧实录5.1 Agent 开发中的典型故障与排查思路Agent 开发中最常见的故障是“Agent 卡住不动”。表现是 Agent 收到任务后既不输出结果也不报错就是一直转圈。这种情况通常有几个原因一是 LLM 调用超时但没有设置超时处理Agent 一直在等二是工具调用返回了 Agent 无法解析的格式Agent 在反复重试三是 Agent 陷入了循环规划一直在“思考下一步”但从不执行。排查这类问题的第一步是看日志。Agent 框架通常会有详细的调用日志包括每次 LLM 调用的输入输出、每次工具调用的参数和结果。如果日志显示 LLM 调用没有返回那就是超时问题需要加超时和重试机制。如果日志显示工具调用返回了异常格式那就需要检查工具的返回格式是否符合 Agent 的预期。如果日志显示 Agent 在反复规划那就需要检查规划提示词是否过于模糊或者任务是否超出了 Agent 的能力范围。另一个常见故障是“Agent 输出了错误的结果但看起来很正常”。这种情况更危险因为不容易被发现。比如 Agent 调用了一个查询接口接口返回了空结果但 Agent 没有检查空结果直接基于空结果编了一个答案。这类问题的排查需要在 Agent 的输出环节加校验比如检查关键字段是否为空、检查数值是否在合理范围内、检查引用的来源是否真实存在。5.2 RAG 系统的效果调优清单RAG 效果不好时不要急着换模型先按这个清单逐项排查。第一项文档解析是否干净。PDF 里的表格有没有被正确提取扫描件有没有做 OCRHTML 里的导航栏和广告有没有被去掉。第二项切块策略是否合理。切块大小是否适合文档类型重叠长度是否足够有没有按标题层级做语义切块。第三项向量化模型是否匹配。中文任务有没有用支持中文的向量模型专业领域有没有用领域微调过的模型。第四项检索参数是否调过。top-k 是多少有没有加重排序相似度阈值是多少。第五项提示词是否清晰。有没有告诉模型“只根据检索到的内容回答”有没有要求模型引用来源。这五项里前三项是基础做不好后面怎么调都白搭。第四项和第五项是优化空间调好了能明显提升效果。我自己的经验是大部分 RAG 效果问题根源都在前三项。把文档解析、切块、向量化这三步做扎实RAG 的效果就已经能到可用水平了。5.3 MCP 接入中的常见报错与解决MCP 接入时最常见的报错是“工具列表为空”。Agent 框架显示连接上了 MCP 服务端但工具列表是空的。这通常是因为服务端的工具注册逻辑有问题或者服务端和客户端之间的协议版本不匹配。解决方法是先用 MCP 调试工具直接连接服务端看服务端返回的工具列表是否正常。如果调试工具也看不到工具那就是服务端的问题如果调试工具能看到但 Agent 框架看不到那就是框架的 MCP 客户端实现有问题。第二个常见报错是“工具调用超时”。MCP 工具调用超时可能是服务端处理慢也可能是网络问题。如果服务端是本地进程超时通常是服务端逻辑卡住了如果服务端是远程服务超时可能是网络延迟或服务端负载过高。解决方法是先确认服务端的处理时间如果服务端本身就要几秒钟那就要调整客户端的超时设置如果服务端很快但客户端还是超时那就是网络或协议层的问题。第三个常见报错是“权限拒绝”。MCP 服务端返回了权限错误说明 Agent 尝试调用的工具需要授权但当前没有授权。解决方法是检查 MCP 服务端的权限配置确认 Agent 的身份和权限范围。有些 MCP 服务端支持细粒度权限控制可以按工具、按资源、按操作类型分别授权。配置时要遵循最小权限原则只给必要的权限。5.4 常见问题速查表问题现象可能原因排查方向解决思路Agent 卡住不输出LLM 超时、工具返回格式异常、规划循环查看调用日志确认卡在哪一步加超时重试、校验工具返回格式、优化规划提示词Agent 输出错误但看似正常空结果未检查、来源未验证检查关键字段和引用来源加输出校验要求模型引用来源RAG 检索不到相关内容切块不合理、向量模型不匹配检查切块大小和向量模型调整切块策略换用领域匹配的向量模型RAG 检索到无关内容top-k 过大、缺少重排序检查检索参数减小 top-k加入重排序模型MCP 工具列表为空服务端注册问题、协议版本不匹配用调试工具直连服务端修复服务端注册逻辑对齐协议版本MCP 工具调用超时服务端处理慢、网络延迟测量服务端处理时间调整超时设置优化服务端性能MCP 权限拒绝权限配置不足检查服务端权限配置按最小权限原则补充授权6. 工具链与框架选型没有银弹只有取舍6.1 Agent 框架怎么选从 LangChain 到更轻量的方案Agent 框架的选型是很多团队纠结的问题。LangChain 生态最全但抽象层多调试起来有时候像在剥洋葱。LangChain4j 是 Java 生态的选择适合已有 Java 技术栈的团队。还有一些更轻量的框架比如直接基于 LLM API 加少量编排代码灵活度最高但需要自己处理很多细节。我的建议是如果你的团队已经有 Python 技术栈LangChain 或类似框架可以快速起步但要做好后期可能替换部分组件的准备。如果你的团队是 Java 技术栈LangChain4j 是自然选择但要注意它的生态丰富度不如 Python 侧。如果你只需要一个简单的 Agent不需要复杂的工具编排和记忆管理直接用 LLM API 加自己的编排逻辑可能更可控。选框架时不要只看功能列表要看调试体验。Agent 开发中调试时间远多于编码时间一个调试友好的框架能省很多事。我评估框架时会重点看日志是否详细、是否支持单步调试、是否容易替换组件、社区是否活跃。这些比“支持多少种工具”重要得多。6.2 本地 RAG 知识库的零基础搭建思路“Ollama 加简易本地 RAG 知识库”是很多新手入门的路径。这个组合的好处是全部本地运行不需要 API key数据不出本地。搭建流程大致是用 Ollama 拉一个本地 LLM用 Ollama 的 embedding 模型做向量化用一个轻量向量数据库比如 Chroma 或 FAISS存向量然后写一个简单的检索加生成流程。这个方案适合个人学习和小规模知识库但不适合生产环境。本地 LLM 的能力和云端模型有差距本地向量数据库的并发能力有限而且没有完善的监控和运维工具。但作为学习 RAG 原理的起点这个方案非常合适。我建议新手先用这个方案跑通一个完整的 RAG 流程理解文档解析、切块、向量化、检索、生成这五个环节然后再考虑用更成熟的方案替换各个组件。6.3 代码助手与 MCP 的结合Codex 接入 Figma MCP 的授权问题“Codex 接入 Figma MCP 怎么授权”这个问题反映了一个趋势代码助手正在通过 MCP 接入设计工具、项目管理工具、文档工具。Codex 这类代码助手接入 MCP 后可以直接读取 Figma 设计稿、生成对应的前端代码或者根据设计稿更新组件库。授权流程通常是在 Figma 侧创建一个 MCP 服务端配置访问权限和 token在 Codex 侧配置 MCP 客户端填入服务端地址和 token然后 Codex 就能通过 MCP 调用 Figma 的工具。授权时要注意 token 的权限范围只给必要的读权限不要给写权限除非确实需要 Codex 修改设计稿。另外 token 要定期轮换不要硬编码在配置文件里。7. 我个人的一些实操体会做 Agent 和 RAG 这几年最大的体会是技术选型的重要性被高估了工程细节的重要性被低估了。同一个模型、同一个框架不同团队做出来的效果可能差好几倍。差距不在模型上在切块策略、提示词设计、错误处理、监控告警这些“脏活累活”上。另一个体会是不要追求一步到位。Agent 和 RAG 系统都是迭代出来的第一版能跑通核心流程就行然后根据实际使用中的问题逐步优化。我见过太多团队一开始就想做一个“全能 Agent”结果三个月过去了还在调架构一个能用的功能都没上线。先做一个能解决一个具体问题的小 Agent跑起来收集反馈再扩展这个节奏更靠谱。最后分享一个小技巧在 Agent 的提示词里加一句“如果你不确定就说不知道不要编造”。这句话看起来简单但能显著减少 Agent 的幻觉输出。尤其是在 RAG 场景下模型有时候会忽略检索到的内容直接用自己的知识回答。加上这句话之后模型会更倾向于基于检索内容回答不确定时也会明确说不知道而不是硬编一个答案。