Skip to main content
知识库是智能体的外部知识来源,专门存放静态资料(产品文档、FAQ、文章等)。把它挂到智能体上,VeADK 会自动为智能体注入一个检索工具,让模型在需要资料时调用检索工具。是否检索由模型和指令决定;挂载知识库不保证每轮查询,也不能替代来源核实 运行本页 local 示例前,安装 veadk-python[extensions] 并完成embedding 配置。包含 Agent 和 Runner 的示例还需完成模型配置

统一入口:KnowledgeBase

无论使用哪种后端,均通过统一的 veadk.knowledgebase.KnowledgeBase 接入。它根据 backend 选择存储后端,并提供一致的知识注入与检索接口。知识注入支持三种来源:
  • 从文件导入:kb.add_from_files([...]);
  • 从目录导入:kb.add_from_directory("./docs");
  • 从文本导入:kb.add_from_text([...])。

通用参数

KnowledgeBase 的字段对所有后端通用:
向量类后端(local、opensearch、redis、milvus、tos_vector)会对知识文本做向量化,需要安装扩展依赖并配置 embedding 模型。viking、context_search 与 openviking 在服务端处理资源,无需本地 embedding。

选择后端

调试可用 local;使用托管检索服务时可选择 viking、context_search 或 openviking;已有向量存储时可选择 opensearch、redis、milvus 或 tos_vector

绑定到智能体

把 knowledgebase 传给 Agent 后,智能体会自动获得 load_knowledgebase 工具,在回答问题时自主决定是否检索知识库。

直接检索

除了智能体运行时自动检索,也可以直接调用 search 做语义搜索,用于调试或自定义 RAG。top_k 为 0 时使用构造时设定的值。

导入和权限边界

导入方法返回布尔值;托管后端返回成功可能只表示资料已提交,还需等待服务端解析完成。search() 返回 KnowledgebaseEntry 列表,文本位于 entry.content;无命中时列表为空。重复导入不保证去重,生产导入应记录已处理资料 知识库通常在应用范围共享,不会自动按会话 user_id 过滤权限。先确定每个知识库允许访问的资料,再将它挂载到智能体。各后端的目录递归行为、媒体提取与过滤参数不同,不能把某一后端选项用于所有后端。停止使用后可调用 kb.close() 释放后端连接

知识库画像

enable_profile 会让智能体先参考知识库画像,再生成检索词,默认关闭。启用前使用 await kb.generate_profiles(files=[...]) 生成画像,并保留默认目录中的结果文件;该操作不会替代知识导入 当前画像生成使用 deepseek-v3-2-251201,运行前确认配置的模型服务可访问该模型;仅修改主智能体模型不会替换画像生成模型。BytePlus 等环境未提供此模型时保持画像功能关闭,普通知识检索仍可使用 以下示例先准备文本、导入知识并生成画像,检查输出非空后启用功能。方法生成文件,不返回画像列表;检索默认读取当前工作目录下与 index 对应的画像目录,使用自定义输出路径时应先将结果放入该默认目录
query_with_user_profile 是另一项独立配置,用于把 Viking 长期记忆中的用户画像加入查询提示。它要求同一智能体绑定可提供用户画像的长期记忆,与知识库画像文件并非同一数据来源
最后修改于 2026年9月19日