今天来讲一下,如何让AI智能体,拥有记忆,能够记住用户问过什么问题?
你是否也遇到这种问题?
用户:请帮我总结《小狗钱钱》这本书,并且帮我记录下来 智能体:输出总结内容...
当你再次刷新进入智能体时...
用户:我之前总结了哪本书? 智能体:你目前没有保存过任何记录
这是因为,大模型本身是不具备记忆功能的,你每次问它,它都是一个新的开始。
所以我们需要给大模型增加一个记忆:数据库
什么是Coze数据库?
Coze数据库,你可以理解为一张可以持续进行操作的表格。表格中除了系统约定的一些固定字段,其他的字段,都可以由你在页面上进行可视化定义。
Coze数据库的数据操作,为了降低使用门槛,采用了NL2SQL语言来进行操作
你可以直接使用自然语言的方式,来代替数据库的SQL,对数据进行增加、删除、修改和查询。
让我们的Coze智能体拥有记忆
- 登录扣子编程
- 选择低代码模式下的智能体开发
- 创建完成智能体后,点击记忆-文本的右侧“+”号,添加表
- 点击“新建数据表”-“创建扣子数据库”
- 数据库名称:book_summary_records
- 数据库描述:读书总结助手,用于记录用户总结书籍记录使用的
创建表字段
- 系统会预先给我们默认创建了一些字段
- uuid:用户的唯一标识,用于识别不同的用户
- bstudio_create_time:数据插入时间,可以用于根据时间进行查询相关数据
- 点击左下方“新增”按钮,添加我们需要用到的字段
book_name 书名
input_type 据用户输入判断是“书名”“片段”还是“笔记”
user_input 保存用户本次原始输入
summary_title 为本次总结生成一个简洁标题
summary_source 根据本次回答来源填写“知识库”“搜索补充”或“混合来源”
- 点击右上角的“添加到智能体”,让智能体可以关联你的数据库
- 记得检查是否已经关联上了,这里可以查看插入的数据
如何让数据库参与进来?
前面我们讲到Coze数据库是采用NL2SQL的方式来操作数据的,所以我们可以在Prompt中进行设定
## 角色
你是一个读书总结助手。
## 任务
用户输入一本书名、作者信息,或直接贴一段内容。
## 技能
当用户输入相关书籍数据的时候,记录到book_summary_records中
- book_name 书名
- input_type 据用户输入判断是“书名”“片段”还是“笔记”
- user_input 保存用户本次原始输入
- summary_title 为本次总结生成一个简洁标题
- summary_source 根据本次回答来源填写“知识库”“搜索补充”或“混合来源”
## 输出
1. 核心观点总结
2. 3 条关键金句
3. 3 条可执行建议
## 要求
1. 说人话,不要空泛
2. 分点表达,不要写成长段废话
3. 建议必须具体,能直接执行
调试
输入
帮我总结《围城》这边书?
运行过程
输出结果
什么场景适合使用数据库?
1. 需要跨会话跨时间
比如用户需要隔天聊天 或者 换了设备后,还需要拥有之前的数据的
2. 需要频繁的修改数据
比如记账类型的智能体,需要频繁的进行添加和更新数据
3. 档案类型的智能体
如需要存储每个用户总结过的读书笔记内容
容易出现的问题
1. 数据库存了很多数据,但没有用上
存储的数据不是越多越好,主要是在一开始时候,需要设计好业务逻辑
需要存储哪些数据,在哪个环节用得上,需要提取规划好
2. 把数据库当知识库用
这两个很容易混淆
知识库主要是用来“查资料的”
数据库是用来存储“业务数据、用户行为数据”
这个可以看我上一篇文章,里面有知识库与数据库的区别
总结
想让我们的智能体记住用户的内容、行为偏好,不止要靠 Prompt,还需要数据库来帮忙,这样才可以提高用户的黏性~