☰
Agent、LLM、RAG、GraphRAG、MCP:AI应用开发核心技术与工程实践
2026/10/28 17:27:52 网站建设 项目流程

1. 从一份日报说起:Agent 与 LLM 技术生态的当下切面

做 AI 应用开发的人最近一两年应该都有同感:技术栈的迭代速度已经从“季度”压缩到了“周”。前脚刚把 RAG 的召回率调明白,后脚 GraphRAG 和 MCP 就冒出来了;好不容易把 Agent 的 ReAct 循环跑通,社区又开始讨论 Agent 的自主容错和并发扛压。这份“Agent / LLM 技术精选日报”本质上就是这种节奏下的产物——它把一天里散落在各个角落的技术动态、工具更新、踩坑讨论聚合到一起,帮从业者用最短时间抓住重点。

我自己做 LLM 应用落地有几年了,从最早的 prompt 工程,到后来的 RAG 知识库,再到现在的多 Agent 编排和 MCP 工具链,几乎每一波都踩过坑。这份日报里提到的关键词——Agent、LLM、RAG、GraphRAG、MCP——基本覆盖了当前 AI 工程化的五个核心支柱。它们不是孤立的概念,而是互相咬合的一整套体系:LLM 是底座模型,RAG 解决知识注入,GraphRAG 处理复杂关系推理,Agent 负责自主决策与执行,MCP 则是把外部工具和数据源标准化接入的协议层。

这篇文章我想做的,不是复述日报里每一条链接,而是把这些热词背后的技术逻辑、选型考量、实操要点和常见坑,按我自己的理解重新梳理一遍。适合谁看?如果你正在做 AI 应用开发、RAG 知识库搭建、Agent 系统设计,或者只是想知道这些概念到底怎么回事、该怎么上手,那这篇内容应该能给你一些直接可用的参考。我会尽量说人话,把复杂的东西拆开讲,也会把我在实际项目里踩过的坑和总结的技巧一并放进来。

2. LLM 底座:模型选型与能力边界

2.1 LLM 到底是什么,以及它不能做什么

LLM(大语言模型)本质上是一个基于海量文本训练出来的概率模型,它根据上下文预测下一个 token。这个定义听起来简单,但很多人在实际使用时会不自觉地把它当成“万能知识库”或“逻辑推理机”,结果就是期望越高失望越大。我见过不少团队一上来就想让 LLM 直接回答业务问题,不做任何知识注入和约束,最后发现模型要么胡编,要么答非所问。

LLM 的核心能力在于语言理解和生成,它能做的是:文本摘要、改写、分类、抽取、对话、代码生成、一定程度的推理。它不擅长的是:精确的事实查询、实时数据获取、复杂多步计算、需要外部状态的操作。理解这个边界,是做好后续所有工作的前提。日报里提到的“llm 是什么”“llm 模型”“llm 框架”这些热搜词,说明还有大量新人在入场,这个基础认知必须打牢。

2.2 模型选型的几个关键维度

选模型不是越大越好,也不是越新越好。我在实际项目里通常从这几个维度评估:

维度说明常见取舍
能力推理、代码、多语言、长上下文强模型贵,弱模型省
成本输入/输出 token 单价高频调用场景成本敏感
延迟首 token 时间、生成速度实时交互场景要求高
部署API 调用还是本地部署数据敏感场景倾向本地
上下文窗口能塞多少 token长文档场景需要大窗口
生态工具链、微调支持、社区影响开发效率

我个人的经验是:先用强模型跑通流程验证可行性,再根据成本压力逐步替换成更小或更便宜的模型。不要一开始就纠结用哪个模型,先把 pipeline 搭起来,模型是可以随时换的。

2.3 微调与精调的适用场景

日报里有个热词是“使用聊天记录模型精调 llm”,这个方向很实际。微调(fine-tuning)适合什么场景?我的判断标准是:当你需要模型稳定输出某种特定格式、特定风格,或者需要它掌握某个垂直领域的术语和表达习惯,而 prompt 工程又很难稳定达到效果时,微调才值得投入。

