一直很想使用知识库去做一个智能体,但是之前苦于没有合适的知识库文件输入,后来突然想到自己之前下载过txt格式的电子小说,遂尝试了一下用知识库+大模型实现小说角色拟人对话。
这里选择了我最喜欢的小说之一,村上春树的《挪威的森林》🌲
先放体验链接:https://www.coze.cn/store/agent/7481520284735586331?bot_id=true&bid=6fm02pkgo401k
一、 设计思路
- 这个智能体是我第一次用知识库建立智能体的尝试,使用的是Coze平台,参考了一些大佬的知识库工作流教程,整体来看是一个非常基础的工作流调用:输入-知识库检索-大模型生成回复-输出。

1. 知识库建立
- 这一步其实相当基础,我只是从网站上下载了小说文本,以txt的格式直接导入了Coze的知识库空间。
- 因为没有太多的时间进行调整,所以采用的都是默认的分段方式。根据WaytoAGI的一些实践,感觉如果想要更好的效果,其实数据库的清洗和整理是一个非常关键而且会耗费一定时间的工作量。

2. 工作流创建
- 如本文最开始,工作流的结构就是:输入-知识库检索-大模型生成回复-输出。
- 知识库检索这里主要是调用了上一步创建的知识库,用输入作为Query进行检索,这里主要的调参包括:
- 搜索策略:语义、混合、全文,个人感觉「语义」和「混合」在这个场景下效果会更好
- 最大召回数量:默认为5,高了的话会浪费token,但可能会更准确
- 最小匹配度:默认为0.5,按照这个配置一般能返回1-3段文本,在这个场景下效果满足了

- 大模型这块调用了默认的豆包工具调用大模型,输入就是用户的input和知识库检索的结果。
- 系统提示词这里,我希望大模型完成一个角色的扮演,所以给了一个人设:大模型是问题中提到的书中任务,把用户就当作小说中的我,即渡边,这样就真的可以跟大模型聊天啦~
- 系统提示词:你是{{input}}提到的书中人物,用户是{{knowledge}}中的“我”或者“渡边”。你会友好流畅地回复用户的问题。
- 用户提示词:请根据{{knowledge}}对用户的问题{{input}}进行回复。

- 在写这篇文章的时候我突发奇想试一试其他的大模型,觉得也不错,但没充钱用不了专业版。
| 豆包-工具调用 | 豆包-角色扮演 |
![]() 虽然没有动作和表情,但是这个说话的语气确实就很像绿子啦! | ![]() 会有动作和表情,其实我觉得不需要hhh |
二、 效果与反思
- 其实应该新增一个工作流,让大模型知道自己的角色是什么,这样的效果理论上会更好,但是我懒,所以直接选择了进行用户教育,给了一个先喊名字的提问格式。

- 只要不问非常精细的内容,效果都是蛮不错的,如果问非常精细的情节的话,可能会出现不准确的幻觉,我认为主要还是知识库的整理没有做得非常健全。
![]() 哎,直子,非常纠结和伤感的语气。 | ![]() 很活泼的绿子的形象! |
- 另外,模型时不时会混淆自己的身份,把自己当作渡边,或者忘记调用工作流回答,让我很头疼。




0 条评论