案例解析:从 RAG 到 Agent 的技术演进
引言
随着大语言模型(LLM)如 ChatGPT、ChatGPT-4 等的发布,AI 技术彻底改变了人机交互的方式。越来越多的企业开始聚焦大模型技术的研发与应用,为日常生活带来极大便利。然而,大模型也面临着时效性、准确性等核心挑战。如何构建更高级的 LLM 应用?如何解决 LLM 面临的幻觉与知识滞后问题?这已成为 AI 领域的重要研究课题。
检索增强生成(RAG, Retrieval-Augmented Generation)技术应运而生,通过在自然语言处理中结合信息检索和文本生成,显著提升了机器理解和回应的准确性。但随着 RAG 的广泛应用,其局限性也逐渐显现。本文将深入探讨 RAG 的痛点,并分析向智能体(Agent)架构演进的必要性与实践路径。
RAG 的核心痛点
RAG 技术在问答系统、智能助手、信息检索等任务中表现优异。通过建立庞大的知识库,利用信息检索查询相关文本片段,经过筛选、排序和加权后作为生成模型的输入,能有效提高答案准确性,减少虚假信息。
然而,Naive RAG(基础 RAG)最初是为简单问题和小型文档集设计的。例如:
- 事实性问题: "特斯拉的主要风险因素是什么?"
- 特定文档查询: "作者在 YC 期间做了什么?"
针对此类问题,LLM 结合特定知识库能给出很好的答案。但在面对以下复杂场景时,RAG 往往失效:
- 总结性问题: "给我总结一下 XXX 公司的年度报告"(需跨段落整合)。
- 比较性问题: "比较开发者 A 和开发者 B 的开源贡献"(需多源对比)。
- 结构化分析 + 语义搜索: "告诉我美国最高业绩的拼车公司的风险因素"(需推理与过滤)。
- 综合性多部分问题: "告诉我文章 A 中的论点 X,文章 B 中的论点 Y,按内部风格指南制作表格并得出结论"(需多步规划与执行)。
当遇到复杂任务时,单纯的搜索系统无法提供令人满意的结果,需要引入更强的规划与执行能力。
从 RAG 到 Agent 的转变
常规的 RAG 应用通常仅通过结合自有知识库来增强大模型,局限于内容生成的范畴。若需要人工智能像高效员工一样,自主选取工具、与不同系统协作直至交付结果,则必须从 RAG 转向 Agent。
这种转变并非抛弃 RAG,而是在此基础上增加以下关键层次的功能:
- 多轮对话: 与用户进行深度交流,精准识别用户意图。
- 查询/任务规划层: 理解并规划复杂的查询和任务分解。
- 外部环境工具接口: 调用外部 API 或工具完成任务(如计算器、数据库、搜索引擎)。
- 反思机制: 对执行结果进行自我评估和修正。
- 记忆管理: 维护交互历史,提供个性化服务。
Agent 不仅能适应复杂任务,还能在多变环境中灵活应对。它专注于实现特定任务,注重与现有系统集成。Agent 能够理解语言并在现实或数字系统中采取行动,执行检索、处理、访问数据、交互数据库等多步骤任务。
人类使用工具是显著特征,Agent 同样借助外部工具释放 LLM 潜能。例如,Agent 可调用图表生成工具创建在线图表,或使用天气查询工具获取实时数据。Agent 是真正释放 LLM 潜能的关键,标志着 LLM 应用从被动响应向主动执行的范式转移。
案例分析:阿里千问 Agent 实践
近日,阿里千问团队开发了一个结合 RAG 的 Agent,用于理解包含百万字词的文档。该方案仅使用 Qwen2 模型的 8k 上下文,效果却超越了传统 RAG 和长序列原生模型。
1. Agent 构建架构
该 Agent 的构建包含三个复杂度级别,每一层都建立在前一层的基础上。
级别一:检索(Retrieval)
目标是找出与提取关键词最相关的块,主要分为三步:
- 指令与非指令分离: 将用户输入拆解为信息需求与格式指令。
- 输入示例: "回答时请用 2000 字详尽阐述,我的问题是,自行车是什么时候发明的?请用英文回复。"