微调不是万能药。它成本高、周期长、需要高质量数据,而且模型更新后可能还要重新调。我见过太多团队花大力气微调,结果发现优化 prompt 加 few-shot 示例就能达到 80% 的效果。所以我的建议是:先穷尽 prompt 工程和 RAG 的手段,确实遇到瓶颈再考虑微调。另外,微调数据的质量比数量重要得多,几百条精心标注的样本,往往比几万条脏数据效果好。

3. RAG 体系:从基础检索到 GraphRAG 的演进

3.1 RAG 解决的核心问题与基本流程

RAG(检索增强生成)要解决的是 LLM 的知识时效性和事实准确性问题。基本流程是:用户提问 → 检索相关文档 → 把文档和问题一起塞给 LLM → LLM 基于文档生成回答。这个流程看起来简单,但每个环节都有大量细节决定成败。

我通常把 RAG 拆成三个阶段:索引阶段(文档解析、分块、向量化、存储)、检索阶段(查询改写、向量检索、重排序)、生成阶段(上下文组装、prompt 设计、引用标注)。日报里“rag 教程”“rag 实战”“rag 框架”这些词热度高,说明大家都在找可落地的方案。我的建议是先用成熟框架(如 LangChain、LlamaIndex)快速搭原型,再根据瓶颈逐步优化。

3.2 RAG 知识库能存图片吗

这是日报里一个很具体的热搜词,值得单独说。答案是能,但方式取决于你的需求。常见做法有几种:

  • 图片转文字描述:用多模态模型给图片生成描述,把描述文本存入向量库。适合图片内容可以用文字概括的场景。
  • 多模态向量:用 CLIP 等模型把图片和文本映射到同一向量空间,支持跨模态检索。适合以图搜图或以文搜图。
  • 图片单独存储 + 元数据关联:图片存对象存储,向量库存图片的元数据和描述,检索到后返回图片链接。适合图文混排的知识库。

我实际项目里用得最多的是第一种和第三种结合:图片生成描述入向量库,原图存 OSS,检索命中后把图片和文字一起返回给前端。这样实现简单,效果也够用。

3.3 GraphRAG 与 Ontology RAG:什么时候需要图结构

普通 RAG 的瓶颈在于:它把文档切成块,检索时只找相似的块,丢失了块与块之间的关系。当问题需要跨文档、跨段落推理时,比如“A 公司的 CEO 和 B 公司的 CTO 是什么关系”,普通 RAG 就很难答好。GraphRAG 的思路是先构建知识图谱,把实体和关系抽出来,检索时沿着图结构走,能处理更复杂的多跳推理。

Ontology RAG 则更进一步,它引入本体(ontology)来定义领域内的概念体系和关系约束,让知识组织更规范。这两个方向适合什么场景?我的判断是:如果你的知识库是高度结构化的领域知识(如医疗、法律、金融),且问题经常涉及实体关系推理,那 GraphRAG 值得投入。但如果只是普通的文档问答,普通 RAG 加好的分块和重排序就够了,上 GraphRAG 反而增加复杂度和成本。

日报里还有“kg 知识库、rag 知识库和结构知识库区分以及应用场景”这个热词,说明很多人对这几个概念的区别还不清楚。简单说:KG(知识图谱)是结构化的实体关系网络,RAG 知识库通常是向量化的文本块集合,结构知识库则是传统的关系型或文档型数据库。三者可以结合使用,不是互斥关系。

3.4 RAG 的常见瓶颈与优化方向

RAG 做久了会发现,瓶颈往往不在模型,而在检索质量。我总结的几个常见问题和对应优化:

瓶颈表现优化方向
分块不合理检索到的块缺上下文按语义分块,加重叠
查询与文档不匹配召回率低查询改写、HyDE、多路召回
排序不准相关文档排后面加 reranker 重排序
上下文超长塞不下或成本高压缩、摘要、精选 top-k
幻觉模型编造强制引用、拒答机制

