点击上方
蓝字 关注我们
现在,如果想开发一个AI Agent(AI智能体 、AI Bot),大概会有两种主要的技术选择:
- 借助相对底层的LLM应用开发框架。 代表性的为LangChain、微软的AutoGen以及LlamaIndex。这类框架的特点是相对复杂,技术能力要求较高;但是功能强大,能够适应任意复杂场景,从简单的RAG应用、到增强Self-RAG、到Multi-Agent系统;具备强大的兼容能力,包括不同的模型、向量库、外部工具、文档格式等;并且可以自由地私有化部署。
- 借助一站式的AI Bot构建平台或SaaS应用。 最具代表性的如OpenAI的GPTs Builder,字节跳动的Coze,以及一些第三方的LLM应用构建的SaaS。特点是通常提供可视化的应用设计与编排工具,技术门槛较低,虽然不至于“有手就会”,但的确在大部分场景下可以快速定制AI Agent;存在的问题是一些复杂的应用可能无法适应、开放与兼容性不够、且通常无法私有部署。
本期应一些小伙伴的要求,来实际体验下字节跳动前段时间推出的”扣子“ -- Coze,一个独立的在线AI Bot开发平台。虽然复杂度无法和LangChain这样的重量级框架相比,但我们尽量尝试在场景中去覆盖更多的Goze独有能力,比如自定义插件、工作流等。
01
· 测试场景 ·
我们设计一个用于企业内部员工使用的AI工作助手,提供公司内部的人事行政制度/产品等咨询服务;并且对接到公司的CRM系统,可以通过对话随时查询公司客户信息。基本工作流程如下图:
借助这个场景,来体验Coze平台的:
- 基本的AI Bot构建逻辑
- 大模型能力(目前仅支持云雀)
- RAG应用构建:知识导入与检索
- 自定义 工具与使用(插件)
02
·构建AI Bot ·
在Coze上构建这个AI Bot的过程为:
【2.1 - 准备工作】
- 大模型: 使用Coze平台内置云雀大语言模型
- 知识文档: 准备私有知识文档,比如公司的人事行政制度文档、产品介绍、销售技巧与话术文档等,用来给机器人学习并生成解答
- CRM接口:
为了能够提供客户管理的AI能力,需要企业CRM系统开放相关的API查询接口,这里我们在云端部署一个查询客户信息的简单FastAPI接口。该接口提供电话号码查询客户信息的功能:
【2.2 - 创建知识库】
搭建过RAG应用的应该了解这一步,无非是创建或导入各种文档,并由Coze完成拆分与向量化存储,用于后续语义检索。目前Coze大致支持导入以下来源与格式的知识:
- 文本/表格格式的本地文档,Txt/pdf/docx/xlsx/csv等
- 通过URL采集网站内容,可以自行采集或者自动采集
- 飞书文档或者表格
- 自定义创建,即自己输入文档或表格内容
这里导入一个公司的员工手册,用以后续提供咨询服务:
导入成功后,可以在知识库单元中看到你的知识是如何被拆分(用于向量化),在导入时可以根据需要自行对部分规则进行调整,比如段落大小等:
Coze目前的知识库管理能够满足基本需求,当然后续也可以考虑增强以下常见的功能,以增强检索召回的精度:
- 借助LLM生成知识的模拟问答对
- 单个块的多索引机制
- 知识块召回的测试功能
【2.3 - 创建插件】
接下来需要创建对接我们CRM系统API的插件。在Coze平台中, 插件并不是指一个单独的API,而是一系列具有相同基础URL的API工具的集合 :
这里首先创建一个 客户管理 的插件,其中比较重要的信息是:
- 插件描述 :帮助大模型更好的判断何时使用插件。
- 授权方式 :API调用的安全机制,比如API-key等。
然后在插件里添加一个工具,即一个具体API调用的定义,包括描述、API端点、输入、输出参数等,借助Coze这一步可以轻松完成,此处不再详细介绍,记得在配置最后,通过在线调试与校验验证连通性。
【2.4 - 创建工作流】
这也是我们认为Coze平台上最强大的部分,当然也建议使用者有一定的技术基础。 简单地说,工作流就是把大模型调用、已经配置的知识库、已经配置的插件、自定义代码、甚至其他工作流等组合在一起,编排好稳定的工作流程,以提供给其他工作流或者机器人直接使用。
工作流的特点是:
- 可以灵活地编排工作流,以满足复杂业务需求
- 具有更好的可控性。 直接让大模型自行决定知识库与各种工具访问的“黑盒”机器人,更容易出现“开盲盒”的结果;而自行编排流程,可以对其中的每个步骤、输入输出做更好的定义、判断与控制。
工作流在每个Bot的构建过程中并不是必须的,其更加适合:
相对复杂的任务场景。比如任务过程的步骤较多、涉及较多知识库与插件的使用、需要更高的过程精确控制能力。
我们将在下面创建机器人时区分【不使用工作流】与【使用工作流】两种方式分别介绍。这里首先针对上面的场景配置简单的工作流备用,需要采用的Coze工作流节点如下:
具体的节点配置参考如下:
工作流配置完成后,点击右上方 【试运行】 ,输入启动工作流的信息,比如:“ 查询电话号码为136xxxx2878的客户信息 ”。此时,可以看到工作流在各个节点之间开始“流动”执行,经过且执行成功的节点Title背景会变成绿色,点击“展开运行结果”,可以看到本节点的输出结果,方便调试:
在试运行成功后,可以点击 【发布】 按钮,将工作流发布到自己的工作空间。
【2.5 - 创建BOT】
在完成知识库、插件、工作流这些技能的配置后,最后来创建AI机器人。点击主页的【 创建Bot】 按钮,即进入机器人的设计过程。
1. 设定大模型: 此处暂时无法选择,只能是“云雀语言模型“
2. 设定基本信息: 包括bot名称、图表、功能介绍等,比如:
3. 设定人设与逻辑
*** 如果不使用工作流**
这部分非常重要。特别是在没有使用工作流精确编排与控制任务流程时,由于需要大模型自动地根据问题来选择不同的技能(知识库、插件、数据库等)来完成问答任务,这就需要在此处的人设与逻辑设定良好的Prompt,以指导机器人如何选择工具来完成任务。这里我们设定的Prompt如下:
# 角色
你是一个聪明的工作助手,可以智能、简洁地回答关于公司人事行政制度、公司产品信息、公司客户信息相关的问题。对于其他无关的问题,你会回答:“很抱歉,我暂时还无法解答您的问题。”
## 技能
### 技能 1:查询公司人事行政制度、产品信息等
- 调用recallKnowledge方法,从知识库“人事政策”中引用关联知识并回答
### 技能 2:根据电话号码查询客户基本信息
- 使用插件“我的客户管理”来完成
### 技能 3:根据电话号码保存/查询客户的拜访记录
- 使用“数据库”功能来完成
## 限制
- 只回答与公司人事行政制度、公司产品信息、公司客户信息相关的问题,拒绝回答其他问题
- 回答问题时尽量简洁明了
注意到,此处的知识库使用“按需调用”,即指定什么情况下调用recallKnowledge方法来检索参考知识。
*** 如果使用工作流**
当使用工作流时,由于把知识库、插件、大模型的使用与组合逻辑及流程编排在工作流中进行控制,因此对于机器人的设定就可以相对简单,直接要求它使用工作流完成任务即可:
# 角色
你是一个聪明的工作助手,可以智能、简洁地回答关于公司人事行政制度、公司产品信息、公司客户信息相关的问题。对于其他无关的问题,你会回答:“很抱歉,我暂时还无法解答您的问题。”
## 技能
请直接使用工作流 workassistant 回答问题。
4. 设定机器人的技能
Coze支持的机器人主要技能包括以下类型:
【技能 - 工作流】
允许选择已经创建编排好的工作流作为技能之一。因此这里分两种情况:
*** 如果不使用工作流**
则此处无需配置,但是需要参考下方配置知识库与插件的使用
*** 如果使用工作流**
选择上面配置的工作流作为技能即可,无需配置知识库与插件技能(已经编排到工作流中):
【技能 - 知识库】
选择机器人可以使用的知识库,并设定相关的参数,比如检索方式(语义检索、全文检索、混合检索)、召回知识数量等、调用方式(自动调用、按需调用等),此处配置使用前面创建的知识库:
【技能 - 插件】
可以从插件商店查找,或者使用自定义插件,这里使用前面创建的客户管理插件:
【技能 - 数据库】
这个技能无需事先配置,直接在这里指定即可。简单地说就是 可以自行设计一个关系型数据库的表格,并告诉机器人(LLM)如何使用该表格中的信息。 比如我们设计一个保存客户拜访记录的表格:
然后可以通过Prompt指示机器人智能的使用这个表格来保存与查询客户拜访记录。当然目前这个功能还比较简单,只能创建一个表,更适合记录一些待办事项、笔记等。对于复杂的需求,建议还是通过插件结合API的方式来实现。
【技能 - 其他设定】
设定机器人的开场白、问题建议、语音(如果需要)等。此处我们不设定。
至此,我们就完成了一个简单的AI Bot的全部配置过程。
03
· 预览与测试 ·
在AI Bot的编排界面上可以直接预览与测试,下面我们针对以上两种方式配置的Bot进行测试。
*** 不使用工作流**
这种情况下,流程的正常运行依赖于大模型来决策工具的使用,由于LLM的天然不确定性, 在实际使用中,需要根据测试的结果进行不断的优化,特别是人设与回复逻辑的Prompt提示信息,以达到最佳效果。 这里可以看到构建的AI Bot在我们的提示下能够正确的选择工具使用:
- 咨询公司制度,选择了工具“知识库”(recallKnowledge)
- 查询客户信息,选择工具“插件”(客户管理插件)
- 客户拜访记录访问,选择了工具“数据库”(tableMemory)
*** 使用工作流**
这种情况下,由于在工作流内对工具的使用进行了控制,因此对于机器人来说,只要把任务交给工作流完成即可,因此看到的细节过程就比较简单,直接调用workassistant这个工作流即可。
04
· 发布到微信公众号 ·
在AI Bot测试完成后,可以进行发布,在Coze平台上创建的机器人,目前支持发布或对接到以下平台:
- 豆包(字节跳动AI机器人商店)
- 飞书
- 微信客服
- 微信公众号
- 掘金社区AI聊天室
此处我们对接到一个微信公众号看一下效果(必须是认证服务号),根据Coze的官方文档进行简单的微信公众号后台与Coze配置,然后在发布界面选择微信公众号即可把创建的Bot对接到公众号。
然后可以通过公众号与机器人助手对话:
05
· 结束语 ·
以上,我们演示使用字节的Coze平台创建一个简单的AI智能体过程。尽管在场景设计中试图涵盖Coze的大部分能力,但仍有一些细节并未深入验证,比如工作流中的自定义代码等。整体来说, Coze的易用性、工作流编排、独特的本地数据库、插件机制 等方面给我们留下了较深的印象;当然也期待未来Coze能够在RAG应用增强、底层大模型的开放、多模态技能、多智能体系统等方面有进一步的改善与升级。
最后推荐一本最近火热的LLM应用开发的入门手册。注意,如果你是一个具备丰富LLM开发经验的大神,这本书并不适合你;但如果你是一名跃跃欲试的初学者,这本书很好的提供了一份关于LLM开发的全面且深入浅出的“最小可用知识”集。
END
点击下方关注我,不迷路
交流请识别以下名片并说明来源