RAG 进阶——HyDE、Self-RAG、CRAG 三种增强检索实战
RAG 进阶——HyDE、Self-RAG、CRAG 三种增强检索实战 基础 RAG 准确率 70% 出头。HyDE、Self-RAG、CRAG 三种增强检索,能把准确率推到 90%+。 基础 RAG 的局限经典 RAG 流程: 用户问题 → 向量化 向量数据库检索 Top-K 拼接 Prompt(检索内容 + 问题) LLM 生成回答 问题: 用户问题简短(“年假几天?”) 检索时语义匹配不准——问题太短,embedding 信息不够 容易召回不相关文档 实测:基础 RAG 在企业知识库上,准确率 65-75%。 进阶方案 1:HyDE(Hypothetical Document Embeddings)核心思想先让 LLM 生成”假想答案”,再用假想答案去检索。 12345678问题: "年假几天?"传统 RAG: embedding("年假几天?") → 检索HyDE: LLM("假设你是 HR,请回答:年假几天?") → "员工每年享有 7 天年假..." embedding(&...
Dify vs Coze vs FastGPT——AI 应用编排平台横评
Dify vs Coze vs FastGPT——AI 应用编排平台横评 Dify、Coze、FastGPT 是国内最火的三个 AI 应用编排平台。但它们的定位完全不同——选错了浪费 6 个月。 三个平台的定位Dify企业级 LLMOps 平台—— 开源(可私有部署) 定位”AI 应用的操作系统” 适合:企业级应用、需要私有化 Coze字节出品的 C 端 AI Bot 平台—— 闭源,字节生态 定位”AI Bot 工厂” 适合:C 端用户、Bot 创作、抖音生态 FastGPT专注知识库 RAG 的开源平台—— 开源 定位”开箱即用的 RAG 系统” 适合:知识库问答、内部文档系统 详细对比1. 上手难度Coze:⭐⭐⭐⭐⭐ 最简单 0 代码,纯拖拽 5 分钟搭一个 Bot 完全不懂代码也能用 FastGPT:⭐⭐⭐⭐ 较简单 知识库流程清晰 模板丰富 需要懂基本概念 Dify:⭐⭐⭐ 中等 工作流比 Coze 复杂 需要理解 LLM 概念 上手 1-2 天 2. 功能完整性 功能 Dify Coze FastGPT 基础对话 ✅ ✅ ✅ ...
LlamaIndex vs LangChain——两个框架的真正区别
LlamaIndex vs LangChain——两个框架的真正区别 LangChain 和 LlamaIndex 是 AI 应用最常用的两个框架。但它们的定位完全不同——用错了南辕北辙。 核心定位差异LangChain 的定位通用 LLM 应用框架—— 不只是 RAG,还有 Agent、Chain、Memory、Tools 目标是”LLM 时代的 Spring 框架” 适合:任何 LLM 应用 LlamaIndex 的定位专注文档问答和 RAG—— 核心是 “把私有数据接入 LLM” 数据连接器、索引、检索是核心 适合:RAG 应用、知识库 一句话总结 LangChain = “LLM 应用的全家桶“ LlamaIndex = “RAG 应用的瑞士军刀“ 详细对比1. 数据接入LangChain: 123from langchain.document_loaders import PyPDFLoaderloader = PyPDFLoader("file.pdf")docs = loader.load() 支持 100+ 数...
Agent 记忆系统——短期、长期、向量、图四种记忆怎么选
Agent 记忆系统——短期、长期、向量、图四种记忆怎么选 Agent 没有记忆就是个”金鱼”——聊 5 轮就忘。短期、长期、向量、图四种记忆,各适合什么场景? 为什么 Agent 需要记忆LLM 本身没有状态——每次调用都是全新的。 1234567# 调用 1r1 = llm("我叫张三")# 返回:"你好,张三"# 调用 2(完全独立的调用,模型不记得调用 1)r2 = llm("我叫什么?")# 返回:"抱歉,我不知道你的名字" Agent 必须自己管理”记忆”——把对话历史存下来,需要时检索。 四种记忆的核心区别1. 短期记忆(Short-term Memory)当前对话的所有消息——存在内存或 Redis。 12345678910111213class ShortTermMemory: def __init__(self, max_messages=20): self.messages = [] self.max = max_messages ...
Agent 工具调用可靠性——为什么 70% 的工具调用会失败
Agent 工具调用可靠性——为什么 70% 的工具调用会失败 我统计过自己 Agent 项目的工具调用日志——70% 的失败率让人崩溃。怎么救? 真实失败率我做的一个 Agent 项目,累计 10000 次工具调用统计: 状态 占比 成功 28% 参数错误 32% 工具选错 18% 超时/异常 12% 死循环(同工具反复调) 7% 其他 3% 首轮成功率只有 28%——意味着 72% 的调用需要”补救”。 这和很多 Agent 演示给人的”丝滑”印象差距巨大。 七大类失败原因1. 参数错误(32%)最常见的失败——模型生成的参数不对。 例子: get_weather(city="上海") → 实际 schema 要求 location: str,应该传 "Shanghai" search(query="AI") → 参数太模糊,实际需要更具体的 query 根因: Tool description 不清晰 参数 schema 类型不明确(enum / op...
Multi-Agent 协作——CrewAI、MetaGPT、AutoGen 三种框架实测
Multi-Agent 协作——CrewAI、MetaGPT、AutoGen 三种框架实测 多 Agent 协作是 Agent 领域最热的方向。但 CrewAI、MetaGPT、AutoGen 三个框架差别巨大——选错了浪费 3 个月。 什么是 Multi-AgentMulti-Agent = 多个 Agent 协作完成复杂任务。 类比公司: 单 Agent = 一个员工独立干活 Multi-Agent = 一个团队分工合作 核心思想: 每个 Agent 有明确角色(产品经理 / 工程师 / 测试) Agent 之间通过消息传递协作 通过工作流编排完成复杂任务 三个框架的定位CrewAI:角色扮演 + 流程编排核心思想:像管一个团队一样管理 Agent。 123456789101112131415161718192021222324252627282930313233343536from crewai import Agent, Task, Crew# 定义 Agentresearcher = Agent( rol...
AutoGPT / BabyAGI 类自主 Agent——概念很美,落地很难
AutoGPT / BabyAGI 类自主 Agent——概念很美,落地很难 2023 年 AutoGPT 火遍全网,GitHub 10 万 star。但 95% 的 AutoGPT 类项目都死在”自主”两个字上。问题出在哪? 什么是”自主 Agent”自主 Agent = 给定一个目标,Agent 自己拆解、自己执行、自己反思、自己继续。 AutoGPT、BabyAGI、AgentGPT 都是这类——用户说”帮我做一个 SaaS 网站”,Agent 自己拆解、调研、写代码、测试、部署。 听起来是 Agent 时代的圣杯——但现实很骨感。 为什么自主 Agent 大多失败1. 目标理解不准用户说”做一个 SaaS 网站”—— Agent 理解的:做一个简单的 landing page 用户想要的:有用户系统、支付、订阅、邮件营销的完整产品 第一次拆解就偏了,后面全错。 2. 路径规划不可控Agent 决定”先调研竞品”—— 调研了 3 小时,发现没意义的方向 用户已经不耐烦了 自主不等于智能——自主往往等于”瞎试”。 3. 错误累积放大Agent 写...
LangGraph 实战——有状态 Agent 的正确打开方式
LangGraph 实战——有状态 Agent 的正确打开方式 LangChain 的 AgentExecutor 是无状态的——每次调用都是新的。LangGraph 引入了”图”的概念,让 Agent 能保持状态、分支、回退。 为什么需要 LangGraphLangChain AgentExecutor 的局限123# LangChain 经典用法agent_executor = AgentExecutor(agent=agent, tools=tools)result = agent_executor.run("...") 问题: 无状态:每次调用都是新会话 无法分支:不能根据条件走不同路径 无法回退:执行错了不能撤销 并行难:多步并行需要手动管理 LangGraph 的解决思路把 Agent 当成”图”: 节点(Node):每个工具或 LLM 调用 边(Edge):节点之间的转移 状态(State):跨节点共享的数据 本质是”用图论做 Agent 编排”。 第一个 LangGraph 程序安装1pip install langgraph la...
