Skip to content

关于 StaffDeck 知识检索设计:为何暂不采用 Embedding RAG,以及未来是否支持混合检索? #216

Description

@kimfungho-dev

首先,非常感谢 OpenBMB 团队开源 StaffDeck。

我最近完成了 StaffDeck v0.5.0 的自托管部署,并实际测试了数字员工、模型配置、PDF 附件分析和知识库相关功能。StaffDeck 将 AI Agent 设计成具有岗位、职责、能力、SOP、工具和知识体系的“数字员工”,而不是仅仅提供一个聊天界面或 Agent 工作流编辑器,这种产品思路和整体设计令我感到非常惊喜和赞叹。

特别是数字员工广场、能力管理、任务执行记录、知识库、SOP 以及工具调用之间的组合,让 AI Agent 更接近企业中的实际岗位和协作方式。这是我目前见过非常有启发性的 Agent 管理范式。

我观察到的知识检索方式:

在阅读 v0.5.0 的相关代码后,我理解 StaffDeck 当前的知识检索流程大致是:

  1. 将 PDF、DOCX、HTML 等文件抽取为文本。
  2. 根据标题和段落建立 section、bucket 和 evidence chunk。
  3. 使用 LLM 对候选 document/bucket 进行路由选择。
  4. 使用标题、摘要、章节路径、正文和中文 n-gram 做加权词汇匹配。
  5. 对命中的 chunk 进行同章节或邻近内容扩展。
  6. 将 evidence 和 citation 信息交给生成模型回答。

从目前代码来看,StaffDeck 似乎没有调用 Embedding API,也没有使用向量数据库、余弦相似度、BM25 或独立的 Reranker 模型。

如果我的理解有误,也请开发团队指正。

想请教的问题:

  1. 当前暂不使用 Embedding RAG,是一个有意的架构选择吗?

  2. 选择现有“LLM 路由 + PageIndex/章节结构 + 词汇评分”方案,主要是出于哪些考虑?例如:

    • 降低部署复杂度;
    • 避免依赖向量数据库;
    • 减少 Embedding 成本;
    • 提高引用和检索过程的可解释性;
    • 更适合 SOP、制度和结构化企业文档;
    • 或者是为了保持本地部署的轻量化。
  3. 对于以下场景,项目未来是否计划加入 Embedding 检索?

    • 大规模企业知识库;
    • 同义词和改写查询;
    • 中英文跨语言检索;
    • 多年份年报或大量相似文件;
    • 查询措辞与原文差异较大的语义检索。
  4. 未来是否可能支持混合检索架构,例如:

    • 现有 PageIndex/章节路由;
    • 关键词或 BM25 检索;
    • Embedding 向量召回;
    • Reranker 二次排序;
    • 最后由 LLM 生成带引用的回答。
  5. 如果未来加入相关功能,是否会考虑提供可插拔配置,例如:

    • OpenAI-compatible Embeddings API;
    • 自定义 Embedding 和 Reranker endpoint;
    • 可选择的向量数据库;
    • 在管理界面分别配置生成模型、Embedding 模型和 Reranker 模型;
    • 允许用户选择纯词汇检索、纯向量检索或混合检索。

补充说明:

这不是一个错误报告,而是对 StaffDeck 架构设计和未来路线的技术咨询。

我非常认同 StaffDeck 以“数字员工”方式组织 Agent、能力、知识、SOP 和工具的方向,也希望进一步了解当前检索架构背后的设计考虑。

如果团队已有相关设计文档、Roadmap、Issue 或 Pull Request,也希望可以提供链接供我继续学习。

再次感谢团队开源这个非常有创意和启发性的项目!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions