AI Agent + RAG管道搭建教程:让Agent学会查文档
🩺 摘要
单一LLM的知识截止于训练数据。加上RAG管道,Agent就能查询你的私有文档回答问题。这篇手把手教你搭。
📝 详情
Agent+RAG是最实用的AI应用模式
纯Agent(只有LLM)的知识范围受限。加上RAG(检索增强生成),Agent就能实时查询私有数据。
架构
用户问题 → Agent(理解意图) → RAG检索(查文档)
→ Agent(合成答案) → 返回给用户
Step 1: 准备文档
先把文档处理成向量:
from langchain.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
loader = TextLoader("docs.txt")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)
Step 2: 建向量库
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(chunks, embeddings)
Step 3: 集成Agent
from langchain.agents import Tool, AgentExecutor
from langchain.tools.retriever import create_retriever_tool
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})
tool = create_retriever_tool(
retriever, "search_docs", "Search documents"
)
关键优化
1. 块大小 块太小(<200字)丢失上下文,块太大(>1000字)降低精度。500-800字是经验值。
2. 检索策略 - 简单检索:top-k(快但不准) - MMR检索(多样性和相关性平衡) - 重排序(让LLM做二次排序)
3. 上下文窗口 Agent的上下文窗口有限(通常是128k tokens)。检索到的文档不能全塞进去——需要取舍。
总结
Agent+RAG是2026年最实用的AI应用架构。关键不在技术,在文档处理——文档分得好,RAG成功一半。
💬 评论 (0)