我踩过最大的坑是分块。早期用固定长度切分,结果一个完整的逻辑被切成两半,检索时只命中一半,模型就答偏了。后来改成按标题和段落语义分块,效果提升非常明显。这个细节很多教程不会强调,但实际影响巨大。

4. Agent 系统:架构、容错与并发

4.1 Agent 是什么,和普通 LLM 调用有什么区别

Agent(智能体)的核心区别在于:它不是一次问答就结束,而是能自主规划、调用工具、多步执行、根据结果调整。普通 LLM 调用是“输入 → 输出”,Agent 是“目标 → 规划 → 执行 → 观察 → 再规划 → 直到完成”。日报里“agent 是什么”“ai agent”“agent 架构”“agent 框架”这些词热度极高,说明这是当前最热的方向。

一个典型的 Agent 系统包含几个部分:LLM 作为决策核心、工具集(搜索、计算、API 调用等)、记忆(短期对话历史 + 长期知识)、规划模块(任务分解、步骤编排)、执行循环(ReAct、Plan-and-Execute 等模式)。我实际做项目时,最花时间的不是 LLM 本身,而是工具的设计和错误处理。

4.2 Agent 的自主容错控制:构建可靠系统的工程实践

日报里有个热词是“识的 llm 智能体自主容错控制:构建可靠 ai 系统的工程实践”,这个方向非常关键。Agent 一旦自主执行,出错是常态:工具调用失败、参数格式错误、陷入循环、产生幻觉动作。怎么让系统可靠?

我的经验是分几层做容错:

  • 输入校验层:LLM 输出的工具调用参数,先做 schema 校验,不合法就让它重试。
  • 执行重试层:工具调用失败时,带错误信息重试,设置最大重试次数。
  • 循环检测层:监控 Agent 是否在重复同样的动作,检测到就强制中断或换策略。
  • 降级兜底层:关键步骤失败时,回退到预设的保守方案或转人工。
  • 可观测层:完整记录每一步的输入输出,方便事后排查。

我做过一个 Agent 项目,早期没做循环检测,结果模型卡在一个工具调用上反复重试,烧了不少 token。后来加了动作去重和最大步数限制,才稳定下来。这些工程细节,才是 Agent 能不能上生产的关键。

4.3 AI Agent 怎么扛并发

这是日报里另一个很实际的热搜词。Agent 的并发挑战比普通 LLM 调用大得多,因为一个 Agent 任务可能包含几十次 LLM 调用和工具调用,耗时从几秒到几分钟不等。扛并发的核心思路:

  • 异步化:用异步框架(如 FastAPI + asyncio)处理请求,避免阻塞。
  • 任务队列:长任务丢到队列(如 Celery、RabbitMQ),前端轮询或推送结果。
  • 限流与排队:对 LLM API 调用做限流,避免打爆上游。
  • 状态外置:Agent 的中间状态存 Redis 或数据库,支持水平扩展。
  • 缓存:相同或相似的子任务结果缓存,减少重复调用。

我实测下来,Agent 系统的瓶颈通常不在计算,而在外部 API 的速率限制和长任务的资源占用。做好队列和限流,比单纯加机器有效得多。

4.4 Agent 安全与 AgentPoison 的启示

日报里“agent 安全”“agentpoison: red-teaming llm agents via poisoning memory or knowledge ba”这两个词值得警惕。AgentPoison 这类研究揭示的是:Agent 的记忆或知识库如果被污染,攻击者可以诱导 Agent 执行恶意动作。这在 RAG + Agent 结合的系统中尤其危险,因为检索到的内容会直接影响 Agent 决策。

防御思路包括:对知识库来源做可信度分级、对检索内容做异常检测、对 Agent 的关键动作加人工确认或权限校验、限制 Agent 的工具权限范围。我在设计 Agent 时,原则是“最小权限”:Agent 只能调用完成当前任务必需的工具,敏感操作必须二次确认。这个原则看起来简单,但能挡掉大部分风险。

5. MCP 协议:工具接入的标准化尝试

5.1 MCP 是什么,为什么重要

