ARTICLE · 1105976
一份文档就能搭出来的知识库智能体 —— "会引用"的问答 AI
我用《设备借用制度》当例子,从建知识库到上线问答助手,一共走了 26 步,全程截图跟着做。我们只讲"按哪个按钮、为什么这么按、踩过的坑"。
一、为什么这件事值得做
把制度、产品手册、培训资料丢给 AI,让它只"按资料回答",并把依据标出来——这件事以前要做几个月,现在用知识库 + RAG 半天就能跑通。
核心思路就两句话:
- 嵌入模型负责"找资料":把文本变成可检索的向量。
- 大语言模型负责"写回答":拿到资料后用中文组织成答案。
所以这次教程拆成两段:
| 段落 | 步骤 | 目标 |
|---|---|---|
| Part 1:建库验证 | 01–14 | 上传文档、做分块、跑召回测试,确认"能找到" |
| Part 2:连问答助手 | 15–26 |
二、Part 1:把文档变成"可检索"的知识库
01–06 · 建一个叫"设备借用制度 教程0910"的知识库
登录测试环境 → Default Workspace → 顶部"知识库" → 添加知识库。
填好这几项:
| 字段 | 填写内容 |
|---|---|
| 名称 | 设备借用制度 教程0910 |
| 描述 | 用于文件解析、分块、检索和问答教学 |
| 类型 | 文档(Wiki &知识图谱保持关闭) |
| 文档索引 | ✅ 开启 |
| LLM | qwen3.7-max |
| Embedding | text-embedding-v3 |
| 向量存储 | 系统默认(当前测试环境不支持单独切换) |
| 检索 | 向量检索,阈值 0.5,Top K = 10,关闭重排序 |
| 分块 | 自动分块,块大小 512,重叠 80,关闭父子分块 |
⚠️ 容易踩的坑:
- 不要把 LLM 误选成 Embedding:前者是回答模型,后者是检索模型。
- Top K 更大 ≠ 答案更准:本教程示例就设 10,配合阈值 0.5 已经足够。
- 重排序不是基础问答的前置条件:本例未开。
07–12 · 上传《设备借用制度示例.txt》
在知识库顶部点 新建/导入 → 新增文档。
向导分三步:文档源 → 文本处理 → 完成。
文档源
选 文件,上传随教程提供的 设备借用制度示例.txt(约 693 B,远低于 15 MB 上限)。
文本处理
默认页面里"块大小"经常被预先填成 1000,别直接确认。
手工改成:
| 参数 | 值 |
|---|---|
| 转换器 | 默认 |
| 分块方式 | 递归字符 |
| 块大小 | 512 |
| 重叠 | 80 |
| 图像理解 | 关闭(纯文本场景) |
⚠️ 坑:如果预览区出现空白或乱码,先回去修解析,不要直接进入问答。
完成
保存后等待 "文档已上传" + "嵌入已完成" 两个状态都出现,再点 前往文档。
上传完成 ≠ 索引完成。必须等嵌入完成才能进入下一步。
进文档详情确认:
- ✅ 状态:完成
- ✅ 分块数 > 0
- ✅ 文件名正确
13–14 · 召回测试:先验证"能找得到"
点顶部 测试,源文本输入:
设备单次最多可以借几个工作日?
保持向量检索,点 测试。
期望结果:召回 1 个段落,分数 ≈ 0.78,原文包含 "最长 3 个工作日" 和 "延期规则"。
⚠️ 关键提醒:分数 ≠ 答案准确率。召回对了,才说明检索链路可用;后面才轮到连智能体。
三、Part 2:把检索结果接到问答助手
15–19 · 建一个空的智能体
返回 Default Workspace → 创建空白专家 → 选 智能体 + 空白 → 下一步。
基础信息:
| 字段 | 值 |
|---|---|
| ID | kb-qa-tutorial-0910 |
| 名称 | 设备借用问答 教程0910 |
| 模型 | qwen3.7-max |
| 描述 | 根据设备借用制度示例回答,供知识库教程演示 |
中间件步骤保持空,技能列表保持未选,直接保存。
进 Studio 后确认两点:
- ✅ 已生成 对话触发器
- ✅ 对话触发器 连接到主智能体
20 · 写一份"强制检索"的提示词
点主智能体卡片,标题改为 "设备借用问答"。在提示词里写清规则:
TEXT复制
你是设备借用制度问答助手。回答前必须检索已连接的设备借用制度知识库。只根据检索到的内容回答,说明依据的文档名称。没有依据时明确说"知识库未提供这项信息",不编造费用、期限或审批规则。用简洁中文回答。⚠️ 坑:提示词规定回答方式,知识库连接 提供检索能力。两件事都要做,缺一不可。
21 · 把主智能体"接到"知识库
- 画布 添加菜单 → 添加知识库 → 设备借用制度 教程0910
- 从 主智能体底部"连接知识库"端口 → 拖到 知识库顶部端口
- 打开主智能体属性 → 滚到知识库区域 → 看到名称
⚠️ 坑:只把知识库放到画布、没有连线时,不算连接完成。
22–24 · 验证两类问题:"能答对"和"不编造"
验证 1:答得出原文已包含的问题
右上 预览,输入:
设备单次最多可以借几个工作日?如果要延期怎么办?请注明依据。
期望:
- ✅ 显示一次知识库工具调用
- ✅ 答案写明"最长 3 个工作日"
- ✅ 说明延期需联系设备管理员,给出延期原因 + 新归还日期
- ✅ 引用文档名称
验证 2:答不了未涉及的问题
继续输入:
借用设备要交多少押金?
期望:
- ✅ 助手再次检索
- ✅ 回答"知识库未提供这项信息"
- ✅ 不编造押金金额
- ✅ 不把常识猜测当制度
这两步同时验证:能不能找到 + 会不会瞎编。任意一项不达标,都别急着发布。
25–26 · 发布 v1
测试发布前的最后一步:完成检索、正常问答、无依据问题三类验证后:
- 右上 发布 → 发布
- 开启 创建新版本
- 填写本次发布说明(建议写清"已验证:召回 1 段、3 工作日、无押金问题")
- 提交
核对顶部状态变为 "已发布 v1",本例于 2026 年 9 月 10 日完成。
四、参数与排查速查表
遇到问题,先判断失败发生在哪一层,一次只调一个变量,用同一个测试问题对比。
| 情况 | 检查与处理 |
|---|---|
| 文件上传了但问答找不到 | 确认索引已完成、分块数 > 0、文档已启用,连的是同一个知识库 |
| 检索没命中 | 先检查原文是否含答案;再适度调阈值和 Top K |
| 召回正确但答错 | 看知识库工具是否被实际调用;检查提示词 + 引用;不要只调高 Top K |
| 模型选择器没有嵌入模型 | 找管理员申请 text-embedding 权限,确认提供商配置 |
| 默认分块 ≠ 导入页 | 以导入表单为准,重新核对块大小和重叠 |
| 资料更新后 | 上传修订文档或重新走处理流程;用旧问题 + 变更条款复测,避免新旧制度混用 |
五、附:可复制的问答提示词
TEXT复制
你是设备借用制度问答助手。回答前必须检索已连接的设备借用制度知识库。只根据检索到的内容回答,说明依据的文档名称。没有依据时明确说"知识库未提供这项信息",不编造费用、期限或审批规则。用简洁中文回答。写在最后
教程里的示例文件是虚构的教学资料,不代表任何真实组织的制度。
但搭法是真的:一份文档 → 一个知识库 → 一个"会引用"的智能体 → 半天上线给团队用。
下一步可以怎么玩?
- 把同一份文档换成产品手册 / 培训资料 / FAQ
- 加 重排序 提升复杂问题的答案质量
- 用 Wiki + 知识图谱 索引结构化内容
官方文档延伸阅读:
- 知识库概览
- 文档分块策略
- 召回测试与检索参数
- 在应用中使用知识库
Xpert 官方 · docs.xpertai.cn
一篇推文讲完《Xpert 知识库问答操作教程》26 步,下一篇开始讲"多知识库 + 多智能体协作"。