RAG 知识库¶
io.agentscope.core.rag.Knowledge 是 AgentScope 用于”接入外部知识库”的接口。Agent 在推理时通过它检索文档片段,再交给模型用于生成。agentscope-extensions-* 仓库下提供了多种实现:
扩展 |
类型 |
适合场景 |
|---|---|---|
自建:embedding + 向量库 |
对接自家向量库(PgVector / Milvus / Qdrant / Elasticsearch / 内存) |
|
阿里云百炼知识库 |
用百炼托管的企业级知识库 |
|
Dify 数据集 |
已经在 Dify 上维护知识库的场景 |
|
自托管 HayStack RAG |
已经基于 HayStack 搭建索引流水线 |
|
RAGFlow 服务 |
需要 OCR、知识图谱增强的复杂文档场景 |
接入方式都是同一套¶
ReActAgent agent = ReActAgent.builder()
.name("Assistant")
.model(model)
.knowledge(knowledge) // 任选一种 Knowledge 实现
.ragMode(RAGMode.AGENTIC) // 或 STATIC、NONE
.build();
也可以包装成工具供 Agent 自主选择是否检索:
KnowledgeRetrievalTools tools = new KnowledgeRetrievalTools(knowledge);
Toolkit toolkit = new Toolkit();
toolkit.registerObject(tools);
选型建议¶
需求 |
建议 |
|---|---|
自己掌控全部链路(embedding + 向量库) |
Simple |
阿里云生态、企业级托管 |
Bailian |
团队已经在用 Dify 编排 |
Dify |
需要复杂 ETL(PDF 表格、图片 OCR、知识图谱) |
RAGFlow |
已基于 HayStack 落地 RAG 流水线 |
HayStack |
除 Simple 外,其余实现都只负责检索(retrieve),文档导入/更新请走对应平台的控制台或服务侧 API;这样设计是为了让多个 Knowledge 在使用侧完全可替换。