MCP(Model Context Protocol)是一个让 LLM 应用标准化接入外部工具和数据源的协议。日报里“mcp”“mcp 协议”“mcp 是什么”这些词热度很高,说明大家对这个新协议很关注。简单理解:以前每个 LLM 应用要接一个工具,就得写一套适配代码;有了 MCP,工具提供方按协议实现一次,所有支持 MCP 的应用都能直接用。

这个思路类似 USB 接口标准化——以前每个设备一个接口,现在统一成 USB-C。MCP 的价值在于降低集成成本,让工具生态能快速扩展。我实际用下来,MCP 的接入确实比传统 function calling 更规范,尤其是工具描述、参数 schema、错误处理这些都有统一约定。

5.2 MCP 的典型应用场景

日报里出现了不少具体的 MCP 相关词,比如“unreal 5.8 mcp”“altium designer ai 接口 mcp”“ida mcp 下载”“x32dbg 的 mcp 插件”“tia mcp 260514 交付包”“ruoyi-vue-pro 合并 mcp 功能”。这些说明 MCP 正在从通用工具向垂直领域渗透:游戏引擎、硬件设计、逆向工程、工业自动化、企业管理系统,都在尝试通过 MCP 接入 AI 能力。

这个趋势很有意思。它意味着 AI 不再只是一个独立的聊天窗口,而是嵌入到各种专业工具的工作流里。比如在 Altium Designer 里通过 MCP 让 AI 辅助电路设计,在 IDA 里通过 MCP 让 AI 辅助逆向分析。这种“AI 融入专业工具”的模式,可能是接下来几年最值得关注的方向之一。

5.3 使用 MCP 工具流式输出内容到文件

日报里“使用 mcp 工具流式输出内容到文件 cherrystudio”这个热词很具体,涉及 MCP 的流式输出能力。流式输出对用户体验很重要,尤其是生成长文本时,用户不想等全部生成完才看到内容。MCP 支持流式传输,可以把工具执行过程中的中间结果实时推送给客户端。

实现上,通常是在 MCP server 端用流式响应,client 端逐块接收并写入文件或展示。我实际做的时候,注意点是:流式输出的错误处理比一次性输出复杂,因为可能中途失败,需要支持断点续传或部分结果保留。另外,流式输出的内容格式要约定好,避免客户端解析混乱。

5.4 MCP 与 Agent 的结合

MCP 和 Agent 是天然搭配:Agent 需要调用各种工具,MCP 提供了标准化的工具接入方式。一个支持 MCP 的 Agent,可以动态发现可用工具、按需调用、处理返回结果。这比硬编码工具调用灵活得多。

我在设计 Agent 工具层时,会优先考虑 MCP 兼容。这样工具可以独立开发和更新,Agent 端不需要改代码。不过也要注意,MCP 目前还在演进中,不同实现的兼容性可能有差异,生产环境要做好版本管理和降级方案。

6. 实操中的常见问题与排查技巧

6.1 LLM 调用报错排查

日报里“llm request failed: provider rejected the request schema or tool payload”这个错误很典型。这类报错通常是请求格式不符合 provider 的要求,常见原因:

  • 工具调用的 JSON schema 不合法
  • 消息角色顺序错误(如 system 消息位置不对)
  • 参数类型不匹配(该传数组传了字符串)
  • 超出上下文长度限制
  • 触发了内容安全策略

排查方法:先打印完整请求体,对照 provider 文档逐字段检查;用最小请求复现,逐步加字段定位问题;开启 debug 日志看 provider 返回的详细错误信息。我遇到这类问题,通常几分钟就能定位,关键是别慌,按字段排查。

6.2 RAG 检索效果差的排查思路

检索效果差是 RAG 最常见的抱怨。我的排查顺序是:

  1. 先看分块是否合理,块太大或太小都影响效果
  2. 再看 embedding 模型是否适合当前语言和领域
  3. 检查查询和文档是否在同一向量空间(别用不同模型编码)
  4. 看是否需要查询改写,用户问法和文档表述可能差异很大
  5. 加 reranker 试试,通常能明显提升 top-k 质量
  6. 最后看生成阶段的 prompt 是否合理,有没有给模型足够指令

