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 长期记忆中的用户画像加入查询提示。它要求同一智能体绑定可提供用户画像的长期记忆,与知识库画像文件并非同一数据来源