给智能体配私有知识库防瞎编实操清单
我做的是一个内部 IT 答疑机器人,专门回答"VPN 怎么连""报销系统密码忘了找谁"这类问题。没挂知识库之前,它能一本正经地编出一个根本不存在的工单系统网址,新同事照着点,404。挂上私有知识库之后,瞎编基本没了。把我落地的步骤整理成一份清单,照着做能少走弯路。
第一步:先把"知识"理成问答对
别直接把公司 wiki 整页倒进去。我试过,整页里夹了一堆导航、版权、过期通知,召回回来全是噪声。我花了大半天把高频问题手动整成 Q&A 形式,一问一答一块,每块就答一件事。这一步最枯燥,但收益最高。
第二步:开"无知识不作答"
这是防瞎编的命门。我在一个能配知识库的智能体平台上,把系统提示写死:
只依据下方检索到的资料回答。 若资料里没有相关内容,直接回复 "这个我没查到,建议问 IT 小哥(工位 3F-12)", 不要自行推测或补全。加这段之前,召回为空时它还是硬答;加上之后,查不到就老实承认。光这一条,编造率降了一大半。
第三步:把召回片段亮出来
我让它回答末尾附一句"依据:《VPN 使用手册》第 2 节"。一是用户能自己核对,二是我调试时一眼能看出它到底召回了啥。有几次它答错,我一看依据片段,发现是知识库里那篇文档本身就写错了——不是模型的锅,是源数据的锅。
第四步:定期对一遍
知识库会过期。我们换了 VPN 服务商,老手册还在库里,机器人就拿着旧地址答了三天。后来我加了条规矩:每改一次内部系统,对应知识块当天更新。还在每条块里加了"更新日期"字段,召回时一并带出,太旧的我让它提示用户"信息可能已更新"。
一个没解决干净的问题
知识库能防"无中生有",但防不了"半对半错"——资料里写"密码 90 天过期",用户问"多久改一次密码合适",它会自信地说"建议 90 天",把过期周期当成建议周期。这种语义层面的串味,目前我只能靠多攒测试用例慢慢揪。
整体下来,挂私有知识库这一步性价比极高,半天搭起来,瞎编问题去掉八成。
(模型我直接挂这个 MaaS,调现成 API,没自部署,知识库和检索都在平台里配,省事。)