这个顺序是从便宜到贵、从简单到复杂,大部分问题在前三步就能发现。

6.3 Agent 陷入循环或行为异常

Agent 行为异常通常有几个原因:工具描述不清导致模型误用、缺少停止条件、错误信息没有反馈给模型、上下文太长导致模型迷失。我的处理技巧:

  • 工具描述要写清楚用途、参数、返回格式、什么情况用
  • 设置最大步数和最大 token 限制
  • 每次工具调用后把结果和错误都反馈给模型
  • 定期压缩或摘要历史,避免上下文爆炸
  • 加动作去重,检测重复调用

我踩过最深的坑是工具描述太简略,模型不知道什么时候该用哪个工具,结果乱调一气。后来把每个工具的描述写详细,包括使用示例,效果立刻好转。

6.4 常见问题速查表

问题可能原因快速排查
LLM 返回空触发安全策略或超长检查输入内容长度和敏感词
工具调用格式错schema 不匹配校验 JSON schema
RAG 答非所问检索质量差检查分块和 embedding
Agent 卡住循环或等待看日志最后一步动作
响应慢模型或网络分段计时定位瓶颈
成本超预期调用次数多加缓存和限流

7. 工具链与生态观察

7.1 LLM 开发工具的选择

日报里“llm studio”“llm wiki”“llm as judge”这些词反映了工具生态的丰富。LLM Studio 这类工具适合本地跑模型和调试 prompt,LLM as Judge 则是用模型来评估模型输出,在自动化测试和效果评估中很有用。我实际项目里,LLM as Judge 主要用在回归测试:每次改 prompt 或换模型,用一批标准问题跑一遍,让 Judge 模型打分,快速发现效果退化。

7.2 Agent 框架的选型考量

“agent 框架”“agent 项目”“agent anywhere”“pi agent”“hermes agent obsidian”这些词说明 Agent 框架已经很多了。选框架我看几点:是否支持多工具、是否有记忆管理、是否支持多 Agent 协作、社区活跃度、是否容易调试。我的建议是别追新,选一个主流且文档好的,先把项目跑起来,遇到瓶颈再考虑换或自己搭。

7.3 基于 LLM 的单元测试

“基于 llm 的单元测试”这个方向很实用。传统单元测试断言精确输出,但 LLM 输出有随机性,不能这么测。常见做法是:用 LLM as Judge 评估输出质量、用语义相似度做断言、用固定 seed 减少随机性、准备一批标准用例做回归。我实际用下来,关键是定义清楚“什么算通过”,否则测试会很不稳定。

7.4 Harness 和 Agent 的区别

日报里“harness 和 agent 区别”这个词值得说清楚。Harness 通常指测试或评估框架,用来跑 Agent 或 LLM 并收集结果;Agent 则是实际执行任务的智能体。两者是工具和对象的关系,不是同类概念。理解这个区别,能避免在讨论时混淆。

8. 我个人的一些实践体会

做 LLM 和 Agent 这几年,最大的体会是:技术更新快,但底层逻辑变化慢。RAG 的核心还是检索质量,Agent 的核心还是可靠性和可控性,MCP 的核心还是标准化。追新概念的同时,别忘了把基本功打牢。

另一个体会是:别过度设计。我见过太多项目一上来就上多 Agent、GraphRAG、复杂编排,结果连基础的 RAG 问答都没做好。正确的顺序是:先用最简单方案跑通,找到真正的瓶颈,再针对性优化。大部分场景,好的分块 + 好的 prompt + 好的重排序,就能解决 80% 的问题。

最后分享一个小技巧:建一个自己的“技术日报”习惯。不用很复杂,每天花十分钟记录看到的新工具、新论文、新踩坑,积累下来就是很好的知识库。这份 Agent / LLM 技术精选日报本身就是这个思路的产物,值得借鉴。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询