RAG和Agent
RAG
(Retrieval-Augmented Generation,检索增强生成)
RAG搭建流程
离线知识库构建 → 在线检索生成 → 部署与持续优化
文档 → 加载器 → 文本切分 → Embedding模型 → 向量 + 原始文本 → 写入向量库
用户提问 → 问题Embedding → 向量库相似度检索&关键词检索 → 拿到相关片段塞进 Prompt → 丢给LLM生成答案。
文档解析切分:把企业文档、产品手册、政策文件、FAQ 等内容转成纯文本源,清洗后按语义切成合适长度的 Chunk。切分方式:固定窗口滑切、递归字符切分、语义切分、父子分块,切多大是个权衡:块太大→检索不精(一堆无关内容稀释);块太小→语义残缺(代词指代丢失,第三部分 Claude 的 Contextual Retrieval 正是解决这个问题的)。
文本向量化:每个 Chunk 经过 Embedding 模型变成向量。模型Word2Vec(早期)、中文BGE-M3等开源可私有化部署
入库和向量检索:L2 归一化就是把向量长度统一成 1,存入向量数据库,支持向量语义检索。Qdrant、Milvus相似度和索引算法加速,知识库与查询必须用同一个 Embedding 模型
关键词全文检索:Elasticsearch,(ES 默认的相关性打分算法BM25关键词全文检索算法Best Matching 25)优点专有名词、编号、代号精准;典型场景合同号、设备编码、法规条款、专业术语
检索召回重排序(Rank):宽召回、严精排,大库精选后和问题
组装 Prompt 让模型作答:结构化Prompt拆成 Role / Context背景 / Task / Constraints / Data / Format/Self-Check
temperature(温度)是大模型推理时控制输出随机性 / 创造性的参数,要准就低温,要创意就高温;做代码、RAG、工具调用时,优先把 temperature 压到 0 附近。
RAG 常见失败模式与对策
Agent
RAG 是典型 Workflow:检索一次 → 生成一次,流程固定。
Agent 则在循环里自主决策,可以"检索→不够→再检索→读全文→算个数→回答"。
实践建议:能用 Workflow 解决的不要上 Agent。Agent 更强但也更贵、更慢、更难测;Anthropic 的原话是"找最简单的可行方案"。
Agent 核心循环
支撑这个循环的只是三条机制:
-
工具注册:把函数的名字、描述、参数 Schema 告诉模型(Claude 的 Function Calling 协议);
-
消息累积:每一轮的思考、工具调用、工具结果都追加进同一条消息历史——这就是 Agent 的"工作记忆";
-
终止条件:模型不再发起工具调用(给出最终回答),或触发最大步数/预算上限强制截断。
多 Agent 系统编排者把子任务派给各自带独立上下文的 Agent。
Agent 的五大组件
|
组件 |
职责 |
常见实现 |
|
LLM 大脑 |
理解目标、规划步骤、决定工具调用 |
Claude / GPT 等支持工具调用的模型 |
|
规划 |
把大目标拆成子任务 |
模型生成todo list 或靠 ReAct 循环边想边做 |
|
工具 |
与外部世界交互的手:检索、读写、计算、调 API |
Function Calling / MCP 协议 |
|
记忆 |
短期=消息历史;长期=外部存储 |
消息列表、向量库、CLAUDE.md 式记忆文件 |
|
反思 |
检查结果、发现错误、自我纠正 |
验证工具结果、重试、评估者模式 |
AI Agent框架
LangChain/LangGraph开发框架
Cursor Agent (Cursor)/ Claude Code(Anthropic) 是 AI 编程 Agent 工具
OpenClaw阿里云是自托管个人 AI 助手
LangChain和LangGraph
LangChain 是开源大模型 LLM 应用开发框架(MIT 协议),2022 年底由 Harrison Chase 发起,目标是快速构建有上下文、能调用外部工具的大模型应用,支持 Python / JS 双版本。
| 维度 | LangChain | LangGraph |
|---|---|---|
| 定位 | 组件库 + 线性编排 | 状态图运行时 |
| 流程 | 单向链式 | 可循环、可分支 |
| 状态 | 隐式、较弱 | 显式、可持久化 |
| 适合 | 快速搭 RAG、简单 Agent | 复杂 Agent、审批流、多 Agent |
| 类比 | 工具箱 / 流水线 | 指挥中心 / 流程图 |
生态组件
- langchain-core:核心抽象、LCEL(LangChain Expression Language,链式表达式),轻量基础层,所有组件标准接口在这里定义LangChain
- langchain:链、检索、通用 Agent 策略
- langchain-xxx:独立模型集成包(
langchain-openai/langchain-deepseek/langchain-qwen等) - langchain-community:社区维护的第三方集成(向量库、文档加载器、小众工具)
- LangGraph(重点):有状态图编排引擎,用来做带循环、分支、持久化、人工介入的复杂 Agent、多智能体,现在生产环境首选,替代旧版 Chain 的复杂流程LangChain
- LangSmith:调试、追踪、评测、监控平台(商业),看每一步 token 消耗、工具调用链路、prompt 日志,生产必备LangChain
- LangServe:把写好的 Runnable/Chain 一键发布成 REST API,方便后端对接
六大核心能力模块
- Models:LLM / ChatModel / Embedding 嵌入模型,统一接口,换模型不用改业务代码
- Prompt:提示词模板、Few-shot、格式化输出
- Retrieval(RAG 核心):文档加载器(PDF/Word/ 网页)→文本分割→向量化→向量库(FAISS/Chroma/Pinecone)→检索召回
- Memory:对话记忆,多轮聊天保存上下文(BufferMemory、SummaryMemory 等)
- Tools:外部能力,搜索、数据库、计算器、自定义 API
- Agents:让大模型自主决策:选哪个工具、执行、观察结果、循环直到任务完成(ReAct、ToolCalling Agent)
更多推荐


所有评论(0)