用途:在构建任何检索增强生成(RAG)系统时调用该技能,覆盖从文档加载到生成回答的完整链路。
主要能力:索引流程为加载→切分→嵌入→存储;检索流程为查询→嵌入→搜索→返回文档;生成流程为文档加查询→LLM→回答。组件包括文档加载器(文件、网页、数据库)、文本切分器、嵌入模型、向量存储。向量存储可选 InMemory(测试、仅内存)、FAISS(本地高性能、磁盘)、Chroma(开发、磁盘)、Pinecone(生产托管、云端)。
使用方式:以 Python 为例,先构造 Document,再用 RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50) 切分,用 OpenAIEmbeddings(model="text-embedding-3-small") 生成嵌入并存入 InMemoryVectorStore.from_documents,通过 as_retriever(search_kwargs={"k": 4}) 创建检索器,最后用 ChatOpenAI(model="gpt-4.1") 结合检索上下文生成回答。TypeScript 对应使用 @langchain/openai、@langchain/classic/vectorstores/memory、@langchain/textsplitters 等包。加载器示例包括 PyPDFLoader、WebBaseLoader、DirectoryLoader。检索支持 similarity_search_with_score 与 metadata filter。还可将检索封装为工具交给 create_agent 使用。
限制:可配置分块大小与重叠、嵌入模型、返回数量 k、元数据过滤、相似度与 MMR 搜索算法;不可配置嵌入维度(由模型决定),也不能在同一存储中混用不同模型的嵌入。分块建议 500-1500 字符,重叠为分块大小的 10-20%。应使用持久化向量存储避免重启丢失数据,索引与查询须使用同一嵌入模型,FAISS 本地加载需 allow_dangerous_deserialization=True,并确保嵌入维度与索引维度一致。