LangBot发布v4.9.0,代号“Knowledge Without Borders”。这次更新的核心动作只有一个:把整个知识库能力从内置实现重构为插件驱动架构。官方说法是,这重新定义了LangBot里“知识”的含义。

旧架构的两个系统

打开网易新闻 查看精彩图片

在v4.9.0之前,LangBot的知识库被拆成两套独立系统。内置知识库使用Chroma作为向量数据库,嵌入模型由LangBot直接管理,文档解析、分块、索引全部写死在核心里。外部知识库则通过KnowledgeRetriever插件组件桥接Dify、RAGFlow、FastGPT等服务,只做检索,不做文档入库。

这两套系统分别放在不同界面标签下,数据模型和管理流程完全不同。带来的问题很直接:扩展性差,想换向量数据库或自定义分块策略基本没门;维护成本高,每次RAG改进都要改核心代码并发布新版本;用户体验割裂,两套知识库管理流程意味着更陡的学习曲线。

v4.9.0的四个变化

第一,统一知识库模型。内部和外部的区分被取消,所有知识库通过单一界面管理,只靠rag_engine_plugin_id区分引擎。一个列表、一个创建流程,选引擎即可。

第二,新增KnowledgeEngine组件。它取代旧的KnowledgeRetriever,接管知识库完整生命周期:文档入库,从文件解析到向量索引的完整管线;知识检索,查询时返回相关分块;文档删除,清理文档及其关联向量数据;生命周期钩子,知识库创建或删除时的回调。一个KnowledgeEngine插件对索引和检索策略拥有完整控制权,而不只是检索。

第三,Parser组件独立。文档解析被抽成单独的插件组件类型。Parser把PDF、Word、Markdown等二进制文件转成结构化文本,再交给RAG引擎做分块和索引。如果某个RAG引擎声明了DOC_PARSING能力,它可以在内部处理解析,跳过外部Parser。

第四,Host RAG API。LangBot核心不再直接执行RAG操作,但仍通过RAGRuntimeService提供基础设施,插件可以通过RPC访问。具体包括:invoke_embedding()嵌入调用,插件无需管理模型连接;vector_upsert()vector_search()vector_delete()向量数据库操作;get_knowledge_file_stream()文件访问,从存储读取原始文件。

这样一来,插件可以专注于RAG策略本身,比如分块算法、检索逻辑、重排序,而不用操心底层连接和存储细节。