从爆火的AI聊天apps中发现豆包,从认识豆包了解到火山引擎,从探索火山引擎又接触到“扣子”,从熟悉“扣子”到进入AI应用开发,一路就这么走来了。
“扣子”的英文名叫Coze,这个名字大概同时匹配了其中英文的发音,也同时契合了扣子的目标功能定位。
扣子是新一代 AI 应用开发平台。它是字节跳动公司基于火山引擎(也就是字节跳动提供互联网云服务的平台)和豆包大模型而推出的,供用户定制开发各种AI应用的平台。核心特征:
第一、扣子是个开发平台;
第二、用扣子开发的是AI应用,包括智能体和功能更为全面的AI应用。
简单理解就是电脑虚拟人。由于有了AI大语言模型,电脑可以学习到至今所有的人类知识,能够理解普通人的话(自然语言),然后根据它学习到的知识与人对话,回答普通人的任何问题,包括普通常识和专业知识,攘括一切已知的能公开搜集到的人类知识。正是因为能够与人通话,又具有所有的人类知识,所以电脑就变成了一个虚拟的人!
这个虚拟人比普通的真人强大得多。它并不仅仅是一个电脑程序,它背后是全世界最先进的机器学习算法和计算能力,像字节跳动、阿里、百度,以及国外的OpenAI、Google、Tesla等,都是全球最顶尖的大公司,花了巨额的资金,建设了最先进的AI云计算中心,搜集了互联网至今所有的人类知识,才训练出了各种大语言模型,并提供了大语言模型的服务平台,开发了各种AI聊天apps,包括ChatGPT和豆包。普通人见到的聊天apps就是智能体的典型。
既然有这么多聊天apps,为什么还要开发其他的智能体呢?顶尖AI公司开发的聊天apps是通用于所有人的,但现实社会存在着各行各业,有千千万万的公司,更有亿万人民的丰富多彩彼此不同的生活。人们工作和生活的各个不同方面,都有特殊的更贴合这些方面的事务内容和形式,千千万万的人也有不同的风格,它们需要更专注于某个特定方面的工具,需要有不同的服务呈现方式,换句话说就是,人们需要形式更为丰富的定制的虚拟人。
本质上,虚拟人都是基于大语言模型开发的,大语言模型虽然有很多种,但主流的总归也就那么几种。虚拟人的工作模式都是背靠大语言模型,区别只是选择不同的模型,专注于特定的方面,用不同的语气风格说话,亦或者,用图片或3D动画呈现出一个人的形象来,可以修饰发型,穿上虚拟的衣服,做些虚拟的动作。。。等等,总之就是装扮出一个人的形象。不管是可见的虚拟人形象,还是不可见的程序给你回答文字、语音、图片等内容,开发智能体的本质都是对大语言模型进行包装、打扮,就像是给一个人穿衣服,扣扣子,于是“扣子”这个名字就应运而生了。
英文名“Coze”首先是对中文名发音的模拟,其次它也是从code这个词变形而来,code可作名词表示代码,也可作动词表示编码,代表编程,代表开发,确实就很贴合“扣子”作为AI应用开发平台的功能定位。
这一段纯属我个人的揣测,官方并未明确解释。不过这么理解,应该更能把握扣子的功能定位,有利于后续理解和发挥扣子的各种操作方法。
智能体就是虚拟人,它的表现形式主要是听话(接受输入,包括文字、语音、图片等),理解(利用大语言模型进行推理),和说话(输出,根据人的要求输出文字、语音、图片等,甚至包括视频)。比说话进一步的是,虚拟人可以在电脑系统内(包括电脑、平板、手机等)执行搜索、播放音乐、视频,设置闹钟等等这些“电脑能做的事情”,目前主要就是这些。如果再进一步,AI很快会跟物联网结合,比如在家里自动帮你开关灯,开关窗帘,让家门口的摄像头自动守护和报警,让洗衣机自动洗衣服烘干等等,现在可能有些电器已经能分别做到这些,以后都跟家里的AI管家联动起来,就真的有了“智能管家”,这些都还在发展中,应该会很快了。
总之,扣子平台上的智能体开发,就是这种以“听话、理解、说话”为主要特点的简单AI应用。开发这类应用非常简单,甚至根本不需要写代码,你直接跟平台“说”就可以了,告诉它怎么设置,需要哪些组件,有哪些要求,选什么风格等等,普通人就能做得到,对信息技术有点了解的人操作起来就更轻松。
除了简单的以AI对话模式为主的智能体开发外,前面已经提到,社会上还有各行各业,有千千万万的公司,它们都有各自的业务。在AI时代,这些业务都需要进行AI赋能,进行流程再造。而这些流程比简单的说话肯定复杂得多,它们的输入内容有不同形式和规模,比如大型的数据库,特殊行业的巨量音视频库等;它们的处理流程可能涉及多个环节多种不同身份的人,它们的输出也可能有更复杂的内容、形式和规模等等,总之它们需要更复杂的应用。扣子平台也对开发这类复杂应用进行了支持,这类应用就是真正的,或者说一般意义上的AI应用了。
接下来我就开始动手了,尝试开发第一个智能体,以获得直观体验。
首先参照 进行基本操作,创建了智能体后的界面如下:
完成人设和回复逻辑的设定之后,就算是定制了一个智能体了,就这么简单。马上在右侧的“预览与调试”栏的下方提问,试试效果。下面就是我定制的第一个智能体的第一次测试:
1)可以在中间的“技能”栏下找到想要的技能来扩展智能体的能力,有很多其他人预定义的插件可以调用,还可以自定义插件,如果做得好,也可以将自定义插件分享给其他人使用。
2)知识库和记忆功能都很有用,知识库相当于提供自己定义数据或文件规范,让智能体从其中选择然后形成回答,是一种范围约束,用大语言模型的术语来讲,这就叫“精调”,用专业知识训练大模型;记忆功能就是把对话过程中的重要信息记录到存储系统中,后面可以查询。
3)角色语音选择很有趣,可以选跟角色定位贴近的语音,选择很多,可以先试听,然后选择自己喜欢的就行;
4)对话体验里面的开场白、用户问题建议、背景图片等都是辅助性的细节,根据需要选择。
上面4条中,我觉得硬核的“技能”是前两条吧,也就是插件、知识库、记忆这三种技能是真正很有用的,第三条语音选择好玩,第四条是辅助补充。
“技能”要用起来,也需要在提示词中进行明确,增加一组关于技能的说明。
但是我设定好技能的提示语后,尝试着问答,经过多轮并未得到满意的答复,也未见技能被调用,是哪里出了问题呢? 有没有客服支持啊,我这种探索很费时,关键是根据官网指南并不能立竿见影啊!
原来在每个页面的右下角有个助手图标,只露了半个头,不容易发现:
点击它,弹出一个助手页面,也是问答形式,它就是个智能体,下面是求助过程:
这就无解了啊,它根本不看我的现场,只通过语言沟通哪里说得清楚?!
官方指南上还提供了另外两种帮助途径,一个是加入交流群,一个是发邮件:
好吧,都试试!
交流群是个微信群(编号177了,看来有很多群),我加入的时候里面有147个人(确定里面有权威回答吗?) 管它三七二十一,先问一把再说,邮件也同时发了。
但是过了很久答复还没来,我自己继续试吧!鉴于后面几个回答它都是在设置定时安排,为什么会这样呢?观察了下,刚才选插件时,顺便把“允许用户在对话中创建定时任务”选项勾选了,去掉了这个选项,回答就改善多了,也调用了抖音的插件:
这次回答好多了。没搞懂,就算我勾选了“允许用户在对话中创建定时任务”选项,也不能每次答复都只设定时器吧?!
打开右侧预览与调试栏上的“调试”按钮(小扳手图标),可以打开“调试详情”页面:
默认是显示最后一轮问答的调试信息,我们可以把鼠标放在每一轮的回答上面,本轮回答信息下面就会出现几个功能按钮,包括“调试”,点击这个调式按钮,就会显示本轮问答的调试信息,这个就很好用了,赞一个!
在“调用树”这张图上,可以选择具体的某一个步骤,点击,下面就会出现该步骤的详细调用数据,包括了输入输出的详细参数和时间信息:
好用,这个必须夸!通过对调试信息解读,可以进一步明确地总结:
1)智能体的开发主要是通过为大模型定制输入提示词,然后调用大模型来实现;
2)在调用大模型之外,还可以扩展很多的API接口,调用外部功能,称为插件,插件大大扩展了智能体的能力;
3)从调用树来看,首先是调用豆包大模型;然后调用扩展插件,根据定制的情况,以我的测试用例来说,依次调用了头条新闻、抖音视频,以及数据库读写接口;最后扣子平台自己又把前面的多轮问答内容组成一个提示词,自己又问了豆包大模型一个建议型问题;为什么是这样的四轮调用?暂时还没搞明白,有待继续研究;
4)在调用豆包大模型时,消息体中携带了对话上下文中多轮的问答内容,其中最开始的部分就是我们在编排栏中输入的提示词,这也就证实了我开头的猜测:所谓的“人设与回复逻辑”其实就是每一轮对话都要携带的提示词的第一个部分,它对大模型进行提示和限定,从而让大模型的回答更贴近我们的设计目的——也就是人设,这就是智能体设计的本质。而技能部分则是通过插件来外扩的功能,它丰富了智能体的能力表现。
以上就是我对在扣子平台开发智能体的初体验。
因篇幅问题不能全部显示,请点此查看更多更全内容