跳转到主要内容
agentscope-extensions-rag-simple 提供一个”自己掌控全部链路”的 RAG 实现:自带文档读取器、分块策略、Embedding 模型适配、以及 5 个开箱即用的向量库适配器。 适合:你愿意自己跑 embedding + 向量库,不想接入第三方 RAG 平台。

添加依赖

快速上手

内置文档读取器

io.agentscope.core.rag.reader 包提供了一组常见格式的 Reader,全部产出 List<Document>: 读取出来的 Document 已经带有元数据,配合 TextChunker 与 SplitStrategy 做分块。

内置 Embedding 提供方

也可以实现 EmbeddingModel 自行扩展。 EmbeddingModel.embed(ContentBlock) 返回 Mono<EmbeddingResponse>;响应中包含向量,并在 提供方返回用量时附带 EmbeddingUsage 的 token 统计。 可以向 SimpleKnowledge.builder() 传入 usageListener,接收每一次非空的 embedding 用量。 监听器会在 embedding 响应线程上执行,应保持非阻塞且线程安全;提供方未返回用量时不会触发。 OpenAITextEmbedding 首次使用时创建一个 SDK 客户端,后续请求、并发调用和重试均复用该客户端。 建议在 RAG 服务的整个生命周期内复用模型,等所有 embedding 操作完成后调用 close() (例如在应用关闭钩子中),短期使用也可以采用 try-with-resources。SimpleKnowledge 不会代为关闭 共享的 embedding 模型。关闭未使用的模型不会创建客户端;模型关闭后不能再次使用。 关闭后订阅会立即失败,不进入重试流程;关闭前创建、关闭后才订阅的 Mono 也遵循这一规则。

内置向量库适配

切换向量库只需要换一个 VDBStoreBase 实现,传给 SimpleKnowledge.builder().embeddingStore(...)。

检索参数

RetrieveConfig 控制检索行为:

与 Agent 集成